mifumi323/tgwsmark

テキストからHTMLにするアレ。

2.0.0 2024-06-01 13:39 UTC

This package is auto-updated.

Last update: 2024-09-04 15:31:50 UTC


README

テキストからHTMLにするアレ。自分のサイトで使ってる記法と同じやつ。Markdownにちょっと似てる。

ひつよう🎃

PHP8.2以上。

いんすとーる🪽

composer require mifumi323/tgwsmark

つかいかた🐐

$tgws_mark = <<<TGWSMARK
*み⭐だ⭐し
ほんぶん👣
TGWSMARK;
$html = \Mifumi323\TgwsMark\TgwsMark::toHtml($tgws_mark);
echo $html;
// 出力:<h2>み⭐だ⭐し</h2><p>ほんぶん👣</p>

ぶんぽう🥒

パラグラフ

こんにちわ💞

さよおなら💨
<p>こんにちわ💞</p><p>さよおなら💨</p>

行頭から書き始めると、パラグラフになります。 空行で、パラグラフが分かれます。

パラグラフの間隔

まつだみふみが🖐️


おとどけしました🫲
<p>まつだみふみが🖐️</p><p style="margin-top:2em">おとどけしました🫲</p>

空行を2つ以上挟むと、空行の数に応じてパラグラフの間隔が開きます。

改行

どかーん💥
ずどーん🎆
<p>どかーん💥<br>ずどーん🎆</p>

空行を開けずに改行すると、brタグが挿入されます。

見出し

*えっちつう🪥
**えっちさん🩳
***えっちよん🚍
<h2>えっちつう🪥</h2><h3>えっちさん🩳</h3><h4>えっちよん🚍</h4>

行頭に*をつけると、h2レベルの見出しになります。 つける*を増やすと、深い見出しになります。

初期見出しレベルの変更

$tgws_mark = <<<TGWSMARK
*えっちわん🪷
**えっちつう🪥
***えっちさん🩳
TGWSMARK;
$html = \Mifumi323\TgwsMark\TgwsMark::toHtml($tgws_mark, 'h1');
echo $html;
<h1>えっちわん🪷</h1><h2>えっちつう🪥</h2><h3>えっちさん🩳</h3>

TgwsMark::toHtml関数を呼び出す際に、$head引数を指定することで、初期見出しレベルを変更することができます。

hn以外の見出し

$tgws_mark = <<<TGWSMARK
*びよよーん➿
**びよよーん⚔️
***びよよよよーん😈
TGWSMARK;
$html = \Mifumi323\TgwsMark\TgwsMark::toHtml($tgws_mark, 'div');
echo $html;
<div>びよよーん➿</div><div>*びよよーん⚔️</div><div>**びよよよよーん😈</div>

$head引数にhn以外のタグを指定すると、見出しレベルは無視されます。

空見出し

*
あ😦
<p>あ😦</p>

空見出しそれ自体に意味はありません。 後述する折り畳み記法に影響します。

URLフラグメント

*ここ🥥#here
<h2 id="here">ここ🥥<a href="#here" class="hashlink" title="「ここ🥥」の位置へのリンク">#</a></h2>

空でない見出しの後に#に続けて識別子を書くと、URLフラグメントとリンクが生成されます。

順序付きリスト

+わん🧟
+つう🐶
<ol><li>わん🧟</li><li>つう🐶</li></ol>

+を行頭に付けると、順序付きリストになります。

順序なしリスト

-ありゃりゃ🏛️
-こりゃりゃ🪱
<ul><li>ありゃりゃ🏛️</li><li>こりゃりゃ🪱</li></ul>

-を行頭に付けると、順序なしリストになります。

|おなまえ📛|しょくぎょう🔧|h
|だでぃいな|こすもがーど|
<table><thead><tr><th>おなまえ</th><th>しょくぎょう</th></tr></thead><tr><td>だでぃいな</td><td>こすもがーど</td></tr></table>

|で囲んで区切ると、表になります。 |hで終わる行は、表の見出し行になります。

折り畳み

*>
み💛ひ💛つ💛の💛こ💛い
<details><p>み💛ひ💛つ💛の💛こ💛い</p></details>

1個以上の*の後に>で、次の行から折りたたまれて隠れます。

折り畳みと見出しレベル

**>
**ここかくれる🌚
***ここも🌑
*ここはみえる🌛
やったね🌝
<details><h3>ここかくれる🌚</h3><h4>ここも🌑</h4></details><h2>ここはみえる🌛</h2><p>やったね🌝</p>

折り畳みと同じかより深い見出しは折り畳み範囲に入って隠れます。 折り畳みより浅い見出しがあると、そこで折り畳みが終了して、それ以降は隠れません。

折り畳みと空見出し

**>
**
このりはくのめをもってしても🙈
*
ふつうにみえる🤗
<details><p>このりはくのめをもってしても🙈</p></details><p>ふつうにみえる🤗</p>

折り畳み記法に対しては、空見出しは見出しタグを生成せずに、同じレベルの見出しと同じ働きをします。

折り畳みの見出し

*>はんにんはやす🫧#yasu
ねたばれだあ🗿
<details><summary id="yasu">はんにんはやす🫧<a href="#yasu" class="hashlink" title="「はんにんはやす🫧」の位置へのリンク">#</a></summary><p>ねたばれだあ🗿</p></details>

>の後に書いた文字列はsummary要素になります。 見出しと同じく、#でURLフラグメントも生成します。

文法解釈のスキップ

`*い🥂
⚓<<*ろ
*は>>⛷️
*い🥂⚓<h2></h2><h2></h2>⛷️

ややこしいことするんじゃねえ🤬