My favorites | Sign in
Project Home Downloads Source
Project Information
Members
Links

jmd

jmdの独自拡張マクロ付きmarkdownテキストをHTMLに変換するコマンドラインツール。

特徴

  • groovyで記述されています(ソースファイル一つだけで機能する簡単設計)
  • コマンドラインで使用
  • jmdによる独自拡張記述(マクロ)のサポート
  • プリプロセッサとしてのみの使用も可能
  • ブログエントリを書くのに便利

補足事項

  • ※markdownテキストのHTMLへの変換にはshowdown.jsを使用します。
  • ※不明点/意見/感想など、twitter.com @tomoakioshima までご連絡いただけると助かります。

使い方

基本的に扱うテキストのエンコーディングはUTF-8と見なして処理します。 Windowsでgroovyを使う場合は、groovy -c UTF-8 としてください。

1) jmd拡張マクロ付き markdown テキストから ピュアな markdown テキストへの変換

$ groovy jmd -i foo.markdown -o foo_pure.markdown

2) jmd拡張マクロ付き markdown テキストから (showdown.js を使って) html に変換

$ groovy jmd -i foo.markdown -o foo.html -s showdown.js

※showdown.js は別途入手( http://attacklab.net/showdown/ )してください。

3) jmd拡張マクロ付き markdown テキストから テンプレートを使用して html に変換

$ groovy jmd -i foo.markdown -o foo.html -s showdown.js -t template.html

テンプレート(template.html)の書き方は jmd-1.0.tar.gzに含まれる template.html を参考にしてください。 単なる groovy のテンプレートなので、jmd.groovy を binding で検索していただければと。

拡張マクロ syntax

拡張マクロはマークダウンの記述ルールにはないが、 (わたしがブログエントリを書くときにmarkdownを使う上で必要だったので)追加した機能です。 markdownテキストへのプリプロセッサとして働きます。

標準マクロ

  • {include} ... markdownテキストの挿入
  • {codeinclude} ... コードの挿入
  • {code},{console} ... コードブロックとして扱う
  • {g} ... イメージの挿入
  • {anchor} ... アンカーポイントの設定
  • {pagebreak} ... 改ページ指定
  • {commentout} ... コメントとして扱う

管理用マクロ

  • {cdate},{mdate}
  • {keyword},{what}

include / テキストファイルの挿入

テキストファイルを挿入します。 複数のファイルで同じ情報を共有する場合に便利な機能です。

{include:path/to/foo.markdown} 

※jmdによる処理→includeするテキストファイルはmarkdownで記述されていると想定して処理されます。

以下のように文字エンコーディングを指定可能です。

{include:path/to/foo.markdown|EUCJP}

codeinclude / コードの挿入(ファイルから)

コードとしてテキストファイルを挿入します。

{codeinclude:path/to/foo.sh}

以下のように文字エンコーディングを指定可能です。

{codeinclude:path/to/foo.sh|EUCJP}

※jmdによる処理→インクルードするテキストファイルの行の先頭に4つの半角スペースを追加します。

code,console / コードブロックを作り出す

markdownではコードブロックは各行の先頭に4つの半角スペースを必要としますが、 それをする代わりに{code},{console}で囲みます。

{code}
public class Test{
    public static void main(String[] a){
        System.out.println("Hello World.");
    }
}
{code}
{console}
$ javac Test.java
{console}

※jmdによる処理→{code}または{console}で囲った領域は各行の先頭に4つの半角スペースを追加します。

g / 画像挿入

画像を挿入します。

{g:path/to/foo.png}

以下のように変換します。

![](path/to/foo.png) 

※つまりmarkdown標準の記法で書けばいい話ですが、不自然なので {g}マクロをつくりました。

anchor / アンカーポイントの設定

ページ内リンクを作る場合に使用し、アンカーポイントを設定します。

{anchor:toc}

以下のように変換されます。

<a name="toc" ></a>

※リンクは普通にmarkdownのリンクを使います。

[目次へ移動](#toc)

pagebreak / 改ページ指定

HTMLを印刷したときの改ページ位置を指定します。

{pagebreak}

以下のように変換します。

<div style="page-break-after:always;"></div>

cdate,mdate / 管理用マクロ:日付指定

作成日、更新日を記録します。

{cdate:2009-11-23}
{mdate:2009-11-24}

jmd拡張markdownテキスト から ピュアmarkdownテキストに変換する時点で単に削除されます。

jmdを使って HTML に変換した場合で、テンプレートを使用した場合は、 groovy のテンプレートの機能に従って、cdate,mdate の変数(java.util.Calendar)としてアクセスできます。

what / 管理用マクロ:タグの指定

タグを設定します。

{what:java}

カンマで区切って複数のタグを指定可能。

{what:java,groovy,google}

whatの代わりにkeywordでもOK.

{keyword:java,groovy,google}

jmd拡張markdownテキスト から ピュアmarkdownテキストに変換する時点で単に削除されます。

jmdを使って HTML に変換した場合で、テンプレートを使用した場合は、 groovy のテンプレートの機能に従って、keywordlist の変数(java.util.ArrayList)としてアクセスできます。

Powered by Google Project Hosting