iG:Syntax Hiliter Ver.4.3 へのアップグレード
WordPress のプラグイン iG:Syntax Hiliter がバージョンアップしてたので、アップグレードしてみた。
使いやすくなったけど、使えなくなった shorthand tags もあった。
iG:Syntax Hiliter アップグレード
1. DL ~ アップロードまで
http://downloads.wordpress.org/plugin/igsyntax-hiliter.zip
からファイルをダウンロードして解凍する。
igsyntax-hiliter というディレクトリができるので、 wordpress/wp-content/plugins/ に FTP か何かでアップロードする。
ちなみに、私は Ver.3.5 あたりから Ver.4.3 にアップグレードしたので、ファイルを上書きすることはない。
バージョン | ファイル構成 |
---|---|
Ver.3.5 あたり | ig_syntax_hilite/ syntax_hilite.php |
Ver.4.3 | igsyntax-hiliter/ |
2. プラグインの停止
旧バージョンを停止、新バージョンを有効にする。
3. 旧ファイル群の削除
plugin/ から、以下のファイル・ディレクトリを削除する。
- ig_syntax_hilite/
- syntax_hilite.php
以上で新バージョンが利用できるようになったはずだ。
※ 慎重な人は古いファイルを取って置きたがるだろう。その場合、 plugin/tmp/ などのディレクトリに上記ファイルを移動させただけでは、プラグイン管理画面にしつこく旧バージョン情報が残ってしまう。ではどうするかというと plugin/tmp/tmp/ のようにして、 2 階層下のディレクトリに放り込んでやれば OK。
iG:Syntax Hiliter の使い方
いままでは
[php]
ほにゃらら
[/php]
とかやっていたものを、
[sourcecode language=”php”]
ほにゃらら
[/sourcecode]
のようにする。
shorthand tags と言って、今までどおり[php]のようにして使えるものもある。一方、[code]は今まで通り使えるが、 [CODE] のように大文字似しているものは認識しなくなった。
CODE [code]
- # 小文字で指定すると OK。
- print "Hello, World !";
CODE [CODE]
[CODE]
大文字で指定すると NG。
print “Hello, World !”;
[/CODE]
ハイライトの行数を指定できる
コード
[sourcecode language=”php” highlight=”3″]
<?php
phpinfo();
?>
[/sourcecode]
実際の表示
- <?php
- phpinfo();
- ?>
複数行をハイライト指定する場合はカンマ (,) で区切る。
ex. highlight=”1,3,5,7″
連続する行をハイライト指定する場合はハイフン (-) で。
ex. highlight=”1,3-7,13-20″
今まで使えてたと思われる shorthand tags の検証
[delphi]と[smarty]は NG だった。
ActionScript [as]
- # ほげ
- print "Hello, World !";
ASP [asp]
- # ほげ
- print "Hello, World !";
c [c]
- # ほげ
- print "Hello, World !";
c++ [cpp]
- # ほげ
- print "Hello, World !";
c# [csharp]
- # ほげ
- print "Hello, World !";
css [css]
- # ほげ
- print "Hello, World !";
CODE [code]
- # ほげ
- print "Hello, World !";
delphi [delphi]
[delphi]
# ほげ
print “Hello, World !”;
[/delphi]
html [html]
- # ほげ
- print "Hello, World !";
Java [java]
- # ほげ
- print "Hello, World !";
JavaScript [js]
- # ほげ
- print "Hello, World !";
MySQL [mysql]
- # ほげ
- print "Hello, World !";
perl [perl]
- # ほげ
- print "Hello, World !";
php [php]
※ 試しに 46 ~ 50 行目をハイライト
- <?php
- /**********************************************************************************
- DBConnect クラス利用方法
- // DB 接続
- $db1 = new DBConnect();
- // この時点で可能な処理
- // $mysqli = $db1->getMysqli()
- $table = $db1->getEscapeString($table); // POST データは信用できないので sql エスケープする
- $sql = "SELECT * FROM {$table}";
- $db1->setResult($sql);
- // この時点で可能な処理
- // $result = $db1->getResult();
- // $cols = $db1->getCols(); // 列数
- // $rows = $db1->getRows(); // 行数
- if (empty($db1->error)) { // エラーがなければ処理する
- } else {
- print "<p>エラーが発生しました。{$db1->error}</p>\n";
- print "<p>sql: " . $sql . "</p>\n";
- }
- // DB 接続のクローズ処理 (クラスのデストラクタで DB のクローズ処理がされる)
- if (!is_null($db1)) {
- unset($db1);
- }
- **********************************************************************************/
- class DBConnect
- {
- private $mysqli;
- private $result;
- private $rows = 0;
- private $cols = 0;
- public $error = "";
- // クラス定義時に呼び出される
- function __construct()
- {
- $this->setMysqli();
- }
- // クラスが削除されるときに呼び出される
- function __destruct()
- {
- $this->Close();
- }
- private function setMysqli()
- {
- include "config.inc.php";
- mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
- try { // DB への接続
- $mysqli = new mysqli("localhost", $DB_USER, $DB_PASS, $DB_NAME);
- $mysqli->set_charset('utf8');
- } catch (mysqli_sql_exception $e) {
- $this->$error .= $e->getMessage();
- }
- $this->mysqli = $mysqli;
- }
- public function getMysqli()
- {
- return $this->mysqli;
- }
- public function setResult($sql)
- {
- $mysqli = $this->mysqli;
- try {
- $result = $mysqli->query($sql);
- $this->cols = $mysqli->field_count;
- $this->rows = $result->num_rows;
- $this->result = $result;
- } catch (mysqli_sql_exception $e) {
- $this->error .= $e->getMessage();
- }
- }
- public function getResult()
- {
- return $this->result;
- }
- public function getCols()
- {
- return $this->cols;
- }
- public function getRows()
- {
- return $this->rows;
- }
- public function getEscapeString ($str)
- {
- $str = $this->mysqli->real_escape_string($str);
- return $str;
- }
- private function Close()
- {
- if (!is_null($this->result)) {
- $this->result->close(); // レコードセット破棄
- }
- if (!is_null($this->mysqli)) {
- $this->mysqli->close(); // DB 接続を閉じる
- }
- }
- }
- ?>
Python [python]
- # ほげ
- print "Hello, World !";
ruby [ruby]
- # ほげ
- print "Hello, World !";
SMARTY [smarty]
[smarty]
# ほげ
print “Hello, World !”;
[/smarty]
SQL [sql]
- # ほげ
- print "Hello, World !";
Visual Basic [vb]
- # ほげ
- print "Hello, World !";
VB.NET [vbnet]
- # ほげ
- print "Hello, World !";
XML [xml]
- # ほげ
- print "Hello, World !";