読者です 読者をやめる 読者になる 読者になる

PHP Markdown Extra テキトー訳 (3)

Fenced Code Blocks

PHP Markdown Extra バージョン1.2でインデントなしのコードブロック書式を導入したが、フェンスドコードブロックは、コードブロックをフェンスラインで最初の行と最後の行を区切ることにより、Markdownのコードブロックのような機能を提供するものだ。この場合コードブロックは3つ以上の"~"で囲む。具体的には

This is a paragraph introducing:
~~~~~~~~~~~~~~~~~~~~~
a one-line code block
~~~~~~~~~~~~~~~~~~~~~

 これに対して、フェンスドコードブロックでは空改行から始めることができる。

~~~

blank line before
blank line after

~~~

 Markdownのコードブロックは次に示すようなリストのすぐ後ろに置くことはできないが、フェンスドコードブロックにはそのような制限はない。

1. List item

    Not an indented code block, but a second paragraph
    in the list item

~~~
This is a code block, fenced-style
~~~

 フェンスドコードブロックはwebブラウザのテキストボックスのようなブロックテキストのインデントを増やせないようなエディタからコードをコピるのには最適だ。

 

コードブロックにはクラスネームをつけることができる。これは言語に応じて、スタイルを変えたいときやシンタックスハイライトを付ける時なんかには、使える機能だ。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .html
<p>paragraph <b>emphasis</b>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

クラスネームは最初のフェンスんの最後に付けることができる

また、スペシャルattributeを指定することもできる:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.html #example-1}
<p>paragraph <b>emphasis</b>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 出力されるHTMLファイルでは、コードブロックattributeは<code>エレメントとして展開される。これらを<pre>エレメントをつけて展開したければ(つまり<pre><code>〜</code></pre>としたければ)、設定値 code_attr_on_pre をパーサで true に設定しておけばいい。詳細設定値に関しては[こちら](http://michelf.ca/projects/php-markdown/configuration/)を参照。

 

Table

PHP Markdown Extraは簡単にテーブルを書くための独自のシンタックスをもっている。こんな感じだ:

First Header | Second Header
---------------|---------------
Content Call | Content Cell
Content Cell | Content Cell

 最初の行はカラムヘッダを含む、次の行がコンテントとヘッダを区別するために必要なセパレータライン、それ以下のラインがテーブルのロウになる。各カラムは必ずパイプ( | )で区切る。これがHTMLに展開されるとこのようになる:

  <table>
<thead>
<tr>
<th> First Header</th>
<th> Second Header</th>
</tr>
</thead>
<tbody>
<tr>
<td>
Content Cell</td>
<td>
Content Cell</td>
</tr>
<tr>
<td>
Content Cell</td>
<td>
Content Cell</td>
</tr>
</tbody>
</table>

 もちろん、行末にパイプを書くこともできる。もしこの方が好みなら、下のように書いたとしても、上のように展開させることができる。

|First Header | Second Header|
|---------------|---------------|
| Content Call | Content Cell|
| Content Cell | Content Cell|

 Note:  PHP Markdown Extraで正しくパースするためには、テーブルは各ラインで少なくとも一つのパイプを必要とする。このルールは一つのカラムだけで構成されるテーブルを作るのに必要な唯一の方法となる。

 

アライメントを示すために、セパレータラインの各カラムにコロン(:)を書き入れることができる。セパレータの左にコロンを書いた場合は、そのカラムのセルはすべて左にアライメントされる。右の場合は右アライン、両側に書いた場合はセンターにアラインされる。

 | Item          |   Value |
| ------------ | --------:|
| Computer  |  $1600 |
| Phone        |      $12 |
| Pipe           |        $1 |

 

今日はここまで。。。