アンパンマンDB(記事更新)
来週の放送情報。
ガレットさん再登場だ!
TgwsMarkとドラゴンクエスト10
TgwsMark
はいバージョン3.0.1。
開発終了といった舌の根も乾かぬうちに申し訳ないですが、一点問題を発見したので。
コードブロックが改行の都合で最初に一行開いちゃってたんですよね。
で、修正した結果を実際使ってみたのがこちら。
$tgws_mark = <<<TGWSMARK
*み⭐だ⭐し
ほんぶん👣
TGWSMARK;
$html = \Mifumi323\TgwsMark\TgwsMark::toHtml($tgws_mark);
echo $html;
// 出力:<h2>み⭐だ⭐し</h2><p>ほんぶん👣</p>これで日記にプログラミングの話題書くのがはかどるぞ!
ドラゴンクエスト10(しろいコキン)

しろいコキンもスライム探しイベント行ってきました。
さすがに慣れてきたから得点はそこそこ伸ばせました。
報酬アイテムのほうは、ァォィョッュとだいたい同じ感じで、取りたいものはあらかた取り終えて、取れるものがまだ残っている状況です。
ドラゴンクエスト10(ァォィョッュ)
TgwsMarkとドラゴンクエスト10
TgwsMark
ほいバージョン3.0.0。
残ってた課題3つ(#8、#9、#10)もまとめて完了です。
課題も全部なくなったので、何か新しい機能を作る気になるまではひとまず開発終了ですね。
引用機能とか、Markdownへの変換とか、できそうなことはあるけど、今のところ必要はないので、課題も立てないでおきます。
ドラゴンクエスト10(ァォィョッュ)

第6回 隠れスライムフェスティバル (2025/10/15)|目覚めし冒険者の広場
スライム見つけるやつ、やってきました。
なんか今回、角度がシビアというか、細かい角に遮蔽されて見つけてない扱いになることが多かった気がしますね。


とりあえず報酬はだいたい取れたかな。
モンジに交換してもらうやつがいくつかあるけど、結構回数重ねないといけないからやるとしたら時間あるときになるかな。
残り報酬よりも、しろいコキンとミフミンで通常報酬集めるほう優先したいです。
TgwsMark
ほぼ完成と言っていいのではないだろうか!
ここらがメインとなる機能の実装。
- TgwsMarkHtmlConverterがUnorderedListHtmlConverterを直接持ってたのでインターフェースに変更
- 間違っているドキュメントコメントを修正
- タグ内のテキストエスケープ
- HeadingToFixedTagHtmlConverterで、元のTgwsMarkの仕様に合わせてアスタリスク追加
このあたりは間違ってたところの修正。
名前、簡略化しました。
もともとHTMLへの変換専用を想定して書き始めたのですが、HTMLタグの出力を全部MarkConverterに投げて差し替え可能にした結果、MarkConverterを全部差し替えればHTML以外も出力できるように(理論的には)なりました。
だとすると名前にHtmlを付ける意味はないし、TgwsMark部分もこの名前空間内なら当たり前すぎるので省略していいってわけです。
- インターフェースと共通で冗長なドキュメントコメントを削除
- TgwsMark::splitLineをConverterに丸投げ
- ContentHtmlConverterSpecifyFunctionのテスト
こまごまとした変更とか。
結局これをやりたくて分離したようなものです。
やろうとしていることもできることもほ、ぼ同じで、新しいほうが高機能なんだから、古い方の実装を残す意味はないのです。
インターフェースとしては、インスタンスを意識せず簡単に使える口があるというのは大事なので、このクラス自体とtoHtml静的メソッドは残すつもりです。
他の公開メソッドは、本来内部的に使うだけだったのを深く考えずに後悔していただけだから、非推奨にして将来的に廃止してもいいかも。
TgwsMark
- TgwsMarkHtmlConverterの見出し処理をIHeadingConverterで処理
- テストからCoversClass属性を削除
- コピペで発生した無意味なテスト削除
- HeadingToFixedTagHtmlConverter追加
- ICodeBlockConverterインターフェースとCodeBlockHtmlConverterクラスを追加し、TgwsMarkHtm…
- IParagraphConverterインターフェースとParagraphHtmlConverterクラスを追加し、TgwsMarkHtm…
- 閉じ忘れコードブロック
いっぱいやったように見えて、割と単純作業!
マークアップごとに機能を差し替え可能にして、このマークアップはこのタグを出したいみたいなことを実現できるようにします。
今のところ差し替えられるのは見出しのHeadingToHnHtmlConverterとHeadingToFixedTagHtmlConverterですね。
h1~h6タグと、それ以外を選べます。
TableOfContentsとTgwsMark
TableOfContents
コミットメッセージにも書いたけど、バージョン情報がタグとcomposer.jsonの二重管理になってややこしいので。
他のリポジトリでは既に対応済みです。
TgwsMark
- とりあえずTgwsMarkHtmlConverterクラス
- とりあえずTgwsMarkHtmlConverterTestクラス
- IContentConverterインターフェースとContentHtmlConverterPreserveTextクラスを追加し、TgwsMarkHtmlConverterでのコンテンツ変換機能を実装
インスタンス化して使えるようにする課題の実装始めました。
要はLineTypeごとにクラスを作ってそれぞれで処理させることで、クラスを差し替えて柔軟に動作を変えられるようにするという魂胆です。
いつぞややめた課題とは別方面で美しを目指すことになるんで、ちょっと長丁場になるかも。
AIにやらせるにしても、適度な分割が難しくて、細かくすればプロンプト書くよりコーディングのほうが早くなりそうだし、並列作業させればコンフリクト祭りになりそうだし、かといってまとめてやるには複雑すぎて美しの対極に向かいそうだし、ここはひとまず人力か。
ちなみに、行内コード補完程度の軽いやつならある程度やらせてます。
行内程度なら正誤も一目見てわかるし、プロンプト書かないのでほぼ確実にタイプ量削減になるし、いらなきゃ無視して手作業でコード書き続けるだけでいいし。
AIは爆速とか効率とかよりも楽するために使いたいんですよね。
それにしてもこれ、結構根本的な変更になるから、メジャーバージョン上げたほうがいいかもなァ。
課題とは関係ないけど、無意味な入力に変なタグが付かないことを確認するテストです。
カバレッジを上げることがなくてもこういうエッジケースは大事。
これはコミットじゃなくて課題。
空行をいっぱい開けることで要素間に行間を広くすることができるという、文書構造的には無意味だけど日記では使うことがある機能があったんですが、コードブロックは他の要素とは別枠でやっているので、適用されていませんでした。


