我想为我的访问者提供一个使用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代码/文件操作。
发布于 2021-03-09 18:01:07
受已经提供的一些答案的启发,我创建了以下使用dataTables的解决方案。我使用的是html主题'classic‘,它已经包含了jquery (其他模板我不太确定)。
在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向表元素添加了一个类,因此DataTable javascript将应用于该表。
发布于 2021-01-20 05:09:16
我一直都在这么做。Example
这可能不是最好的方法,但是我在.. raw:: html下插入了一个常规的html表,并在我的layout.html模板中添加了一个指向JS的链接。查看源代码以查看我的html代码。
https://stackoverflow.com/questions/64443832
复制相似问题