PR PR
宝島社
¥990 (2024/09/22 13:28時点 | Amazon調べ)

BloggerブログにてSyntaxHighlighter(シンタックスハイライト)を導入する方法

スポンサーリンク
新着情報
2023.04.09
2023.04.06
2023.04.03
2023.03.19
スポンサーリンク
スポンサーリンク

この記事は2014年4月19日の1年以上前に書かれたものです。現在は状況が異なる可能性がありますのでご注意ください。

記事内に広告が含まれています。

昨日、
当ブログに使用している、

スポンサーリンク

スポンサーリンク

SyntaxHighlighter(シンタックスハイライト)の公開されているサーバ?が著しく遅かった為、

Syntax Highlighter(シンタックスハイライト)の問題で待機中…。agorbatchev.typepad.com


サーバとして使用可能な方法を探ってみました。

Bloggerブログには、
サーバ機能がないのですが、
同じGoogleのサービスでGoogleDriveがあります。

これは以前に、

CSSとjavaの外部ファイル化の時にも記事(紹介)にしました。

Bloggerブログ CSS外部化する方法。ページ表示速度を高速化
CSS外部化に続き、GoogleDriveへのJavascriptの外部化

これを参考にして、
同じことができるのではないかと思いました。

結果、
できました。

備忘録としての意味も込めて簡単に投稿しておきます。

さて、
下準備ですが、

まずは、

SyntaxHighlighterのHPに行き該当バージョンのものをダウンロードします。

SyntaxHighlighter - Download

最新バージョンであれば、
上部赤い四角枠をクリックしてダウンロードします。

下部に以前のバージョンがあるので、
以前のバージョンが良ければ該当バージョンをクリックしてダウンロードします。

そして、

ダウンロードした圧縮ファイル(zipファイルを解凍します。

その解凍したファイル内容を、
GoogleDriveにそのままアップロードします。

そして、

以前CSSとjavaの外部ファイル化で紹介したように、

『web上で一般公開』
の設定をします。

そして、
使用するJavaScriptファイルのURLをコピーしておきます。
(複数の場合はその数分)

ここからも
以前紹介したCSSとjavaの外部ファイル化と同じように、
GoogleDriveで共有設定にした際のURL
https://drive.google.com/file/d/○○○○○○○○○○○○○○/edit?usp=sharing
の○の部分と、

以下URLの様に上記URLの○の部分をくっつけます。
https://googledrive.com/host/○○○○○○○○○○○○○○○/

↑※ここが重要です。↑

上記の初めのURLのままでは、
公開されないので、
https://drive.google.com/host/
の後に英数字列をつなげます。

これまでは、

以下URLのようにしてライブラリを参照していました。

http://alexgorbatchev.com/pub/sh/current/styles/xxxx.css
http://alexgorbatchev.com/pub/sh/current/scripts/xxxxx.js
※xxxx部分はそれぞれ対応するライブラリファイルを記述して下さい。

(上記URLはバージョンアップにも対応していて、
最新バージョンへリダイレクトされるようです。)

これを、
先程GoogleDriveを使って取得した(得た)、

それぞれのJavaScriptやCSSの公開URLを指定するようにします。

例えば以下のように、

CSSの場合

<link href='https://googledrive.com/host/○○○○・・・/' rel='stylesheet' type='text/css'/>

JavaScriptの場合

<script src='https://googledrive.com/host/○○○○・・・/' type='text/javascript'/>

そして、
最後に、

Bloggerブログでも使用可能なようにいかソースを付け加えます。

SyntaxHighlighter.config.bloggerMode = true;

さらに、

オプション設定を使用可能にするように

SyntaxHighlighter.config.clipboardSwf = ';https://googledrive.com/host/○○○○・・・/';

swfファイルのURL

そして、

マウスオーバーした時に表示される文字が日本語になるように以下も記載します。

SyntaxHighlighter.config.strings.expandSource = 'ソースを展開';
SyntaxHighlighter.config.strings.viewSource = 'プレーン表示’;
SyntaxHighlighter.config.strings.copyToClipboard = 'クリップボードへコピー';
SyntaxHighlighter.config.strings.copyToClipboardConfirmation = 'クリップボードへコピーしました';
SyntaxHighlighter.config.strings.print = '印刷';
SyntaxHighlighter.config.strings.help = 'help';
SyntaxHighlighter.all();

そして、

オプション設定使用可能の部分とマウスオーバーした時に日本語表示される様にしたソースを、

以下の様にします。

<script language='javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.config.clipboardSwf = 'https://googledrive.com/host/○○○○・・・/';
SyntaxHighlighter.config.strings.expandSource = 'ソースを展開';
SyntaxHighlighter.config.strings.viewSource = 'プレーン表示';
SyntaxHighlighter.config.strings.copyToClipboard = 'クリップボードへコピー';
SyntaxHighlighter.config.strings.copyToClipboardConfirmation = 'クリップボードへコピーしました';
SyntaxHighlighter.config.strings.print = '印刷';
SyntaxHighlighter.config.strings.help = 'help';
SyntaxHighlighter.all();
</script>

取り急ぎ、

以上で終了です。

最後に、
テンプレートのheader内に上記ソースを入れて、
テンプレートの保存をします。

追記)

そのままですと、
SyntaxHighlighter(シンタックスハイライト)に、
マウスオーバーした際に、

  • クリップボードにコピー
  • プレーン表示
  • 印刷
  • ヘルプ

などの以下画像のようにのが表示されないので、

SyntaxHighlighter(シンタックスハイライト)のCSSファイルである、

shCore.cssの以下画像部分を、

GoogleDriveにアップロードした際の公開URLに変更することで、

以下画像のように、
ちゃんと表示されるようになります。

You may choose to prevent this website from aggregating and analyzing the actions you take here. Doing so will protect your privacy, but will also prevent the owner from learning from your actions and creating a better experience for you and other users.

コメント

スポンサーリンク
タイトルとURLをコピーしました