【问题标题】:How to highlight a piece of code in docpad/markdown如何在 docpad/markdown 中突出显示一段代码
【发布时间】:2023-03-23 12:38:01
【问题描述】:

我正在为我的博客使用 docpad + markdown。我使用highlight.js plugin 来格式化代码示例。格式化工作正常,关键字突出显示。现在,我想用额外的格式来强调一些代码块,例如显示我与前一个块相比所做的更改。

是否可以突出显示代码块的某些部分,例如

  • 进行函数调用粗体
  • 删除一些文字
  • 把一些文字变成红色

这是Martin Fowler's blog的样子:

唯一的区别是我也想保持关键字突出显示。

【问题讨论】:

    标签: markdown docpad highlight.js


    【解决方案1】:

    根据 Docpad 的list of Plugins,您有几个选择。我注意到下面列出的两个快速浏览。可能还有其他我错过了。

    1. Highlight.js Plugin
    2. Pygments Plugin

    如果您想自定义输出的外观,我怀疑您需要编辑任一插件使用的 CSS。请参阅您选择的特定插件的文档。


    例如,Highligh.js 插件docs 声明您需要单独下载样式表(这可以解释为什么 OP 没有使用该插件获得任何样式)。查看提供的列表和演示,然后选择最适合您所需外观的样式。

    下载 CSS 文件并保存到适当的目录。正如 Docpad 的 docs 所指出的,那将是在 src/render/styles/filename.css 确保将“filename.css”替换为文件名。正如文档所述:

    然后,为了将其包含在我们的页面中,我们将 default.html.eco 布局中的样式块更新为:

    <%- @getBlock("styles").add(["/styles/style.css"]).toHTML() %>
    

    同样,请务必使用文件的实际名称。

    要对使用的颜色/样式进行任何调整,您需要编辑该 CSS 文件。请注意,Highlight.js 提供了一个list of class names,您可以将其用于样式挂钩。找到与您要调整的项目匹配的特定类名,并在 CSS 文件中找到该类的样式并编辑直到您满意为止。

    请注意,以上假设您使用的是默认设置和插件,如 DocPad 文档的“入门”页面中所述。 YMMV。


    如果要突出显示更改,则需要为更改创建diff,然后将“差异”定义为语言。 Highlight.js 然后将使用diff 高亮显示更改。不幸的是,没有办法同时突出显示语言和差异。换句话说,您可以突出显示关键字,也可以突出显示更改,但不能同时突出显示。

    当然,您始终可以 define 您自己的“语言”和 register 使用 Highlight.js。但这超出了本论坛的范围。

    【讨论】:

    • 是的,我已经在使用 Highlight.js,但我不知道如何在代码块中进行自定义格式化。
    • @Mikhail,该信息应添加到您的问题中,因为这对于提供有用的(对您而言)答案至关重要。我已经更新了我的答案以包含一些更具体的信息。请注意,我没有使用 Docpad 的经验,因此我对它所做的任何陈述都直接来自他们的文档。他们的文档似乎很清楚,我建议您仔细查看。我希望您的大部分问题都会在那里得到解答。我怀疑您唯一缺少的是样式表需要单独下载。我第一次也错过了。希望这会有所帮助。
    • 按照建议扩展了我的问题。突出显示语法效果很好,但我想要的是使用我的自定义格式扩展默认语言格式以用于代码块的特定部分。例如。划掉一个变量名并在它旁边加上新的名字。
    • 在我的回答中添加了更多关于突出显示更改的信息。
    猜你喜欢
    • 1970-01-01
    • 2022-06-25
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    相关资源
    最近更新 更多