Sphinx-python如何自定义RST项目符号列表的输出样式与对齐规则
可行实现方案
方案1:CSS配合RST类标记(改动量极小,优先推荐)
该方案只需要对现有RST内容做极少量调整即可实现需求:
- 给所有用
-开头的无序列表前加一行类声明,RST语法如下:
.. class:: dash-bullet - this would be second bullet style - 其他列表项
你可以写正则批量给所有-开头的列表块前添加上述声明,海量文件也可以快速处理。
2. 添加自定义CSS样式控制列表展示效果,参考代码:
/* 统一段落和列表的基础边距,保证对齐 */ p, ul { margin: 0.8em 0; padding-left: 0; } /* 常规*开头的无序列表样式 */ ul:not(.dash-bullet) { list-style-type: disc; padding-left: 1.6em; /* 按需调整该值,对齐段落左边缘 */ } /* -开头的自定义列表样式 */ ul.dash-bullet { list-style: none; padding-left: 1.6em; /* 和常规列表保持同一缩进值,实现全局对齐 */ } ul.dash-bullet > li::before { content: "-- "; display: inline-block; margin-left: -1.6em; /* 反向偏移抵消缩进,保证符号在缩进位展示 */ width: 1.6em; }
调整上面的1.6em数值,即可让所有列表和上一段落完全对齐。
方案2:自定义docutils解析扩展(零改动原有内容)
如果你完全不想修改现有txt内容,可以基于RST的核心解析库docutils做自定义扩展:
- 改写无序列表的解析逻辑,识别列表的起始标记类型:
*开头的列表自动添加default-bullet类,-开头的列表自动添加dash-bullet类 - 后续还是沿用方案1中的CSS控制展示效果即可,不需要修改任何原有txt内容
内容的提问来源于stack exchange,提问作者ThylowZ
相关产品推荐
相关产品推荐

