emacs - 在通过 emacs/org模式导出的HTML table 单元格上,精细的( CSS ) 粒度

  显示原文与译文双语对照的内容

我试图通过一组从 Emacs"org模式导出的表来获得更精细的编程( Emacs Lisp ) 控件。 简而言之,这些表是苹果蓝牙键盘的抽象,每个 emacs/org模式代表一行键盘键,因此有 12到 14个键,每行有到5 键。

如果使用org模式缓存,则使用org模式元数据行来指定每个列的大小,从而完全呈现我的抽象: |/| <c12> | <c7> | <c7> |.. .

在Emacs中生成的Org模式输出既准确又强大。 使用CSS导出到 HTML,最好的方法是将每个单元格的宽度修复到一个相同的值。 我试图找出( 使用CSS或者其他保留Emacs缓冲区呈现的内容) 为导出的HTML分配单个单元格宽度或者单个列宽的方法。

推荐?

时间: 原作者:

如果fniessen建议的内容不够,可以使用 :custom_id: special-table 属性将它的分配给问题中的table,然后将CSS定义放在 #special-table {.. . } 类。

但是,org-mode 已经创建了一些 in ( 它从章节编号中),所以你总是可以通过这样的方式访问 table 。 #section-id table:nth-child(x) {.. . } 规则。

如果要动态生成CSS规则,那么一种方法是使用一个 org-babel block 来呈现结果,该代码使用 block 上的:results html 。 例如类似这样的内容可以:


#+NAME: insert-css


#+BEGIN_SRC emacs-lisp :exports none :var nth-child=1


 (print


 (format


"<style type="text/css">


 #section table:nth-child(%s) { color: orange }


 </style>" nth-child))


#+END_SRC



#+CALL: insert-css(nth-child=3) :results html



The code 上面 produces this output:


# <style type="text/css">


# #section table:nth-child(3) { color: orange }


# </style>



但是,后面的方法有一个小缺点: 尽管所有浏览器都理解了 <style> 文档的body 中的标签,但是技术上无效。 当然,如果你是超级 for,则可以在运行时将CSS插入到一个更合适的位置。

...