3

parsoid和parsoid-jsapi 都为您提供了将 wikitext 解析为 html 的功能,但我无法获得干净的 html 字符串。.parse(...

说我想解析This is [[it]]我这样做:

var parsoid = require('parsoid-jsapi') || require('parsoid');
parsoid.parse('This is [[it]]', {}).then(function(data) {
    console.log(data.out)
})

但我得到的data.out是:

<!DOCTYPE html>
<html prefix="dc: http://purl.org/dc/terms/ mw: http://mediawiki.org/rdf/"><head prefix="mwr: http://en.wikipedia.org/wiki/Special:Redirect/"><meta charset="utf-8"/><meta property="mw:pageNamespace" content="0"/><meta property="isMainPage" content="true"/><meta property="mw:html:version" content="1.3.0"/><link rel="dc:isVersionOf" href="//en.wikipedia.org/wiki/Main%20Page"/><title></title><base href="//en.wikipedia.org/wiki/"/><link rel="stylesheet" href="//en.wikipedia.org/w/load.php?modules=mediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.skinning.interface%7Cskins.vector.styles%7Csite.styles%7Cext.cite.style%7Cmediawiki.page.gallery.styles&amp;only=styles&amp;skin=vector"/></head><body data-parsoid='{"dsr":[0,14,0,0]}' lang="en" class="mw-content-ltr sitedir-ltr ltr mw-body mw-body-content mediawiki" dir="ltr"><p data-parsoid='{"dsr":[0,14,0,0]}'>This is <a rel="mw:WikiLink" href="./It" title="It" data-parsoid='{"stx":"simple","a":{"href":"./It"},"sa":{"href":"it"},"dsr":[8,14,2,2]}'>it</a></p></body></html>

与我唯一相关的部分是:

<p data-parsoid='{"dsr":[0,14,0,0]}'>This is <a rel="mw:WikiLink" href="./It" title="It" data-parsoid='{"stx":"simple","a":{"href":"./It"},"sa":{"href":"it"},"dsr":[8,14,2,2]}'>it</a></p>

或者将 wikitext 转换为 html,而不是添加头部、正文等。即使这样,它也有很多我不需要的额外数据,我真正应该得到的是:

<p>This is <a href="./It" title="It" >it</a></p>

例如,如果我使用 markdown 和markdown-it 之类的东西,就会出现这种情况。

parsoid 可以生成一个纯 html 字符串吗?如果是这样怎么办?

4

0 回答 0