网站建设中,中国大陆地区请使用VPN访问,欢迎提建议,关注LSKR Mastodon

关于google blogger 添加代码高亮和行号功能

google blogger 实现代码的高亮和行号功能,基于prism提供的脚本实现。
google blogger 添加代码高亮和行号功能

对于代码的高亮一般有两个,highlightjs 以及Prism。下面我们对他们都进行一番详细介绍。

Prism.js 用法

<!-- Prism 样式:Monokai 风格 -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/prism-themes/1.9.0/prism-one-dark.min.css" rel="stylesheet" />

<!-- Prism 主库 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>

<!-- Prism C语言支持,默认的支持js,css,html基本语言,有需要自己导入特定语言 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-c.min.js"></script>

导入到对应的HTML , 中即可。

代码修饰用法

<pre class="line-numbers"><code class="language-xxx">
  代码
</code></pre>

针对highlightjs

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/default.min.css"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js"></script>

<!-- and it's easy to individually load additional languages -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/languages/go.min.js"></script>

同样的放到元素中

<script>hljs.highlightAll();</script>

将代码放到中。

代码修饰用法

<pre class="line-numbers"><code class="language-xxx">
  代码
</code></pre>

添加行号

  • Prism
<!-- Prism 行号插件 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>

<!-- Prism 行号插件样式 -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css" rel="stylesheet" />
  • higtlightjs
<!-- Highlight.js 行号插件 -->
<script src="https://cdn.jsdelivr.net/gh/wcoder/highlightjs-line-numbers.js/dist/highlightjs-line-numbers.min.js"></script>

<!-- 启动行号 -->
<script>
  hljs.initLineNumbersOnLoad();
</script>

对比

两者之间没有绝对的优劣之分,各有特点

  • Prism 代码更小,支持语言需要特定方式导入。(有些语言不高亮了,你需要找特定语言的插件)
  • highlightjs 支持代码多,但是他的包很大,会影响网页加载速度。

代码转换

将代码放入到<pre><code>中,由于HTML会进行编译处理,为了避免代码中的转义错误。你需要将<>转换成 HTML 实体 &lt;&gt;,以避免它们在浏览器中被解析为 HTML 标签。

补充

点击highlightjs 官方Demo 你可以看检查效果,那么主题名称与文件是如何对应的的呢?

正确的主题替换方式:主题a11y-dark-mini 替换/default.min.css 成对应对应文件名:a11y-dark.mini.css

highlightjs主题Demo

替换方式:a11y-dark.mini.css

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/a11y-dark.mini.css"/>

代码转义工具

发表评论

Cookie Consent
我们使用 Cookie 来了解您如何使用我们的网站并提升您的体验。这包括个性化内容和广告。
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.