Skip to main content

KanaText class extends the functionality of Text class, for someone who use index/glossary directives.

Project description

Build Status (CircleCI) Code Coverage Status (Codecov) BSD 2 Clause

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.

https://i.gyazo.com/4cbf3408c162fb2bfcc493661d35a42b.png

If word_list.txt is used by kana_text_word_file parameter, the genindex.html is created without editing rst files.

QUICK START

installtion

$ pip install sphindexer sphinxcontrib.kana_text

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`\ いる。
https://i.gyazo.com/63fe4ccfaa8a57bb2d8db50c0a689cad.png
: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

The indexer function of this package is handled by “sphindexer”. This package also serves as a reference implementation of how to add reading information.

If you want to use your own notation for reading, please refer to the implementation on Github and create your own notation. The analysis of your own notation will be integrated into “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

  • unit(the other entry): [(classifier, term, subterm, emphasis, file_name, target, index_key)]

    • classifier: KanaText(index_key, word[:1] or a letter made by word[:1])

    • term: KanaText(word)

    • subterm: ‘’, KanaText(word), KanaText(word1) and KanaText(word2)

    • emphasis

    • file_name

    • target

    • index_key

  • 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


Download files

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

Source Distribution

sphinxcontrib.kana_text-0.26.1.tar.gz (15.6 kB view details)

Uploaded Source

File details

Details for the file sphinxcontrib.kana_text-0.26.1.tar.gz.

File metadata

  • Download URL: sphinxcontrib.kana_text-0.26.1.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for sphinxcontrib.kana_text-0.26.1.tar.gz
Algorithm Hash digest
SHA256 41d2dde4b09384b18778a90e548e1c34d0e602074c1ae8dc8b8bdffc304db7cf
MD5 50885f671d4baadb29329a12bcb9e92b
BLAKE2b-256 98eafdb9ccc4c878d7c73f353a5285fd50a2f237ad533a4b0f1ef266343956fb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page