Markdown 中的 Table 一键排序 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
simonguo
V2EX    分享创造

Markdown 中的 Table 一键排序

  •  
  •   simonguo 2018-11-06 22:05:43 +08:00 4388 次点击
    这是一个创建于 2610 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    在 Markdown 中我们经常会用到表格 , 但是手动排版太麻烦了,特别是表格排序。

    在我们的开源项目 React Suite 中,组件的 API 文档,会用到大量的表格, 在写的时候随心所欲的写,发布上线,然后有人反应,包括我自己也觉得没有排序的表格,阅读起来太不爽了。

    那怎么办?改呗。 本来想让新来的同事去改的, 然后再一看文档,80 个左右的组件再加上中英文两个版本,有 160 个左右的表格需要改,每一个表格如果要人工调整是很痛苦的。交给新同事太残忍了,还是自己写个工具解决吧。

    本来想找个现成的工具,但是没找到,然后看了看类似的表格的格式化 VS Code 的插件,然后随手就改了改,写了一个可以排序的小插件,希望可以帮到您。

    效果

    格式化前大概长成这个样子,乱七八糟。

    | name | email | description | | -- | -- | --- | | zhang | [email protected] | zhang | | wang | [email protected] | wang | | li | [email protected] | li | | amity | [email protected] | amity | | batman | [email protected] | batman | 

    格式后,就整齐了,同时 name 一列按照字母排序了。

    | name | email | description | | ------ | ------------ | ----------- | | amity | [email protected] | amity | | batman | [email protected] | batman | | li | [email protected] | li | | wang | [email protected] | wang | | zhang | [email protected] | zhang | 

    表格的格式我用的是prettier,它提供很方便的 API。

    安装

    在 VS Code Extensions 中搜索: Markdown Table Sort

    22 条回复    2018-11-07 17:39:02 +08:00
    yesmeck
        1
    yesmeck  
       2018-11-06 22:11:45 +08:00   1
    lucifineil
        2
    lucifineil  
       2018-11-06 22:15:46 +08:00 via Android
    org 大法好
    simonguo
        3
    simonguo  
    OP
       2018-11-06 22:23:35 +08:00 via iPhone
    @yesmeck 这个不错
    lululau
        4
    lululau  
       2018-11-06 22:36:06 +08:00 via iPhone
    这个操作叫 tabularization,感觉 LZ 应该也是工具控,建议玩下 Emacs,玩下 org-mode,那种感觉就是再也回不去了。即便是为了和他人协作必须用 Markdown,Emacs 的 markdown-mode, 因为用了 org-tbl-mode,所以它可能也是最棒的 Markdown 编辑器了
    kerr92
        5
    kerr92  
       2018-11-06 23:04:15 +08:00
    @yesmeck 原来 antd 是这么给 Markdown 表格排序的,明天借鉴一下加到公司文档的 npm scripts 里
    quinoa42
        6
    quinoa42  
       2018-11-07 06:32:53 +08:00   2
    踢一下馆


    相关扩展:
    ```
    Plug 'godlygeek/tabular'
    Plug 'plasticboy/vim-markdown'
    ```
    maemolee
        7
    maemolee  
       2018-11-07 09:15:53 +08:00
    比如 姓名-值 的表格,能按照 值 从大到小排列吗?
    simonguo
        8
    simonguo  
    OP
       2018-11-07 09:42:23 +08:00
    @maemolee 实现上是完全可以的,不过等我过两天空了,把这些配置功能加上。
    maemolee
        9
    maemolee  
       2018-11-07 10:42:43 +08:00
    @simonguo NICE
    tamlok
        10
    tamlok  
       2018-11-07 11:26:35 +08:00 via Android
    @quinoa42 如果有中文,效果会怎么样?
    simonguo
        11
    simonguo  
    OP
       2018-11-07 11:41:31 +08:00
    @quinoa42 如果能排序,效果会更好
    Betsy
        12
    Betsy  
       2018-11-07 12:03:20 +08:00 via iPhone
    @quinoa42 想问下你这个动态图是怎么录制的,用的什么工具?
    quinoa42
        13
    quinoa42  
       2018-11-07 12:42:15 +08:00
    quinoa42
        14
    quinoa42  
       2018-11-07 12:59:33 +08:00
    @simonguo 个人觉得排序不应该是 markdown 工具的一部分(考虑到各种排序的可能性,难免会使问题变得非常复杂),如果有类似需求我会选择用 python 之类的工具事先生成表格
    quinoa42
        15
    quinoa42  
       2018-11-07 13:01:51 +08:00
    STRRL
        16
    STRRL  
       2018-11-07 13:13:30 +08:00 via Android
    @quinoa42 问一下 中文字体用的什么呀?
    recall704
        17
    recall704  
       2018-11-07 15:47:49 +08:00
    当某一格的内容太多的时候还是不好使。
    TheGonG
        18
    TheGonG  
       2018-11-07 17:15:54 +08:00
    提个建议:能不能只帮我格式化每行的距离,但不要为每行排序上下位置这样的配置,忽略现在按字段名来排序了每行的上下位置。。感觉写文档的时候就已经自己有顺序的去写了。。我是手写的。。。原谅我不是自动生成的。
    TheGonG
        19
    TheGonG  
       2018-11-07 17:18:42 +08:00
    就像 6 楼那样的。。。。
    Trim21
        20
    Trim21  
       2018-11-07 17:24:32 +08:00
    有可能从新同事写的工具变成了自己写的工具...
    simonguo
        21
    simonguo  
    OP
       2018-11-07 17:36:09 +08:00
    @Daath 只是格式化距离的话,已经有很多插件了,甚至有些编辑器就带这样的功能。prettier 也是支持格式化。 我没必要再去写一个这样的工具。
    这个扩展的名字就叫 Markdown Table Sort, 目的就是解决排序问题。

    @quinoa42 排序同样可以做成 TableFormat 的一部分,当把 md 中的 Table 抽象在一个数组对象中以后,有什么复杂的排序不能做
    TheGonG
        22
    TheGonG  
       2018-11-07 17:39:02 +08:00
    @simonguo 恩恩。刚才在 vs 插件上已经找到了 prettier,之前没有接触过 vs 的,没怎么去搜过。哈哈,谢谢啦
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     868 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 21:55 PVG 05:55 LAX 13:55 JFK 16:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86