oak_django/ast/
mod.rs

1use core::range::Range;
2
3/// Django 模板根节点
4#[derive(Debug, Clone)]
5pub struct DjangoRoot {
6    pub elements: Vec<DjangoElement>,
7    pub span: Range<usize>,
8}
9
10/// Django 模板元素
11#[derive(Debug, Clone)]
12pub enum DjangoElement {
13    /// HTML 文本
14    HtmlText { content: String, span: Range<usize> },
15    /// Django 变量 {{ variable }}
16    Variable { name: String, filters: Vec<String>, span: Range<usize> },
17    /// Django 标签 {% tag %}
18    Tag { name: String, args: Vec<String>, span: Range<usize> },
19    /// Django 注释 {# comment #}
20    Comment { content: String, span: Range<usize> },
21}