Pelican 站点生成器:主题没有可见的 table 边框?

Pelican site generator: themes do not have visible table borders?

我正在使用 Pelican 3.6.3 生成网站。源内容为 Markdown,包含多个 table。我试过用四个或五个不同的 Pelican 主题生成输出,但是 tables 从来没有任何可见的边框。所有table内容都按行和列排列整齐,但没有单元格边框或外边框。

这有什么具体原因吗?我打算手动修改 CSS 吗?似乎不太可能所有主题作者都会做出相同的设计决定。

我的 table 之一的示例:

| Measurement      | 2401     | 2701    |
|------------------|----------|---------|
| Total height     | 2 13/16" | 4 1/8"  |
| Diameter at base | 4"       | 4 9/16" |

是否设置了HTML属性border?如果是这样,很可能是您的浏览器决定如何呈现 table.

我自己检查了几个主题(只是快速浏览了 CSS 代码,不保证正确性):

| Theme           | Border |
|=================|========|
| apricot         | No     |
| basic           |        |
| bluegrasshopper |        |
| blueidea        |        |
| blue-penguin    |        |
| bold            |        |
|-----------------|--------|
| backdrop        | Yes    |
| bootlex         |        |

我可以想象,根据内容、理由和其他格式方面的不同,在 所有 table 上设置边框是不合适的。因此,我可以理解默认情况下禁用 table 边框并让主题用户根据需要自定义行为的设计决定。

在我的网站上,我将 table 用于许多不同的事情。通常,尤其是当包含图像或语法高亮区域等块时,边框会使 table 看起来很奇怪。截至目前,我支持这个设计决定。

但是,如果想要在 一些 table 上设置边框怎么办?如果可以在文章源文件中指定特殊的 HTML 类,则使用 CSS 的大小写相关样式很容易实现。不幸的是,python-markdown(或通常的 markdown)不支持这种功能。至少,这是一项简短的 Google 研究揭示的内容。 (也许有一个我不认识的 python-markdown 扩展名?..)

另一种方法是使用另一种标记语言。 reStructuredText 与 markdown 相比更复杂,但也更具可扩展性。 table 指令本身支持 HTML 类 的规范。我自己使用 reStructuredText 并且喜欢标记语言引入的高度灵活性。

您也可以让 javascript 完成这项工作,并根据 table 内容设置 HTML 类 同样的样式。但是,我认为这不是一个好的解决方案,因为您会为静态网站的外观创建对 javascript 的依赖。

希望对您有所帮助:)

tl;dr

  • 具体原因作为主题最有可能更普遍适用。
  • 是的,我们邀请您在 CSS 代码或任何最适合您的地方自行介绍所需的定制。