ブログでソースコードを書く時にhighlight.jsが良さそうだったので導入しました。
参考サイト
【Blogger】コード表示に highlight.js を導入してみた | リモスキ
highlight.js を使えば、コードを見やすい形でブログに掲載できます。Blogger での導入方法をまとめました。
highlight.jsの設定
HTMLを編集
https://highlightjs.org/にアクセスしてコードを入手します。
</body>直前にコードを入れます。
今回入れたものを記載。表示スタイルはVs2015にしています。
<link href='//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/styles/vs2015.min.css' rel='stylesheet'/>
<script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min.js'/>
<script>hljs.highlightAll();</script>
保存して次にCSSです。文字がサイズの変更 CSS編集
</b:skin>の直前に入れます。
お疲れ様でした。
pre code.hljs {
font-size: 14px;
line-height: 1.4;
max-height: 500px;
}
リモスキさんのコードを使わせて頂きました。max-heightを指定しているので、長すぎる場合はスクロールバーが表示されます。
コードの掲載方法
HTMLはそのまま載せれないので特殊文字に変換します。
- HTML特殊文字変換ツールでコードを変換
-
変換したテキストを、以下のタグで囲む。
<pre><code>ここにコードを入力</code></pre>
コピーボタンの設置
ボタン押したらコピー出来るようにしたかったので、こちらのサイトを参考にカスタマイズしています。
highlight.js にソースコードをコピーするボタンを追加
ソースコードを色分けして表示できるシンタックスハイライター「 highlight.js 」にコピーボタンを設置する方法を書いていきます。
HTML編集
</body>直前にコードを入れます。
<script>
;(function(d){
if(!window.getSelection){
return
}
let pres = d.getElementsByTagName("pre") //preタグ取得
for(let i = 0; i < pres.length; i++){
let btn = d.createElement("button")
btn.className = "selectPre" //class名指定
btn.textContent = "Copy"
pres[i].appendChild(btn) //pre毎にコピーボタン付与
btn.addEventListener("click", codeCopy, false)
}
function codeCopy(){
let sel = window.getSelection()
const pre = this.parentNode
sel.selectAllChildren(pre)
sel.extend(pre, pre.childNodes.length-1)
d.execCommand("copy") //コードをコピー
setTimeout(function(){
sel.removeAllRanges() //0.5秒後に選択解除
}, 500)
}
})(document)
</script>
CSS編集
</b:skin>の直前に入れます。
pre{
position: relative;
}
.selectPre{
position: absolute;
top: 0em;
right: 0em;
border: none;
outline: none;
border-radius: 0px;
height: 1.4em;
padding: 0.9em;
line-height: 0em;
font-weight: bold;
background: #6495ED;
color: #ffffff;
cursor: pointer;
}
参考記事と同じデザインにしたかったんだけど、昔の記事なのかデザインが違ったので自分で変えました。
ボタンを押したら変化するようにしたいんですが、載ってなかったので保留中。
ボタンを押したら変化するようにしたいんですが、載ってなかったので保留中。
0 件のコメント:
コメントを投稿