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! |