7

对于我的 Web 前端,我必须在我的系统中实现 wiki 语法的子集。我是否需要手动指定规则并重新发明轮子?是否有现有的 javascript 库或 jquery 插件可以提供帮助?

例如,用户输入== Header ==因为这需要转换为例如媒体标头(假设媒体在此上下文中定义为如下所示的跨度)

<span class="mediumHeader" id = "Header">Header</span>

现在,当用户编辑上面的文本时,我猜它会涉及替换

<span...> ... </span>==...==

现在,对于我设计的每个系统,这都将按照“我的规则”,并且几乎总是必须重新发明轮子。有什么东西可以让我使用 Jquery/Javascript 来简化这个 wiki 与 HTML 之间的转换吗?我确定这是已知解决方案的问题。

我更愿意自定义什么是可接受的,什么不是,即我不会将所有内容都翻译成 wiki 语法(或 HTML),只是它的子集。我应该为我的应用程序自己滚动吗?

4

2 回答 2

6

它已经足够长了,你可能不需要这个,但是当我开始研究它时,你的就是最热门的。

有几个 javascript 选项 - 您可能正在查看instaview(查看 test/test.js),或者可能正在查看Wiky.js(文档不太完整)。

如果您不限于 Javascript,请查看http://www.mediawiki.org/wiki/Alternative_parsers上的 MediaWiki 解析器的详尽列表- 大量用于 C++、Java、Perl、ruby 等的工具。这是关注新发展的链接。

于 2013-02-19T18:05:39.450 回答
4

在撰写本文时,Parsoid似乎是唯一一个双向翻译的。这也为 Wikipedia 上的可视化编辑器提供支持。但这不是包含在您的应用程序中的方便的客户端库,而是一个成熟的解析和转换服务器套件。可以在http://parsoid-lb.eqiad.wikimedia.org/访问 Wikimedia 集群上的 Parsoid 生产版本。

其他仅从 WikiText 翻译成 HTML(按受欢迎程度排序)的 JavaScript 库有:

  • Wiki.js - 不支持完整的 WikiText 语法。(由 tanin47 提供,不要与 Requarks 的 Wiki.js 混淆——完全不同的项目)
  • wtf_wikipedia - 不是直接转换为 HTML 而是 JSON,这会产生更强大的可能性(例如作为键值对的信息框)。这是最新的库,“它结合了 instaview、txtwiki,并使用来自 Parsoid javascript 解析器的跨语言数据。
  • instaview - 过去 2 年没有更新。

还可以查看替代 MediaWiki 解析器的当前和完整列表。

于 2015-05-20T15:40:41.413 回答