下午好,准备准备要上班了!

编程开发

极狐 GitLab Markdown 可排序、可过滤的数据表格实现

2022年09月30日 15:18:56 · 本文共 827 字阅读时间约 3分钟 · 2,103 次浏览
极狐 GitLab Markdown 可排序、可过滤的数据表格实现

在 Markdown 中使用表格是不是每次都很烦?很多样板内容,全都是 |--| 的符号,理解也比较困难,表格还是静态的。

极狐 GitLab 15.3中为我们新增了一个功能,基于 JSON 的表格,支持筛选过滤、排序的操作,让你的表格动态起来,好用好几倍!

JSON TABLE 的使用

如果你是前端工程师,那应该很快就理解了,前端很多地方都用 JSON 来定义表格,在这个功能中同样是这个意思。

首先,我们先定一个一个代码段,代码段的格式是:json:table,就像这样:

```json:table
{}
```

然后,我们填充表头列数组定义:

```json:table
{
    "fields" : [
        {"key": "a", "label": "AA"},
        {"key": "b", "label": "BB"},
        {"key": "c", "label": "CC"}
    ]
}
```

再增加数据数组:

```json:table
{
    "fields" : [
        {"key": "a", "label": "AA"},
        {"key": "b", "label": "BB"},
        {"key": "c", "label": "CC"}
    ],
    "items" : [
      {"a": "11", "b": "22", "c": "33"},
      {"a": "34", "b": "65", "c": "33"},
      {"a": "56", "b": "32", "c": "54"},
      {"a": "211", "b": "222", "c": "233"}
    ]
}
```

让数据列支持排序,我们给列对象增加一个属性 sortable:

```json:table
{
    "fields" : [
        {"key": "a", "label": "AA", "sortable": true},
        {"key": "b", "label": "BB", "sortable": true},
        {"key": "c", "label": "CC", "sortable": true}
    ],
    "items" : [
      {"a": "11", "b": "22", "c": "33"},
      {"a": "34", "b": "65", "c": "33"},
      {"a": "56", "b": "32", "c": "54"},
      {"a": "211", "b": "222", "c": "233"}
    ]
}
```

再让表格支持搜索过滤,在整体上增加一个属性 filter:

```json:table
{
    "fields" : [
        {"key": "a", "label": "AA", "sortable": true},
        {"key": "b", "label": "BB", "sortable": true},
        {"key": "c", "label": "CC", "sortable": true}
    ],
    "items" : [
      {"a": "11", "b": "22", "c": "33"},
      {"a": "34", "b": "65", "c": "33"},
      {"a": "56", "b": "32", "c": "54"},
      {"a": "211", "b": "222", "c": "233"}
    ],
    "filter": true
}
```

这个时候,表格的标题还是默认的,我们再增加一个自定义标题 caption:

```json:table
{
    "caption" : "表格标题",
    "fields" : [
        {"key": "a", "label": "AA", "sortable": true},
        {"key": "b", "label": "BB", "sortable": true},
        {"key": "c", "label": "CC", "sortable": true}
    ],
    "items" : [
      {"a": "11", "b": "22", "c": "33"},
      {"a": "34", "b": "65", "c": "33"},
      {"a": "56", "b": "32", "c": "54"},
      {"a": "211", "b": "222", "c": "233"}
    ],
    "filter": true
}
```

这个时候就会发现,表格已经支持排序、搜索筛选了,案例仓库:https://jihulab.com/renfei/markdown-jsontable-example

markdown 可排序筛选表格
商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.renfei.net/posts/1003533
评论与留言

以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。

微信搜一搜:任霏博客