曾几何时,苦恼如何将本地写好的博文,更好的展示读者屏幕前?若只是简简单单的文章,其实还是很好的解决它的!可是,像我们这样写技术文章(有点牵强)的,在文章内容嵌入部分代码是在所难免的。
然而,由于没能将代码与文本区分开来,致使两者混在一起,分不出彼此。由此给读者带来了视觉上得不适,它并没有很好的像代码编辑器那样高亮。
下载 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
文件中引入prism
和clipboard
两个javascript
文件。
<script src="{{ .Site.BaseURL }}js/clipboard.min.js"></script>
<script src="{{ .Site.BaseURL }}js/prism.min.js" ></script>
查看 秋码记录 代码块显示效果。