Markdownパーサを修正した

色々と使い勝手に思いがあり、以前作成したMarkdownパーサを少し修正した。こちらの実行スクリプトページでも生成されるhtmlが変わるので注意(使ってる人はいないと思うけど)。

変更点

コードブロック

`で囲った場合に生成されるコード部分を<code>タグで囲うように変更。またpreに付いていたクラスを削除。コード種別はcodeタグのクラスに設定。

<pre class='codeblock code_c'>//コードブロックです。ハイライトは付きません。
int a = 0;
int b = a+1;</pre>

↑旧 新↓

<pre><code class='code_c'>//コードブロックです。ハイライトは付きません。
int a = 0;
int b = a+1;</code></pre>

インラインコード

同じく<span>から<code>へ変更。

<p>インラインコード表記は&#96;で囲み<span class='inlinecode'>int a=0;</span>ます。</p>

↑旧 新↓

<p>インラインコード表記は&#96;で囲み<code>int a=0;</code>ます。</p>

引用

以前は入れ子の引用を<span>で区別していたが、標準的な<blockquote>の入れ子に変更。

<blockquote>
    <span class='blockquoteNest'>&gt;は引用です。</span><br />
    <span class='blockquoteNest'>ここも引用です。</span><br />
    <span class='blockquoteNest'><span class='blockquoteNest'>&gt;&gt;とすると二重引用です。</span></span><br />
    <span class='blockquoteNest'><span class='blockquoteNest'>何重でもできます。</span></span>
</blockquote>

↑旧 新↓

<blockquote>
    &gt;は引用です。<br />
    ここも引用です。
    <blockquote>
        &gt;&gt;とすると二重引用です。<br />
        何重でもできます。
    </blockquote>
</blockquote>

HTMLの挿入

標準のMarkdown仕様はHTMLを混在して記述することができるようだ。ただ個人的には極力書いた文をそのまま出してほしいので混在には対応していない。特に>や<はよく使うためいちいちエスケープしたくない。

しかし使っているとやはりマークダウン対応外の記述を差し込みたいときもあるので、固有記法としてHTMLを直接記述するブロックを作った。

```preview
<p style="color:orange">
コードブロックで種別を"preview"とすると生のHTMLを記述できます。<br />
ただしEnablePreviewフィールドがtrueである必要があります。
</p>
```

↑記法 生成↓

<p style="color:orange">
コードブロックで種別を"preview"とすると生のHTMLを記述できます。<br />
ただしEnablePreviewフィールドがtrueである必要があります。
</p>

コードブロックのタイプをpreviewにするとその中身はHTMLとしてそのまま出力される。

以上

ソースコードはGithubにあるのでそちらを参照。

コメント