如何解决在HTML输出中使用rst和python-sphinx排序表
我想为我的访问者提供一种可能性,可以使用python-sphinx从RST生成的HTML页面中的表格中的单元格进行排序。假设我有一个这样的表:
.. list-table:: A fancy name table
:header-rows: 1
* - Family name
- Given name
* - Smith
- Samuel
* - Johnson
- John
这样可以很好地渲染并按输入顺序显示名称。现在,我想生成一个HTML输出,并为用户提供将名称重新排序为字母顺序的可能性。有standalone examples和库可以实现此功能,我想知道哪种解决方案已经在Sphinx中实现(如果有)。最好的办法是包括一个最小扩展名,并修改所有表的属性(或仅修改一个我希望能够排序的表)以包含此功能。
能否请您为扩展程序和最佳实践提供建议?我希望自己尽量减少CSS和JS代码/文件的操作。
解决方法
我一直这样做。 Example
可能不是最好的方法,但我在 .. raw::
html 下插入了一个常规的 html 表,并在我的 layout.html
模板中添加了一个指向 JS 的链接。查看源代码以查看我的 html 代码。
受到已经提供的一些答案的启发,我创建了以下使用数据表的解决方案。我正在使用已经包含 jquery 的 html 主题“经典”(我不确定其他模板)。
在 conf.py
中添加额外的 css 和 js 文件:
html_static_path = ['_static']
html_css_files = [
'https://cdn.datatables.net/1.10.23/css/jquery.dataTables.min.css',]
html_js_files = [
'https://cdn.datatables.net/1.10.23/js/jquery.dataTables.min.js','main.js',]
创建文件 _static/main.js
并添加以下几行(我选择使用“datatable”类在表上显式启用此功能):
$(document).ready( function () {
$('table.datatable').DataTable();
} );
在您的第一个文档中,您现在可以创建一个漂亮的表格:
.. table::
:class: datatable
===== ===== =======
A B A and B
===== ===== =======
False False False
True False False
False True False
True True True
===== ===== =======
:class: datatable
向 table 元素添加一个类,因此 DataTable javascript 应用于此表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。