ReStructuredTextで書かれたブログがありますが、現在、新しい投稿を作成するときに手動でHTMLに変換する必要があります。
Google App Engineを使用して新しいブログシステムを作成していますが、rstをHTMLに変換する簡単な方法が必要です。
docutils
は大きすぎて複雑なので、使いたくありません。これを行うためのより簡単な(理想的には単一のpythonファイル)方法はありますか?
docutilsのハッキング の手順をご覧ください。最初からhtmlを生成するためにdocutils全体が必要なわけではありませんが、リーダー、パーサー、トランスフォーマー、ライターは必要です。少しの努力で、これらすべてを既存のdocutilsファイルから1つのファイルに組み合わせることができます。
docutilsは、インストールできるライブラリです。また、静止状態からhtmlを含むさまざまな形式に変換するためのフロントエンドツールもインストールします。
これは、使用できるスタンドアロンツールです。
ほとんどのコンバーターは、このためにdocutilsライブラリを利用します。
SphinxドキュメントジェネレータPythonライブラリには、多くの再構築されたテキスト(RST)コマンドラインコンバータが含まれています。
Sphinxをインストールします。
$ pip install sphinx
次に、多くのrst2 * .pyヘルパーの1つを使用します。
$ rst2html.py in_file.rst out_file.html
次のコードで試してみることができます。使用法は次のようになります。
compile_rst.py yourtext.rst
または
compile_rst.py yourtext.rstdesiredname.html
# compile_rst.py
from __future__ import print_function
from docutils import core
from docutils.writers.html4css1 import Writer,HTMLTranslator
import sys, os
class HTMLFragmentTranslator( HTMLTranslator ):
def __init__( self, document ):
HTMLTranslator.__init__( self, document )
self.head_prefix = ['','','','','']
self.body_prefix = []
self.body_suffix = []
self.stylesheet = []
def astext(self):
return ''.join(self.body)
html_fragment_writer = Writer()
html_fragment_writer.translator_class = HTMLFragmentTranslator
def reST_to_html( s ):
return core.publish_string( s, writer = html_fragment_writer )
if __name__ == '__main__':
if len(sys.argv)>1:
if sys.argv[1] != "":
rstfile = open(sys.argv[1])
text = rstfile.read()
rstfile.close()
if len(sys.argv)>2:
if sys.argv[2] != "":
htmlfile = sys.argv[2]
else:
htmlfile = os.path.splitext(os.path.basename(sys.argv[1]))[0]+".html"
result = reST_to_html(text)
print(result)
output = open(htmlfile, "wb")
output.write(result)
output.close()
else:
print("Usage:\ncompile_rst.py docname.rst\nwhich results in => docname.html\ncompile_rst.py docname.rst desiredname.html\nwhich results in => desiredname.html")
ローカルでドキュメントを作成する
Install Python.
Clone the forked repository to your computer.
Open the folder that contains the repository.
Execute: pip install -r requirements.txt --ignore-installed
Execute: sphinx-build -b html docs build
The rendered documentation is now in the build directory as HTML.
Pyfuncの答えがニーズに合わない場合は、代わりにMarkdown言語の使用を検討できます。構文はrstに似ており、markdown.pyはかなり小さくて使いやすいです。それはまだ単一のファイルではありませんが、モジュールとして既存のスクリプトにインポートできます。