我设计了一种文本标记格式,用来代替 Markdown 格式。请大家一定来夸我,或者拍砖:)

2016-02-03 23:12:11 +08:00
 zxgngl

它的语法特别简单,只有一条:

(标签 属性 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 . 斜体)字。)

希望大家喜欢,有什么问题请留言:)

13640 次点击
所在节点    程序员
144 条回复
SilentDepth
2016-02-04 20:37:01 +08:00
@vvsun 不考虑 Caret 吗,程序员的话也许会更喜欢这个
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" 是什么意思?」
zxgngl
2016-02-04 23:02:29 +08:00
@laosb

我的(不全面且主观臆断的)观察是,多数情况下人们通过纯文本模式或者编辑器的 Markdown 辅助模式来“写”文档;但“读”的时候,多数情况都是渲染过的样子,而不是原始的 Markdown 文本,这也是为什么 Markdown 编辑器这种按照 Markdown 设计初衷本来不应该存在的东西广为流传甚至还能卖钱的原因。

“ quote ”的意思是“引文”,语义类似于 HTML 里面的 blockquote 标签。这个帖子发表在“程序员”节点下,所以我假设大家是懂的。没有让大家清楚明白地知道这个单词的意思是我的错,抱歉各位。
zhulaole
2016-02-04 23:31:09 +08:00
专门注册的帐号,@zxgngl 请看 csdn 或豆瓣的私信,这里没私信没法联系你
LioMore
2016-02-04 23:33:26 +08:00
无论如何,支持一下作者!源码分享一下?

---

然后说下,如果不能使用 markdown 我会优选 reStructuredText

还有,切勿只是为了让你的文本标记格式去实现 xml , html 中的强大功能,不然,我会认为你写的东西和易语言本质上是没有区别的

markdown 的功能不多,但是完全足够用了,如果需要其他的功能能够直接插入 html 代码,这就是 markdown 的魅力,不是吗?
bramblex
2016-02-04 23:39:12 +08:00
嗯……怎么说呢……想法不错,但是然并卵的赶脚……
zxgngl
2016-02-05 01:28:53 +08:00
@zhulaole 可以发邮件联系我。地址请见签名。
cevincheung
2016-02-05 02:29:46 +08:00
__ ___ ... .. _.. .. ._ _. __ ._
LioMore
2016-02-05 04:06:50 +08:00
补充:
刚看了其他人的回复,现在觉得楼主的语言和 HTML 的关系越来越像易语言和 VB 的关系了
dcoder
2016-02-05 05:21:34 +08:00
@zxgngl 为啥不直接用 emmet 写 HTML?
jemyzhang
2016-02-05 08:50:49 +08:00
看上去楼主并不理解 md 的精华所在,那就是可读性
woai110120130
2016-02-05 08:56:13 +08:00
程序在哪
CJey
2016-02-05 09:27:21 +08:00
这和 Markdown 并没什么关系吧,看起来你这核心表达方式就是 XML 的做法
你和我斗承认 XML 的表达力几乎是极限,但这也是他的缺陷,为啥?很简单,你想无所不能这很简单, binary digit 就是你要的
所以你要看到的是你到底要做什么,解决什么问题,解决问题的手段是否优雅
在这里,我看不到简洁,除了复杂和弱表现力,剩下的就是可能解决了让你不爽的 quota 方式, so ,没意义,因为 quota 无法避免,更不要试图更改大家的习惯,这会让人排斥

说到 quota ,突然想到个主意,参照大多数正则的做法,文档开头首行首个字符会被当成转义符,个人按习惯来,用中文,泰文,各自随意。但带来的问题是,文档局部不可用,这其实缺陷也挺大,缺点东西文档就不能读,这不是人类友好的设计
nekocode
2016-02-05 09:44:53 +08:00
nekocode
2016-02-05 10:13:44 +08:00
主要是你连竞争对象都选错了。和 Markdown 这种『专注内容,任何人都可以很容易书写』的格式来比,真的差得不是一般的多。
zxgngl
2016-02-05 10:17:59 +08:00
@dcoder Emmet ( http://emmet.io/ )通过语法的扩充和编辑器的辅助功能,使写 HTML 变得容易快速了,但并没有解决读 HTML 以及在 HTML 中插入代码可能需要转义的问题。
zxgngl
2016-02-05 10:22:20 +08:00
@nekocode 我觉得我设计的格式才是专注内容,任何人都可以很容易书写,而且“可以方便地书写任何内容”的格式。
EugeneQiu
2016-02-05 10:22:20 +08:00
@Delbert 哈哈哈,蒙逼了,是 Shift 键, anyway ,反正每次按多一个键这种输入感觉还是有点不够友好。
zxgngl
2016-02-05 10:24:20 +08:00
@woai110120130 现在没有程序,只有设计。
zxgngl
2016-02-05 10:39:53 +08:00
@CJey

> 在这里,我看不到简洁,除了复杂和弱表现力,剩下的就是可能解决了让你不爽的 quota 方式, so ,没意义,因为 quota 无法避免,更不要试图更改大家的习惯,这会让人排斥

我假设你说的“ quota ”指的是“引用文字或代码”( quote ?)。我设计的语法一劳永逸地消灭了插入文字和代码时可能会需要对插入对象中的某些字符进行转义的问题。

是否简洁是主观的,就不说了。

你用了“弱表现力”这个词来形容我设计的格式。我想知道,有什么你觉得这个新语法表现不了么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/255287

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX