再次介绍 InkMark

2021-08-26 09:12:40 +08:00
 chingli

昨天在这里首次发布了我自己设计的 InkMark 轻量级标记语言,但反响并不好。首要原因是我把文档写得太复杂了。的确,我写这个文档主要是为了记录该语言的设计和论证说明,不是给初学者看的,因此别人很难通读,我能理解。

我昨晚加紧弄了个关于该语言的简要介绍,一并发到这里,再次期待各位的批评。

请务必从非程序开发人员编写复杂的学术文档的视角,或者以维基百科编辑者的视角,来看待这个语言,而不要只以程序员编写程序说明文档或写简单内容博客的视角来看待。不然的话,这个语言真的会被 Markdown 虐得体无完肤。

谢谢!

同时附上两个链接,请先看第一个:

3266 次点击
所在节点    分享创造
29 条回复
ebingtel
2021-08-26 09:27:23 +08:00
我觉得最大的问题:需要特定的解释器……但是大家又都没有解释器,lz 也没提供……有点“屠龙之术”的感觉
qq73666
2021-08-26 09:31:14 +08:00
挺不错,敢想敢干
snailya
2021-08-26 09:36:51 +08:00
编写学术文档最大的问题是要能转换成学校、期刊要求的格式。编写程序说明文档,又使用不到这么高级的功能。
Veneris
2021-08-26 09:41:23 +08:00
看完了,还没有具体思考从语法解析方面会不会有冲突之类的。
但从自动编号章节开始往后,语法就趋于复杂了,至少源代码人类可读性差。
感觉设计思路大而全,学习成本负担有点大。
如果只用基本功能的话,感觉还是挺不错的,不知道会不会有人做个解释器试试。
chingli
2021-08-26 09:58:34 +08:00
@ebingtel 事情总是一步步来,我不能闷着头干,如果大家根本不喜欢这个语法,我写解析器就没有意义了。

@snailya 是的。InkMark 要通过自身的标记功能,配合外部 CSS 和 JavaScript,实现这些特殊的需求。

@Veneris 大的方面不会有冲突的。至于比较复杂,我也是没办法,因为复杂问题的解决方案往往比较复杂。我这个自动编号功能是针对 Word 中的题注、交叉引用和索引功能设计的。
queuey
2021-08-26 10:06:22 +08:00
就说一个点,
Markdown 我可以在纯文本里面去编辑,但是这个估计只能通过解释器了
另外提供的大多数功能普通人用不上,真用得上的期刊等格式你这个限制又太大了。
或者可以考虑搞出来卖给金山文档这种文本编辑公司~
chingli
2021-08-26 10:30:28 +08:00
@queuey 这个……其基础功能……没有那么难吧?我觉得比 Markdown 还简单,就是高级功能有点复杂。
quanjw
2021-08-26 10:36:52 +08:00
支持,但我还是选择 markdown 。
learningman
2021-08-26 11:01:34 +08:00
markdown 最大的优点就是足够简单,生成的东西能看。大家就不用操心排版,安心写内容。
实在需要复杂了,md 是可以内联 html 的
easychen
2021-08-26 11:19:10 +08:00
感觉楼主的需求其实是在学术领域 Markdown 不够用的问题。看了下简版的列表,除了图片自动编号,其他都已经都是常规扩展了。这完全可以扩展 Markdown 语法来完成,没有必要另起炉灶吧

另外元素的属性和样式其实直接通过 Markdow extra 规范( https://michelf.ca/projects/php-markdown/extra/ )搞定,有现成的 PHP/JS 库可以支持。

前段时间我正好做了一个视频方向的 Markdown 扩展语法,或许楼主可以参考下 http://doc.windmark.top/cn/06-styles.html#windmark%E6%89%A9%E5%B1%95%E6%A0%87%E8%AE%B0
chingli
2021-08-26 11:22:24 +08:00
@learningman 嗯嗯,程序员用 Markdown 肯定是很不错了。但在学术文档中,即便内联 HTML,也是不够用的。主要是自动编号、交叉引用、索引那一套不够用;另外内联 HTML,毕竟还是有点不好看,对普通人学习成本有点高了。
bailitusu
2021-08-26 11:33:22 +08:00
工作中继续要写文档( markdown )又需要写论文( latex ),从我的角度来说,InkMark 像是结合了 markdown 和 latex 二者的一些 feature 进行的再创作。在易用性上不如 markdown,功能上又不如 latex,于我而言没有太大的吸引力。但还是很佩服作者能够一个人把这件事情做完和做好的勇气和毅力。
cmdOptionKana
2021-08-26 11:35:50 +08:00
@chingli 建议在宣传上完全撇清与 markdown 的竞争,甚至可以考虑在设计上放弃区分基础功能和高级功能,因为基础功能拿出来说必然会输给已经普及的 markdown 。

目标用户(至少是初期)是嫌 markdown 太简单,又嫌 LaTex 太复杂的人,这些人在哪里,恐怕不容易找出来。

markdown 的初期用户是程序员,LaTex 的初期用户是需要写学术论文或书籍排版的人。那么,InkMark 的初期用户是什么人?
chingli
2021-08-26 11:54:15 +08:00
@easychen 看了这个 PHP Markdown Extra,它定义属性的方法跟 InkMark 差不多。我觉得它还是存在如下问题:

* 为了扩展功能,它还是使用 Markdown 和 HTML 混排,这时 InkMark 设计时力求避免的。
* 在 Markdown 中嵌套 HTML 块级元素时,其用空格缩进的规则还是挺增加心智负担的。
* 为了在 HTML 块级元素内包含其他 Markdown 元素,用 `<div markdown="1"> </div>` 的形式的 HTML 块级元素一点也不优雅;同样,为了在 HTML 表格单元格内包含 Markdown 块级元素,用 `<td markdown="block"> </td>` 形式定义单元格也不优雅。
* 它无法为所有 Markdown 元素指定属性。

我觉得把 Markdown 搞复杂了,就会变成一个大杂烩。
chingli
2021-08-26 11:59:37 +08:00
@bailitusu @cmdOptionKana 至于会不会有人用,我也不知道。可是,如果解决 LaTeX 过难的问题,且做到内容和样式分离,功能上配合 CSS 、JavaScript 也不输太多,还方便在网页中呈现,为什么就没有前途呢?

——当然,我自己不一定能把这个事情做好。我发在这里是为了争取支持的。
icyalala
2021-08-26 12:20:28 +08:00
Markdown 的设计目的是 "易读写的纯文本,需要时可以转为 HTML"。它的目的不是为了"精确排版"。
LaTeX 目的是 "精确排版",它的目的不是为了"可读性"。

楼主的 InkMark 设计目的是什么,有没有这种一句话的描述呢?
chingli
2021-08-26 12:27:06 +08:00
@icyalala 哎呀,我在第二个文档中用了长长的一段话描述,写得有点啰嗦了,看了应该将它缩减矿一句话更好。先把这段话放上来吧:

“为了能在浏览器中轻松编写并正确地展示格式复杂的学术内容,我们需要做一些折中。即不完全依赖所见即所得的 HTML 编辑器,而是让用户以纯文本的形式输入内容,纯文本中包含一些简单的标记,用于标示文档的各种元素及其属性,之后通过编译过程将这些被标记的文本转化为网页内容( HTML 格式的文本)。当然,这些标记规则要容易记忆、便于输入、可读性好。基于最新的 Web 技术,这些标记文本被编译后生成的网页看起来完全可以像正规的出版物一样,甚至在交互性操作、多种尺寸屏幕上的自动调整版式显示还优于以往常用的便携式文档格式( PDF 格式)或 MicroSoft Office Word 文档。”
nowgoo
2021-08-26 12:43:51 +08:00
建议改个名字: https://www.w3.org/TR/InkML/
bailitusu
2021-08-26 13:07:13 +08:00
@chingli 如果目的是“能在浏览器中轻松编写并正确地展示格式复杂的学术内容”,我有些疑问。

1. InkMark 好像没有考虑排版风格。学术内容必然有发表和出版的需求,各大期刊 /会议都有各自的排版风格需求,因此会提供各自的 latex 的模板。对于 latex 来说,在不同的模板之前进行风格转换十分方便,这也是 latex 的重要特性之一。所以 InkMark 很难满足投稿的需求。

2. 如果只是简单地希望展示学术内容,直接在网页中嵌入 latex 编译后的 pdf 文件是不是更为方便。

3. 目前已经有将 latex 文档转换为网页展示的[实例]( https://ieeexplore.ieee.org/document/9089867),鉴于 latex 在学术写作中的必要性,我认为这是一个更好的“展示格式复杂的学术内容”解决方案。
easychen
2021-08-26 13:42:14 +08:00
@chingli 我也不喜欢 HTML 混入,所以直接把 HTML 相关全部禁用了,只保留了属性定义。所以除了「无法为所有 Markdown 元素指定属性」其他的都不是问题。另外这个规范也有 JS 实现。

@bailitusu 直接在网页中嵌入 latex 其实并不需要那么复杂,直接用 JS 库就可以的。https://latex.js.org/

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

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

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

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

© 2021 V2EX