2012-03-09 2 views
8

私はPython/DjangoでWikiを開発しています。今まで私はまだ正しいマークアップ言語が不足しています。テーブルのサポートを除いてはうまくいきました。一般的なwikiマークアップ言語は、基本的なテーブル、すなわちセルごとに1行だけをサポートするか、またはセル内に複雑なマークアップをサポートしないように見える。しかし、私のWikiのユーザは、より大きなフォーマットセットのテキストとセル内のリストを持つテーブルを作成できるようにしたいと考えています。私は実際にこれを行うことができるマークアップ言語を見つけることに私の問題があります。優れたテーブルサポートを持つWikiマークアップ言語

私はすべてをサポートしていると思われるMediaWikiマークアップ言語を見てきましたが、これを使用することは過剰なものになると思います。マークアップの残りの部分は、マークアップの容易な書き込み可能性に焦点を当てて非常にシンプルにすることができます(私はMediaWikiのマークアップが時には醜いことがあります)。さらに、webappで使用できるHTMLにマークアップを変換するためのPythonモジュールが必要です。私はまだMediaWikiマークアップ用のものを探しています。

もう1つの方法として、wikiマークアップ言語をすべてダンプし、代わりにマークアップ用に定義されたHTMLタグを許可する方法があります。しかし、これは、HTMLがそのような使用のために発明されていないので、wiki記事を書くことをより困難にする。禁止されたHTMLを見つけたりエスケープしたりするのは非常に手間がかかります。私はむしろ軽量のPython実装で素晴らしいマークアップ言語を持っています。

拡張テーブルのサポートとPythonで実装できるマークアップ言語について知っている人はいますか?

ありがとうございます!

答えて

1

私は技術的に経験の浅いユーザーのために複雑なreSTを見つけたので、自分自身で解決策を見つけました。私は少し精巧かもしれないが、それは私のために働く。

このキーは、既存のマークアップ言語の拡張です。私はテーブルサポートの欠如にもかかわらず、かなり楽しいMarkdownを見つけました。 Python-Markdownを使用すると、hereはあなた自身の拡張機能を書くために知る必要があるすべてです。それほど複雑ではありません。私は半時間で一緒に何かをハッキングし、実際にこれまでのところ動作します。私はここにコードを示しますが、私はそれほど誇りに思っていません;)基本的には、マークアップブロックを解析し、好きなようにDOMにテーブル要素を挿入します。

マークアップ言語の使用可能な実装には何らかの拡張メカニズムが必要であると思いますので、他の言語や実装の拡張も記述できるはずです。これはもっとも便利な解決策ではありませんが、機能のためだけに醜い言葉を使用するよりも優れています。

4

あなたのニーズに応えているかどうかわかりませんが、reStructuredTextを使用できます。 Sphinxは、pythonのドキュメントとそのpythonで書かれたhtmlを生成するので、この目的のために使いやすいはずです。私は非常にきちんとした、読みやすいように設計されているように、それは非常に複雑なテーブルを行うことができます。

+0

+1「残り」がマークアップ言語であるかどうかわかりませんが。 – Simon

+0

マークアップ言語の正確な定義は多種多様なので、 'rest'が技術的にこのカテゴリに入るのかどうかはわかりませんが、書くのは簡単で、見やすいhtmlにコンパイルするのは簡単ですこの種の用途のためのおそらくかなり良い候補です。 – aquavitae

+0

提案していただきありがとうございます。 reSTは本当に必要なものをすべてサポートしており、Djangoにも統合されています。しかし、複雑なテーブルの実際のマークアップを見ると、非技術者のために読みやすいとは言えません。少なくとも、1つの細胞が少し成長したならば、全列を適応させることを余儀なくされるのは嫌です。とにかく、ありがとうございました! – j0ker

関連する問題