Gloverの構文仕様について

ここでは、Gloverの記事を書く際に必要となる、構文仕様を紹介・解説します。

前提知識・概念

Gloverでは、すべての記事にはインライン要素とブロック要素の二つが必ず含まれます。
インライン要素とは、インラインプラグインブロックプラグイン、通常文字列などがあります。
ブロック要素段落インデントテーブルなどがあります。
また、ブロック要素は、基本として空改行が出現するまでの間続けられます。
それぞれのブロック要素別に終了条件が設定されている場合もあります。

空改行とは、何も入力せずに改行された行を指します。

段落

段落はブロック要素で、次のような構文を指します。
インライン要素
		

他のブロック要素のない場合、すべてのインライン要素は段落として設定されます。

見出し

見出しはブロック要素で、次のような構文を指します。
*文字列
インライン要素
		

文字列の部分が、見出しとして表示される文字列となります。
*・**・***の三段階の文字列があり、それぞれh2タグ、h3タグ、h4タグに相当します。
*・**・***は、必ず行頭から記述しなければなりません。
見出しの次の行からは、それぞれの見出しに対応したインデントが付けられた、特殊な段落となります。

インデント

インデントはブロック要素で、次のような構文を指します。
>>インライン要素
インライン要素
<<インライン要素
		
>>が入力されると、>>の直後のインライン要素から、一定のインデントが付けられます。
インデントされた段落の最中で、<<が入力されると、次の行から、通常の段落となります。 <<の直後のインライン要素は、インデントされた段落に含まれます。

インデントは、次のように重複させることができます。
>>インライン要素
	 >>インライン要素
		インライン要素
	 <<インライン要素
<<インライン要素
		
このとき、>>と同じ数の<<が入力されていることが望まれます。

改行

Gloverにおいて、改行は用途別に複数存在します。
通常の改行では、そのまま<br/>に変換されます。

特殊な改行には、行の連結が存在します。
インライン要素1~
インライン要素2
		
上の例では、インライン要素1の~をのぞいたものに、インライン要素2が連結され、一つの行として表示されます。
このため、インライン要素2に見出しなどを記述しても、行の一部となるため、ブロック要素となりません。

任意の場所で改行を挿入したい場合は、&br;と記述します。
これは、変換時に<br/>と変換されます。
なお、&br;は、次に挙げるリストの場所には挿入することができません。
  • 見出し文字列中
  • インラインプラグイン名の途中
  • インラインプラグインの引数中の、文字列以外の引数
  • ブロックプラグインの引数中の、文字列以外の引数

水平線

水平線はインライン要素で、次のような構文となります。
-------------
		
行頭から4個以上 - が並べられた行は、水平線となります。その後にインライン要素などが存在しても、無視されます。
水平線が記述されると、それまでにあったすべてのブロック要素が終了されます。

テーブル

テーブルはブロック要素で、次のような構文となります。
|インライン要素1|インライン要素2|
|インライン要素3|インライン要素4|
		
上の例は、次のようなテーブルに変換されます。
インライン要素1 インライン要素2
インライン要素3 インライン要素4

行頭から|で始まり、セルごとに|で区切って、末尾に|を付けると、そこからテーブルブロックとなります。
テーブルブロックは、行頭が|でないインライン要素、ブロック要素、空行、水平線のいずれかが出現するまでがひとつのテーブルとなります。

テーブルのボーダー、セル同士の間隔、セルの外枠と内容との間隔を設定する時には、次のような構文をテーブルブロックに挿入します。
|BORDER(1):SPACING(12):PADDING(12):|i
|テーブル|テーブル|
		
上の例は、次のようなテーブルに変換されます。
テーブル テーブル
オプションの説明は以下となります。オプションは、それぞれ()につづけて:(コロン)を入力してください。
  • BORDER(枠の幅)
  • SPACING(セル同士の間隔)
  • PADDING(セルの外枠と内容との間隔)
|の次にiが付けられたテーブルブロック中の行は、初期化行となり、テーブルの初期の設定を行います。
初期化行は、テーブルブロックのどこにおいても動作します。
また、初期化行は、途中に|の区切りを挟むことはできません。

テーブルに対して、列単位で共通した設定を行うことができます。次のような構文で設定します。
|WIDTH(200px):|WIDTH(300px):COLOR(#ff0000):|d
|幅200pxに固定されます|幅300px、背景色は赤になります|
|幅200pxに固定されます|幅300px、背景色は赤になります|
		
次のようなテーブルに変換されます。
幅200pxに固定されます 幅300px、背景色は赤になります
幅200pxに固定されます 幅300px、背景色は赤になります
末尾にdがつけられたテーブルブロックの行は、定義行となり、それぞれの列を統一してスタイリングします。
使用できるオプションを下に示します。
  • WIDTH(列の幅)
  • COLOR(背景色)
  • CENTER 列全体を中央揃えにする
  • LEFT 列全体を左揃えにする
  • RIGHT 列全体を右揃えにする
CENTER、LEFT、RIGHTは、()が不要です。オプションは、初期化行と同じ構文です。
定義行も、初期化行と同じく、テーブルブロックの中であればどの行に置いてもはたらきます。

テーブルのそれぞれのセルの中に対する設定を行うことができます。
セルの先頭から、オプションを記述して、:(コロン)で区切ることで、セルに対する簡易な設定を行うことができます。
|COLOR(#ffff00):このセルの背景色は黄色です|普通です|
|CENTER:中央揃え|LEFT:このセルの文字揃えは左揃えになります|
		
上の例は、次のようなテーブルに変換されます。
このセルの背景色は黄色です 普通です
中央揃え このセルの文字揃えは左揃えになります
セル中で使用できるオプションを下に示します。
  • COLOR(背景色)
  • CENTER セルの内容を中央揃えにする
  • LEFT セルの内容を左揃えにする
  • RIGHT セルの内容を右揃えにする
CENTER、LEFT、RIGHTは、重複が許されません。もし、異なる文字揃え系のオプションが複数設定されていた場合、最後に記述されたオプションが適用されます。

リスト

リストは、行頭から-をいくつか続けて記述することで、最大三段階までのリストを記述することができます。
リストはブロック要素で、次のような構文となります。
-インライン要素
--インライン要素
---インライン要素
		
上の例は、次のようなリストに変換されます。
  • インライン要素
    • インライン要素
      • インライン要素
それぞれ任意の組み合わせが可能です。三段階目が最初であっても、きちんと表示されます。

インラインプラグイン

Gloverの基本構文以外で、様々な効果を得るためには、インラインプラグインを使用します。
インラインプラグインは、次のような基本構文で構成されます。
&インラインプラグイン名(引数);

引数は、インラインプラグインによって異なります。複数の引数がある場合、,(カンマ)で区切って記述します。

ブロックプラグイン

ブロックプラグインは、インラインプラグインとよく似た構文を持ちます。
#ブロックプラグイン名(引数){ブロック};

ブロックの部分は、各プラグインによって様々な使用法があります。

プラグイン紹介

ここでは、いくつかの基本となるプラグインの紹介を行います。

ボールド
&bold(適用する文字列);
斜体
&italic(適用する文字列);
取消線
&delete(適用する文字列);
文字色設定
&color(色設定,適用する文字列);
文字サイズ設定
&size(ピクセル単位のサイズ,適用する文字列);
文字色、文字サイズ同時設定
&italic(文字サイズ,文字色,適用する文字列);
画像貼り付け
&img(ファイル名,<画像名,<文字回り込み設定, <表示幅,<表示高さ>>>>);
ファイル名は、アップロードした画像のファイル名を、拡張子込みで入力してください。
画像名は、imgタグのalt属性に相当します。
文字回り込み設定は、画像に続く文字列が、画像のどちらに回り込むかを設定します。
表示幅、表示高さはそれぞれ、width、heightに相当します。
また、ファイル名以外は省略が可能です。
リンク
&link(リンク先,リンクとする文字列);
リンク先は、http://から全部入力してください。別の記事にリンクを張る場合は、その記事の名前を入力してください。 先頭に#を付けると、アンカーへのリンクとなります
画像をリンクとして使用したい時は、リンクとする文字列に、imgプラグインを使用してください。
参照(ファイルへのリンク)
&ref(参照するファイル,適用する文字列);
参照するファイルは、外部ファイルか、アップロードしたファイル名を入力してください。
アンカー設定
&anchor(アンカー名);
この他にもプラグインが存在します。プラグインの