prism.js(1.9.0)を WordPress で利用する

Posted by muchag | Library & PlugIn & AddIn,WordPress |
初回投稿:2017-12-07 (木) 22:30:03 | 最終更新:2021-04-02 (金) 18:45:33

今度こそ、長年愛用してきた iG:Syntax Hiliter とおさらばすることになりそう。
寂しい><
前回

公式:Prism

【環境】
PrismJS: 1.9.0
導入
設定

公式サイトの ダウンロードページ にて設定。

わけも分からず、欲張って入れたので
Total filesize: 146.01KB (96% JavaScript + 4% CSS)
あちゃーw

()内は、<code class=”language-xxxxx”> の xxxxx に設定すべき値。
公式:Supported languages

  • Compression level:
    • カスタマイズをしたいので、[Development version] を選択
  • Core
  • Themes
    • ダークテーマが好きなので、[Okaidia]
  • Languages
    • Markup(markup)
    • CSS(css)
    • C-like(clike)
    • JavaScript(javascript)
    • ActionScript(actionscript)
    • Apache Configuration(apacheconf)
    • AppleScript(applescript)
    • Bash(bash)
    • BASIC(basic)
    • Batch(batch)
    • C(c)
    • C#(csharp)
    • C++(cpp)
    • CoffeeScript(coffeescript)
    • Diff(diff)
    • Docker(docker)
    • Git(git)
    • Go(go)
    • Haskel(haskell)
    • HTTP(http)
    • ini(ini)
    • Java(java)
    • JSON(json)
    • Less(less)
    • Markdown(markdown)
    • nginx(nginx)
    • Objective-C(objectivec)
    • PHP(php)
    • .properties(properties)
    • Python(python)
    • Ruby(ruby)
    • Sass (Sass)(sass)
    • Sass (Scss)(scss)
    • Scala(scala)
    • Smarty(smarty)
    • SQL(sql)
    • Stylus(stylus)
    • Swift(swift)
    • Textile(textile)
    • Twig(twig)
    • TypeScript(typescript)
    • VB.Net(vbnet)
    • vim(vim)
    • Wiki markup(wiki)
    • YAML(yaml)
  • Plugins
    • Line Highlight
    • Line Numbers
    • Autolinker
    • Show Language
    • JSONP Highlight
    • Highlight Keywords
    • Remove initial line feed
    • Command Line
    • Unescaped Markup
    • Toolbar

Blogger.comにPrism.jsをCDNで導入する(2020-11-20)

DL

ページ下部より .js と .css を個別に DL。

配置

テーマディレクトリ内に配置。

/theme_directory/css/prism.css
/theme_directory/js/prism.js
WordPress へ組み込み
/wp-includes/functions.php

こちらだと、WordPress をアップデートする度に下記設定が消えてしまうので

/wp-content/themes/[theme_name]/functions.php

へ、下記を追加。
nobbi LABO:WordPressでシンタックスハイライトならPrism.jsが軽量&多機能でベストチョイス(2017-03-27)


/*---------------------------------------------------------
 * Prism.jsの呼び出し
 ----------------------------------------------------------*/
add_action( 'wp_enqueue_scripts', 'startPrism' );
function startPrism() {

 	wp_enqueue_style( 'prism-style', get_stylesheet_directory_uri() . '/css/prism.css' );
 	wp_enqueue_script( 'prism-script', get_stylesheet_directory_uri() . '/js/prism.js', array('jquery'), '20171206', true );
}
利用
書式

<pre>
<code>

</code>
</pre>

この中にコードを書くだけ。

メタ文字

HTML タグなどは、そのまま書くとおかしくなるので
調整が必要。

エスケープ(サニタイズ)

Syncer:HTML Escape / Unescape
mwSoft Tools:HTMLエスケープ(サニタイズ)ツール

スクリプト扱い

公式:Unescaped markup


<script type="text/plain" class="language-markup">
<p>Example</p>
</script>

と書かれていたけど、実際にやってみるとうまく表示されない。

コメント化

公式:Unescaped markup


<pre class="language-markup"><code><!--
<p>Example</p>
--></code></pre>

と書かれていたけど、実際にやってみるとうまく表示されない。

改行

個人的には、下記のように、code タグとコード本文は改行して記述したいのだけど


<pre class="line-numbers" data-language="HTML" data-start="" data-line="">
<code class="language-markup">
<script type=&quot;text/plain&quot; class=&quot;language-markup&quot;>
<p>Example</p>
</script>
</code>
</pre>

このように記述すると、下記のごとく、

  • 先頭行が空白
  • 最後尾に空白

という見た目になってしまう。



<script type="text/plain" class="language-markup">
<p>Example</p>
</script>

なので、

  • 公式:Remove initial line feed を導入することで先頭行を解決
  • code 閉じタグをコード本文の最後に続けることで最後尾を解決

<pre class="line-numbers" data-language="HTML" data-start="" data-line="">
<code class="language-markup">
<script type=&quot;text/plain&quot; class=&quot;language-markup&quot;>
<p>Example</p>
</script></code>
</pre>
HTML(MarkUp)

上記改行も考慮しつつ試した結果
最初と最後の行をコメント識別子と同じ行に記述する。


<pre class="line-numbers" data-language="HTML" data-start="" data-line="">
<code class="language-markup"><pre class="language-markup"><code><!--<script type=&quot;text/plain&quot; class=&quot;language-markup&quot;>
<p>Example</p>
</script></code>
</pre>-->
class

<code> へ class=”language-xxxxx” と指定。


<pre>
<code class="language-xxxxx">

</code>
</pre>

xxxxx に書くべきワードは、上述。

行番号

pre タグへ data-line 属性を記述。

出力行

class=”command-line” 時に data-output 属性を記述して、行番号を指定することで
当該行へプロンプトを出さないように指定できる。

data-filter-output

data-filter-output 属性を記述して、任意の文字列を指定することで
当該行へプロンプトを出さないように指定できる。

行数が多かったり、後で変更が入ったときなど
行番号を指定するのはナンセンスな場合に有効。

参考サイト

打ち聞かせ:シンタックスハイライター Prism JS を使用する(2019-01-20)コマンドライン表示する( Command Line plugin )

サンプル
クラスの設定方法

公式:Different markup

言語毎のサンプル

公式:Per language examples

カスタマイズ
言語表記

下記優先順位にて決定される。

  1. <pre data-language=”xxxxx”>
  2. var Languages に定義されている内容
  3. <code class=”language-xxxxx”>

<code class=”language-xxxxx”> の xxxxx の部分に
prism.js 内に定義されていない語句を書けば、
Plain Text と判断されて、文字色は白一色となり
言語名は、xxxxx がパスカライズされる。

文字サイズ

言語表記が小さいと感じたので、font-size を修正。


pre.code-toolbar > .toolbar a,
pre.code-toolbar > .toolbar button,
pre.code-toolbar > .toolbar span {
	color: #bbb;
	/* font-size: .8em; ← コメントアウト */
	padding: 0 .5em;
	background: #f5f2f0;
	background: rgba(224, 224, 224, 0.2);
	box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
	border-radius: .5em;
}
行ハイライト

.line-highlight {
	position: absolute;
	left: 0;
	right: 0;
	padding: inherit 0;
	margin-top: 1em; /* Same as .prism’s padding-top */

	background: hsla(24, 20%, 50%,.08);
-	background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+	background: linear-gradient(to right, rgba(255, 255, 0, .3) 70%, rgba(255, 255, 0, 0));

138行目。
hsla はピンとこないので、rgba に書き換えて、アルファ値を調整した。

文字色

諸々調整。

Posted by muchag | Library & PlugIn & AddIn,WordPress |
初回投稿:2017-12-07 (木) 22:30:03 | 最終更新:2021-04-02 (金) 18:45:33

AngularJS Eclipse 1.2.0

Posted by muchag | AngularJS,Eclipse,Library & PlugIn & AddIn |
初回投稿:2017-09-03 (日) 11:21:41 | 最終更新:2018-11-18 (日) 18:59:30

AngularJS 用プラグイン。
eclipse marketplace:AngularJS Eclipse

【環境】
AngularJS Eclipse: 1.2.0.201606160950
Eclipse: Oxygen (4.7)
OS: Windows10 Pro 64bit
インストール

マーケットプレイスからインストール。

適用

プロジェクトのコンテキストメニュー
[構成]-[Convert to AngularJS Project…]

Term Plugin の
[モジュール] というダイアログが出るので [適用して閉じる]

設定
検証

プロジェクトのコンテキストメニュー
[プロパティー]

左ペン [検証]-[HTML 構文] [プロジェクト固有の設定を可能にする] にチェック
[次の検証問題の重大度レベルを選択:]

要素
[不明なタグ名]-[無視] [無効なタグ名]-[無視]
属性
[未定義の属性名]-[無視] [未定義の属性値]-[無視] [適用して閉じる] [検証設定が変更されました] ダイアログがでるので [はい]
アウトライン
[ウィンドウ]-[ビューの表示]-[その他] [JavaScript]-[Tern Outline] で、専用アウトラインビューが開く。

参考サイト

Java Code Geeks:Eclipse IDE AngularJS Tutorial

Posted by muchag | AngularJS,Eclipse,Library & PlugIn & AddIn |
初回投稿:2017-09-03 (日) 11:21:41 | 最終更新:2018-11-18 (日) 18:59:30

EPP Marketplace Client

Posted by muchag | Eclipse,Library & PlugIn & AddIn |
初回投稿:2017-09-03 (日) 10:35:24 | 最終更新:2017-09-03 (日) 10:35:24

プラグイン配布所のクライアント。

【環境】
Eclipse:Oxygen (4.7)
EPP Marketplace Client:1.5.1.v20160929-1432
OS:Windows10 Pro 64bit
概要

Marketplace もプラグインなんだそうで
Oxygen インストール時には、存在しなかったので
手動で追加。

インストール

2017-09-03 現在
Oxygen 用マーケットプレイス配布ページ は、まだ存在しないようなので
Neon 用マーケットプレイス配布ページ からインストールした。

これによる不具合が起きませんように。。。

Posted by muchag | Eclipse,Library & PlugIn & AddIn |
初回投稿:2017-09-03 (日) 10:35:24 | 最終更新:2017-09-03 (日) 10:35:24

remote: Invalid username or password.

Posted by muchag | Git |
初回投稿:2017-08-15 (火) 22:47:27 | 最終更新:2017-08-15 (火) 22:47:27

【環境】
SourceTree:2.1.10
経緯

2.1.10 へのアップデートダイアログが出たので
嫌な予感がしながらもアップデートしてみた。

プッシュはおろかプルもできなくなった。

前のアップデートでも壊れたので嫌な予感がしたのよね。。。

エラー文言は下記の通り。

エラー
git -c diff.mnemonicprefix=false -c core.quotepath=false push -v –tags origin master:master
remote: Invalid username or password.
fatal: Authentication failed for ‘https://github.com/[user_name]/[repository_name].git/’
Pushing to https://github.com/[user_name]/[repository_name].git/
解決

試行錯誤は後で書くとして
まずは解決方法。

stackoverflow:Sourcetree remote: Invalid username or password(2017-08-11)

2.1.8.0 のバグだそうで。。。

[ツール]-[オプション] [Git] タブ
[Git バージョン]-[内蔵 Git を更新]

「本当にいいの?」って聞かれるので「いいの!」と答える。
直りました。。。

せっかく4日前の書き込みなのに、
辿り着くまで時間がかかった。 😥

同じことに悩まされている方がいらっしゃるかしらね~。

試行錯誤

なんか色々とやって、メモしておきたいことがあるんだけど
時間がないので、スキップ。

Posted by muchag | Git |
初回投稿:2017-08-15 (火) 22:47:27 | 最終更新:2017-08-15 (火) 22:47:27

クラス -> ES6(ES2015)

Posted by muchag | JavaScript |
初回投稿:2017-08-15 (火) 13:53:49 | 最終更新:2017-08-15 (火) 14:14:29

いよいよわかりやすい class がきた~♪

MDN:クラス

前提

まだ全然わかっていないけど、
本日あちこち読んでみて、理解したと思えることを記述。
理解が深まるに連れて、改変。

書き方も色々とあるみたいだけど
他言語とできるだけ似た形で
私が理解しやすい書式を採用。

書式
  1. class Humane {
  2.  
  3.     // コンストラクタ
  4.     constructor(name) {
  5.    
  6.         // メンバ変数(プロパティ)
  7.         this.name = name
  8.         this.age = 20;
  9.     }
  10.    
  11.     // 一般メソッド(prototype)
  12.     eat() {
  13.     }
  14.    
  15.     // 静的メソッド(static)
  16.     static sleep() {
  17.     }
  18.    
  19.     // getter
  20.     get age() {
  21.    
  22.         return this.age;
  23.     }
  24.    
  25.     // setter
  26.     set age(age) {
  27.    
  28.         this.age = age;
  29.     }
  30. }
メンバ変数(プロパティ)

メンバ変数は、コンストラクタの中へ記述。

メソッド

function キーワードを抜いて記述。

コンストラクタ

クラスがインスタンス化される際に一度だけ実行される。

一般メソッド

インスタンス化しないと利用できない。

静的メソッド

インスタンス化せずに利用する。
インスタンス化すると利用できない! らしい。。。

ユーティリティ系に利用されることが多い。

getter, setter

上記のように記述することで、クラスプロパティのように利用できる。

  1. var hayata = new Human('Hayata');
  2.  
  3. // setter を利用
  4. hayata.age = 42000;
  5.  
  6. // getter を利用
  7. var ultramanAge = hayata.age;
  8.  
  9. console.log(ultramanAge + '歳');
  10.  
  11. // 42000歳
継承
書式
  1. class Taiin extends Humane {
  2.  
  3.     constructor(name) {
  4.    
  5.         // 親クラスのコンストラクタを呼び出し
  6.         super();
  7.     }
  8.    
  9.     eat() {
  10.    
  11.         // 親クラスのメソッドを呼び出し
  12.         super.eat();
  13.     }
  14.    
  15.     change() {
  16.     }
  17. }
親クラス

親(基底、スーパー)クラスの呼び出しキーワードは super。

多重継承

できない。

参考サイト

ウェブの葉:クラス構文について[class][コンストラクタ][ES6](2017-06-03)
HTML5Experts.jp:JavaScriptにもクラスがやってきた!JavaScriptの新しいclass構文をマスターしよう(2015-10-16)

Posted by muchag | JavaScript |
初回投稿:2017-08-15 (火) 13:53:49 | 最終更新:2017-08-15 (火) 14:14:29

結果セット整形

Posted by muchag | Symfony 1.x |
初回投稿:2016-11-19 (土) 12:04:24 | 最終更新:2016-11-19 (土) 12:04:24

DQL における、結果セットの整形。
Data Hydrators

【環境】
Symfony:1.4.13
doctrine:1.2.4
書式

execute, fetchOne, fetchAll などの第2引数に指定する。

  1. $q = Doctrine_Core::getTable('User')
  2.     ->createQuery('u')
  3.     ->leftJoin('u.Email e')
  4.     ->where('u.username = ?', 'jwage');
  5.  
  6. $user = $q->fetchOne(array(), Doctrine_Core::HYDRATE_RECORD);
詳細
HYDRATE_RECORD

レコードをオブジェクトとして取得。
デフォルト値なので、省略すればこれになる。

HYDRATE_ARRAY

連想配列として取得。

HYDRATE_SCALAR

連想配列として取得。
キーが、カラム名_フィールド名 という書式になっている。

HYDRATE_SINGLE_SCALAR

配列として取得。
WHERE 句で指定したカラムの値を、
添え字 0 から始まる配列の要素に格納(しているように見える)。

HYDRATE_ON_DEMAND

公式サイトを読む限り、
「1レコードしか読み込まないのでメモリを節約できるよ」
って書いてある気がするけど
実験したら、時間制限に引っ掛かって戻ってこなかったので
今回はパス。

HYDRATE_RECORD_HIERARCHY

nested ビヘイビアを利用しているときに使える引数っぽい。
オブジェクトとして取得。

HYDRATE_ARRAY_HIERARCHY

nested ビヘイビアを利用しているときに使える引数っぽい。
連想配列として取得。

HYDRATE_NONE

配列として取得。
取得してきたデータを、添え字 0 から始まる配列の要素に格納(しているように見える)。

HYDRATE_ARRAY_SHALLOW

連想配列として取得。
SELECT で指定したカラムだけを取得。

※下2つは、下記参考サイトから拾ってきた。
公式サイトに全種類が載っていないのは不思議・・・

HYDRATE_RECORD_SHALLOW

上記定数を参考に、こんなのもあるかと思ったけどなかったw

参考サイト

stackoverflow:Select One column Doctrine DQL(2013-01-19)

Posted by muchag | Symfony 1.x |
初回投稿:2016-11-19 (土) 12:04:24 | 最終更新:2016-11-19 (土) 12:04:24

スクリプト -> 9Patch

Posted by muchag | Photoshop |
初回投稿:2016-05-20 (金) 19:18:36 | 最終更新:2016-05-21 (土) 13:14:47

9Patch ファイルを出力するスクリプト。

【環境】
Photoshop:CS6
OS:Windows 10 Home 64bit
作り方

以前、Android アプリを製作したときの記事。
draw9patch.bat

元画像の外周に 1px の余白を取り、黒(#000000)の塗りつぶしを付ける
.9.png という拡張子で保存する(png でなくてもいいみたい?)

引き伸ばす領域

元画像の左端の余白、該当箇所にマーキング。基本は上下2箇所
元画像の上端の余白、該当箇所にマーキング。基本は左右2箇所

コンテンツ領域

引き伸ばしたくない領域
元画像の右端の余白、該当箇所にマーキング。基本は内部1箇所
元画像の下端の余白、該当箇所にマーキング。基本は内部1箇所

基本タイプイメージ
patch 領域
引き伸ばし領域
コンテンツ領域
JSX
仕様
  • 引き伸ばす範囲は、元画像の周囲 1px 部分
  • コンテンツ領域は、元画像の周囲 1px 以外の部分
  • 2行目に元となる PSD ファイル名を列挙(利用者が入力)
    • Android 側、解像度名に対応する順番にすること
    • 現仕様では、6種のサイズを吐き出すことになっているけど、不要なものは削除可能
    • 不要なものを削除する場合は、ファイル名と同時に、Android 側、解像度名も削除すること
  • 元画像の幅と高さは自由
  • 元画像は全て同一ディレクトリに配置
  • スクリプト実行前に、元画像の最初の PSD ファイルを開いておく
  • 元画像と同一ディレクトリに .9.png ファイルが保存される
    • .9.png ファイルの名称は、splash_(Android 側、解像度名)
  • 元画像のアクティブレイヤーが「塗りつぶし」できないレイヤーだとエラーになる
  • ExtendScript Toolkit から実行したので、Photoshop 本体からの実行は試してない
コード

iG:Syntax Hiliter だとバグるので、CodePen。。。

See the Pen Making 9Patch with Photoshop CS6 by muchag (@muchag) on CodePen.

参考サイト

Life goes on:PhotoShop CS5でAndroid用9patchを作るのに便利なjsx(2011-08-12)

Posted by muchag | Photoshop |
初回投稿:2016-05-20 (金) 19:18:36 | 最終更新:2016-05-21 (土) 13:14:47

Windows10 の画面明るさ調整

Posted by muchag | Windows |
初回投稿:2016-05-20 (金) 15:49:35 | 最終更新:2016-05-20 (金) 15:49:35

【環境】
Windows: 10 Home 64bit
状況

Windows10 の画面はやたら明るい。

2台の PC で、モニタを共有しているので
モニタの明るさ調整は利用できない。

解決方法

Google 先生に質問してみたけど
モニタが PC と分離している場合には
(分離しているのが普通だと思うんだけどな~・・・)
明るさ調整機能がないとか。

なので、グラボのアプリを利用して調整。

デスクトップコンテキストメニュー
[NVIDIA コントロールパネル] [ディスプレイ]-[デスクトップ カラー設定の調整] [2. カラーの設定方法を選択します。]-[NVIDIA の設定を使用する] ここで、[明るさ][コントラスト] を調整することで、少し落ち着いたけど
まだ目がチカチカしている気がする。。。

Posted by muchag | Windows |
初回投稿:2016-05-20 (金) 15:49:35 | 最終更新:2016-05-20 (金) 15:49:35

Module

Posted by muchag | AngularJS |
初回投稿:2016-04-17 (日) 15:38:50 | 最終更新:2017-08-15 (火) 15:06:36


公式(1.4.10):AngularJS API Docs

【環境】
AngularJS:1.4.3
ng (core module)

コアモジュール。
本体だけで事足りる。
これ以外は、必要ファイルを読み込む必要がある。

ngRoute
ngAnimate
ngAria
ngResource
ngCookies
ngTouch
ngSanitize
ngMock
Posted by muchag | AngularJS |
初回投稿:2016-04-17 (日) 15:38:50 | 最終更新:2017-08-15 (火) 15:06:36

C ドライブの掃除

Posted by muchag | Windows |
初回投稿:2016-04-14 (木) 15:48:08 | 最終更新:2016-04-14 (木) 15:48:08

気がつけば、C ドライブの空き容量が、0.9G。
え?
何が起きた?
という事態になってから、あれこれ手を打ってきたけど
次回以降もあり得るので、メモ。

【環境】
Windows: Home 64bit SP1
状況

C ドライブは、SSD 128GB。

で、エクスプローラの C ドライブのプロパティで見ると
容量合計は、101GB。

アプリケーションのインストール先は
他のボリュームを指定するように心掛けてきたけど
どうしても C ドライブにもインストールされるものがあるので
膨張し続けている。

Windows ディレクトリ

と、思ったら、意外に Windows ディレクトリの容量が大きかった。
Windows ディレクトリだけで、40GBって。。。

合計容量

あれ?
でも、それでも、C ドライブ直下の全ディレクトリ合計値は
60GB みたい。

あれれ?
(今のところ意味不明)

対応策

今までに行ってきたものも含めて、C ドライブ容量削減手立てメモ。

ダウンロード

ダウンロードして利用する方に夢中になっていて
放置しているファイルがある。

アプリケーション(主にゲーム orz)のインストールファイルなんかは
恐ろしいサイズなので、この辺りを整理。

CBS

意外に場所を取っていたログファイル。

Windows Update が行われた際に、バックアップしてある情報らしい。

削除ではなく、移動が望ましい、との記事を見かけたので
別ボリュームへ退避。

Posted by muchag | Windows |
初回投稿:2016-04-14 (木) 15:48:08 | 最終更新:2016-04-14 (木) 15:48:08
« 前ページへ次ページへ »