微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在HTML输出中使用rst和python-sphinx排序表

如何解决在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 举报,一经查实,本站将立刻删除。