2

Ubuntuプラットフォームに、素敵な小さなperlスクリプトをインストールしました

libtext-mediawikiformat-perl - Convert Mediawiki markup into other text formats

これはcpanで利用できます。私はperlに精通しておらず、このライブラリを使用して、mediawikiファイルをhtmlファイルに変換するperlスクリプトを作成する方法がわかりません。たとえば、次のような実行可能なスクリプトが欲しいだけです。

./my_convert_script input.wiki > output.html

(おそらくベースURLなども指定します)が、どこから始めればよいかわかりません。助言がありますか?

4

2 に答える 2

2

@amonは正しいと思います。質問で参照しているperlライブラリは、私が提案したタスクに適したツールではありません。

私は最終的にaction="parse"でmediawikiAPIを使用し、mediawikiエンジンを使用してHTMLに変換しました。これは、リストで提案した代替パーサーのどれよりもはるかに信頼性が高いことがわかりました。(次に、pandocを使用してhtmlをマークダウンに変換しました。)mediawiki APIは、カテゴリやその他のメタデータの抽出も処理し、内部の画像とページのリンクにベースURLを追加するだけで済みました。

ページタイトルとベースURLを考えると、私はこれをR関数として書くことになりました。

wiki_parse <- function(page, baseurl, format="json", ...){
  require(httr)
  action = "parse"
  addr <- paste(baseurl, "/api.php?format=", format, "&action=", action, "&page=", page, sep="")
  config <- c(add_headers("User-Agent" = "rwiki"), ...)
  out <- GET(addr, config=config)
  parsed_content(out)
}
于 2012-09-28T00:57:39.863 に答える
1

PerlライブラリText::MediawikiFormatは、実際にはスタンドアロンでの使用を目的としたものではなく、より大きなアプリケーション内のフォーマットエンジンとして使用することを目的としています。

CPANのドキュメントは、実際にこのライブラリの使用方法を示しており、他のモジュールが1回限りの変換をより適切にサポートする可能性があることに注意しています。

この(テストされていない)ワンライナーを試すことができます

perl -MText::MediawikiFormat -e'$/=undef; print Text::MediawikiFormat::format(<>)' input.wiki >output.html

ただし、それはこのモジュールの全体的なポイント(およびカスタマイズ機能)に反します。

誰かがすでに単一のMediaWikiファイルを変換するためのより良い方法を考え出していると確信しているので、ここにmediawikiサイトの代替MediaWikiプロセッサのリストがあります。このSOの質問も役に立ちます。

Markdownなどの他のマークアップ言語は、単一ファイル変換のサポートを強化します。Markdownは、技術文書や電子メールの慣習を反映するのに特に適しています。(また、このサイトで使用されています。)


Ubuntuリポジトリのlibfoo-bar-perlパッケージは、プリコンパイルされたPerlモジュールです。通常、これらはcpanまたはを介してインストールされcpanmます。これらのライブラリの一部にはスクリプトが含まれていますが、ほとんどのライブラリには含まれておらず、スタンドアロンアプリケーションとして意図されていません。

于 2012-09-27T22:05:40.117 に答える