ph-Bookshelf 可配置节点

这里列出了所有的可配置节点,以及它们的具体功能。

prism

boolean

是否使用 Prism 进行代码块语法高亮。默认为 true

ph-Bookshelf 使用的 Prism 版本默认具有所有的语言支持。因此你将不需要为不常用语言手动导入 Prism 语言扩展。简单地使用 HTML <code lang=lang-css>```css 即可。

对于 HTML 的内联代码块,Prism 也是支持对此进行高亮着色的。只不过,在 Markdown 当中没有对 `` 设置语言的方式。

这里有一份 Prism 支持语言列表

prism.theme

string

要使用的 Prism 高亮主题。查看 Prism Themes 寻找可用的主题。

默认为 prism-material-light。如果 prism 未开启。则这个配置不会产生任何作用。

对于普通的没有高亮配置的字符,尤其是代码块本身的背景颜色,Prism 主题并不会覆盖默认的 Bread Card Markdown 的代码块颜色设置。所以,如果你要更改你的主题,你或许同时也需要更改 codeblock.bg-colorcodeblock.fg-color 设置以让未高亮的文字和代码块背景颜色符合主题设置的颜色。

prism.plugins

string(array(';'))

要使用的 Prism 插件列表。每一个插件 id 通过 ; 分隔。

和其它的配置不同的是,不同作用域内的插件列表会被合并而不是默认的覆盖行为。所以在 book.xml 设置了 line-numbers; autolinker,在页面内设置了 command-line 后,最终,访问这个页面将会导入 line-numbers autolinker command-line 三个插件。

通过 prism.plugins 导入的插件最终将会向页面导入 https://cdn.jsdelivr.net/npm/[email protected]/plugins/{$plugin}/prism-{$plugin}.min.jshttps://cdn.jsdelivr.net/npm/[email protected]/plugins/{$plugin}/prism-{$plugin}.min.css 两个文件。这在导入 Prism 官方插件的一般情况下都可以使用。

目前还没有支持从自定义 url 导入。

默认没有插件。如果 prism 未开启。则这个配置可能不会产生任何作用——也可能会造成错误,取决于 Prism。

同时,这里写出了一些使用 Prism 插件的已知问题:

  • prism line-numbers 插件会和 bread-card-markdown 的代码块样式表产生兼容性,导致行号无法正常显示。
    • 但是和它差不多的插件 command-line 是可以正常使用的。

插件的 id 可以在 plugins 目录内找到。

codeblock.bg-color

string(color.css)

自定义代码块的背景颜色。可以接受任何 CSS 兼容的颜色值。

对于想要自定义代码块主题的用户会很有用。

codeblock.fg-color

string(color.css)

自定义代码块的默认文字颜色。可以接受任何 CSS 兼容的颜色值。

对于想要自定义代码块主题的用户会很有用。

codeblock.tab-size

number(int)

控制代码块内的 TAB 应该显示为多少个空格大小。如果未设置,那么其值将会由用户浏览器决定。

regex.highlight

boolean

控制是否使用 Sukazyo Workshop 自制的 regex-colorize 进行 RegEx 语法高亮。默认为 true

查看 RegEx 高亮着色 的文档以了解更多这个功能的使用方式。

listing.marker.rainbow

boolean

控制是否使用 Bread Card Markdown 的 Listing Rainbow 插件。默认为 true

with Listing Rainbow without Listing Rainbow

title.permalink.flash

boolean

控制当跳转到页面中一个标题的时候,是否闪烁这个标题的悬浮链接按钮。默认为 false

预览 GIF 正在路上

web-title.rolling

boolean

控制是否使用滚动网页标题的特效。默认为 false

预览 GIF 正在路上

site.robots

string

控制网站的 robots.txt 应该返回何种内容。接受以下几种选项。

allow

允许所有种类的爬虫访问本网站。

具体的内容存放在 ph-Bookshelf 的 /assets/robots.allow 当中。

deny

拒绝所有种类的爬虫访问本网站。

具体的内容存放在 ph-Bookshelf 的 /assets/robots.deny 当中。

file
custom

如果设置为这个模式,那么网站 /robots.txt 的内容将会是 /data 目录下的 robots.txt 的内容。

如果你的数据目录中没有这个文件,那么将会不产生任何内容。

除非你的 PHP 的配置文件中设置了 display_error=On:在这种情况下,页面将输出 PHP 错误。

其它任何值

当设置的值不属于上面的任何一个预定义值时,将会输出设置值的原始内容。这也是不设置任何值时的默认行为——也就是如果不设置任何值, robots.txt 只会是一个完全空白的文档。

从技术角度来说,这意味着“使用 bookshelf.xml 中的 <configurations> 中的 <site.robots> 的原始内容。”

因此,你可以使用 <![CDATA[]]> 直接在这里填入你想要设置的 robots.txt 内容。虽然,出于整洁性考虑,我们仍然推荐使用 data/robots.txt 文件的方式而非这样的方式。