/siyuanPlugin-list2table

列表转表格

Primary LanguageTypeScriptMIT LicenseMIT

将列表转化为二维表格

English

思源笔记插件,将列表通过一定规则转换为二维表格。与表格视图不同的是,本插件将在原有列表中提取概念组成上方表头,提取属性组成左侧表头,将概念属性对应的内容填入相应单元格。结果在新的表格中显示,不更改原笔记内内容

使用方法

启用插件后,在列表块(注意不是列表项块)的菜单内会增加一个列表转表格的菜单项,点击将在弹出窗口中显示转换结果。

插件设置内有以下选项:

  • 属性名与属性值之间的分隔符号:分隔符号前将提取为属性名,分隔符号后将识别为属性值
  • 属性名最大长度,0表示无限制,若分隔符号出现位置在此长度外,不会进行分割

更详细的转换说明请见示例。

❗❗ 若要将结果复制至其他地方使用并保证正常显示,请将转换后表格 html 代码中<th class="fn__none"><td class="fn__none">全部删除。

示例

转化前

  • 概念1

    • 概念1-1

      • 属性5

        • 属性5-1:概念1-1-属性5-1
      • 属性2

        • 属性2-1:概念1-1-属性2-1
      • 属性3

        • 属性3-1:因在概念1-2中,属性3与属性1同级,会被判断为属性
        • 属性3-2:概念1-1-属性3-2
      • 属性6

        • 属性6-2:概念1-1-属性6-2

        • 属性6-1

          • 属性6-1-1:概念1-1-属性6-1-1
    • 概念1-2:非属性节点即使存在分隔符也不会被拆分

      • 属性1:概念1-2-属性1

      • 属性3

        • 属性3-1:概念1-2-属性3-1
        • 属性3-3:概念1-2-属性3-3
  • 概念2

    • 属性1:概念2-属性1

    • 属性3:该属性应有下级但没有,会合并单元格

    • 属性4:概念2-属性4

    • 属性6

      • 属性6-1

        • 属性6-1-2:概念2-属性6-1-2
  • 不规范的概念1

    • 属性5

      • 属性6-2:属性同名但路径不同,可处理(属性5-属性6-2)
    • 属性6

      • 属性5-1:属性同名但路径不同,可处理(属性6-属性5-1)
  • 不规范的概念2(不同层级属性混在一级)

    • 属性2-1:与((20230417003249-5ahw5qp "概念1-1的属性2-1"))不在同一层级,会被识别为不同属性
  • 不规范的概念3(非叶子节点存在属性值)

    • 属性2:该属性不应该有属性值,会被判断为概念,且导致下层属性丢失父属性

      • 属性2-1:不规范的概念3-属性2-1

转化后

概念1概念2不规范的概念1不规范的概念2(不同层级属性混在一级)不规范的概念3(非叶子节点存在属性值)
概念1-1概念1-2:非属性节点即使存在分隔符也不会被拆分属性2:该属性不应该有属性值,会被判断为概念,且导致下层属性丢失父属性
属性5属性5-1概念1-1-属性5-1
属性6-2属性同名但路径不同,可处理(属性5-属性6-2)
属性2属性2-1概念1-1-属性2-1
属性3属性3-1因在概念1-2中,属性3与属性1同级,会被判断为属性概念1-2-属性3-1该属性应有下级但没有,会合并单元格
属性3-2概念1-1-属性3-2
属性3-3概念1-2-属性3-3
属性6属性6-2概念1-1-属性6-2
属性6-1属性6-1-1概念1-1-属性6-1-1
属性6-1-2概念2-属性6-1-2
属性5-1属性同名但路径不同,可处理(属性6-属性5-1)
属性1概念1-2-属性1概念2-属性1
属性4概念2-属性4
属性2-1与概念1-1的属性2-1不在同一层级,会被识别为不同属性不规范的概念3-属性2-1

感谢

开发相关

❗❗❗ 为统一项目方法和类型,思源 api 相关方法和类型均在siyuanPlugin-common项目中