問題タブ [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.
python - Python では、単純なインライン マークアップ (つまり *bold*) をどのように解析しますか?
テキストを変更するウィキテキストのサブセットに対して (Python で) パーサーをどのように実装しますか?
私はそれをLaTeXに変換しているので、変換は次のとおりです。
に:
LaTeX への変換であることについて具体的なことは何もありませんが (特に、"*bold /italics* whatami/" => "textbf{bold \textit{italics} whatami}" のようなネストされたケースを除く)。
私は既存のマークアップ ライブラリを見てきましたが、(a) 私が望む wiki 言語ではなく、(b) この問題に対して圧倒されているようです。
私はCreoleparserのリバース エンジニアリングを検討しましたが、その取り組みを行う前に、他の人がどんな提案をしているか知りたいです。
ありがとう!
java - wikimedia マークアップの解析 - EBNF ベースのパーサーはあまり適していませんか?
ウィキペディアで見つかったウィキメディア マークアップを (Java で) 解析しようとしています。このタスク用の既存のパッケージが多数ありますが、私のニーズに特に適したものは見つかりませんでした。私が使った中で最高のパッケージはMathclipse Bliki パーサーで、ほとんどのページでまともな仕事をします。
ただし、このパーサーは不完全で、特定のページの解析に失敗したり、他のページを正しく解析しません。悲しいことに、コードはややこしいので、この解析エンジンの問題を修正するには非常に時間がかかり、エラーが発生しやすくなります。
より優れた解析エンジンを見つけようとして、このタスクに EBNF ベースのパーサー (特に ANTLR) を使用して調査しました。しかし、いくつかの試行の後、ウィキメディアのマークアップは比較的緩和されており、構造化された文法に簡単に適合できないため、このアプローチはこのタスクにはあまり適していないようです。
ただし、ANTLR および同様のパーサーに関する私の経験は非常に限られているため、そのようなパーサーが本質的にこのタスクにあまり適していないというよりも、問題を引き起こしているのは私の経験不足である可能性があります。これらのトピックについてより多くの経験をお持ちの方は、ここで検討していただけますか?
@Stobor: Google クエリによって返されるものを含め、さまざまな解析エンジンを見てきました。私がこれまでに見つけた最高のものは、Bliki エンジンです。問題は、そのようなパーサーの問題を修正するのが信じられないほど面倒になることです。これらのパーサーはすべて、本質的に条件文と正規表現の長いチェーンであり、結果としてスパゲッティ コードになるからです。EBNF 解析法に似たものを探しています。その方法はより明確で簡潔であり、理解しやすく進化しやすいからです。あなたが投稿した mediawiki のリンクを見てきましたが、箱から出してすぐに使える EBNF はこのタスクにはあまり適していないという私の疑いを裏付けているようです。したがって、私は、EBNF のように明確で理解しやすいだけでなく、wiki マークアップの乱雑な構文を処理できる構文解析エンジンを探しています。
.net - .NetWikiTextからHTMLパーサー
ばかげているように聞こえますが、WikitextをHTMLに解析するためのオープンソースの堅牢な.NETライブラリは存在しないようです。
誰もがstable.robust.netWikitext to HTMLパーサーを知っています(つまり、まだベータモードにあるcodeplexプロジェクトはカウントされません)
objective-c - 一部の Wiki マークアップを解析する方法
皆さん、次のようなプレーン テキストのデータ セットがあるとします。
NSDictionary
年 (左側の数字) を抜粋 (右側のテキスト) にマッピングできるように、何らかの形のコレクションを作成したいと考えています。これが「テンプレート」のようなものです:
[[
ただし、抜粋はプレーン テキスト、つまり wiki マークアップがないため、セットもありません。実際、これは などのエイリアス リンクでは難しいことがわかります[[Edmund I of England|Edmund I]]
。
私は正規表現の経験があまりないので、いくつか質問があります。最初にデータの「美化」を試みる必要がありますか? たとえば、常に となる最初の行を==Events==
削除し、[[
との]]
出現を削除しますか?
または、おそらくより良い解決策:これをパスで行う必要がありますか? たとえば、最初のパスでは、各行を* [[710]]
とに分けることができ[[Saracen]] invasion of [[Sardinia]]
ます。それらを別の に保存しますNSArrays
。
次に、最初の年を経てNSArray
、テキストのみを取得します[[]]
(紀元前530年になる可能性があるため、数値ではなくテキストと言います)。* [[710]]
710
そして、抜粋については、NSArray
を調べて、[[some_article|alias]]
が見つかった場合は[[alias]]
、それをなんとかしてだけにしてから、[[
と]]
セットをすべて削除しますか?
これは可能ですか?正規表現を使用する必要がありますか? 役立つ正規表現のアイデアはありますか?
ありがとう!ほんとうにありがとう。
編集:混乱して申し訳ありませんが、上記のデータのみを解析したいです。これが、私が遭遇する唯一のタイプのマークアップであると想定してください。これを行う既存のライブラリがすでに存在しない限り、私は一般的に wiki マークアップを解析することを必ずしも楽しみにしているとは限りません。再度、感謝します!
python - Pythonでウィキテキストをレンダリングする
ウィキテキスト(関連するmediawikiのデータベースから取得)をレンダリングし、他の形式で表示する必要があります(最終的にはPDFとしてレンダリングされますが、基本的には他の形式でもかまいません)。
私は間違いなくその仕事をする何かを一緒にハックすることができますが、最終的には私が進むにつれてそれを書きます、そして私のチームの人々がそれらを使用するときに新しいタグを実装するオーバーヘッドは私の時間を多く消費することがわかります。
これを行うプロジェクトはありますか?
Pythonで書かれたTiddlyWikiを見たので、彼らのライブラリを借りることを検討しますが、その間に、誰かが知っているもう少しニッチなプロジェクトがあるのではないかと思いました。
乾杯
php - PHP での正規表現 (Wikipedia マークアップの解析) のヘルプ
ウィキペディアから取得しているページから削除したいテキストがあります。
次の部分もプレーンテキストとして保持したい(ただし、「{{」と「}}」で囲まれた部分は含まない)
ありがとう。
html - HTMLからウィキテキストへの翻訳者はいますか?
HTMLからウィキテキストへの翻訳者はいますか?ハイパーリンクと画像を含むテーブルを翻訳する必要があります。
xml - xslt スタイルシートを使用して XML を別のものに変換する方法は?
xslt スタイルシートを使用して XML を別のものに変換する方法は?
C++ C# PHP または ActionScript では?
たとえば、この html2wiki xslt スタイルシートをプログラムに送信して XML (この場合は HTML ファイル) を取得し、ファイル (この場合は Wiki マークアップ テキスト) を取得します。
では、任意の言語で XSLT スタイルシートを使用して、あるテキスト ファイルを別のテキスト ファイルに変換する方法を教えてください。
antlr - ANTLR3でのwikitext-to-HTMLの実例
ANTLR 3でウィキテキストからHTMLへの翻訳を具体化しようとしていますが、行き詰まり続けています。
私が調べることができる実用的な例を知っていますか?MediaWikiANTLR文法とWikiCreole文法を試しましたが、ANTLR3でレクサーとパーサーを生成することができません。
これが私が使ってみた2つの文法へのリンクです:
- http://www.mediawiki.org/wiki/Markup_spec/ANTLR
- http://www.wikicreole.org/wiki/EBNFGrammarForCreole1.0
Javaレクサーとパーサーを生成するためにこれら2つを取得できません。(私はEclipseプラグインとしてANTLR3を使用しています)。MediaWikiのビルドにはかなりの時間がかかり、ある時点でOutOfMemory例外がスローされます。もう1つには、デバッグ方法がわからないエラーがあります。
編集:さて、私は非常に基本的な文法を持っています:
HTMLを出力する方法はわかりませんが、私にはわかりません。StringTemplateを調べていますが、テンプレートの構造がわかりません。具体的には、どのテンプレートが文法のどこに行くかです。簡単な例を教えていただけますか?
java - Javaで正規表現を使用してwikiTextを解析する
次のような wikiText 文字列が与えられた場合:
ValueDescription
テンプレートをTag
Java/Groovy で解析したいと思います。私は正規表現で試してみましたが、/\{\{\s*Tag(.+)\}\}/
うまくいきます(|name
|ref
and を返します|motorcar||yes
)が、
/\{\{\s*ValueDescription(.+)\}\}/
機能しません(上記のすべてのテキストを返す必要があります)。
期待される出力
正規表現でネストされたテンプレートをスキップする方法はありますか?
理想的には単純なwikiText 2 xmlツールを使用したいのですが、そのようなツールは見つかりませんでした。
ありがとう!ムロン