Grails SyntaxHighlighter Pluginで、コードをhtml化するアプリを作ったよ
今日も Grails です。
余談
griffon についてもいろいろ試してみたりしたいのですが、家のCPU:1.6GHz、メモリ:512MBマシンでは、 Griffon のコンパイルなどで悲鳴が聞こえてきます。世界がとまります。
したがって同じぐらいのスペックのlinuxマシン上で、ssh経由で grails war
や grails run-app
しています。これだともうちょっと低スペックマシンでも快適に開発できそう。
今回の料理名
材料
- Grails
作り方
- SyntaxHighlighter Plugin をインストール
- 必須ではないけど、日本語化させるなら I18n Templates Plugin (これについては説明を省く)
- Domainクラス作成
grails generate-all
でview、controller作成- viewをちょこっと触る。
- SyntaxHighlighter Plugin のjs、cssをコピー
- 起動!
手順1
grails install-plugin syntax-highlighter
しろと書かれているので、実行。プラグインが追加される。
手順2
省略します。
手順3
2つ作ってみた。
- ProgramingLanguage.groovy
- SourceCode.groovy
class ProgramingLanguage {
/*
static hasMany = [
]
*/
/*
static belongsTo = [
]
*/
String name
String jsCode
Date dateCreated
Date lastUpdated
static constraints = {
name(blank: false, unique: true)
jsCode(blank: false, unique: true)
dateCreated(editable: false)
lastUpdated(editable: false)
}
String toString() {
name
}
}
class SourceCode {
/*
static hasMany = [
]
*/
static belongsTo = [
language: ProgramingLanguage
]
String code
Boolean gutter = true
Boolean controls = true
Boolean collapse = false
Integer firstLine = 1
Boolean showColumns = false
Boolean escapeXml = true
Date dateCreated
Date lastUpdated
static constraints = {
language()
code(blank: false, maxSize: 50000)
gutter()
controls()
collapse()
firstLine()
showColumns()
escapeXml()
dateCreated(display: false)
lastUpdated(display: false)
}
}
手順4
省略します。そのまま。
手順5
ヘッダー部分に以下の一文を追加しました。
<syntax:resources name="code" languages="${[sourceCode?.language?.jsCode]}" />
また、SourceCodeクラスのcodeを表示する箇所は以下のように。
<td valign="top" class="value">
<syntax:format
name="code"
language="${fieldValue(bean:sourceCode?.language, field:'name')}"
gutter="${fieldValue(bean:sourceCode, field:'gutter')}"
controls="${fieldValue(bean:sourceCode, field:'controls')}"
collapse="${fieldValue(bean:sourceCode, field:'collapse')}"
showColumns="${fieldValue(bean:sourceCode, field:'showColumns')}"
escapeXml="${fieldValue(bean:sourceCode, field:'escapeXml')}"
>${sourceCode.code}</syntax:format>
</td>
手順6
%PROJECT_HOME%/plugins/syntax-highlighter-0.1.1/web-app
の js、css フォルダを、 %PROJECT_HOME%/web-app
にコピーします。
手順7
起動!!
これで こんな感じのアプリ が起動するはず。( i18n-templates 入れてない場合は英語になってると思う)
ちなみにProgramingLanguage情報を設定しておく必要があるので、サンプルアプリを見て設定してみてください。
今回の目的は、コードハイライトアプリと SyntaxHighlighter Plugin を使ってみる!という点なので、こんな感じでOK!
ひとこと
Grails richuiがすばらしすぎる件について | ゲンゾウ用ポストイット でも書きましたが、プラグインの力がすごいです。自分でプラグインを作ったり使ったりしていると Grails 本体もプラグインの集合体、という意味がようやくわかってきました。
ディスカッション
コメント一覧
まだ、コメントがありません