PHP
laravel
textile

Laravel5でTextileを使う

日本語記事を全く見かけなかったので備忘録として。

多分、普通はMarkdown使うんだろうけど、今回の要件は
Textileのほうが適しているかなと思ったのでこっちにしてみた次第。

要件

  • 以下の3つの文字装飾が出来るようにすること。ただし、HTML直打ちは禁止。
    • 太字
    • 小文字
    • 赤字

インストール

このサイトのドキュメントを参考にした
https://github.com/textile/php-textile

bash
composer require netcarver/textile

インストールが出来たら、config/app.php にエイリアス登録

config/app.php
    'aliases' => [

        'Textile' => Netcarver\Textile\Parser::class,

    ],

使い方

小文字(smallタグ)はなさげなので、classでやることにした

resources/views/example.blade.php
@php
$textile = new Textile;
$textile = $textile -> setBlockTags(false);
@endphp

<p>{!! $textile -> parse("これは *太字*です") !!}</p>
<p>{!! $textile -> parse("これは %(small)小文字%です") !!}</p>
<p>{!! $textile -> parse("これは %{color:red}赤字%です") !!}</p>

出力

<p>これは <strong>太字</strong>です</p>
<p>これは <span class="small">小文字</span>です</p>
<p>これは <span style="color:red;">赤字</span>です</p>