DrupalでGoogle Code-Prettifyを使う

DrupalでGoogle Code-Prettifyを使う

1つ前の記事で、サンプルソースを貼ったものの、色分けされておらず読みにくいと思い、ググったところ、「Google Code-Prettify」の記事を見つけました。

「Adding stylesheets (CSS) and JavaScript (JS) to a Drupal theme」にJavaScriptの追加方法が載っていますが、「Policy on 3rd party assets on Drupal.org」によると外部のJavaScriptを使用するのは推奨されていません。「strongly discouraged」とのことです。。パフォーマンスやセキュリティ上の理由とのことです。

Google Code-Prettifyをダウンロードして使用する方法も上記の記事に載っているのですが、少し面倒そうなので、今回はDrupal的には推奨されていない外部のJavaScriptを使用する方法で設定します。

libraries.ymlへの指定

「Adding stylesheets (CSS) and JavaScript (JS) to a Drupal theme」には、外部のJavaScriptを使用する例として、以下のように記述されています。


angular.angularjs:
  remote: https://github.com/angular
  version: 1.4.4
  license:
    name: MIT
    url: https://github.com/angular/angular.js/blob/master/LICENSE
    gpl-compatible: true
  js:
    https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js: { type: external, minified: true }

とても長く、ほとんど不要と判断し、このサイト用のdrupal_study.libraries.ymlには、以下の設定のみを追記しました。


google_code_prettify:
  js:
    https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js: { type: external, minified: true }

ライブラリ名を「google_code_prettify」とし、「js:」のところに、Google Code-PrettifyのURLと「{ type: external, minified: true }」を記述しています。

ちなみに、「Google Code-Prettify」について検索すると「cdn.rawgit.com」を使用している記事が多く見つかりますが、「Google Code-Prettify」の記事によると、「2019年10月には今まで提供されていた RawGit の CDN(cdn.rawgit.com)は終了し、上記の cdn.jsdelivr.net に変更になっています」とのことです。

Twig templateへの指定

すべてのページで使用する場合は、libraries.ymlの「global-scripts:」にJavaScriptを指定すれば良いようですが、今回は、コンテンツタイプ「blog」の場合のみ、上記のJavaScriptを読み込む事にします。そのため、以下の「node--blog.html.twig」にライブラリの読み込みの指定を行います。


themes/
└──  drupal_study/
     └── templates/
         └── content/
             └── node--blog.html.twig

node--blog.html.twigに、以下のように attach_library() を記述することによりライブラリを使用することができます。attach_library() の引数として、'テーマ名/ライブラリ名'を指定します。


{%
  set classes = [
    'node',
    'node--type-' ~ node.bundle|clean_class,
    node.isPromoted() ? 'node--promoted',
    node.isSticky() ? 'node--sticky',
    not node.isPublished() ? 'node--unpublished',
    view_mode ? 'node--view-mode-' ~ view_mode|clean_class,
  ]
%}
{{ attach_library('classy/node') }}
{{ attach_library('drupal_study/google_code_prettify') }}
<article{{ attributes.addClass(classes) }}>

 

phpのコードへの適用例

phpのコードに対してこれを適用した例は、1つ前の以下の記事となります。

カテゴリー

コメント

https://bestadalafil.com/ - is generic cialis available Uk Research Chemicals Clomid Yctrii <a href="https://bestadalafil.com/">Cialis</a> Acheter Sildenafil 120 Mg Uzowyr https://bestadalafil.com/ - purchase cialis Gcniys
名前
Undedia

匿名 (未認証ユーザー) による「」への返信

http://slkjfdf.net/ - Ebuemix <a href="http://slkjfdf.net/">Osiodoy</a> sdx.kvik.drupal-study.info.esv.uy http://slkjfdf.net/
名前
eruweritefec

匿名 (未認証ユーザー) による「」への返信

http://slkjfdf.net/ - Inetemecy <a href="http://slkjfdf.net/">Asevojaec</a> hni.jvly.drupal-study.info.ipi.ps http://slkjfdf.net/
名前
oijozizahuxoy

匿名 (未認証ユーザー) による「」への返信

http://slkjfdf.net/ - Fifikokog <a href="http://slkjfdf.net/">Ohodapv</a> lmu.eqwm.drupal-study.info.asu.st http://slkjfdf.net/
名前
afriotayarore

匿名 (未認証ユーザー) による「」への返信

http://slkjfdf.net/ - Uforaz <a href="http://slkjfdf.net/">Osunosib</a> ljz.dvlx.drupal-study.info.fzt.nk http://slkjfdf.net/
名前
iyutgeroij
Cephalexin Antibiotic Side Effects <a href=https://iverstromectol.com/>buying ivermectin</a> plasma and red blood cells from one body to another.
名前
Guinlep
However, limited data exist about its efficacy for other pain syndromes <a href=https://bestcialis20mg.com/>cheap cialis online pharmacy</a> Following treatment, lung specimens were blocked with PBS containing 1 bovine serum at room temperature and incubated with primary antibody at 4 C
名前
endarorgo

コメントを追加

CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。
画像CAPTCHA
画像内に表示されている文字列を入力してください。