问题标签 [wikitext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
940 浏览

python - How does one parse simple inline markup (i.e. *bold*), in Python?

How does one implement a parser (in Python) for a subset of wikitext that modifies text, namely:

I'm converting it to LaTeX, so the conversion is from:

to:

Though there's nothing specific about it being a conversion to LaTeX (notably except nested cases like "*bold /italics* whatami/" => "textbf{bold \textit{italics} whatami}").

I've looked at existing markup libraries, but they're (a) not quite the wiki language I'd like, and (b) seemingly overpowered for this problem.

I've considered reverse engineering Creoleparser, but I'd like to know what suggestions others have before I undertake that effort.

Thanks!

0 投票
4 回答
1372 浏览

java - 解析维基媒体标记 - 基于 EBNF 的解析器是否不适合?

我正在尝试解析(在 Java 中)在 Wikipedia 上找到的 Wikimedia 标记。有许多现有的包可以完成这项任务,但我还没有找到特别适合我需要的包。我用过的最好的包是Mathclipse Bliki 解析器,它在大多数页面上都做得不错。

但是,此解析器不完整,无法解析某些页面或在其他页面上解析不正确。遗憾的是,代码相当混乱,因此修复这个解析引擎中的问题非常耗时且容易出错。

在尝试找到更好的解析引擎时,我研究了使用基于 EBNF 的解析器来完成此任务(特别是 ANTLR)。然而,经过一些尝试,这种方法似乎并不特别适合这项任务,因为 Wikimedia 标记相对宽松,因此不容易适应结构化语法。

然而,我对 ANTLR 和类似解析器的经验非常有限,因此可能是我的经验不足导致了问题,而不是此类解析器天生就不适合这项任务。在这些主题上有更多经验的人可以在这里权衡吗?

@Stobor:我提到过我查看了各种解析引擎,包括谷歌查询返回的解析引擎。到目前为止,我发现最好的是 Bliki 引擎。问题是用这些解析器解决问题变得非常乏味,因为它们本质上都是长链的条件和正则表达式,导致意大利面条代码。我正在寻找更类似于 EBNF 解析方法的方法,因为该方法更清晰、更简洁,因此更易于理解和发展。我看过你发布的 mediawiki 链接,这似乎证实了我的怀疑,即开箱即用的 EBNF 不适合这项任务。因此,我正在寻找一个像 EBNF 一样清晰易懂的解析引擎,但也能够处理 wiki 标记的混乱语法。

0 投票
2 回答
3300 浏览

.net - .Net WikiText 到 HTML 解析器

我知道,我知道,这听起来很傻,但似乎没有用于将 Wikitext 解析为 HTML 的开源强大的 .NET 库。

任何人都知道 stable.robust .net Wikitext 到 HTML 解析器(即仍处于 beta 模式的 codeplex 项目不算在内)

0 投票
3 回答
1898 浏览

objective-c - 如何解析一些 Wiki 标记

大家好,给定一个纯文本数据集,如下所示:

我想以一个NSDictionary或其他形式的集合结束,以便我可以将年份(左侧的数字)映射到摘录(右侧的文本)。所以这就是“模板”的样子:

虽然我希望摘录是纯文本,也就是说,没有 wiki 标记所以没有[[集合。实际上,使用别名链接(例如[[Edmund I of England|Edmund I]].

我对正则表达式的经验并不多,所以我有几个问题。我应该先尝试“美化”数据吗?例如,删除将始终为 的第一行==Events==,并删除[[and]]出现?

或者也许是一个更好的解决方案:我应该在通行证中这样做吗?因此,例如,第一遍我可以将每一行分成* [[710]][[Saracen]] invasion of [[Sardinia]]。并将它们存储到不同的NSArrays.

然后经历第一NSArray年,只得到文本[[]]我说文本而不是数字,因为它可能是公元前 530 年),所以* [[710]]变成710.

然后对于 excerpt NSArray,通过,如果[[some_article|alias]]找到 an ,使其仅以[[alias]]某种方式存在,然后删除所有[[and]]集?

这可能吗?我应该使用正则表达式吗?对于正则表达式,您有什么想法可能会有所帮助吗?

谢谢!对此,我真的非常感激。

编辑:很抱歉造成混淆,但我只想解析上述数据。假设这是我会遇到的唯一类型的标记。我不一定期待解析 wiki 标记,除非已经有一个预先存在的库可以做到这一点。再次感谢!

0 投票
3 回答
2183 浏览

python - 使用 Python 渲染维基文本

我需要渲染 wikitext(从相关的 mediawiki 的数据库中提取)并以其他格式显示(最终渲染为 PDF,但基本上任何其他格式都可以)。

我肯定可以拼凑出一些可以完成这项工作的东西,但最终我会边写边写,而且我可以看到,当我的团队中的人使用新标签时,实现新标签的开销会占用我很多时间。

有没有项目可以做到这一点?

我看到了用 python 编写的 TiddlyWiki,我会考虑借用他们的库,但同时我想可能有一个项目更小众,有人知道?

干杯

0 投票
3 回答
3183 浏览

php - 帮助 PHP 中的正则表达式(解析维基百科标记)

我有这段文字,我想从我从维基百科获取的页面中删除。

以下部分我也希望保留为纯文本(但不包括用“{{”和“}}”包裹的部分

谢谢。

0 投票
2 回答
1027 浏览

html - 有没有任何 HTML 到 WikiText 的翻译器?

有没有任何 HTML 到 WikiText 的翻译器?我需要翻译带有超链接和图像的表格。

0 投票
7 回答
3766 浏览

xml - 如何使用 xslt 样式表将 XML 转换为其他内容?

如何使用 xslt 样式表将 XML 转换为其他内容?

在 C++ C# PHP 或 ActionScript 中?

例如,我有这个 html2wiki xslt 样式表,我想将我的 XML(在本例中为 HTML 文件)发送到我的程序并取回一个文件(在本例中为 Wiki 标记文本)

那么如何使用任何语言的 XSLT 样式表将一个文本文件翻译成另一个文本文件呢?

0 投票
1 回答
2121 浏览

antlr - ANTLR 3 中 wikitext-to-HTML 的工作示例

我试图在 ANTLR 3 中充实一个 wikitext-to-HTML 翻译器,但我一直卡住。

您知道我可以检查的工作示例吗?我尝试了 MediaWiki ANTLR 语法和 Wiki Creole 语法,但我无法让它们在 ANTLR 3 中生成词法分析器和解析器。

以下是我尝试使用的两种语法的链接:

我无法让这两者中的任何一个生成我的 Java Lexer 和 Parser。(我使用 ANTLR3 作为 Eclipse 插件)。MediaWiki 需要很长时间才能构建,然后在某些时候抛出 OutOfMemory 异常。另一个有错误,我不知道如何调试。

编辑:好的,我有一个非常基本的语法:

我不清楚如何输出 HTML。我一直在研究 StringTemplate,但我不明白如何构建我的模板。具体来说,哪个模板在语法中的位置。你能帮我举一个简短的例子吗?

0 投票
2 回答
845 浏览

java - 在 Java 中使用正则表达式解析 wikiText

给定一个 wikiText 字符串,例如:

我想在 Java/GroovyValueDescription中解析模板。Tag我尝试使用正则表达式/\{\{\s*Tag(.+)\}\}/,它很好(它返回|name |refand |motorcar||yes),但 /\{\{\s*ValueDescription(.+)\}\}/不起作用(它应该返回上面的所有文本)。

预期输出

有没有办法跳过正则表达式中的嵌套模板?

理想情况下,我宁愿使用简单的wikiText 2 xml工具,但我找不到类似的东西。

谢谢!穆龙