WordPress のエントリでプログラムコードをハイライトする! – その2 –
chameleon さんの「PHP Highlight String Ver.0.9.9」 は WP のエントリ上でソースコードの色分け表示をしてくれる大変優れたプラグインです。
対応している言語 & マークアップはなんと 13種類。 行番号付与も可能でいたれりつくせりです。 (途中行番号表示機能の実装、どうもありがとうございました!)
有効に使わせて頂こうと思い、まずは対応 13 言語 Hello World に挑戦してみました。
一応、コメントや予約語等言語特有のエッセンスを含めてコードをかいてみました。 MySQL と SQL はひとつにまとめて、12種類連続はりきっていってみましょう。 🙂
最初はおなじみ PHP。 意味もなくオブジェクト指向で Hello World。
- /*******************************************************
- * Hello PHP World
- * - Define HelloPHPWorld Class.
- ******************************************************/
- class HelloPHPWorld {
- var $helloMessage;
- /**
- * The Constructor
- *
- * @param string $helloMessage
- * @return Object reference
- */
- function HelloPHPWorld($helloMessage = 'Hello PHP World.') {
- $this->helloMessage = $helloMessage;
- }
- /**
- * Say Hello
- *
- * @param none
- * @return string
- */
- function sayHello() {
- return $this->helloMessage;
- }
- }
- /*******************************************************
- * Main
- * - Output Hello World.
- ******************************************************/
- $hello = & new HelloPHPWorld();
- echo $hello->sayHello() . "\n";
次は、C++。 なぜかこちらはベタがきで Hello。
- /*******************************************************
- * Hello C++ World
- ******************************************************/
- #include <iostream>
- int main(void) {
- // Output Hello World.
- std::cout <<"Hello World!\n";
- // Rerutn Error Code.
- return 0;
- }
スタイルシートで Hello World (!?)。。 とりあえず。。
- /*******************************************************
- * Hello CSS World
- ******************************************************/
- .helloworld {
- margin: 0;
- padding: 0;
- color: #000;
- background-color: #fff;
- background-image: url('images/logo200506.png');
- }
続いて、diff で Hello World。。 なんとなく、”悲しみよこんにちは” を思い出しました。
- --- 02.hello.cpp.old 2005-08-17 12:33:05.000000000 +0900
- +++ 02.hello.cpp 2005-08-17 12:32:56.000000000 +0900
- @@ -7,7 +7,7 @@
- int main(void) {
- // Output Hello World.
- - std::cout <<"Goodby World!\n";
- + std::cout <<"Hello World!\n";
- // Rerutn Error Code.
- return 0;
dtd で Hello World。。 世界の定義はできないので・・・、XHTML の dtd より抜粋でご勘弁を。
- <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
- <!ATTLIST th
- %attrs;
- abbr %Text; #IMPLIED
- axis CDATA #IMPLIED
- headers IDREFS #IMPLIED
- scope %Scope; #IMPLIED
- rowspan %Number; "1"
- colspan %Number; "1"
- %cellhalign;
- %cellvalign;
- >
JavaScript で Hello World。 ソラでかいているので間違っているかもです。
- /*******************************************************
- * Hello JavaScript World
- ******************************************************/
- function sayHello() {
- alert("Hello JavaScript World.");
- }
- sayHello();
sql で Hello World。 世界から検索してみました。(よく分からない..
- --------------------------------------------------------
- - Hello SQL World
- --------------------------------------------------------
- SELECT message
- FROM world
- WHERE lang=`en` and
- time=`daytime';
Perl で Hello World。 Perl はひさしぶり。
- #!/usr/bin/perl
- ########################################################
- # Hello Perl World
- ########################################################
- sub sayHello {
- print "Hello Perl World.\n";
- }
- sayHello();
Python で Hello World。 Python 初体験。 ははー、インデントが意味を持つ言語なのですね。 なるほど。
- #!/usr/bin/python
- ########################################################
- # Hello Python World
- ########################################################
- def sayHello():
- print "Hello Python World."
- sayHello()
Ruby で Hello World。 これまた Ruby も初体験。
- #!/usr/bin/ruby
- ########################################################
- # Hello Ruby World
- ########################################################
- def sayHello()
- print "Hello Ruby World.\n"
- end
- sayHello();
XML ってことで、XHTML で Hello World。
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "DTD/xhtml1-strict.dtd">
- <html
- xmlns="http://www.w3.org/1999/xhtml"
- xml:lang="ja"
- lang="ja">
- <head>
- <title>Hello XHTML World.</title>
- </head>
- <body>
- <!-- Hello :-) -->
- <p>Hello XHTML World.</p>
- </body>
- </html>
最後は Java で Hello World。 いろんなソース書いていたら一瞬分からなくなって焦りました。。
- /**************************************************
- * Hello Java World
- *************************************************/
- import java.lang.String;
- public class HelloJavaWorld {
- private String helloMessage = "Hello Java World.";
- /**
- * The Constructor
- */
- HelloJavaWorld() {
- sayHello();
- }
- /**
- * Say Hello
- */
- private void sayHello() {
- System.out.println(this.helloMessage);
- }
- /**
- * Main Static method
- */
- public static void main(String[] args) {
- new HelloJavaWorld();
- }
- }
以上、12言語でした。 良い感じに色分けされています。 😛
素晴らしいプラグインをつくられた chameleon さんに感謝します。
From: chameleon - 2005/8/18 Thursday (Comment)
フルラインナップのコードで検証、ありがとうございます。こうして眺めると壮観です。
DBへの保存で、SQLのシンタックスエラーになるパターンを発見してしまいました・・・。Fixできる日はいつなのか・・・。
From: ひろまさ - 2005/8/19 Friday (Comment)
表示、とても良い感じですー。 どうもありがとうございました!。
> DBへの保存で、SQLのシンタックスエラーになるパターンを発見してしまいました・・・。
DBエスケープの関係ですかね・・・。かなり繊細なプログラムが要求されそうで、ぼくの根性ではとてもつくれそうにないプラグインのひとつです。 🙂
検証等ありましたらお手伝いできると思いますので、なにかあったら是非ご連絡下さい!