Orga, 终极org-mode解析器 in JavaScript

org

#1

最近搞了一个JavaScript 版 org-mode parser。原因很简单,org-mode parser 很少。这个 还不错,但是基本已经荒废了,好多功能都没有。其他的不管是质量还是功能都比较堪忧。于是我自己搞了一个。

特色:

我的parser会把org-mode string 转换为 AST (Abstract Syntax Tree)。这样就不仅仅是org-mode -> html这种简单的应用。能够限制你的只有你的想象力。而且这个AST是完全跟unified.js 兼容。这样 unified.js 生态圈里的工具基本都可以很轻松的拿来就用。举几个例子:

  • retext生态系统做自然语言 lint. 检查拼写,语法,统计等等。
  • rehype生态系统做html之类的转换(已实现)。
  • command line interface (正在做)。不需要依赖 emacs 的 org-mode 工具。
  • 生成静态网站(已实现)。Gatsbyjs 版本的插件已经全面上线。starter project and demo.

感兴趣的大侠们可以看下官方文档,目前上面有一些基本应用教程和完整AST说明。后续会有更多文档跟进。当然,欢迎各种PR。测试,文档,bug fix都可以。新feature请在issue里讨论。Repo这在


#2

哇哇哇居然支持Gatsby了!给大佬打call!!!从swift-org起就一直关注你啦! 看了下语法支持 很全面啊!


#3

:pray:感谢支持。swift-org的强化版很快就要公开了。iOS app 也在 roadmap 中。


#4

AST会考虑加入inline math支持吗? (以及其他种类的latex environment)


#5

会的,这个 parser 会尽量跟org-mode syntax保持一致。对于parser本身,我觉得最make sense 的实现是直接返回node:

{
  type: “latex”,
  name: “equation”,
  value: “x=\sqrt{b}”
}

具体的render可以在org-mode to HTML 层用其他包来实现。这样其实就没有多少工作在parser这边。


#6

cool 给大佬膜拜~


#7

嗯嗯 我是这个意思,有这个type的话就可以直接把remark markdown的KaTeX插件拿来改两行就能用了~


#8

和 org-mode 社区多交流, 甚至可以入住 code.orgmode.org, 单打独斗太吃力,发展成team才是王道。


#9

是的,等api稳定稳定,会尽量进军org-mode community.


#10

我只想说,你牛,加油。。。。


#11

你这个好赞,我去好好研究一下


#12

给大佬疯狂打call,很早前就痛苦与没有org的解析器,导致博客都很久没有更新了


#13

纠正一个小错误:https://xiaoxinghu.github.io/orgajs/ 首页上的这一行字:“Orga is the ultimate org-mode parser, writen in JavaScript.” 这里应该是written而非writen吧(双写t)


#14

@Roife Fixed. Thanks!


#15

静态网站的话 hexo 不了解一下吗