Skip to content

A Python Markdown extension which finds Pinyin with tone numbers and converts it to nice Pinyin

License

Notifications You must be signed in to change notification settings

bcaller/pinyin_markdown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A Python Markdown extension which finds Pinyin with tone numbers and converts it to nice Pinyin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages