TopWebサイト制作サービスパートナー募集運営会社お問い合わせ
ホーム
▶︎
基礎講座
▶︎
記事

【webflowでコードブロック】シンタックスハイライトで追加!

2022
12
21
基礎講座

webflowでは現状(2022年12月時点)、ソースコードを記事にする際のコードブロックを記述する機能が無い為、webflow内にセットアップする必要が有ります。本記事ではwebflowでシンタックスハイライトのコードブロック設定方法をご紹介します。

シンタックスハイライトとは
テキスト中の一部分を分類ごとに異なる色やフォントで表示すること。
コードブロックとは
プログラミングコードのまとまり。ソースコードを記事にする際に便利。

webflowのカスタムコードとは

webflowは有料プランでカスタムコード(コードを挿入することが出来る機能)を利用することが出来ます。カスタムコードとは、サイト全体、ページ単体、リッチテキストの一部に直接コーディングを加えることで、より拡張性のあるWEBサイトを構築することが可能です。カスタムコードはHTML、CSS、JavaScriptが使え、サーバーサイド言語は使用できません。

webflowのカスタムコードサイト

WEBサイト全体 Project Settings > Custom Code
webflow塾 カスタムコード

Project Settings > Custom Codeから設定することが出来ます。こちらはサイト全体に反映されます。Head Codeから下にスクロールするとBody Codeがそれぞれ有ります。

各ページ設定 Pages > 各ページ歯車
webflow カスタムコード

Pages > 各ページ歯車(設定)から下にスクロールすると、Custom Code欄が有ります。<head>タグ、</body>タグがそれぞれ有ります。

リッチテキスト設定
weflow熟 カスタムコード

ページの一部分(上部画像の左側)、もしくはCMSリッチテキスト(上部画像の右側)で設定することが出来ます。

シンタックスハイライトのコードブロック設定

webflowでテック系のサイト構築をする際に、有った方が良いのがシンタックスハイライトのコードブロック記述です。webflowでコードブロックをセットアップする際に、どうやらPrism.jsが良いとの情報が多かったので試しに実装してみると良い感じに導入出来ました。Prism.jsの導入でダウンロードしてアップロードする方法が有りますが、webflowにはCSS,JSファイルアップロード機能が無い為、CDN導入で進めます。CDN導入のリンクは下記となります。

https://cdnjs.com/libraries/prism

なお、下記サイトを参考にしております。

MarkeTECHさん

r3it.comさん

実際にwebflowにカスタムコードを導入する手順をご紹介します。

①Project Settings > Custom Codeからheadタグ内に下記を記載
②Project Settings > Custom Codeからbodyタグ内に下記を記載
③コードを実際に書いてみる
①Project Settings > Custom Codeから<head>タグ内に下記を記載
webflow塾 prism.js コードブロック

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.25.0/themes/prism-okaidia.min.css"/>

※上記のCopyを押すとコードがコピーできます

②Project Settings > Custom Codeから<body>タグ内に下記を記載
webflow塾 prism.js コードブロック

<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.25.0/prism.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.25.0/plugins/unescaped-markup/prism-unescaped-markup.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.25.0/plugins/toolbar/prism-toolbar.min.js" ></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.25.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js"></script>
③コードを実際に書いてみる

コードの書き方は下記の通りとなります。


<pre><code class="language-言語名">表示したいコード</code></pre>

例えば下記の通りCSSコードを記述してみます。

webflow塾 カスタムコード

上記のコードから下記の通りシンタックスハイライトで表示されます。


.box1 {
    padding: 0.5em 1em;
    margin: 2em 0;
    font-weight: bold;
    border: solid 3px #000000;
}
.box1 p {
    margin: 0; 
    padding: 0;
}

CSS以外の対応言語は下記となります。

https://prismjs.com/#supported-languages

HTMLのシンタックスハイライトの注意点

HTMLのコードを下記の通り記載してみると・・・。


<pre><code class="language-markup">
<html>
<body>
 <h1>タイトル</h1>
 <h2>サブタイトル</h2>
</body>
</html>
</code></pre>

下記の通りHTMLタグが消えて文字だけが表示されてしまいます。

HTMLタグを正確に表示するためには、<>記号を特殊文字に変換する必要が有ります。特殊文字変換ツールを活用する必要が有ります。

webflow塾 HTML変換ツール

上記のような形で変換したものをコードの中に入れて改めて出力してみます。

webflow塾 HTML変換

そうすると、HTMLのシンタックスハイライトのコードブロックが実現できます。以上がシンタックスハイライトのコードブロックでした。

Copyボタンのスタイル設定
webflow塾 コードブロック

シンタックスハイライトのコードブロックのコピーボタンのスタイル設定の仕方をご紹介します。スタイル設定はシンプルにクラスを「copy-to-clipboard-button」に設定して、スタイルを変更するだけ。好きなスタイルに変更してみましょう!

コードブロックが枠からはみ出した時の対応

webflow塾 コードブロックのはみ出し対応

今回、Prism.jsのコードブロックを導入する際に壁にぶち当たったのが、コードブロックが枠からはみ出してしまいどう対応すればよいか困ってしまったことが有りました。同じように悩んでいる方がいらっしゃいましたら下記を試してみてください。

親エレメントの横幅を決定する
webflowの親エレメントの横幅がAuto状態のまま、コードブロックを設定するとはみ出ることが判明しました。全ての親エレメントの横幅をAutoから%に変更。

関連記事