PHPackages                             noi/parsedown-rubytext - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. noi/parsedown-rubytext

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

noi/parsedown-rubytext
======================

An extension of Parsedown that adds support for ruby text (aka furigana) in Markdown.

0.9.3(8y ago)155.7k2MIT

Since Sep 21Compare

[ Source](https://github.com/noisan/parsedown-rubytext)[ Packagist](https://packagist.org/packages/noi/parsedown-rubytext)[ RSS](/packages/noi-parsedown-rubytext/feed)WikiDiscussions Synced today

READMEChangelogDependencies (3)Versions (5)Used By (2)

Parsedown ルビ記法extension
=======================

[](#parsedown-ルビ記法extension)

noi/parsedown-rubytextは、[Parsedown](http://parsedown.org)のルビ(ふりがな)用エクステンションです。

以下の拡張記法用エクステンションを含んでいます:

1. `\Noi\Parsedown\RubyTextTrait` -- ルビ指定(inline)
2. `\Noi\Parsedown\RubyTextDefinitionTrait` -- ルビ定義(reference-style)
3. `\Noi\Parsedown\AozoraRubyTextTrait` -- 青空文庫ルビ形式(inline)
4. `\Noi\Parsedown\PixivRubyTextTrait` -- Pixivルビ形式(inline)

また、上記の1と2のtraitを組み込んだ実装クラスも含んでいます:

- `\Noi\ParsedownRubyText` -- `Parsedown`から派生
- `\Noi\ParsedownExtraRubyText` -- `ParsedownExtra`から派生

以降では1と2の拡張記法の使い方について主に説明します。 3の説明は`README-Aozora.md`、4の説明は`README-Pixiv.md`を確認してください。

Markdown
--------

[](#markdown)

### inlineルビ指定

[](#inlineルビ指定)

1. `[親文字]^(ルビ)`
2. `[親文字]^（ルビ）` （全角カッコを使用）
3. `[親文字]（ルビ）` （全角カッコを使用）

これらは次の``タグを生成します:

```
親文字（ルビ）
```

このパッケージは、上記の書式の他にもルビ記法エクステンションを同梱しています。 青空文庫ルビ形式(`README-Aozora.md`)とPixivルビ形式(`README-Pixiv.md`)も参照してください。

### reference-styleルビ定義

[](#reference-styleルビ定義)

- `**[親文字]: ルビ`

上記の書式を使って文書内のどこかの行でルビを定義します。 Markdownのリンク定義や、MarkdownExtraの "Abbreviations" のように、 ルビ定義行自体は変換後のHTMLに含みません。

ルビを定義した単語は、ルビ指定がない箇所も自動でルビ振り対象になります(inline codeやcode block内を除く)。

デフォルトの動作では、ルビ定義済み単語は文書内のすべての出現箇所でルビが振られます。 この動作を変更し、各単語の最初の出現箇所だけに限定することも可能です。

自動ルビ振りを初出箇所限定モードにする場合は以下のメソッドを実行してください:

- `setRubyTextDefinitionMarkupAll(false)`

自動ルビ振りの設定に関係なく、inlineルビで明示的にふりがなを指定した箇所は常に指定のルビを振ります。

### モノルビ割り当て

[](#モノルビ割り当て)

ルビは分かち書きすることでルビ対象の各文字にモノルビとして割り当てることもできます:

- `[日本語]^(に ほん ご)` -- ルビ指定
- `**[日本語]: に ほん ご` -- ルビ定義

上の例は次の``タグを生成します:

```

  日（に）
  本（ほん）
  語（ご）

(実際の出力は1行)

```

### 属性値の指定

[](#属性値の指定)

ルビには属性値を追加設定することもできます。 Markdown Extra "Special Attributes" の書式と同じ `{...}` 形式で指定してください:

- `[日本語]^(にほんご){#id .classA .classB lang=ja}`

上の例は次の``タグを生成します:

```
日本語（にほんご）

```

### ふりがなの小書き文字(捨て仮名)自動変換

[](#ふりがなの小書き文字捨て仮名自動変換)

HTML変換時、ふりがなに含まれる小書き文字(捨て仮名「ぁ」「っ」など)を並字(普通の大きさ「あ」「つ」など)に自動変換することも可能です。

このモードに設定すると、次のように小字を並字に自動変換します:

- `[東京都]^(とうきょうと)` =&gt; `東京都（とうきようと）`
- `[百科事典]^(ひゃっかじてん)` =&gt; `百科事典（ひやつかじてん）`

自動変換モードに変更する場合は以下のメソッドを実行してください:

- `setRubyTextSuteganaAllowed(false)`

ふりがなは小さいフォントサイズで表示されるため、印刷媒体などの慣例では読みやすさの観点から並字を使う傾向にあります。 変換後のHTMLを小さめのフォントサイズで表示する場合や、印刷目的でも利用する場合には、自動変換モードを使うと便利です。

デフォルトでは自動変換しません。小書き文字があってもそのまま使用します。

Installation - インストール方法
-----------------------

[](#installation---インストール方法)

[Composer](http://getcomposer.org/) で以下を実行してください。

```
$ php /path/to/composer.phar require noi/parsedown-rubytext "*"
$ php /path/to/composer.phar require erusev/parsedown-extra "*"
```

または、`composer.json` に以下の行を含めてください。

```
{
    "require": {
        "noi/parsedown-rubytext": "*",
        "erusev/parsedown-extra": "*"
    }
}
```

MarkdownExtraを使わない場合は、`erusev/parsedown-extra`の行は必要ありません。

Composerによるパッケージ管理をしていない場合は、`include_path` のいずれかに `Noi/` ディレクトリを作り、そこへ `lib/` 以下のファイルを置いてください。

Usage - 使い方
-----------

[](#usage---使い方)

### 使い方1: `Noi\ParsedownRubyText` / `Noi\ParsedownExtraRubyText`を使う

[](#使い方1-noiparsedownrubytext--noiparsedownextrarubytextを使う)

これらのクラスは、それぞれ`Parsedown`と`ParsedownExtra`にルビ用エクステンションを組み込んだ実装クラスです。

派生元クラスの機能に加えてルビ指定とルビ定義用の拡張記法が使用できます。 メソッドの使い方は`Parsedown`クラスと同じです。

```
$pd = new \Noi\ParsedownRubyText(); // or new \Noi\ParsedownExtraRubyText();
echo $pd->text('[日本語]^(にほんご)');

// Output:
日本語（にほんご）
```

どちらのクラスも「青空文庫ルビ形式」と「Pixivルビ形式」のエクステンションは組み込んでいません。 これらの拡張記法を使うときは、使い方2を参考に独自派生クラスを作って組み込む必要があります。

### 使い方2: 独自の`Parsedown`派生クラスにルビ記法を導入する

[](#使い方2-独自のparsedown派生クラスにルビ記法を導入する)

あなた独自の`Parsedown`派生クラスにルビ用エクステンションを組み込む場合は、 以下のように必要なtraitを組み込んでください:

```
class YourParsedown extends Parsedown /* or ParsedownExtra or etc. */ {
    // 1. ルビ用エクステンションのtraitをuse
    use \Noi\Parsedown\RubyTextTrait;
    use \Noi\Parsedown\RubyTextDefinitionTrait;

    // 2. registerメソッドをコンストラクタかどこかで実行
    public function __construct()
    {
        parent::__construct(); // 必要に応じて

        $this->registerRubyTextExtension();
        $this->registerRubyTextDefinitionExtension();
    }
}

$pd = new YourParsedown();
echo $pd->text('[日本語]^(にほんご)');

// Output:
日本語（にほんご）
```

traitを組み込む際、`use`だけでなく\*\*`register`\*\*メソッドの実行も必要です。忘れるとエクステンションは動作しません。 忘れやすいので注意してください！

### PHP5.3以前の場合

[](#php53以前の場合)

PHP5.3まではtrait未対応のためそのままでは使用できません。

組み込みたいtraitのファイルを開き、中身をコピペするなどしてクラスを作ってください。 またはPHPのバージョンアップをぜひお願いします。

### 動作の詳細

[](#動作の詳細)

- Markdownと変換結果の具体例は `tests/data/` 以下にあります。
- 各クラスやtraitファイルのDocCommentも確認してください。

License
-------

[](#license)

MITライセンスです。ライセンスの制限の範囲内であれば商用・非商用を問わず自由にお使いください。

Code released under the MIT License - see the `LICENSE` file for details.

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity28

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~309 days

Total

4

Last Release

3009d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5478214?v=4)[Akihiro Yamanoi](/maintainers/noisan)[@noisan](https://github.com/noisan)

---

Tags

parserlibrarymarkdownextensionparsedownfuriganarubyrubiaozora bunko

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/noi-parsedown-rubytext/health.svg)

```
[![Health](https://phpackages.com/badges/noi-parsedown-rubytext/health.svg)](https://phpackages.com/packages/noi-parsedown-rubytext)
```

###  Alternatives

[erusev/parsedown-extra

An extension of Parsedown that adds support for Markdown Extra.

84315.3M216](/packages/erusev-parsedown-extra)[tovic/parsedown-extra-plugin

Configurable Markdown to HTML converter with Parsedown Extra.

5934.9k](/packages/tovic-parsedown-extra-plugin)[taufik-nurrohman/parsedown-extra-plugin

Configurable Markdown to HTML converter with Parsedown Extra.

5932.6k](/packages/taufik-nurrohman-parsedown-extra-plugin)[benjaminhoegh/parsedown-toc

Table of Contents Extension for Parsedown.

2137.2k13](/packages/benjaminhoegh-parsedown-toc)[benjaminhoegh/parsedown-extended

An extension for Parsedown.

5126.7k1](/packages/benjaminhoegh-parsedown-extended)[keinos/parsedown-toc

Table of Contents Extension for Parsedown, the Parser for Markdown.

1520.7k4](/packages/keinos-parsedown-toc)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
