Sphinxの古いバージョンにあったsphinx.addnodes.termsepクラスについて
Q&A
Closed
解決したいこと
2015年当時のSphinxにあった shpinx.addnodes.termsep
について調べたいのですが、当時のSphinxを現在のSphinxを上書きしないようにインストールする方法を教えてください。
背景
2015年当時のSphinxで動作していたYogosyuというSphinx拡張モジュールを、最新のSphinx4.1.2でも(一応)動くように修正ました。
手持ちのreSTファイルでは特に問題なさそうなのですが、最新版のSphinxにはない sphinx.addnodes.termsep
の代替えとして使ったものが妥当なのか分かりません。
代替えの方法でいいのであれば、わざわざ sphinx.addnodes.termsep
を使う必要なかったはず。また最新版のSphinxにはないということは、必要性がないか他の機能でまかなえるような気がします。
発生している問題・エラー
該当するソースコード
yogosyu.py
に対して修正した内容です。 diff -u
で取ったものです。
--- /usr/local/lib/python3.8/site-packages/sphinxcontrib/yogosyu/yogosyu.py 2021-09-04 05:48:45.887059500 +0900
+++ ext/yogosyu/yogosyu.py 2021-09-04 11:06:43.052697600 +0900
@@ -46,10 +46,9 @@
They're only used to sort.
"""
-from docutils.parsers.rst import directives
+from docutils.parsers.rst import directives, Directive
from docutils.statemachine import ViewList
from docutils import nodes
-from sphinx.util.compat import Directive
from sphinx import addnodes
_sort_order_obj = None # Place Holder, and internal only.
@@ -81,11 +80,11 @@
# add an index entry too
indexnode = addnodes.index()
- indexnode['entries'] = [('single', termtext, new_id, 'main')]
+ indexnode['entries'] = [('single', termtext, new_id, 'main', yomi[:1])]
new_termnodes = []
new_termnodes.append(indexnode)
new_termnodes.extend(node.children)
- new_termnodes.append(addnodes.termsep())
+ new_termnodes.extend(node)
for termnode in new_termnodes:
termnode.source, termnode.line = node.source, node.line
自分で試したこと
「sphinx termsep」と検索して、古い版のSphinxドキュメントから説明を見つけたくらいです。
class sphinx.addnodes.termsep(rawsource='', *children, **attributes)¶
Separates two terms within a <term> node.
その他
この機能を初めて利用します。「Q&A」と「意見交換」の使い分けをよく理解していませんが、今回は「Q&A」を選択しました。