网站引入 Prism,使得代码高亮显示,并一键复制代码块

曾几何时,苦恼如何将本地写好的博文,更好的展示读者屏幕前?若只是简简单单的文章,其实还是很好的解决它的!可是,像我们这样写技术文章(有点牵强)的,在文章内容嵌入部分代码是在所难免的。

然而,由于没能将代码与文本区分开来,致使两者混在一起,分不出彼此。由此给读者带来了视觉上得不适,它并没有很好的像代码编辑器那样高亮。

下载 Prism

虽然市面上能让代码块高亮显示,远不止Prism这一款,而我又为什么选择这一款呢?这的确是个好问题,然而我只能回答您的是,它功能比较强大吧!(或许您还不能信服),这就好比是情人眼里出西施,您的老婆/老公或女朋友/男朋友长得不是那么美/那么帅(或许您在某一瞬间也是这么觉得),但是,您不还是选择了她/他吗?即便是,您和伴侣在逛街时,迎面走来一位身材高挑的美女/帅哥,想必您的伴侣是在您不经意间,偷瞄了一眼。

进入prism官网下载:

https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript

在这里插入图片描述

随后,我们在项目中引入Prism.css样式文件。

<link href="themes/prism.css" rel="stylesheet" />

以及Prism.js文件。

<script src="prism.js"></script>

当然咯,您的代码块是需要使用<pre><code class="language-*"标签。

<pre><code class="language-html">
<link href="themes/prism.css" rel="stylesheet" />
</code></pre>

添加 clipboard 复制代码按钮

若是有一点按钮就可以复制这段代码,想必应该是没有人会再去用鼠标去滑动选择代码,然后右键,选择复制选项,或者直接按住键盘上的Ctrl + C

首先,想要在项目中添加clipboard功能,那么,就显得下载它,这是毋庸置疑的!

当然,我们还是到Prism官网下载它,

在这里插入图片描述

在项目中引入:

<script src="plugins/clipboard.js"></script>

Hugo-theme-kiwi 中引入 Prism

首先,我们在Hugo-theme-kiwi主题的head.html文件引入blackmac.css样式文件。

<link rel="stylesheet" href="{{ .Site.BaseURL }}css/blackmac.css">

blackmac.css文件内容如下:

code[class*="language-"],pre[class*="language-"]{color:#f8f8f2;background:#313238;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:2;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}pre[class*="language-"]{padding:.5em;margin:.5em 0;overflow:auto;}:not(pre)>code[class*="language-"],pre[class*="language-"]{background:#21252a}:not(pre)>code[class*="language-"]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999;}.token.punctuation{color:#ccc;}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a;}.token.function-name{color:#6196cc;}.token.boolean,.token.number,.token.function{color:#f08d49;}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555;}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd;}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699;}.token.operator,.token.entity,.token.url{color:#67cdcc;}.token.important,.token.bold{font-weight:bold;}.token.italic{font-style:italic;}.token.entity{cursor:help;}.token.inserted{color:green;}pre.line-numbers{padding-bottom:.8em;padding-left:3.3em;counter-reset:linenumber}pre.line-numbers>code{white-space:inherit font-size:15px}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:3em;font-size:100%;left:-0.1em;width:3em;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.9em;text-align:right;background:#272c33}div.code-toolbar{font-size:100%;border-radius:4px;position:relative;box-shadow:0 0 20px 5px rgba(0,0,0,.4);padding-top:30px;background-color:#161616;margin:20px 0 20px 0}.code-toolbar:before{content:" ";position:absolute;-webkit-border-radius:50%;border-radius:50%;background:#fc625d;width:11px;height:11px;left:10px;top:10px;-webkit-box-shadow:20px 0 #fdbc40,40px 0 #35cd4b;box-shadow:20px 0 #fdbc40,40px 0 #35cd4b;z-index:2}div.code-toolbar>.toolbar{padding-right:.4em;position:absolute;top:.09em;right:.2em;width:100%;text-align:center;}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar>.toolbar .toolbar-item{padding:0 1px 1px 3px;display:inline-block}div.code-toolbar>.toolbar button{cursor: pointer; transition: all .3s; position: absolute; background-color: transparent;right: 6px;top: 4px;font-size: 12px;line-height: 12px;padding: 5px 7px;border: 1px solid;border-radius: 2px;opacity: 0;color: #FFF;}div.code-toolbar:hover button{opacity:1;}div.code-toolbar>.toolbar:hover{text-decoration:none!important}div.code-toolbar>.div.code-toolbar>.toolbar button,div.code-toolbar>.toolbar span{font-family:'Ubuntu',sans-serif;font-weight:bold;font-size:.9em;opacity:0;color:#FFF;}div.code-toolbar:hover .toolbar span{opacity:1;}#post-content .code-block-fullscreen{padding-top:32px;position:fixed;width:80vw;height:80vh;min-height:80vh;top:0;left:0;right:0;bottom:0;margin:auto;z-index:9999999;box-shadow:0 0 20px 0 rgba(255,255,255,.4);animation:elastic 1s;overflow:hidden;background:#21252a;}.code-block-fullscreen code{--widthA:100%;--widthB:calc(var(--widthA) - 30px);height:var(--widthB);min-height:99%;overflow-y:scroll;height:100%;}.code-block-fullscreen-html-scroll{overflow:hidden;}.shelter{width:6.5px;height:6.5px;z-index:100;background:#313238;position:absolute;bottom:0;right:0;}.max-img::-webkit-scrollbar-track-piece{background:#eee}.max-img::-webkit-scrollbar{width:8px;height:6px}.max-img::-webkit-scrollbar-thumb{border-radius:6px;background-color:#777}.max-img::-webkit-scrollbar-thumb:hover{background-color:#bbb}pre::-webkit-scrollbar-track-piece{}pre::-webkit-scrollbar{width:8px;height:6px}pre::-webkit-scrollbar-thumb{border-radius:4px;background-color:#cbcbcb}pre::-webkit-scrollbar-thumb:hover{background-color:#bbb}code::-webkit-scrollbar-track-piece{}code::-webkit-scrollbar{width:6px;height:6px}code::-webkit-scrollbar-thumb{border-radius:6px;background-color:#777}code::-webkit-scrollbar-thumb:hover{background-color:#bbb}html::-webkit-scrollbar-track-piece{background:#eee}html::-webkit-scrollbar{width:8px;height:6px}html::-webkit-scrollbar-thumb{border-radius:4px;background-color:#cbcbcb}html::-webkit-scrollbar-thumb:hover{background-color:#bbb}div.code-toolbar>.toolbar>.toolbar-item:first-child span::before {content: attr(data-rel);}div.code-toolbar>.toolbar>.toolbar-item>button[data-copy-state="copy"]::before {content: "Copy"}div.code-toolbar>.toolbar>.toolbar-item>button[data-copy-state="copy-success"]::before {content: "Copied"}

随后,我们在baseof.html文件中引入prismclipboard两个javascript文件。

<script src="{{ .Site.BaseURL }}js/clipboard.min.js"></script>
<script src="{{ .Site.BaseURL }}js/prism.min.js" ></script>

查看 秋码记录 代码块显示效果。

在这里插入图片描述

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为您提供一个简单的方案。您可以使用Prism.js和Clipboard.js两个JavaScript库来实现您的需求。 1. 首先,将Prism.js和Clipboard.js的CDN链接添加到您的HTML文件中: ``` <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/themes/prism.min.css" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/prism.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/plugins/autoloader/prism-autoloader.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.8/clipboard.min.js"></script> ``` 2. 在您的HTML中添加一个`<pre>`标签用于包含您的代码,同时添加一个`<button>`标签用于复制代码: ``` <pre class="language-cpp"><code>// 在这里添加您的C++代码</code></pre> <button class="btn" data-clipboard-target=".language-cpp"><i class="fa fa-copy"></i> 复制代码</button> ``` 3. 在您的JavaScript文件中初始化Prism.js和Clipboard.js,并为复制按钮添加事件监听器: ``` <script> // 初始化Prism.js Prism.highlightAll(); // 初始化Clipboard.js var clipboard = new ClipboardJS('.btn'); // 添加事件监听器 clipboard.on('success', function(e) { e.clearSelection(); alert('代码复制成功!'); }); clipboard.on('error', function(e) { alert('代码复制失败!'); }); </script> ``` 4. 最后,您需要引入FontAwesome图标库来显示复制按钮的图标。在您的HTML文件中添加以下CDN链接: ``` <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" /> ``` 这样,您就可以在您的网页上展示C++代码,并支持语法高亮和一键复制了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甄齐才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值