Skip to main content

Modify valid rst text to fit within given width

Project description

Installation

>>> sudo pip install reflowrst

Usage

Example:

>>> from reflowrst import reflow
>>> text = '''
=================
Restructured Text
=================

Title
=====
This is a paragraph and it will need to be wrapped because it is too
long.

* Viris congue ad sit. Cu eum eros dignissim, nisl erroribus gubergren
  at eam. [#footnote]_

1. this enumerated list starts with 1
2. this number is out of order and will be corrected (the first
   enumerator in the enumerated list sets the order for all the rest)
3. this is the third item.

+------------------------------+----------+----------+----------+
| 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                   | Cells may span columns.        |
+------------------------------+----------+---------------------+
| body row 3                   | Cells    | - Table cells       |
+------------------------------+ may span | - contain           |
| body row 4                   | rows.    | - body elements.    |
+------------------------------+----------+---------------------+

.. [#footnote] This is an example of a footnote. It might have a really
   long amount of text that goes with it that will need to be reflowed.
'''
>>> print(reflow(text, 47))
>>>
=================
Restructured Text
=================

Title
=====
This is a paragraph and it will need to be
wrapped because it is too long.

* Viris congue ad sit. Cu eum eros dignissim,
  nisl erroribus gubergren at eam. [#footnote]_

1. this enumerated list starts with 1
2. this number is out of order and will be
   corrected (the first enumerator in the
   enumerated list sets the order for all the
   rest)
3. this is the third item.

+-------------+----------+--------+--------+
| Header row, |          |        |        |
| column 1    |          | Header | Header |
| (header     | Header 2 | 3      | 4      |
| rows        |          |        |        |
| optional)   |          |        |        |
+=============+==========+========+========+
| body row 1, | column 2 | column | column |
| column 1    |          | 3      | 4      |
+-------------+----------+--------+--------+
| body row 2  | Cells may span columns.    |
+-------------+----------+-----------------+
| body row 3  | Cells    | - Table cells   |
|             | may span | - contain       |
+-------------+ rows.    | - body          |
| body row 4  |          |   elements.     |
+-------------+----------+-----------------+

.. [#footnote] This is an example of a
   footnote. It might have a really long amount
   of text that goes with it that will need to
   be reflowed.

You can also get the longest possible form of the rst text by using 0 for the space. For example:

>>> paragraph = '\n'.join(['line 1',
                           'line 2'])
>>> print(reflow(paragraph, 0))
line 1 line 2

Todo

  • ☑ Titles
  • ☐ Transitions
  • ☑ Paragraphs
  • ☑ Bullet Lists
  • ☑ Enumerated Lists
  • ☑ Definitions
  • ☑ Fields
  • ☑ Options
  • ☐ Literal Blocks
  • ☐ Quoted Literal Blocks
  • ☐ Line Blocks
  • ☑ Block Quotes
  • ☐ Doctest Blocks
  • ☑ Grid Tables
  • ☐ Simple Tables
  • ☑ Footnotes
  • ☐ Citations
  • ☑ Hyperlink Targets
  • ☑ Directives
  • ☑ Substitution Definitions
  • ☐ Comments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for reflowrst, version 1.0.9
Filename, size File type Python version Upload date Hashes
Filename, size reflowrst-1.0.9.tar.gz (41.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page