类 Markdown/kramdown 语言之 Strictdown 的一些新语法求讨论 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jakwings
V2EX    Markdown

类 Markdown/kramdown 语言之 Strictdown 的一些新语法求讨论

  •  
  •   jakwings 2014-02-28 14:44:03 +08:00 4547 次点击
    这是一个创建于 4309 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先放几个语法说明的链接以供对比参考:
    Markdown v1.0.1: http://daringfireball.net/projects/markdown/syntax
    GitHub Flavored Markdown: https://help.github.com/articles/github-flavored-markdown
    PHP Markdown Extra: http://michelf.ca/projects/php-markdown/extra/
    kramdown: http://kramdown.gettalong.org/syntax.html
    我正在设计的 Strictdown 见另一个主题: /t/99499

    Strictdown 不会实现各种 Markdown 及变体的一些语法,不过可能会有替代语法,或者会通过转换工具提供的扩展功能来实现。

    下面是我目前想讨论的一些(新)语法,可读性是我最关心的,效率先一边放着,兼容 Markdown 更不在考虑之内:

    [行内格式]
    强调(斜体)内容用两个下划线包裹,如:__foo bar_baz__
    加重强调(粗体)内容用两个星号包裹,如:**x * y = ?**
    删除内容用两个波浪线包裹,如:~~该内容已过期~~

    作为锚点的内容,如:
    {V2EX} 即「way to explore」和「way too extreme」的缩写。
    然后可以通过方案一链接引用 |V2EX| 的解释?
    然后可以通过方案二链接引用 [V2EX][#V2EX] 的解释?

    [块级内容]
    从所周知,栅栏式代码块是这样的:
    ~~~ html
    <div id="test">
    <p>Hello, V2EX.</p>
    </div>
    ~~~

    我不打算实现 Markdown 原来的 HTML 嵌套语法,而是在栅栏式代码块的代码名称前加个星号指示直接保留代码:
    ~~~ *html
    <div id="test">
    <p>Hello, V2EX.</p>
    </div>
    ~~~

    若要在保留的代码中使用行内格式,再加一个星号:
    ~~~ **html
    <div id="test">
    <p>Hello, V**2**EX.</p>
    </div>
    ~~~

    就这些了,有什么要改进的地方吗?行内文本的锚文本功能要用哪种语法比较好,要不要实现这个语法?
    7 条回复    1970-01-01 08:00:00 +08:00
    amoblin
        1
    amoblin  
       2014-02-28 15:46:15 +08:00
    用了Org-mode后就对Markdown无感了。。。
    jakwings
        2
    jakwings  
    OP
       2014-02-28 16:10:13 +08:00
    @amoblin 是因为习惯问题吗?我看了下官网,感觉语法也不是挺方便,和 reStructuredText 差不多,比较适合用惯了的人(Geek?)使用,要上手不容易。而且只是和 Emacs 配合得最好?
    想移植到前端就更难了。

    总之,来点建议吧……Orz
    standin000
        3
    standin000  
       2014-02-28 16:30:57 +08:00   1
    @jakwings org-mode 转html很方便,建议参考org elisp库的写法。
    jakwings
        4
    jakwings  
    OP
       2014-02-28 16:34:56 +08:00
    @standin000 好吧……请先考虑语法、可读性、易用性,以及是否容易用 Javascript 实现。
    standin000
        5
     
       2014-02-28 17:05:13 +08:00
    @jakwings 咳,不是说服你用,我是说可以给你参考。javascrip其实是类lisp语言。
    jakwings
        6
    jakwings  
    OP
       2014-02-28 17:29:40 +08:00
    @standin000 可参考的地方感觉有点少。Org-mode 的语法和我要的语法都不一样,就算我可以用 Javascript 模拟 LISP ,也不能很好模拟它的解析方法啊。Org-mode 是靠各种折叠来隐藏一大堆奇怪的内容的,还用各种 :END: 之类的辅助文本来方便地结束块级元素,显然和我要的纯文本可读性相悖,于是它的代码肯定也没考虑到 Markdown 类语言的这种没有明确结束标记的解析困境。
    kawaiiushio
        7
    kawaiiushio  
       2014-02-28 23:44:11 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5286 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 06:04 PVG 14:04 LAX 22:04 JFK 01:04
    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