KanaText class extends the functionality of Text class, for someone who use index/glossary directives.
Project description
This is a sphinx extention. It extends the functionality of the Text class. Any person, who uses index/glossary directives with Japanse Kanji, is to be so happy.
If word_list.txt is used by kana_text_word_file parameter, the genindex.html is created without editing rst files.
QUICK START
conf.py:
extensions = ['sphinxcontrib.kana_text']
#kana_text_word_file = '~/.config/sphinx/word_list.txt'
#kana_text_word_list = ['ようご|用語^21', 'ぶんしょさくせい|文書作成^2222',]
#kana_text_indexer_mode = 'small'
#kana_text_on_genindex = False
rst file:
.. index:: ようご|用語^21
.. glossary::
ようごいち|用語壱^212
用語1の説明。
夜空に浮かぶ\ :index:`あまた|数多^21`\ の星々が\ :kana:`きらめいて|煌めいて^2c`\ いる。
:term:`linkt to the term<ようごいち|用語壱^212>`
build:
$ make kana
genindex.html
$ sphinx-kana-genindex
$ mv genindex.html.sample path_to_sphinx_project/_templates/genindex.html
note(japanese)
当パッケージのインデクサー機能は「sphinxdexer」が担っています。 当パッケージは読み仮名情報の付加方法についてのリファレンス実装にもなります。
自分なりの記法で「読み仮名」を実現されたい方は、Githubの実装を参考にして独自の記法を実現してください。独自の記法の解析は「KanaText」に集約されます。他はコピペで済むはずです。
同じパッケージ名は使えないので注意してください。
DEVELOPMENT
structure of the data for genindex.html
entry: {file_name: [(entry_type, value, target, main, index_key)]}
file_name: the name without suffix
entries: [entry]
entry: (entry_type, value, target, main, index_key)
entry_type: in(‘single’, ‘pair’, ‘triple’, ‘see’, ‘seealso’)
value: ‘word’, ‘word; word’ or ‘word; word; word’
target: the target id
main: ‘main’ or ‘’
index_key: classifier or None
genidex: [(classifier, terms)]
classifier: KanaText
terms: [(term, list)]
term: KanaText
list: [links, subterms, index_key]
links: [(main, uri)]
subterms: [(subterm, links)]
subterm: SubTerm[KanaText]
links: [(main, uri)]
index_key: str
variables
term: KanaText OBJect. it had better to be ‘ktobj’ vaiable name.
rawword: ex. ‘かな|言葉^11’
rawtext: ex. ‘かな|言葉^11’, ‘かな|言葉^11; いい|壱壱^11’ or ‘かな|言葉^11; …; …’
rawsouce: means Element.rawsource.
text: the string ‘かな|言葉’ of ‘かな|言葉^11’, by object.astext() of KanaText.
word: use as hier.
hier: the string ‘言葉’ of ‘かな|言葉^11’, by object.ashier() which means hieroglyph.
kana: the string ‘かな’ of ‘かな|言葉^11’. by object.askana()
ruby: ex. [(True, (‘田’, ‘た’)), (True, (‘中’, ‘なか’))]
html: ex. ‘<ruby><rb>言葉</by><rp></rp><rt>かな</rt><rp></rp></ruby>’
latex: (T.B.D.)
epub: (T.B.D.)
separator: used by re.split()
delimiter: used by object.astext(), etc.
option_marker: the ‘^’ of ‘かな|言葉^11’
methods
ashier: return a string like hieroglyph
astext: return a string like a eacy identifier
askana: return a string which is reading
asruby: return a list data for the display with ruby. for genindex.html.
ashtml: return a string which is made with html tags. for genindex.html and glossary.
__eq__: return self.astext() == other, to be identified easily for unittest
__str__: return a string by ashier/ashtml for jinja2
KanaText(ex. ‘かな|言葉^11’)
object[0]: ‘言葉’
object[1]: ‘かな’
object[‘delimiter’]: ‘|’
object[‘ruby’]: ‘specific’
object[‘option’]: ‘11’
object.whatiam: in(‘classifier’, ‘term’:default, ‘subterm’)
object.__eq__: used by unittest and IndexRack.generate_genindex_data
object.__str__: used by jinja2. use object.whatiam
ExIndexEntry(ex. ‘ああ|壱壱^11; いい|弐弐^11; うう|参参^11’)
object[0]: KanaText(‘ああ|壱壱^11’)
object[1]: KanaText(‘いい|弐弐^11’)
object[2]: KanaText(‘うう|参参^11’)
object[‘entry_type’]: ‘single’, ‘pair’, ‘triple’, ‘see’ or ‘seealso’
object[‘file_name’]: file name
object[‘target’]: target id
object[‘main’]: ‘main’ or ‘’
object[‘index_key’]: None or classifier
object.make_IndexUnit(): return [IndexUnit, IndexUnit, …]
ExIndexRack
object[n]: IndexUnit(…)
object.append(): make/update classifier_catalog and kana_katalog
object.extend(): call the object.append() by each IndexUnit object
object.udpate(): update IndexUnit object with classifier_catalog and kana_catalog
object.sort(): to be sorted
object.generate_genindex_data()
ExIndexUnit
object._sortkey: for emphasis which means ‘main’.
object[0]: KanaText(classifier)
object[1]: KanaText(main term)
object[2]: SubTerm([], [KanaText(2nd)], or [KanaText(2nd), KanaText(3rd)])
object[3]: emphasis code (‘main’: 3, ‘’: 5, ‘see’: 8, ‘seealso’: 9)
object[‘file_name’]: target file
object[‘target’]: target id
object[‘main’]: emphasis
object[‘index_key’]: None or classifier
object.delimiter: ‘ ‘ or ‘, ‘
object.get_children: [object[1], object[2][0], object[2][1]]
ExSubTerm
object[0]: KanaText
object[1]: KanaText
object._delimiter
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for sphinxcontrib.kana_text-0.25.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b22ea4bc2c8af9506aa909d127c0ab8deba106cfe1d3814ce9c58527fcccb78 |
|
MD5 | 35a2236cfa75b60bebb46f4fe61f76c0 |
|
BLAKE2b-256 | 37fd92862d13cd3565528414397efa87836bb6017e46a4a6107af5ff477ea441 |