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}