它的语法特别简单,只有一条:
(标签 属性 1=|属性内容 1| 属性 2=|属性内容 2| . 内容)
虽然它的语法简单,但语义十分强大,强大到与 XML (或 HTML ) 的语义表达能力一样。
例子们:
图片:
(img src=|photo.jpg| width=|60px| height=|40px|)
说明:如果没有“内容”的话,“.”可以省略。
代码:
(@code lang=|C++| .
#include <iostream>
int main()
{
std::cout << "Hello, World!\n";
}
@)
说明:不需要对插入的代码中的“(”和")"进行任何“转义”,只需要使用“(@”和“@)”来代替“(”和")"即可。“@”的个数个可以任意多,只要前后匹配即可。
代码 2 :
(@@code lang=|Scheme| .
(define weird-string
(lambda ()
"(@)"))
@@)
说明:无论插入的代码中包含任何字符或字符串,都不需要转义。
普通的文本格式化可以很简单:
(p . 这个句子里有(i . 斜体)字。)
希望大家喜欢,有什么问题请留言:)
补充一个特性:在插入的代码里面再进行对部分字符添加格式。
(@code lang=|C++| .
#include <iostream>
int main()
{
std::cout << "(@span color=|red| . Hello, World!@)\n";
}
@)
101
SilentDepth 2016-02-04 20:37:01 +08:00
@vvsun 不考虑 Caret 吗,程序员的话也许会更喜欢这个
|
102
laosb 2016-02-04 21:14:59 +08:00
@zxgngl 这样可读性比 Markdown 差多了,而且文字工作者不会想去弄明白「 span 」「 plugin 」「 table 」这些略复杂的概念,这些实意字符很大程度上影响了可读性。更糟糕的是,你广泛运用的括号,在实际文本中还是实意的。如果读者不知道这个语法,他会忽略其他乱糟糟的东西但是括号不会被忽略,可能会引起歧义,在英语文章中就更不用说了。
Mike is **not** a gay. 看起来强调了 not Mike is (**.not) a gay. 看起来像是 Mike is (maybe not?) a gay. Markdown 采用的多数是特殊字符,就是为了避免实意字符带来阅读上的困扰。事实上, Markdown 的规范可以说是**约定俗成**,而不是**生硬的规定**。 Markdown 是自然语言的衍生。 Product Name | Number | Price | Total ------------------|----------|-------|------- Butter | 2| 3| 6 >Ah, a price table (table plugin=|csv-paser| . csv, based, table Product Name, Number, Price, Total Butter, 2, 3, 6 ) >Wtf?! 除了样例,在这篇回复里我用了几处 Markdown ,也许你根本都没有感觉到,我自己发现是在写这一段的时候。 你看看你的回复,充满了十足的装逼的香味。别的不说,「"quote" 是什么意思?」 |
103
zxgngl OP @laosb
我的(不全面且主观臆断的)观察是,多数情况下人们通过纯文本模式或者编辑器的 Markdown 辅助模式来“写”文档;但“读”的时候,多数情况都是渲染过的样子,而不是原始的 Markdown 文本,这也是为什么 Markdown 编辑器这种按照 Markdown 设计初衷本来不应该存在的东西广为流传甚至还能卖钱的原因。 “ quote ”的意思是“引文”,语义类似于 HTML 里面的 blockquote 标签。这个帖子发表在“程序员”节点下,所以我假设大家是懂的。没有让大家清楚明白地知道这个单词的意思是我的错,抱歉各位。 |
104
zhulaole 2016-02-04 23:31:09 +08:00
专门注册的帐号,@zxgngl 请看 csdn 或豆瓣的私信,这里没私信没法联系你
|
105
LioMore 2016-02-04 23:33:26 +08:00
无论如何,支持一下作者!源码分享一下?
--- 然后说下,如果不能使用 markdown 我会优选 reStructuredText 还有,切勿只是为了让你的文本标记格式去实现 xml , html 中的强大功能,不然,我会认为你写的东西和易语言本质上是没有区别的 markdown 的功能不多,但是完全足够用了,如果需要其他的功能能够直接插入 html 代码,这就是 markdown 的魅力,不是吗? |
106
bramblex 2016-02-04 23:39:12 +08:00
嗯……怎么说呢……想法不错,但是然并卵的赶脚……
|
108
cevincheung 2016-02-05 02:29:46 +08:00
__ ___ ... .. _.. .. ._ _. __ ._
|
109
LioMore 2016-02-05 04:06:50 +08:00
补充:
刚看了其他人的回复,现在觉得楼主的语言和 HTML 的关系越来越像易语言和 VB 的关系了 |
111
jemyzhang 2016-02-05 08:50:49 +08:00
看上去楼主并不理解 md 的精华所在,那就是可读性
|
112
woai110120130 2016-02-05 08:56:13 +08:00
程序在哪
|
113
CJey 2016-02-05 09:27:21 +08:00
这和 Markdown 并没什么关系吧,看起来你这核心表达方式就是 XML 的做法
你和我斗承认 XML 的表达力几乎是极限,但这也是他的缺陷,为啥?很简单,你想无所不能这很简单, binary digit 就是你要的 所以你要看到的是你到底要做什么,解决什么问题,解决问题的手段是否优雅 在这里,我看不到简洁,除了复杂和弱表现力,剩下的就是可能解决了让你不爽的 quota 方式, so ,没意义,因为 quota 无法避免,更不要试图更改大家的习惯,这会让人排斥 说到 quota ,突然想到个主意,参照大多数正则的做法,文档开头首行首个字符会被当成转义符,个人按习惯来,用中文,泰文,各自随意。但带来的问题是,文档局部不可用,这其实缺陷也挺大,缺点东西文档就不能读,这不是人类友好的设计 |
114
nekocode 2016-02-05 09:44:53 +08:00
烂
|
115
nekocode 2016-02-05 10:13:44 +08:00
主要是你连竞争对象都选错了。和 Markdown 这种『专注内容,任何人都可以很容易书写』的格式来比,真的差得不是一般的多。
|
116
zxgngl OP @dcoder Emmet ( http://emmet.io/ )通过语法的扩充和编辑器的辅助功能,使写 HTML 变得容易快速了,但并没有解决读 HTML 以及在 HTML 中插入代码可能需要转义的问题。
|
118
EugeneQiu 2016-02-05 10:22:20 +08:00
@Delbert 哈哈哈,蒙逼了,是 Shift 键, anyway ,反正每次按多一个键这种输入感觉还是有点不够友好。
|
119
zxgngl OP @woai110120130 现在没有程序,只有设计。
|
120
zxgngl OP @CJey
> 在这里,我看不到简洁,除了复杂和弱表现力,剩下的就是可能解决了让你不爽的 quota 方式, so ,没意义,因为 quota 无法避免,更不要试图更改大家的习惯,这会让人排斥 我假设你说的“ quota ”指的是“引用文字或代码”( quote ?)。我设计的语法一劳永逸地消灭了插入文字和代码时可能会需要对插入对象中的某些字符进行转义的问题。 是否简洁是主观的,就不说了。 你用了“弱表现力”这个词来形容我设计的格式。我想知道,有什么你觉得这个新语法表现不了么? |
121
10iii 2016-02-05 10:43:35 +08:00
回想起当年在天涯战民科。
|
122
zxgngl OP @LioMore
> 刚看了其他人的回复,现在觉得楼主的语言和 HTML 的关系越来越像易语言和 VB 的关系了 我想,你想说的是我的语法和 HTML 差不多。但我的语法是可以解决诸如易读性差,入代码可能需要转义等直接使用 HTML 会遇到的问题。 另外,请不要光看其他人的回复。请看我的原帖、我的回复以及补充说明。 |
124
zxgngl OP @cevincheung 看不懂。请说中文。
|
125
zxgngl OP |
126
xcodebuild 2016-02-05 11:44:43 +08:00 1
@zxgngl 可以说 markdown 存在不少缺陷但也不用贬得一文不值,你的做法确实降低了可读性,写起来也更麻烦了,和 markdown 的受众完全不是一种人来着。
话虽这么说,但是创造总是应该鼓励的,你完全可以用在自己喜欢的地方么,例如给 hexo 写个渲染插件然后用在自己的博客里什么的。 我个人更加喜欢 orgmode (在有 emacs 的情况下),徒手写我还是倾向于 markdown 。 |
127
zxgngl OP @codefalling 这个语法一开始的定位之一就是博客的“源代码”:)
|
128
master13 2016-02-05 14:26:04 +08:00
所以这种语言跟 HTML5 的区别在哪里?
|
129
popbones 2016-02-05 15:39:45 +08:00 via iPhone
不太适合人类阅读,容易出现行为一大串)和修饰字符和正文自负不好分辨的情况。可以作为 XML 的某种模板或为了节省空间的存储格式(节省有限)因为表达集基本差不多,但是和 Markdown 比没什么优势, Markdown 的一个重要优势是即时当作纯文本来读对人类来说大部分时候也很容易。如果作为编译成输出文档的源码,不太关心可读性但是比较在意表达能力的话竞争太多,比如 LaTex
|
130
zxgngl OP @master13
> 所以这种语言跟 HTML5 的区别在哪里? 在 HTML 里面如果想表示 “<你好>” 需要输入转义后的 “<你好>”,使用我设计的语法对于任何字符或字符串都不需要转义,方便拷贝和修改。第二个好处是可以支持第三方格式,如 CSV 表格。第三个好处是写的少,语法一致性高(只有一条语法)。 |
131
zxgngl OP @popbones
> 不太适合人类阅读,容易出现行为一大串)和修饰字符和正文自负不好分辨的情况。 可以举个具体的行尾出现一大串 ) 的例子吗? > 可以作为 XML 的某种模板或为了节省空间的存储格式(节省有限)因为表达集基本差不多,但是和 Markdown 比没什么优势, Markdown 的一个重要优势是即时当作纯文本来读对人类来说大部分时候也很容易。 请举个具体的 Markdown 很好读但我设计的格式不好读的例子吧。 > 如果作为编译成输出文档的源码,不太关心可读性但是比较在意表达能力的话竞争太多,比如 LaTex 在功能上,由于我的格式语言只是处在设计阶段,所以跟 LaTex 比功能(如输出 PDF 、 PS ,画数学公式)是望尘莫及的。但在语言设计上 LaTex 等语言有一个致命的问题就是当用 LaTex 写 LaTex 的说明文档的时候会由于转义字符的原因导致非常难写。具体例子: LaTex 有以下十个特殊字符: & % $ # _ { } ~ ^ \ 如果要在 LaTex 文档中表示它们需要这样写: \documentclass{article} \begin{document} \& \% \$ \# \_ \{ \} \textasciitilde \textasciicircum \textbackslash \end{document} 我设计的语法包含以下六个特殊字符: ( ) @ = | . 在新语法中表达它们是这样的: (@article . (@document . ( ) @ = | . @) @) 哪一种语法更清晰简洁比一下立刻就见分晓。 |
132
zxgngl OP 补充上一条回复:
新语法包含七个特殊字符(不是六个): ( ) @ = | . \ |
133
heraldboy 2016-02-05 16:56:40 +08:00
太复杂了, markdown 这么简单的都不是很多人用。
|
134
MiskoLee 2016-02-05 19:03:52 +08:00
没看到这个和 html 的差异是啥。。。。
|
136
oska874 2016-02-05 22:28:29 +08:00 via Android
不就是模板么。
|
137
zxgngl OP |
138
iyangyuan 2016-02-05 22:56:30 +08:00 via iPhone
然并卵,无理论基础
|
140
hinkal 2016-02-06 09:33:36 +08:00 via Android 1
道理我都懂,为什么回复里只看到了拍砖,并没有看到夸楼主的(img src=|doge.jpg|)
|
142
xiaof 2016-02-14 09:19:41 +08:00
我觉得楼主设计的这种文本标记格式和 MD 的用户群是不同的,非竞品没必要讨论谁好谁坏。
属性和 html 是一样的吧? 有多少普通人能记得住那么多属性(大部分普通人英文并不好)? MD 使用较少的“属性名词”(姑且这么称呼吧),可以满足大多数的文档写作场景使用,入门的门槛低,容易上手,源码的易读性也比较好。 |
144
wizardforcel 2016-06-26 20:01:27 +08:00
还是基于标签的,用做模板倒还好。。。写作的话。。我宁愿用 jade 。
|