summaryrefslogtreecommitdiff
path: root/src/visitor/block_class.rs
blob: 303616b3967839c5fd806d1dd99dfcff7e776645 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use std::collections::HashSet;

use pandoc_ast::{Block, MutVisitor};

#[derive(Default)]
pub struct BlockClassVisitor {
    pub classes: HashSet<String>,
}

impl MutVisitor for BlockClassVisitor {
    fn visit_vec_block(&mut self, vec_block: &mut Vec<Block>) {
        for block in vec_block {
            match block {
                Block::CodeBlock(attr, _) => {
                    for class in &attr.1 {
                        self.classes.insert(class.to_string());
                    }
                }
                _ => {
                    self.visit_block(block);
                }
            }
        }
    }
}