Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可靠地用Java解析MediaWiki文本(根据规定的标准)_Java_Mediawiki - Fatal编程技术网

可靠地用Java解析MediaWiki文本(根据规定的标准)

可靠地用Java解析MediaWiki文本(根据规定的标准),java,mediawiki,Java,Mediawiki,我正试图找到一个API,这样我就可以避免构建一些可以自己将MediaWiki语法转换为HTML的东西(Java)。这似乎是一个足够普遍的问题,其他人应该解决它,但到目前为止,我一直在互联网上挖掘没有运气 我的第一个选择是Mylyn Wikitext,这似乎有些效果,但我使用的是Maven,Maven存储库版本仍然是0.94,它似乎只支持完整Mediawiki语法的一个子集——特别是,它缺少用块引号替换{{quote | sample quote text}的功能 我还尝试了Bliki v3.0.

我正试图找到一个API,这样我就可以避免构建一些可以自己将MediaWiki语法转换为HTML的东西(Java)。这似乎是一个足够普遍的问题,其他人应该解决它,但到目前为止,我一直在互联网上挖掘没有运气

我的第一个选择是Mylyn Wikitext,这似乎有些效果,但我使用的是Maven,Maven存储库版本仍然是0.94,它似乎只支持完整Mediawiki语法的一个子集——特别是,它缺少用块引号替换{{quote | sample quote text}的功能

我还尝试了Bliki v3.0.19,它似乎也缺少blockquotes

根据快速调查,许多其他可用选项看起来要么不再维护,仍然是alpha(例如Sweble),要么是只有一个贡献者的项目,因此它们不太可能没有bug

那么,有没有人知道一个Java库可以解析MediaWiki并生成满足以下条件的HTML?(我的目的是具体说明我在寻找什么,因此这更像是一个二元选择,而不是一个意见问题。)

  • 仍然保持不变——更具体地说,它在过去两年内进行了更新
  • 实际上,除了更标准的标记(如粗体/斜体/列表/链接)之外,还支持Mediawiki{{quote}}语法
  • 不止一个源代码贡献者和至少数百名用户(作为大多数bug和性能问题可能已经解决的证据)
  • 最新版本可从中央Maven存储库获得
  • 额外的功劳将归于一个API,在这个API中,解析语言很容易扩展,并且语言的元素也可以删除

    谢谢

    列出了这些尝试,但没有一个能够满足您的要求,即能够像个人一样解析特定于站点的标记


    使用过的via可能是您的最佳机会。如果由于某种原因您不能依赖HTTP请求,请在问题中澄清您的用例。

    {code>{{quote}}不是MediaWiki语法的一部分,而是多个Wikipedia上的模板名称。进行转换是一项复杂的任务,因为根据调用模板的位置(例如,通过使用神奇的单词,如
    {{PAGENAME}}
    ),结果可能会有所不同。确保操作正确的最佳方法可能是使用MediaWiki API。考虑到上下文(当前页面),它内置了对将标记转换为html的支持。哦,我不知道{{quote}}不是MediaWiki语法的一部分——知道这一点非常有帮助。在这种情况下,可以轻松扩展的MediaWiki API实现(这样我就可以添加{quote | text}的简化版本)只需将文本放在标记中的功能就足够了。当您建议使用MediaWiki API时,我不选择在PHP中运行某些东西,因此仍然存在使用哪种Java实现的问题。您不需要使用PHP,MediaWiki有一个API,您可以直接使用,也可以封装在一些Java库中。A在这个答案中,没有一个解决方案符合我可能不现实的标准。我最终选择了MarkdownJ,因为在年,它使用Markdown语法而不是MediaWiki语法,并且一年多没有更新过,但它比其他一些选项更简单,到目前为止,它被证明是b他是可靠的。