Skip to content

Latest commit

 

History

History
57 lines (41 loc) · 2.16 KB

README.md

File metadata and controls

57 lines (41 loc) · 2.16 KB

Pinyin and Python and Markdown, together!

Type Chinese pinyin with tone numbers, and have them automagically converted to beautiful accented pinyin.

travis PyPI version

A Markdown extension that looks through your text for things like yi1dian3r, Xi3an4 and lu:5 and replaces them with accented pinyin. The pinyin syllables are marked up with span tags with classes denoting the tone.

Add 'pinyin_markdown' to your Markdown call and watch the magic unfold:

>>> from markdown import Markdown

>>> markdown = Markdown(extensions=['pinyin_markdown']
>>> markdown.convert('i ♥ Xi3an4!')
<p>i<span class="tone3"></span><span class="pyap">'</span><span class="tone4">àn</span></p>

>>> markdown = Markdown(extensions=['pinyin_markdown(tone_class=, apostrophe_class=apo)']
>>> markdown.convert('i ♥ Xi3an4!')
<p>i<span></span><span class="apo">'</span><span>àn</span></p>

The three examples above are rendered as: yīdiǎnr, Xǐ'àn and lü, with HTML:

<span class="tone1"></span><span class="tone3">diǎn</span><span class="erhua">r</span>
<span class="tone3"></span><span class="pyap">'</span><span class="tone4">àn</span>
<span class="tone5"></span>

Options

Option Type Default Description
tone_class str 'tone{}' HTML class name for tones, which will be formatted with tone_class.format(tone) where tone is a number 1-5
apostrophe_class str 'pyap' HTML class name for apostrophes needed between vowels
erhua_class str 'erhua' HTML class name for the erhua 'r' e.g. in dianr
entities bool False If True, output the accented characters as entity codes &466#;

Installation

From Github:

git clone https://github.com/bcaller/pinyin_markdown.git
pip install -e ./pinyin_markdown

From Pypi:

pip install pinyin_markdown

Also have a look at tsroten's zhon for more Python pinyin goodness.