-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
sphinxcontrib.kana_textを使った索引ページの改善 #91
base: master
Are you sure you want to change the base?
Conversation
追記
|
pull request ありがとうございます。 |
ご連絡ありがとうございます。 散らかっていて申し訳ないのですが、必要に応じて使ってください。
※「ないよりはマシ」くらいに思ってください。 |
@KaKkouo
|
@usaturn 申し訳ないのですが環境構築についてはまだ不慣れでして、、分かるのは次の二点です。
恐らくですが こちらでも試行錯誤してみますが、上記二点からrequirements.txtの記載内容が修正できるのであれば助かります。 |
@KaKkouo 失礼しました。エラーログは一番下の行しか書いてなかったのですが、以下のコマンド結果を載せますね。
0.10.2のダウンロードに失敗して徐々にバージョンを下げてダウンロードを試しているように見えます。 |
sphindexer は
一般的には ※ 実行時にバージョン情報を参照できるように、変数に入れる方法は世の中にいくつか存在するようです。ここでは紹介しませんが、興味があれば調べてみてください。 ちなみに Sphinx 本体の方に送っていただいた PR の方はなかなかみる時間が取れていないので、リアクションできずにいて申し訳ないです。緊急バグフィックス版の 4.3.1 がリリースできたので、他のイシューを整理しながらみる時間を確保しようと思います。申し訳ないですが気長にお待ち下さい。 |
sphinxのインストール(install_sphindexer.log, setup.py)確認ありがとうございます。 ※setup.pyの記述について理解が追いついていないため、時間が掛かります。 PR一から作ってしまっているのでまとまった時間が必要ということは承知しております。 setup.pyだけでなくpytest用のテストケースもそうなのですが、ちょこちょこと不勉強な故の我流の部分があります。 (追記) 「中」「設」について直接には次の二点が原因です。
中途半端な状態で 正しく解決はしていないのですが 追記)「中」「設」について、ローカル環境での状況 |
追記)sphindexerのインストールエラーについての対処内容setup.py中の
備考)word_file.txtについて
これとあわせて「かな情報の適用の優先順位」も調整する予定です。現状は「word_list.txtのみにかな情報を記載」となっているため、この「優先順位の調整」の影響はありません。かな文字情報の現在の記法への依存性を弱めておくのであれば、一括変換がしやすい「word_list.txtに集約」のままがいいと思います。
|
「中」「設」の対処原因究明についてはさておいて、手っ取り早く対処するのであれば次の通りです。
|
反応がかなり遅くなってしまいました。申し訳ないです。
この点について確認させてください。kana_text が目指している方向は、インラインに書くやり方のように見えたのですが、今回の PR では、上のコメントにあるように辞書ファイルの定義となっています。 今回の修正が Sphinx 本体に修正が取り込まれるまでの一時的なものなのか、継続的なものなのかが気になりました。 また、少し脱線しますが、kana_text はルビなども含めた総合的な日本語化を目指した拡張をゴールとしているようなので、どのように Sphinx に取り込んでいくのかは悩ましいところがあるなと思っています。 辞書形式とインライン形式、どちらが扱いやすいのかは正直自信が持てていません。 いろいろと書いてしまったのですが、いま感じているのは以下のものです。
1月の Sphinx Hack-a-thon で @shimizukawa と議論した上で書いたものです。不足があったら捕捉ください > @shimizukawa (忙しい場合は slack でも口頭でもよいので…) |
はい。 sphinx-users.jp サイトへのPRの範疇については補足とくにありません。 Sphinx本体としては、 index, glossary あたりの索引登録まわりを拡張で取り扱いやすく整備したうえで、日本語固有部分は拡張に任せられるようにする、といった方向にできるとよさそうと思います。 |
ご確認ありがとうございます。 パッケージは二段構成(sphinxcontrib.kana_text, sphindexer)になっています。 sphinx-users.jp のPRで取り上げているkana_textについてはSphinx本体への取り込みは考えていません。 「表記文字列とは別に読み情報がある」という概念は日本独自のものと考えていて、 以下、パッケージの説明です。パッケージの後にQ&Aを書きました。
パッケージsphindexer本体に取り込んで欲しい内容に相当するもの。
パッケージshpinxcontib.kana_textこちらは本体への取り込みは考えていません。
補足的なこと
Q&Aの前に提案的な要点
要点の補足
Q&AQ1:Sphinx 本体に PR を送っていただいたように、将来的な展望としてはインラインに書く方式を狙っているのでしょうか。 Sphinx本体へのPRは、あくまでも拡張性までであって読み情報に対応した実際の拡張は含みません。 誤解をさせてしまう箇所を教えてください。直します。 元々の実装の経緯としては以下の通りで、実装都合としてはインラインの方が楽です。 私自身は「実装都合ならインライン式」「rstファイル編集都合なら辞書形式」と思ってますので、この辺りは認識のすり合わせが必要だと思います。 Q2:Sphinx に送っていただいた PR は現状の kana_text とも異なる記法 (現状の glossary に合わせた : ベースのもの) になっており、最終形がどうなるのかなというのが気になっています。 現在の索引ページでは用語に漢字があると、例えば「用語」なら「用」がページ上部に表示されます。 例えば高校物理のドキュメントなら各用語は「あ」「か」などのカテゴリで分類すると同時に、単位系だけ「記号」とは別に分類することができるようにしています。(すいません、今いい感じの具体例が思い付きません) Q3:一方で、マークアップの形式が標準と変わらないため、互換性については考えることが少なくて良さそうだなとも思っています。 お手数を掛けて申し訳ないのですが、「分類子」と「読み情報」の違いに注意して確認していただいてもいいでしょうか。 例1)よみ情報のない「用語」であれば「用」が分類子として使われます。 Q4:今回、sphinx-users.jp に導入するのは辞書形式なのか、インライン形式なのか 具体例は思いつかないのですが、「表記は同じでも読みが変わるケース」ってありませんでしたっけ? 「表記は同じでも読みが変わるケース」がなければ辞書形式のみで問題ないですし、 辞書型式の方が「index/glossary」双方に適用されるので、一括の設定としては此方が楽です。 ※書いていて気付いたのですが、「indexディレクティブについては、glossaryで指定した読みに従う。ただし、indexディレクティブで読みが指定してあればそれが優先される」というのがいいのかもしれないですね。これならインライン式且つ一括管理にもなります。 Q5:さらにいうと、mecab などの標準的な辞書を使った動的な読みの解決などといったアイディアも https://kana-text.readthedocs.io/en/latest/ タラレバの話になりますが、実装するとしたらこんなイメージです。
実際には次の点で実装は考えていません。逆に言えばこれらの懸念が払拭されるか、それ以上のメリットがあればわかりません。
まとめると「index/glossaryの利用が進んで、索引ページの規模がある程度以上になるのが当たり前になった頃」に具体的に考える話だと思います(書いていて、そう思ってきました)。 Q6:短期的な解決方法と長期的な解決方法に分けて議論を進めたい。とはいえ、明らかに未来がないものを導入するのも避けたい 前者(特に記法)が暫定対応、後者が恒久対応と見ています。
indexrack,pyのテストケースは「実は要らなかったんじゃ…」という内容も含めて、 Q7:そのため、PDF などの変換に影響があるか、と言った観点ではチェックしていません。 表示処理については、HTML5Translatorのvisit_Text/depart_Textを調整しています。 逆に対応するのであれば、たぶんLatexTranslatorクラスがあると想像しているのですが、 索引ページはHTML用のBuilderにあり、これしかいじっていませんん。 LaTeX版での「索引ページの用語から対応ページにジャンプする記法」がわかれば、LaTeXでもイケるような気がします。 Q8:Sphinx本体としては、 index, glossary あたりの索引登録まわりを拡張で取り扱いやすく整備したうえで、日本語固有部分は拡張に任せられるようにする、といった方向にできるとよさそうと思います。 sphindexerパッケージは対応する機能の全てがSphinx本体に取り込まれれば、役目を終えるパッケージです。 現状、Sphinx本体PRとしてはindexrack.pyのみですが、index/glossaryも予定しています。
あと、単純に「Glossaryクラス(改)」のカバレッジが思うように上げられなくて悩んでいます。 以上不明点があれば遠慮なく。 |
お知らせパッケージのバージョンが変わりましたのでご注意ください。
Sphinx4.4.0でGlossaryクラスから並び替え処理がGlossarySorterに分割されていると思いますが、 kana_text補足
直しました。 以前アドバイスしていただいて直したはずの、setup.py, setup.cfgの内容が sphindexer補足同じPyPIサイトのsphindexerページを見るとカバレッジがアレですが、 サイトにアクセスして詳細を見れば、事情の一端が分かります。 その他同じコメントを結構頻繁に更新しています。 |
お知らせパッケージを更新しました。
読み情報の優先順(辞書ファイル、インライン)の整理、ルビ表示の指定方法の変更なので、 あと辞書ファイルですが、rstファイルに対応したhtmlでのルビ表示においては辞書ファイルの内容は反映されません。 たたき台Sphinx本体の他のissueやPRがあり、ボリュームのある本件はなかなか手を出し辛い内容だと思います。 たたき台を書き出した後での私なりの感触としては、
①大きな方針として先ず次の大枠についてどう思っているのかが気になります。 Sphinx本体側として
sphinx-users.jpとして
前の前のコメントに書いた「提案的な要点」に対して、取り敢えず「断定はできないけど、 ②Sphinx本体として(厳密に言えばkana_textの範疇からは外れますが、日本語で書くと楽なのでここに書きます) 現在PRしているindexrack.pyの評価を進めることになると思います。
取り敢えず「2.2. ソースコードの読み方」を読んでみて、 ーーー取り敢えずは、ここまでが第一段階だと思いますーーー 現在のPRの要点は次の通りです
上記4点の確認
今後PRする予定の機能も含まれていますが、sphindexerパッケージを入れれば挙動の違いが確認できます。 ③sphinx-users.jpとして「索引での表示」「ルビ表示」のどちらを重視するかが要点になります。 流れとしては次のような感じでしょうか
以前記法については、こちらの「<読み情報を付与する記法について>」にまとめています。 ここを見れば「なろう」「カクヨム」その他の記法が確認できますので、 記法について
索引での表示順を重視するなら読み情報は3文字で十分だと思います。
ルビ表示を重視するなら「なろう」「カクヨム」の記法を採用するのがいいと思います。
kana_textを作った者としてはこの記法から見えているものが多いため、結果的に偏った内容になっていると思います。 以上この内容に限らず不明点はお気軽に。 |
自作したsphinxcontrib.kana_textを使って、索引ページを改善してみました。
索引ページを見て直せそうなところを独自判断で変更しているので、お手すきの時に確認していただければと思います。
pip install sphindexer sphinxcontrib.kana_text
で二つのパッケージをインストールmake html
を実行※不採用は不採用でしょうがないので、その時は簡単に理由などを教えていただければ・・・
変更点など
参考(索引ページのスナップショット)
<その1>

<その2>

その他
string.startswith('\N{RIGHT-TO-LEFT MARK}')
のような判定は入れていません。_('Symboles')
の対応も現状は入れていませんが、「これは入れるべきかなぁ、、」と考えています。以上、よろしくお願いします。