bloggerのコード表示をprettyprint → highlight.jsへ変更しました
𖧷 prettyprint
console.log("Hello, World!");
これは、
① Blogger管理画面に行く
② 適用されているテーマのHTMLの編集
③ <head>直下に
<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?skin=sunburst">
を入れて保存し、HTMLビューで
<pre class="prettyprint lang-js">コード内容</pre>
と記述することで実装していました。
𖧷 highlight.js
これを今回、以下のように変更。
console.log("Hello, World!");
上記の③のところで、</head>の直前に
<link href='https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css' rel='stylesheet'/>
<script src='https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js'/>
<script>hljs.highlightAll();</script>
<style>
.code-container {
position: relative;
margin: 2em 0;
padding: 0;
line-height: 1;
font-size: 15px;
background: #F7F7F7 !important;
border-radius: 4px;
overflow: auto;
}
pre code,
pre code.hljs {
display: block;
margin: 0;
padding: 2em 1em 1em;
line-height: 1.4;
overflow: auto;
color: #111 !important;
background: #F7F7F7 !important;
}
.copy-button {
position: absolute;
top: 0;
right: 0;
padding: 5px 10px;
background-color: #444;
border: none;
cursor: pointer;
font-size: 12px;
color: #fff;
transition: background-color 0.3s ease;
}
.copy-button:hover {
background-color: #666;
}
</style>
を、</body>の直前に
<script> //<![CDATA[
document.addEventListener("DOMContentLoaded", function() {
const codeBlocks = document.querySelectorAll("pre code");
codeBlocks.forEach(function(codeBlock) {
const codeContainer = document.createElement("div");
codeContainer.className = "code-container";
codeBlock.parentNode.insertBefore(codeContainer, codeBlock);
codeContainer.appendChild(codeBlock);
const copyButton = document.createElement("button");
copyButton.textContent = "Copy";
copyButton.className = "copy-button";
codeContainer.appendChild(copyButton);
copyButton.addEventListener("click", function() {
const codeText = codeBlock.textContent;
const tempTextArea = document.createElement("textarea");
tempTextArea.value = codeText;
document.body.appendChild(tempTextArea);
tempTextArea.select();
document.execCommand("copy");
document.body.removeChild(tempTextArea);
copyButton.textContent = "Copied!";
setTimeout(function() {
copyButton.textContent = "Copy";
}, 2000);
});
});
});
//]]>
を入れて保存し、HTMLビューで<pre><code class="language-javascript">コード内容</code></pre>
のように記述することで実装しました。
---------------------
※参考ページ:https://lifetechia.com/blogger-code-formatting-copy/#toc10
コメント
コメントを投稿