rst2textile is docutils textile writer convert reStructuredText(rst) to Textile format.
- Docutils writer for textile.
- supported syntaxes are:
- headings: h1/h2..
- docinfo: field-list (like :Date: today) at top of rst file.
- paragraph
- emphasis: *em*
- strong: **strong**
- list-item: * egg
- enum-item: #. ham
- blockquote
- link: `foo <http://example.com/>`_
- image: .. image:: http://example.com/image.png
- literal: ``some code`` and ::
- some table syntax
- supported syntaxes are:
- Sphinx textile builder (experimental).
- write conf.py extensions = ['docutils_textile']
- build by sphinx-build -b textile source _build/textile
$ pip install rst2textile
If you wanto to use unrelease version, you can install from repository:
$ pip install -e hg+https://bitbucket.org/shimizukawa/rst2textile#egg=rst2textile
$ rst2textile.py input.rst output.txt
or:
$ python -m rst2textile input.rst output.txt
$ python setup.py test
or:
$ python test.py
- Python 2.6, 2.7, 3.3, 3.4
- Docutils 0.12, 0.11, 0.10
- Not supported: some textile syntax at http://redcloth.org/textile
- Documentation
- Implement some textile format.
- Fix: number of table columns reduced to shorter row.
- add support textile table output. Thanks to tell-k.
- remove pysetup related lines.
- change supported python versions: 2.6, 2.7, 3.3, 3.4
- change supported docutils versions: 0.12, 0.11, 0.10
- add supported python versions: 2.4, 2.5, 2.6, 3.1, 3.2, 3.3
- first release
- supported syntax: h1/h2.., docinfo, paragraph, em, strong, list-item, enum-item, blockquote, link, image, literal
rst:
========== Heading1 ==========
textile:
h1. Heading1
rst:
========== Heading1 ========== Heading2 ========== Heading3 ---------- Heading4 ^^^^^^^^^^
textile:
h1. Heading1 h2. Heading2 h3. Heading3 h4. Heading4
rst:
HelloWorld =========== :Date: Today :Author: SpamEgg :Location: Here
textile:
h1. HelloWorld Date: Today Author: SpamEgg Location: Here
rst:
Normal Text
textile:
Normal Text
rst:
*emphasized* (e.g., italics)
textile:
_emphasized_ (e.g., italics)
rst:
**strongly emphasized** (e.g., boldface)
textile:
*strongly emphasized* (e.g., boldface)
rst:
- An item in a bulleted (unordered) list - Another item in a bulleted list - Second Level * Second Level Items * Third level
textile:
* An item in a bulleted (unordered) list * Another item in a bulleted list ** Second Level ** Second Level Items *** Third level
rst:
#. An item in an enumerated (ordered) list xxxxxxx #. Another item in an enumerated list yyyyyy #. Another level in an enumerated list vvvvvvvv #. Another level in an enumerated list vvvvvvvv #. 3rd element at indent level1
textile:
# An item in an enumerated (ordered) list xxxxxxx # Another item in an enumerated list yyyyyy ## Another level in an enumerated list vvvvvvvv ## Another level in an enumerated list vvvvvvvv # 3rd element at indent level1
rst:
Blockquotes This text will be enclosed in an HTML blockquote element. Second Paragraph.
textile:
Blockquotes bq. This text will be enclosed in an HTML blockquote element. bq. Second Paragraph.
rst:
`link text and link target url <http://www.example.com/link/target/address>`_
textile:
"link text and link target url":http://www.example.com/link/target/address
rst:
.. image:: http://example.com/image.jpg .. figure:: local/image/path.png
textile:
!http://example.com/image.jpg! !local/image/path.png!
rst:
HelloWorld =========== reference to HelloWorld_ !
textile:
h1. HelloWorld reference to "HelloWorld" !
rst:
:: class Foo(object): def __init__(self, value): print "value = %d" % value raise NotImplementedError(u'EmptyClass')
textile:
<pre> class Foo(object): def __init__(self, value): print "value = %d" % value raise NotImplementedError(u'EmptyClass') </pre>
rst:
+------------------------+------------+----------+----------+ | Header row, column 1 | Header 2 | Header 3 | Header 4 | | (header rows optional) | | | | +========================+============+==========+==========+ | body row 1, column 1 | column 2 | column 3 | column 4 | +------------------------+------------+----------+----------+ | body row 2 | ... | ... | | +------------------------+------------+----------+----------+
textile:
|_. Header row, column 1 (header rows optional)|_. Header 2 |_. Header 3 |_. Header 4 | | body row 1, column 1 | column 2 | column 3 | column 4 | | body row 2 | ... | ... | |
rst:
===== ===== ======= A B A and B ===== ===== ======= False False False True False False False True False True True True ===== ===== =======
textile:
|_. A |_. B |_. A and B | | False | False | False | | True | False | False | | False | True | False | | True | True | True |
rst:
.. csv-table:: :header: "Treat", "Quantity", "Description" :widths: 15, 10, 30 "Albatross", 2.99, "On a stick!" "Crunchy Frog", 1.49, "If we took the bones out, it wouldn't be crunchy, now would it?" "Gannet Ripple", 1.99, "On a stick!"
textile:
|_. Treat |_. Quantity |_. Description | | Albatross | 2.99 | On a stick! | | Crunchy Frog | 1.49 | If we took the bones out, it wouldn't be crunchy, now would it?| | Gannet Ripple | 1.99 | On a stick! |
rst:
.. list-table:: :widths: 15 10 30 :header-rows: 1 * - Treat - Quantity - Description * - Albatross - 2.99 - On a stick! * - Crunchy Frog - 1.49 - If we took the bones out, it wouldn't be crunchy, now would it? * - Gannet Ripple - 1.99 - On a stick!
textile:
|_. Treat |_. Quantity |_. Description | | Albatross | 2.99 | On a stick! | | Crunchy Frog | 1.49 | If we took the bones out, it wouldn't be crunchy, now would it?| | Gannet Ripple | 1.99 | On a stick! |