Skip to content

数据格式

LiteTree支持litejson两种数据格式来描述树。

Lite格式

lite是一种使用缩进来代表层级的简化格式,专门设计来描述树结构,类似YAML格式,每4个空格代表一个树层级,适合在Markdown文档中使用。

lite特性如下:

  • 节点数据由变量声明区树数据两个区域,中间使用---分开。
  • 变量声明区用来声明嵌入样式、类样式、图标等信息,在节点中使用。
  • 树数据使用4个空格1个TAB代表一个树层级,每一行代表一个节点。
  • 节点前置-代表节点是展开的,+代表节点是折叠的。
  • 节点后置(tag,tag,...,tag)用来为节点指定标签。
  • 节点//尾随节点标识,支持+-*!xv等标识。
  • 节点//后面的内容代表注释。
md
<LiteTree>
#red=color:red;
#bg=background-color:gray;border:1px solid #ccc;
github=data:image/svg+xml;base64,<...图标数据...>
---
根节点
    节点1
        节点1.1     //+
        节点1.2     //-
        节点1.3     //*
        节点1.4     //!
        节点1.5     //x
        节点1.6     //v
    -节点2
        节点2.1     // comment
        节点2.2(java,python,{#red}ts)     // comment
    +节点3
        节点3.1
        节点3.2
</LiteTree>

渲染效果如下:

  • 根节点
    • 节点1
      • +节点1.1
      • -节点1.2
      • *节点1.3
      • 节点1.4
      • 节点1.5
      • 节点1.6
    • 节点2
      • 节点2.1 comment
      • 节点2.2javapythontscomment
    • 节点3

JSON格式

JSON格式是一种通用的数据格式,用来描述树结构,适合在JavaScript中使用。 但是在Markdwon中使用时比较繁琐,不推荐使用。

ts
interface LiteTreeNode {
    id: string;                         // 节点ID
    title: string;                      // 节点标题
    icon: string;                       // 图标名称
    open: boolean;                      // 是否展开
    flag: '+' | '-' | '*' | '!' | 'x' | 'v'  | string;  // 标识
    diff: '+' | '-' | '*'               // 差异标识
    comment:string                      // 注释
    style:string                        // 样式
    classs:string[]                     // 类样式
    tags:string[]                       // 标签
    children?: LiteTreeNode[];          // 子节点
  }

注意 为方便在Markdown场景下使用,LiteTree对支持的JSON数据格式作了一定的容错处理。

  • Key允许不使用"...."包裹
  • Value允许不使用"...."包裹
  • '....'的字符串自动替换为"...."
  • 对中文全角字符进行自动替换,如自动替换为,

如以下是不符合规范的JSON数据,因为其Key没有使用"...."包裹,但在LiteTree时可以正常解析的。这对在这与Markdown文档时特别方便,让文档更加简洁。

js
{
  title: "根节点",
  children: [
    {
      title: "节点1"      
    },
    {
      title: "节点2"
    },
    {
      title: "节点3"
    }
  ]
}
  • 根节点
    • 节点1
    • 节点2
    • 节点3