Skip to content

Commit

Permalink
Update HACKING.md
Browse files Browse the repository at this point in the history
  • Loading branch information
takahashim committed Feb 2, 2024
1 parent 50e285f commit 642b76d
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions HACKING.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,15 @@ RubyBufferも`RubyBuffer#char_type`を持っています。これはRubyBuffer
`Aozora2Html::Tag::Multiline`は、そのタグが複数行であることを表すマーカー用のモジュールです。

マーカーとして使われるため、メソッド等は特に持っていない、空のモジュールとして実装されています。実行中に追加されたりすることもありません。


## parserと入れ子について

青空文庫の記法は一部入れ子にできます。

Aozora2Htmlのparserは入れ子で実行されることがあります。
実装としては、parserとしてのAozora2HtmlにはサブクラスとしてAozora2Html::TagParserとAozora2Html::AccentParserがあります。Aozora2Htmlは`[...]`をparseする際にはTagParserを、`《...》`をparseする際にはAccentParserを呼び出します。

`[...]`のparseには`read_to_nest`メソッドが、`《...》`のparseには`read_acccent`メソッドが使われます。

`[...]`は入れ子にできますが、`《...》`は入れ子にできません。`《...》`の中に`[...]`を入れたり`《...》`を入れたりすることはできません。

0 comments on commit 642b76d

Please sign in to comment.