<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
	<title>Lycolog</title>
	<link>https://blog.lycolia.info/</link>
	<language>ja</language>
	<description>Lycoliaの雑記帳です。プログラマとしての技術備忘録や日々思ったことを徒然と書いている、ごった煮のようなブログです。</description>
	<copyright>Copyright 2026</copyright>
	<pubDate>Sun, 25 Oct 2026 23:36:13 GMT</pubDate>
	<lastBuildDate>Mon, 26 Oct 2026 02:03:36 GMT</lastBuildDate>
	<generator>https://adiary.org/#4.11</generator>
	<docs>http://blogs.law.harvard.edu/tech/rss</docs>
	<item>
		<title>Windows 11を26H2にアップデートしたらスリープやシャットダウンから復帰できなくなったのを直した</title>
		<link>https://blog.lycolia.info/0813</link>
		<guid>https://blog.lycolia.info/0813</guid>
		<category>OS::Windows,ジャンル::トラブルシューティング</category>
		<pubDate>Sun, 25 Oct 2026 23:33:33 GMT</pubDate>
		<author>Lycolia Rizzim</author>
		<description><![CDATA[<section>
<p>Windows UpdateでWindows 11を25H2から26H2にアップデートしたらスリープから復帰しなくなったのを直した話。シャットダウンからも復帰できないケースがあったが、これも多分直った。</p>


<ul>
	<li><a href="https://blog.lycolia.info/0813#fb412f6f">起きていたことと、一時的な解決方法</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0813#fd3f206c">PCの電源ボタンを押下しスリープすると、高確率で復帰できなくなっていた</a></li>
		<li><a href="https://blog.lycolia.info/0813#f9948aae">スタートメニューからシャットダウンすると、ブートできなくなっていた</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0813#l9571736">発生時の条件</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0813#o4aeaab0">Windowsのバージョン</a></li>
		<li><a href="https://blog.lycolia.info/0813#k8e083c0">hypervisorlaunchtype</a></li>
		<li><a href="https://blog.lycolia.info/0813#f151ac13">電源オプションの電源ボタンの動作設定</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0813#sa3b9c5c">恒久的に解決した方法</a></li>
	<li><a href="https://blog.lycolia.info/0813#x5c00ab2">特に効果がなかったこと</a></li>
	<li><a href="https://blog.lycolia.info/0813#p2eb2a9d">あとがき</a></li>
</ul>

</section>

<section>
<h3 id="fb412f6f"><a href="https://blog.lycolia.info/0813#fb412f6f">起きていたことと、一時的な解決方法</a></h3>


<p>先に一時的な解決だけ書いておくと主電源を切り、入れ直せば復帰可能だった。</p>

<h4 id="fd3f206c"><a href="https://blog.lycolia.info/0813#fd3f206c">PCの電源ボタンを押下しスリープすると、高確率で復帰できなくなっていた</a></h4>


<p>高確率でとあるが、6回中4回復帰できなかった。復帰できた2回はスリープ後、即座に電源ボタンを押したときであり、それ以外は復帰できなかった。</p>

<p>電源ボタン以外にもキーボードやマウス、NIC(WoL)を通じたスリープ復帰が出来るようにデバイスマネージャーで設定しているが、いずれの手段でも復帰できなかった。</p>

<p>この時の特徴として、普段スリープ時であれば電源ボタンのLEDが点滅しているが、点滅していなかった。また、電源ボタン押下時には一切なにも起こらず、一瞬だけファンが回るような挙動もなかった。</p>

<p>主電源を一度切って、入れ直すと起動自体は出来たが、OS起動中にコンセントを抜いたのと同じ扱いになるため、再起動後はクラッシュから復帰した状態になった。</p>

<p>スタートメニューからスリープに入る操作方法では試していない。</p>

<h4 id="f9948aae"><a href="https://blog.lycolia.info/0813#f9948aae">スタートメニューからシャットダウンすると、ブートできなくなっていた</a></h4>


<p>これは一回しか試していないので、一回しか起きていないが、スタートメニューからシャットダウンを選びPCをシャットダウンすると、電源ボタンを押しても起動させることが出来なかった。</p>

<p>この時は一瞬だけファンが回り、その後停止した。何度電源ボタンを押してもブートしなかったが、スリープ時同様に一度主電源を落として入れ直すことでブートさせることができた。</p>
</section>

<section>
<h3 id="l9571736"><a href="https://blog.lycolia.info/0813#l9571736">発生時の条件</a></h3>


<h4 id="o4aeaab0"><a href="https://blog.lycolia.info/0813#o4aeaab0">Windowsのバージョン</a></h4>


<p>Windows 11 Pro 26H2 (OSビルド 26300.9711)</p>

<h4 id="k8e083c0"><a href="https://blog.lycolia.info/0813#k8e083c0">hypervisorlaunchtype</a></h4>


<p>AUTO</p>

<h4 id="f151ac13"><a href="https://blog.lycolia.info/0813#f151ac13">電源オプションの電源ボタンの動作設定</a></h4>


<p><strong>電源とスリープ ボタンの設定</strong></p>

<div><table><thead><tr>
	<th>設定項目</th>
	<th>設定値</th>
</tr></thead>
<tbody>
<tr>
	<td>電源ボタンを押したときの動作</td>
	<td>スリープ</td>
</tr>
<tr>
	<td>スリープボタンを押したときの動作</td>
	<td>何もしない</td>
</tr>
</tbody>
</table></div>

<p><strong>シャットダウン設定</strong></p>

<div><table><thead><tr>
	<th>設定項目</th>
	<th>設定値</th>
</tr></thead>
<tbody>
<tr>
	<td>高速スタートアップを有効にする</td>
	<td>OFF</td>
</tr>
<tr>
	<td>スリープ</td>
	<td>ON</td>
</tr>
<tr>
	<td>休止状態</td>
	<td>OFF</td>
</tr>
<tr>
	<td>ロック</td>
	<td>ON</td>
</tr>
</tbody>
</table></div>
</section>

<section>
<h3 id="sa3b9c5c"><a href="https://blog.lycolia.info/0813#sa3b9c5c">恒久的に解決した方法</a></h3>


<p>コマンドプロンプトを管理者権限で起動し、以下のコマンドを流す。</p>

<pre><code>bcdedit /set hypervisorlaunchtype off
</code></pre>

<p>戻したいときは同様に以下を流せば戻る。</p>

<pre><code>bcdedit /set hypervisorlaunchtype auto
</code></pre>
</section>

<section>
<h3 id="x5c00ab2"><a href="https://blog.lycolia.info/0813#x5c00ab2">特に効果がなかったこと</a></h3>


<p>使用しているマザーボード（ASRock Z890 Pro RS）のBIOSバージョンを1.39から3.40まで上げてみたが、特に効果はなかった。</p>
</section>

<section>
<h3 id="p2eb2a9d"><a href="https://blog.lycolia.info/0813#p2eb2a9d">あとがき</a></h3>


<p>10/23にWindows Updateし10/24に対策したが、今のところ再発していない。<code>hypervisorlaunchtype</code>を<code>auto</code>にするだけで容易に再現するため、恐らく<code>off</code>にしている限り起きないと思う。これによる影響は不明だが、<a href="https://learn.microsoft.com/ja-jp/windows-hardware/drivers/devtest/bcdedit--set#hypervisor-settings">BCDEditのヘルプによると設定値自体はHyper-Vのデバッグ用にある</a>らしい。</p>
</section>
]]></description>
	</item>
	<item>
		<title>adiary-extendsを爆発的に改修している話</title>
		<link>https://blog.lycolia.info/0812</link>
		<guid>https://blog.lycolia.info/0812</guid>
		<category>ソフトウェア::CMS::adiary,ジャンル::サイト運営</category>
		<pubDate>Thu, 22 Oct 2026 03:14:06 GMT</pubDate>
		<author>Lycolia Rizzim</author>
		<description><![CDATA[<section>
<p><a href="https://blog.lycolia.info/0805">adiary置き換え計画は取りやめようと思った</a>でCMSの新製を取りやめ、<a href="https://blog.lycolia.info/0810">adiary-extendsのアップデートをした</a>でその新製CMSからの機能バックポートを行ったことを書いたが、あれからさらなる機能バックポートを行っているため、現状やったことを書いていく。</p>


<ul>
	<li><a href="https://blog.lycolia.info/0812#xd55491b">現状行った機能改修</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0812#v17b0ead">公開画面のテーマをLyndbaumの公開画面に合わせた</a></li>
		<li><a href="https://blog.lycolia.info/0812#jab943bc">公開画面と管理画面の分離</a></li>
		<li><a href="https://blog.lycolia.info/0812#w66e6f80">印刷用表示機能の削除</a></li>
		<li><a href="https://blog.lycolia.info/0812#bdd6bb60">バックリンクの表示対応</a></li>
		<li><a href="https://blog.lycolia.info/0812#ecc80820">記事更新時の衝突検知</a></li>
		<li><a href="https://blog.lycolia.info/0812#b66e9828">ページにできない名前を、ページの名前に使えないようにした</a></li>
		<li><a href="https://blog.lycolia.info/0812#e0839ddf">その他</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0812#ld809cb1">あとがき</a></li>
</ul>

</section>

<section>
<h3 id="xd55491b"><a href="https://blog.lycolia.info/0812#xd55491b">現状行った機能改修</a></h3>


<p>Lyndbaumからのバックポートしたものを含む様々な対応の話。</p>

<h4 id="v17b0ead"><a href="https://blog.lycolia.info/0812#v17b0ead">公開画面のテーマをLyndbaumの公開画面に合わせた</a></h4>


<p>元々このブログではsatsuki2テーマを改造したlycoテーマを使っていたがレスポンシブデザインに対応していない問題があった。これはadiaryがそれを前提として作られておらず、PCかSPかをUAを見て振り分け、画面を出すシステムだったことや、表示処理の高速化のためにDOM構造を固定しJSで見た目をこねくり回す、良くも悪くもはてなダイアリーのような思想で作られていたことに起因する。</p>

<p>今回は一段階目でテーマのREADMEに<code>Responsive: yes</code>と書くと、UAによるスマホ表示の振り分けをしないように対応した。この機能はまだ試験導入中で、機能的に不足している個所が多々あるので、しばらく手入れしていく予定だ。</p>

<p>また画像ビューアをFancyboxから<a href="https://github.com/Lycolia/lythumb-viewer">Lythumb-viewer</a>に置き換えることで、jQueryを廃止し、読み込み時のデータ量を削減している。他にもサイドバーやコメント欄のツリー開閉は従来JSで行っていたが、レイアウトシフトを起こす元凶だったため、<code>&lt;details&gt;</code>に変更し、HTMLとCSSで静的に切り替えるようにした。これによってレイアウトシフトとJSの削減を行っている。</p>

<p>他にもスクロール時に目次が追従する機能を今回作成したテーマ側に設けた。私は目次は追従してくれないと不便だと考えており、入れたかった機能の一つだ。この対応では逆にJSが増えているが、仕方がない。</p>

<p>今回の対応によりSPビューだけではなく、PCで画面を狭めたときにも画面が見やすくなり、個人的にはかなり利便性が上がった。何より2年半くらいあった<a href="https://blog.lycolia.info/%e3%81%93%e3%81%ae%e3%82%b5%e3%82%a4%e3%83%88%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6">このサイトについて</a>にある、「レスポンシブデザインにも対応予定ですが、現状は非対応です。」の説明を外すことが遂にできた。</p>

<div><table><thead><tr>
	<th>旧画面</th>
	<th>新画面</th>
</tr></thead>
<tbody>
<tr>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/old-pc-full.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/old-pc-full.png.jpg"></a></td>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/new-pc-full.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/new-pc-full.png.jpg"></a></td>
</tr>
</tbody>
</table></div>

<p>PCビューの新旧比較だとこんな感じ。SPビューはスクショが面倒なので省略。</p>

<h4 id="jab943bc"><a href="https://blog.lycolia.info/0812#jab943bc">公開画面と管理画面の分離</a></h4>


<p>adiaryでは公開画面と管理画面を実質的に同じ画面として出すようになっているが、ここも実装上分離した。公開ページのテーマを変えると管理画面に波及したり、そもそも管理画面に公開画面の内容が混ざっていて使い勝手がよくなかった。現状は分離しただけなので画面は変わっていないが、将来的には管理画面らしいものに変えていきたい。</p>

<h4 id="w66e6f80"><a href="https://blog.lycolia.info/0812#w66e6f80">印刷用表示機能の削除</a></h4>


<p>今回の対応で壊れてしまったので削除した機能。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-22_11-35-46-389.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-22_11-35-46-389.png.jpg"></a></p>

<p>元々はこんな感じで記事カラムの部分にフォーカスした表示がされていたが、Matomoを見ているとBOTが吸い込まれていくだけで使われていない機能だった。今時印刷する人もいない気がするので復活させるかは謎だが、恒久的に削除するかどうかも決めていない。気が向いたら復活させる可能性はある。</p>

<h4 id="bdd6bb60"><a href="https://blog.lycolia.info/0812#bdd6bb60">バックリンクの表示対応</a></h4>


<p>記事について、別の記事からリンクされている場合に、そのリンクを参照元として表示する機能を足した。PukiwikiやMediaWikiなど、Wiki系のシステムではよくみられる機能だと思うが、ブログではなかなか見ない機能だと思う。</p>

<p>作りとしては記事にリンクを書いたり消したりするとバックリンクDBを書き換え、それを基にキャッシュHTMLを作り、ページが表示されたときにこのHTMLを画面に出しているだけだ。adiaryは画面のパーツをHTMLで持っておき、リクエストが来たときに繋げて表示する方式なのでこうしている。</p>

<p>YARPPのように毎回動的に生成しないため非常に高速に動作する。</p>

<p>対応しているのは今のところ記事のみで、ページには対応させていない。</p>

<h4 id="ecc80820"><a href="https://blog.lycolia.info/0812#ecc80820">記事更新時の衝突検知</a></h4>


<p>Pukiwikiには同時に他の人が更新したときに更新の競合を検知し、それを表示する機能がある。これは誤って他人の更新を上書きするのを防止する機能だ。これを導入した。</p>

<p>私は以前から複数タブで同じ記事を開くことがよくあり、何ならスマホでも開いていることがあった。これによって更新内容を衝突させてしまうことがよくあったので、それが起きないように導入した。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-22_11-51-17-653.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-22_11-51-17-653.png.jpg"></a></p>

<p>仕組みとしては編集画面にハッシュを埋め込んでおき、このハッシュの差で判定している。衝突時にはいい感じに差分を出してくれるので便利だ。</p>

<h4 id="b66e9828"><a href="https://blog.lycolia.info/0812#b66e9828">ページにできない名前を、ページの名前に使えないようにした</a></h4>


<p>adiaryでページを作ると基本的にページタイトルがURLになるが、仮に「pub/lycolia/rss.xml」と言うページを作ると<code>https://example.com/pub/lycolia/rss.xml</code>というURLのページが出来てしまう。</p>

<p>こういったページができるとページではなく実際のファイルが表示されてしまう。これでは困るので、衝突するページを作れないようにバリデーションを追加した。</p>

<h4 id="e0839ddf"><a href="https://blog.lycolia.info/0812#e0839ddf">その他</a></h4>


<ul>
<li>ログインセッションの有効期限の初期値を180日から14日にし、パスワード変更時などにセッションを消すようにした</li>
<li>テキストDBのトランザクションの不具合を修正した。途中でエラーが起きると、その後の書き込みが消えることがあったため</li>
<li>初期セットアップ用の<code>index.html</code>を復活させた。nginxでうまく表示できる設定を作れたため</li>
<li>バージョン表記をadiary本家と同じx.yy方式にした。現在はv4.08。内部の処理が数字の大小に依存しており、これに対応するのが主な目的。桁の増減もなんか微妙かなと言うので固定長にしたのもある</li>
</ul>
<p>この他にも細々とした対応をあれこれ。</p>
</section>

<section>
<h3 id="ld809cb1"><a href="https://blog.lycolia.info/0812#ld809cb1">あとがき</a></h3>


<p>結構な変更を加えたが、コアの処理は変えていないため処理速度は1ms増えたくらいで体感では誤差の範疇である。</p>

<p>まだバックポートできていない機能も多くあるし、SEOやUX的にも不足の部分があり、管理画面もまだ途上だったり、既存テーマをどうするか問題、セキュリティ対応など、様々な課題があるので、ぼちぼち進めていきたいところだ。</p>

<p>と言うか本来書くべき記事も書かないといけないし、adiary以外にもやりたいことがあるので一日の時間が全く足りていない…。</p>

<p>ひとまずadiaryをベースにやっているためLyndbaumの時のように仕様漏れやパフォーマンスについて考慮することが少なく済み、またLyndbaum側で入れた機能についても基本はadiaryの構造に合わせてバックポートするだけなので実装コストが低いのが楽だ。</p>
</section>
]]></description>
	</item>
	<item>
		<title>adiary-extendsのアップデートをした</title>
		<link>https://blog.lycolia.info/0810</link>
		<guid>https://blog.lycolia.info/0810</guid>
		<category>ソフトウェア::CMS::adiary,ジャンル::サイト運営</category>
		<pubDate>Wed, 21 Oct 2026 09:35:48 GMT</pubDate>
		<author>Lycolia Rizzim</author>
		<description><![CDATA[<section>
<p>普段はアップデートしても書いてないのだが、今回は<a href="https://blog.lycolia.info/0805">前回の事情</a>とかもあるのでちょっと書く。</p>

<p>adiary-extendsと言うのは今このサイトで使っているCMSで、<a href="https://github.com/Lycolia/adiary-extends">adiaryをフォークして開発しているもの</a>だ。</p>
</section>

<section>
<h3 id="e0f678ec"><a href="https://blog.lycolia.info/0810#e0f678ec">やったこと</a></h3>


<h4 id="t6e2725c"><a href="https://blog.lycolia.info/0810#t6e2725c">Markdownパーサーの改善</a></h4>


<p><a href="https://github.com/Lycolia/lyndbaum">Lycolia/lyndbaum</a>で実装したMarkdownパーサーからExtendsにないものを移植し、ついでに移植元でバグっていた部分を直した。主に直した不具合は次の通り。</p>

<ul>
<li><code>2 * 3 * 4</code>や<code>*.txt</code>、日本語に挟まれた<code>_</code>が強調として扱われてしまう問題を修正</li>
<li>リンクの文字に角括弧を、URLに入れ子の括弧を書けるようにした</li>
<li><code>&lt;M&gt;</code>のようなHTMLにないタグ名を、文字として表示するようにした</li>
<li>コードスパンの中の<code>\</code>が消える問題を修正</li>
<li>番号付きリストが書いた番号から始まるようにし、リスト内の<code>&lt;p&gt;</code>の付き方や引用も直した</li>
<li>表でコードスパン内の<code>\|</code>と、1列目の左寄せが効くようにした</li>
<li>脚注で複数の段落と、同じ脚注を複数回参照する書き方に対応した</li>
<li>画像や添付ファイルの代替テキスト・titleの扱いを整理した</li>
</ul>
<p>またほかにも、新しいパーサーでは見出し構文のアンカーをPukiwikiの見出し構文に準ずるものに変更しており<code># hoge [#anchor_id]</code>形式で生成するようにしている。これはアンカーIDを固定する記法で、見出し本文が変わってもアンカーを変えずに済むようにしている。アンカーIDがなければ自動付与、あれば付与しない、IDは手動指定も可能としている。過去記事については見出し本文をID指定することで、過去のアンカーリンクが壊れないように対応した。あわせて、段を飛ばした見出しが目次に出ない問題も直している。</p>

<p>Lycolia/lyndbaumについて先の記事でも言及しているが、これまでadiaryの代替CMSとして開発していたCMSだ。adiaryにある幅広い機能の網羅的再現が出来ず開発を中断したが、成果物はあり、本来adiaryに欲しい機能ではあったためバックポートを実施した。</p>

<p>かなり機能を入れているため、バックポートは今後もちまちまやっていく予定だ。Lyndbaumの開発のように五日で作りましたという勢いでLLM任せにやると何が何だか分からなくなるため、今回は理解可能な速度でレビューしながら進めてゆく。</p>

<h4 id="jdeea20f"><a href="https://blog.lycolia.info/0810#jdeea20f">バージョンを0.x系から4.x系に転換</a></h4>


<p>adiaryにはデータマイグレーションの仕組みがあるのだが、これがバージョンの数字の大きさによって管理されていた。ざっくりいうと<code>(前回マイグレーションしたバージョン - 新バージョン &gt; 0)</code>の条件が真であればマイグレーションを実施するもので、前回マイグレーションしたバージョンは管理画面で後退させることができ、マイグレーションをやり直す機能がある。</p>

<p>ここでバージョンが0.xだと都合が悪いため、3.x系である本家を追い抜いて4.x系をつけることで解決した。</p>

<p>マイグレーション管理用のバージョンと表に出すバージョンが分離しているため、別に0.x系のままでも成り立つのだが、本家では表のバージョンとマイグレーション管理用のバージョンは同期していたため、運用の都合で合わせることにした。そっちの方が解り易いし、綺麗だからだ。</p>
</section>

<section>
<h3 id="s6b858b8"><a href="https://blog.lycolia.info/0810#s6b858b8">あとがき</a></h3>

<p>この記事とは直接関係ない話だが、フィードアグリゲーターの<a href="https://rururu.app/channels/20272">rururu</a>がLyndbaumのフィードURLを拾っているようで少し困った。</p>

<p>実はLyndbaumは12時間ほど本番環境に上げて切り戻した経緯があり、その時にRSSについては302リダイレクトを入れていた。恐らくそれが起因となって書き換わっているのだと思う。</p>

<p>現在はadiary-extendsに切り戻しているためLyndbaumは使っていないのだが、動いていないRSSフィードやアイコンを参照されているのが悩みどころだ。</p>

<p>試しにadiary-extendsでも同様の302リダイレクトを掛けてみたが特に更新されなかった。恐らく手動で更新しているのかもしれない。<a href="https://blog.lycolia.info/0804#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">以前、フィードURLが変わると宣言した</a>のが影響している可能性を考えた。ひとまず管理者に連絡する術がないので、rururuの利用者で連絡が付きそうな人でかつ、rururuの運営者と関係がある人物に連絡してみたので、変わるといいなと思っている。</p>

<p>なおrururuくらいしかフィードの読み替えをしてなさそうに見えたため、Lyndbaum→adiary-extendsで生じたRSSフィードURL切り戻しに対する302リダイレクトは既に取りやめている。adiary-extends→Lyndbaumで302して、切り戻しでその逆をして、ややこしい二日間だった。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-21_9-52-16-809.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-21_9-52-16-809.png.jpg"></a></p>

<p>幾つかの変更は本家にもPRしているが、スパムみたいになってしまったので今後は考えようと思った。</p>
</section>
]]></description>
	</item>
	<item>
		<title>adiaryのローカル開発環境をnginxで構築する方法</title>
		<link>https://blog.lycolia.info/0806</link>
		<guid>https://blog.lycolia.info/0806</guid>
		<category>ソフトウェア::CMS::adiary</category>
		<pubDate>Tue, 20 Oct 2026 01:19:03 GMT</pubDate>
		<author>Lycolia Rizzim</author>
		<description><![CDATA[<section>
<p>前に書いた<a href="https://blog.lycolia.info/0304">ローカルにadiaryの開発環境を作る</a>がApache2前提だったので、そのnginx版。</p>

<p>常駐させると開発に支障がある<span><a title="HMR的な機能があるため基本的には問題ないがキャッシュの関係でデバッグがしづらい" href="https://blog.lycolia.info/0806#fn-fn1" id="fnt-fn1">*1</a></span>ためFCGIモードではなく、普通のCGIとして動かす。</p>


<ul>
	<li><a href="https://blog.lycolia.info/0806#%e7%a2%ba%e8%aa%8d%e7%92%b0%e5%a2%83">確認環境</a></li>
	<li><a href="https://blog.lycolia.info/0806#%e3%83%aa%e3%83%9d%e3%82%b8%e3%83%88%e3%83%aa%e3%81%ae%e3%82%af%e3%83%ad%e3%83%bc%e3%83%b3%e3%81%a8%e8%a8%ad%e7%bd%ae">リポジトリのクローンと設置</a></li>
	<li><a href="https://blog.lycolia.info/0806#%e8%a8%ad%e5%ae%9a%e4%be%8b">設定例</a></li>
	<li><a href="https://blog.lycolia.info/0806#%e3%83%88%e3%83%a9%e3%83%96%e3%83%ab%e3%82%b7%e3%83%a5%e3%83%bc%e3%83%88">トラブルシュート</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0806#%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e6%99%82%e3%81%abhttps-hoge%e3%81%ab%e9%a3%9b%e3%81%b0%e3%81%95%e3%82%8c%e3%82%8b">ログイン時にhttps://hogeに飛ばされる</a></li>
	</ul></li>
</ul>

</section>

<section>
<h3 id="確認環境"><a href="https://blog.lycolia.info/0806#%e7%a2%ba%e8%aa%8d%e7%92%b0%e5%a2%83">確認環境</a></h3>


<div><table><thead><tr>
	<th>Env</th>
	<th>Ver</th>
</tr></thead>
<tbody>
<tr>
	<td>adiary</td>
	<td>3.52b</td>
</tr>
<tr>
	<td>fcgiwrap</td>
	<td>1.1.0</td>
</tr>
<tr>
	<td>nginx</td>
	<td>1.24.0</td>
</tr>
</tbody>
</table></div>
</section>

<section>
<h3 id="リポジトリのクローンと設置"><a href="https://blog.lycolia.info/0806#%e3%83%aa%e3%83%9d%e3%82%b8%e3%83%88%e3%83%aa%e3%81%ae%e3%82%af%e3%83%ad%e3%83%bc%e3%83%b3%e3%81%a8%e8%a8%ad%e7%bd%ae">リポジトリのクローンと設置</a></h3>


<p><code>/var/www/</code>に展開すると仮定する。</p>

<pre><code>git clone git@github.com:nabe-abk/adiary.git
cd adiary
cp adiary.conf.cgi.sample adiary.conf.cgi
sudo chown -R www-data:www-data .
</code></pre>
</section>

<section>
<h3 id="設定例"><a href="https://blog.lycolia.info/0806#%e8%a8%ad%e5%ae%9a%e4%be%8b">設定例</a></h3>


<p>IPv6でSSL化済の設定。fcgiwrapはデーモンとして動いているものとする。</p>

<pre><code>server {
  listen [::]:443 ssl;
  server_name adiary.example.com;

  ssl_certificate     /path/to/fullchain.pem;
  ssl_certificate_key /path/to/privkey.pem;

  client_max_body_size 100M;

  root /var/www/adiary;

  # 実在するファイルはそのまま返し、なければ404
  location /pub/ { try_files $uri =404; }
  location /pub-dist/ { try_files $uri =404; }
  location /index.html { try_files $uri =404; }
  # favicon
  #  システム設定があればそちらを優先、なければデフォルト
  location = /favicon.ico { try_files /pub/lycolia/image/@system/sys-iconfile.png /pub-dist/default-icon.png =404; }
  # adiaryに飛ばす用
  #  /でCGI、/index.htmlでセットアップページに飛ばすための分岐を実現するために、こうしている
  location / {
    try_files $uri @adiary;
  }

  location @adiary {
    fastcgi_pass unix:/var/run/fcgiwrap.socket;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/adiary.cgi;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param HTTPS on;
    fastcgi_param SERVER_PORT 443;
    fastcgi_param ModRewrite 1;
    fastcgi_param Basepath   /;
  }
}
</code></pre>
</section>

<section>
<h3 id="トラブルシュート"><a href="https://blog.lycolia.info/0806#%e3%83%88%e3%83%a9%e3%83%96%e3%83%ab%e3%82%b7%e3%83%a5%e3%83%bc%e3%83%88">トラブルシュート</a></h3>


<h4 id="ログイン時にhttps-hogeに飛ばされる"><a href="https://blog.lycolia.info/0806#%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e6%99%82%e3%81%abhttps-hoge%e3%81%ab%e9%a3%9b%e3%81%b0%e3%81%95%e3%82%8c%e3%82%8b">ログイン時にhttps://hogeに飛ばされる</a></h4>


<p>上の設定にしたら行ける。公式の設定をコピペしても上手く行かない。</p>
</section>
]]></description>
	</item>
	<item>
		<title>adiary置き換え計画は取りやめようと思った</title>
		<link>https://blog.lycolia.info/0805</link>
		<guid>https://blog.lycolia.info/0805</guid>
		<category>ソフトウェア::CMS::adiary,ジャンル::サイト運営</category>
		<pubDate>Mon, 19 Oct 2026 15:11:27 GMT</pubDate>
		<author>Lycolia Rizzim</author>
		<description><![CDATA[<section>
<p><a href="https://blog.lycolia.info/0801">adiary置き換え計画始動</a>から着手した、adiaryに代わるCMS開発の続き。前回は<a href="https://blog.lycolia.info/0804">adiary置き換え計画 進捗その3</a>。</p>

<p>前回<a href="https://blog.lycolia.info/0804#%e5%88%9d%e7%89%88%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%be%e3%81%a7%e3%81%ab%e5%ae%9f%e8%a3%85%e3%81%99%e3%82%8b%e4%ba%88%e5%ae%9a%e3%81%ae%e6%a9%9f%e8%83%bd%e3%83%a1%e3%83%a2">初版リリースまでに実装する予定の機能メモ</a>として挙げたものは、大半を実装し終えた。果てしなく爆発的に実装した。取り敢えず運用のベースに乗せるだけのものは出来たくらいだ。しかしそこで一つの葛藤が生まれた。</p>


<ul>
	<li><a href="https://blog.lycolia.info/0805#%e7%94%9f%e3%81%be%e3%82%8c%e3%81%9f%e8%91%9b%e8%97%a4">生まれた葛藤</a></li>
	<li><a href="https://blog.lycolia.info/0805#%e4%bb%8a%e5%9b%9e%e3%81%ae%e5%a4%89%e6%9b%b4%e7%82%b9">今回の変更点</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0805#%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%8c%e5%ae%9f%e7%94%a8%e3%83%ac%e3%83%99%e3%83%ab%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f">メディアブラウザが実用レベルになった</a></li>
		<li><a href="https://blog.lycolia.info/0805#%e7%94%bb%e5%83%8f%e4%bb%a5%e5%a4%96%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e3%81%ab%e5%af%be%e5%bf%9c">画像以外のファイルのアップロードに対応</a></li>
		<li><a href="https://blog.lycolia.info/0805#%e8%bf%bd%e5%be%93%e3%81%99%e3%82%8b%e7%9b%ae%e6%ac%a1%e3%81%ae%e4%bd%9c%e6%88%90">追従する目次の作成</a></li>
		<li><a href="https://blog.lycolia.info/0805#%e5%9f%b7%e7%ad%86%e3%81%be%e3%82%8f%e3%82%8a%e3%81%ae%e6%94%b9%e4%bf%ae">執筆まわりの改修</a></li>
		<li><a href="https://blog.lycolia.info/0805#%e6%9c%ac%e7%95%aa%e3%83%87%e3%83%97%e3%83%ad%e3%82%a4%e3%81%ae%e6%ba%96%e5%82%99">本番デプロイの準備</a></li>
		<li><a href="https://blog.lycolia.info/0805#%e3%81%9d%e3%81%ae%e4%bb%96%e3%81%ae%e7%b4%b0%e3%81%8b%e3%81%84%e5%a4%89%e6%9b%b4">その他の細かい変更</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0805#%e5%be%97%e3%82%89%e3%82%8c%e3%81%9f%e3%81%93%e3%81%a8">得られたこと</a></li>
	<li><a href="https://blog.lycolia.info/0805#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></li>
</ul>

</section>

<section>
<h3 id="生まれた葛藤"><a href="https://blog.lycolia.info/0805#%e7%94%9f%e3%81%be%e3%82%8c%e3%81%9f%e8%91%9b%e8%97%a4">生まれた葛藤</a></h3>


<p>実装を進めるうちに「本当にこれでいいのか」という迷いが生まれてきた。そして、いったん立ち止まって考え直した方がいいのではないか、と思うようになった。</p>

<ul>
<li>LLMに丸投げで作らせた、正しいかどうかも分からないまま何となく動いているだけの代物。それでいいのか？</li>
<li>パフォーマンスはadiaryに劣り、LLMに指摘して直させても、言われた通りにベンチを取ればかえって遅くなっている。それでいいのか？</li>
<li>なぜ動いているのか自分でも説明できない。それでいいのか？</li>
<li>そんなものがadiaryの後継を名乗るのは、さすがに無理があるのではないか？</li>
</ul>
<p>そんな葛藤が湧いてきた。</p>

<p>正直なところ、LLMに色々やらせた結果、表面上は動いている。けれど、きちんと要件定義や設計をしていなかったこともあって、細かい部分はうまくいっていない。LLMはコンテキストが膨らむにつれて文句を言い出したり、明らかに誤った判断をし始めたりもする。長く使っていくものを作るにしては、あまりにも拙速な開発だったのではないかと感じている。</p>
</section>

<section>
<h3 id="今回の変更点"><a href="https://blog.lycolia.info/0805#%e4%bb%8a%e5%9b%9e%e3%81%ae%e5%a4%89%e6%9b%b4%e7%82%b9">今回の変更点</a></h3>


<p>とはいえ作るものは作ったのでそこだけ出していく。</p>

<h4 id="メディアブラウザが実用レベルになった"><a href="https://blog.lycolia.info/0805#%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%8c%e5%ae%9f%e7%94%a8%e3%83%ac%e3%83%99%e3%83%ab%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f">メディアブラウザが実用レベルになった</a></h4>


<p>今回一番手を入れたのがここで、記事に画像を貼るためのモーダルだったものが、ファイルマネージャーに近しいレベルになった。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_23-48-42-447.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_23-48-42-447.png.jpg"></a></p>

<p>大分それっぽい見た目だ。フォルダの作成やリネーム、削除にも対応した。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_23-49-0-690.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_23-49-0-690.png.jpg"></a></p>

<p>ファイル情報やどこに添付されているかも出せる。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_23-49-40-484.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_23-49-40-484.png.jpg"></a></p>

<p>複数選択してD&amp;Dで移動させることもできる。Shiftキーを押しながら一括選択だって可能だ。</p>

<p>ダブルクリックでサムネイルビューワが立ち上がるところも再現したし、サムネイルビューワもFancyboxではなく、自作品にした。</p>

<h4 id="画像以外のファイルのアップロードに対応"><a href="https://blog.lycolia.info/0805#%e7%94%bb%e5%83%8f%e4%bb%a5%e5%a4%96%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e3%81%ab%e5%af%be%e5%bf%9c">画像以外のファイルのアップロードに対応</a></h4>


<p>これまでは画像と動画しか上げられなかったが、mp3、txt、md、csv、tsv、json、zip、7z、pdfも上げられるようにした。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_23-51-2-508.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_23-51-2-508.png.jpg"></a></p>

<p>例えばテキストファイルをアップロードしてプレビューも出来るようになった。</p>

<p>記事中に<code>[file:mp3:~~~~]</code>と書けば<code>&lt;audio&gt;</code>で出力されるようにし、音楽も流せるようにした。</p>

<p>一方でHTMLやSVG、XMLなど、ブラウザがこのサイトのオリジンでスクリプトを動かせるとのことで、これらのアップロードは許容しないようにした。</p>

<p>またTIFFなどサムネイル生成時に任意のコマンドが実行される可能性があるものについてもアップロードさせない対応をした。</p>

<h4 id="追従する目次の作成"><a href="https://blog.lycolia.info/0805#%e8%bf%bd%e5%be%93%e3%81%99%e3%82%8b%e7%9b%ae%e6%ac%a1%e3%81%ae%e4%bd%9c%e6%88%90">追従する目次の作成</a></h4>


<p><video controls><source src="https://blog.lycolia.info/pub/attachments/posts/2026/10/%e3%83%ac%e3%82%b3%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3%e3%82%b0%202026-10-19%20235442.mp4" type="video/mp4">(Browser not support video tag) <a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/%e3%83%ac%e3%82%b3%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3%e3%82%b0%202026-10-19%20235442.mp4">pub/attachments/posts/2026/10/%e3%83%ac%e3%82%b3%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3%e3%82%b0%202026-10-19%20235442.mp4</a></video></p>

<p>Wiki.jsやGitHubにある追従する目次も作った。</p>

<p>うちは3カラムサイトというのもあり、やり方は少し悩んだが、GitHubとWiki.jsの間の子的なUIにして解決した。</p>

<h4 id="執筆まわりの改修"><a href="https://blog.lycolia.info/0805#%e5%9f%b7%e7%ad%86%e3%81%be%e3%82%8f%e3%82%8a%e3%81%ae%e6%94%b9%e4%bf%ae">執筆まわりの改修</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-20_0-4-59-878.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-20_0-4-59-878.png.jpg"></a></p>

<p>これまではアイキャッチのモード選択と言う煩雑なものがあったが、今回の改修ではモード選択をなくし、WordPressのUIを採用した上で、アイキャッチにする画像選択についてはadiaryの自動選択アルゴリズムと、手動選択の二つを暗黙的に選択できるようにした。</p>

<p>手動で選択すればそれがアイキャッチとなり、それをしなければ最初の画像がアイキャッチとなり、画像がなければ既定の画像がアイキャッチとなる仕組みだ。</p>

<h4 id="本番デプロイの準備"><a href="https://blog.lycolia.info/0805#%e6%9c%ac%e7%95%aa%e3%83%87%e3%83%97%e3%83%ad%e3%82%a4%e3%81%ae%e6%ba%96%e5%82%99">本番デプロイの準備</a></h4>


<p>本番デプロイにあたり、必要なドキュメントの整理や、FCGI対応も行った。</p>

<p>さくらのレンタルサーバーでも動作し、家のサーバーでもFCGIとして高速に動作した。</p>

<p>しかしadiaryを超える速度にはならなかった。</p>

<h4 id="その他の細かい変更"><a href="https://blog.lycolia.info/0805#%e3%81%9d%e3%81%ae%e4%bb%96%e3%81%ae%e7%b4%b0%e3%81%8b%e3%81%84%e5%a4%89%e6%9b%b4">その他の細かい変更</a></h4>


<p>他にもこまごまとした対応をしたが、結局のところ虚無になってきた。</p>

<p>アクセス解析を入れられるようにしたり、カウンターを挿入できるブロックを追加できるようにしたりもした。</p>

<p>この記事も、既に使わなくなったことについて書いているので虚無である。</p>
</section>

<section>
<h3 id="得られたこと"><a href="https://blog.lycolia.info/0805#%e5%be%97%e3%82%89%e3%82%8c%e3%81%9f%e3%81%93%e3%81%a8">得られたこと</a></h3>


<p>今回の開発は一旦中断することにしたが、セキュリティ周りの対策の知見や、FCGIの作り方など、幾つかの技術的な知識が手に入ったのは有益だったと思う。</p>

<p>また外部のフィードアグリゲーターから画像が直リンクされていることを把握できるなど、中々新しいことが分かった。そんくらいサーバーログ見てろよって話だが…ｗ</p>
</section>

<section>
<h3 id="あとがき"><a href="https://blog.lycolia.info/0805#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></h3>


<p>また今回のCMSは一旦お蔵入りさせるが、作ったものの一部はExtendsにバックポートし、必要に応じて本家にもPRを出しバグの改善が出来たらよいと思っている。</p>

<p>adiary自体の資産が大きすぎて全てを再発明するのは無理があるし、それをするくらいなら必要な部分を直した方が早い。</p>

<p>何故なら私が一番欲しかったものはレスポンシブデザインで、その次が理想のMarkdownパーサー、後はバックリンクくらいで、その他は既に実装してしまっている気がするからだ。</p>

<p>ひとまず作ったCMSである<a href="https://github.com/Lycolia/lyndbaum">Lycolia/lyndbaum</a>と、Fancyboxもどきの<a href="https://github.com/Lycolia/lythumb-viewer">Lycolia/lythumb-viewer</a>はこの記事で供養しておこうと思う。因みにサムネイルビューワについてはFancyboxに戻してある。理由は単純で、lythumb-viewerより拡張性があり、操作性もいいからだ。</p>

<p>何はともあれ今回の開発はいい勉強と経験になったので、今後に生かしていきたい。</p>

<p>あとこれは下心なのだが、<a href="https://adiary.org/users/pages.html">adiary利用者のページ</a>からのアクセスが馬鹿にならないほどあり、これも新製CMSへの移行をためらった理由の一つである。</p>

<p>そしてExtendsの方はこれまで通りのんびり育てていこうと思う。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-20_0-19-18-288.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-20_0-19-18-288.png.jpg"></a></p>

<p>しかしこのネタだけでちょうど新着5件が埋まってしまったのは面白い。</p>

<p>Opus 5.5のトークン使用量はProプランで前週73%、今週24%に収めることができたので、単に作るだけであればProで足りた。もうちょっと、ちゃんと作る場合はやり取りが増えるので溢れたかもしれない。</p>
</section>
]]></description>
	</item>
	<item>
		<title>adiary置き換え計画 進捗その3</title>
		<link>https://blog.lycolia.info/0804</link>
		<guid>https://blog.lycolia.info/0804</guid>
		<category>ジャンル::サイト運営,ソフトウェア::CMS::adiary</category>
		<pubDate>Sun, 18 Oct 2026 17:14:46 GMT</pubDate>
		<author>Lycolia Rizzim</author>
		<description><![CDATA[<section>
<p>adiary置き換え計画始動より着手した、adiaryに代わるCMSの開発について、<a href="https://blog.lycolia.info/0803">adiary置き換え計画 進捗その2</a>からの続き。</p>


<ul>
	<li><a href="https://blog.lycolia.info/0804#%e5%89%8d%e5%9b%9e%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%8b%e3%82%89%e5%a4%89%e3%82%8f%e3%81%a3%e3%81%9f%e9%83%a8%e5%88%86">前回の記事から変わった部分</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0804#%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e4%b8%ad%e3%81%ab%e7%ae%a1%e7%90%86%e3%83%90%e3%83%bc%e3%82%92%e5%87%ba%e3%81%99%e3%82%88%e3%81%86%e3%81%ab%e3%81%97%e3%81%9f">ログイン中に管理バーを出すようにした</a></li>
		<li><a href="https://blog.lycolia.info/0804#%e7%ae%a1%e7%90%86%e7%94%bb%e9%9d%a2%e3%81%ae%e3%83%aa%e3%83%83%e3%83%81%e5%8c%96">管理画面のリッチ化</a></li>
		<li><a href="https://blog.lycolia.info/0804#%e5%85%ac%e9%96%8b%e7%94%bb%e9%9d%a2%e3%81%ae%e3%82%bb%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e5%88%86%e3%81%91%e3%81%a8%e3%80%81%e3%83%88%e3%83%83%e3%83%97%e3%81%ae%e5%85%a8%e6%96%87%e8%a1%a8%e7%a4%ba%e5%af%be%e5%bf%9c%e3%81%a8%e3%80%81%e3%81%9d%e3%81%ae%e4%bb%96%e8%ab%b8%e3%80%85">公開画面のセクション分けと、トップの全文表示対応と、その他諸々</a></li>
		<li><a href="https://blog.lycolia.info/0804#%e5%85%ac%e9%96%8b%e7%94%bb%e9%9d%a2%e3%81%ae%e3%83%ac%e3%82%b9%e3%83%9d%e3%83%b3%e3%82%b7%e3%83%96%e3%83%87%e3%82%b6%e3%82%a4%e3%83%b3%e5%af%be%e5%bf%9c">公開画面のレスポンシブデザイン対応</a></li>
		<li><a href="https://blog.lycolia.info/0804#%e3%83%90%e3%83%83%e3%82%af%e3%83%aa%e3%83%b3%e3%82%af%e6%a9%9f%e8%83%bd%e3%81%ae%e8%bf%bd%e5%8a%a0">バックリンク機能の追加</a></li>
		<li><a href="https://blog.lycolia.info/0804#fancybox%e3%82%92%e5%bb%83%e6%ad%a2%e3%81%97%e3%80%81%e7%8b%ac%e8%87%aa%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%81%ab%e7%bd%ae%e3%81%8d%e6%8f%9b%e3%81%88">Fancyboxを廃止し、独自ライブラリに置き換え</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0804#%e5%88%9d%e7%89%88%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%be%e3%81%a7%e3%81%ab%e5%ae%9f%e8%a3%85%e3%81%99%e3%82%8b%e4%ba%88%e5%ae%9a%e3%81%ae%e6%a9%9f%e8%83%bd%e3%83%a1%e3%83%a2">初版リリースまでに実装する予定の機能メモ</a></li>
	<li><a href="https://blog.lycolia.info/0804#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></li>
</ul>

</section>

<section>
<h3 id="前回の記事から変わった部分"><a href="https://blog.lycolia.info/0804#%e5%89%8d%e5%9b%9e%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%8b%e3%82%89%e5%a4%89%e3%82%8f%e3%81%a3%e3%81%9f%e9%83%a8%e5%88%86">前回の記事から変わった部分</a></h3>


<h4 id="ログイン中に管理バーを出すようにした"><a href="https://blog.lycolia.info/0804#%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e4%b8%ad%e3%81%ab%e7%ae%a1%e7%90%86%e3%83%90%e3%83%bc%e3%82%92%e5%87%ba%e3%81%99%e3%82%88%e3%81%86%e3%81%ab%e3%81%97%e3%81%9f">ログイン中に管理バーを出すようにした</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_1-48-26-883.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_1-48-26-883.png.jpg"></a></p>

<p>adiaryやWordPressはログイン中に管理バーが出てくるが、それを実装した。</p>

<p>一々ダッシュボード開きたくないし、記事開いてる時はその場で編集画面に飛びたいためだ。</p>

<p>adiaryに乗り換えたときに放棄したWordPressのアーカイブをまだ残していたため、それを参考にUIを作った。中々イケてると思う。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_1-51-16-825.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_1-51-16-825.png.jpg"></a></p>

<p>なお当時のWordPressは既にあれこれ壊れており、ほぼ機能していない。</p>

<h4 id="管理画面のリッチ化"><a href="https://blog.lycolia.info/0804#%e7%ae%a1%e7%90%86%e7%94%bb%e9%9d%a2%e3%81%ae%e3%83%aa%e3%83%83%e3%83%81%e5%8c%96">管理画面のリッチ化</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_1-52-14-958.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_1-52-14-958.png.jpg"></a></p>

<p>流石に以前の管理画面は殺風景すぎたし、なんか使いづらかったのでWordPressリスペクトで作った。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_1-53-23-924.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_1-53-23-924.png.jpg"></a><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_1-54-35-247.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_1-54-35-247.png.jpg"></a></p>

<p>表形式の画面は奇数行と偶数行で色分けしているし、記事編集画面もテキストエリアと背景色の色を差別化して見やすくした。アイキャッチや公開のセクションボックスも色を変えるとより良くなりそうだ。</p>

<p>他にも編集中に間違えて離脱しそうになったとき、確認のダイアログを出して誤った離脱を防げるようにもしている。そこを超えて万一離脱した場合もページそのものは単純なHTMLであるため閉じたタブを戻したり、ブラウザで戻る・進む操作で戻ってくれば基本的に状態は保持されている。</p>

<p>JSフロントでやろうとすると状態管理が偉いことになるが、ここはブラウザの機能に丸投げして楽をしている。因みにadiaryも同じ仕様である。</p>

<h4 id="公開画面のセクション分けと、トップの全文表示対応と、その他諸々"><a href="https://blog.lycolia.info/0804#%e5%85%ac%e9%96%8b%e7%94%bb%e9%9d%a2%e3%81%ae%e3%82%bb%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e5%88%86%e3%81%91%e3%81%a8%e3%80%81%e3%83%88%e3%83%83%e3%83%97%e3%81%ae%e5%85%a8%e6%96%87%e8%a1%a8%e7%a4%ba%e5%af%be%e5%bf%9c%e3%81%a8%e3%80%81%e3%81%9d%e3%81%ae%e4%bb%96%e8%ab%b8%e3%80%85">公開画面のセクション分けと、トップの全文表示対応と、その他諸々</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_1-56-48-1.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_1-56-48-1.png.jpg"></a></p>

<p>背景が単色で各セクションの境目が見えなかったので、背景色と前景色を分けて見やすくした。</p>

<p>またトップページを抜粋表示から一覧表示に変更した。</p>

<p>他にも記事ページのスタイリングを調整し、現在のスタイリングに近いものにした。近いだけでそこまで似てない。</p>

<h4 id="公開画面のレスポンシブデザイン対応"><a href="https://blog.lycolia.info/0804#%e5%85%ac%e9%96%8b%e7%94%bb%e9%9d%a2%e3%81%ae%e3%83%ac%e3%82%b9%e3%83%9d%e3%83%b3%e3%82%b7%e3%83%96%e3%83%87%e3%82%b6%e3%82%a4%e3%83%b3%e5%af%be%e5%bf%9c">公開画面のレスポンシブデザイン対応</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_2-37-33-412.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_2-37-33-412.png.jpg"></a><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_2-40-7-233.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_2-40-7-233.png.jpg"></a><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_2-40-18-897.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_2-40-18-897.png.jpg"></a></p>

<p>2024-02-01にCMSをWordPressからadiaryに乗り換えて以来、ずっと達成できていなかったレスポンシブデザインについに悲願の対応をした。</p>

<p>これで遂に<a href="https://blog.lycolia.info/%e3%81%93%e3%81%ae%e3%82%b5%e3%82%a4%e3%83%88%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6">このサイトについて</a>にある、「レスポンシブデザインにも対応予定ですが、現状は非対応です。」の説明を外すことができる。</p>

<h4 id="バックリンク機能の追加"><a href="https://blog.lycolia.info/0804#%e3%83%90%e3%83%83%e3%82%af%e3%83%aa%e3%83%b3%e3%82%af%e6%a9%9f%e8%83%bd%e3%81%ae%e8%bf%bd%e5%8a%a0">バックリンク機能の追加</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-19_2-2-43-168.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-19_2-2-43-168.png.jpg"></a></p>

<p>記事から被リンクを受けている記事は、そのリンク元を示せるようにした。これはPukiwikiにもある機能だ。</p>

<p>これでもう手作業で関連記事を書いたり、その更新のせいで無駄に更新日時がアップデートされることもなくなる…。</p>

<h4 id="fancyboxを廃止し、独自ライブラリに置き換え"><a href="https://blog.lycolia.info/0804#fancybox%e3%82%92%e5%bb%83%e6%ad%a2%e3%81%97%e3%80%81%e7%8b%ac%e8%87%aa%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%81%ab%e7%bd%ae%e3%81%8d%e6%8f%9b%e3%81%88">Fancyboxを廃止し、独自ライブラリに置き換え</a></h4>


<p>FancyboxはjQueryで動いていて、jQueryで動いてるのがこいつだけなので排除したい思いが常々あったが、GPT-6.1 Solにドラフトを書かせ、Opus 5.5に仕上げさせることで形にした。</p>

<p>GPT-6.1 Solを使っていて思ったのは5ターンもすると最初の指示を忘れて暴走し始めることで、これはもう駄目だなと思った。コンテキストが長くなると、その場の指示すらまともに聞き入れてくれないので脱帽ものだった。</p>

<p>この独自ライブラリは既に今のadiaryで動いているブログにも取り込んでいて、fancyboxの排除はCMS移行をせずとも既に達成されている。</p>

<p>fancyboxにはURLにハッシュが付いた状態でページをスクロールしてモーダルを閉じるとハッシュの場所に戻る不具合があるが、これは新製ライブラリでは起きないようにしている。</p>
</section>

<section>
<h3 id="初版リリースまでに実装する予定の機能メモ"><a href="https://blog.lycolia.info/0804#%e5%88%9d%e7%89%88%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%be%e3%81%a7%e3%81%ab%e5%ae%9f%e8%a3%85%e3%81%99%e3%82%8b%e4%ba%88%e5%ae%9a%e3%81%ae%e6%a9%9f%e8%83%bd%e3%83%a1%e3%83%a2">初版リリースまでに実装する予定の機能メモ</a></h3>


<ul>
<li>記事編集画面もテキストエリアと背景色の色を差別化して見やすくしたが、アイキャッチや公開のセクションボックスも同様に色を変えたい</li>
<li>テーブルの中身が折れてそうなので確認する</li>
<li>ページ作成
<ul>
<li>slugはデフォルトでタイトルにする
<ul>
<li>手打ちした場合のみ変更可能にする</li>
<li>更新時にタイトルが変わった場合も、そのタイトルをslugにする</li>
</ul></li>
</ul></li>
<li>メディアブラウザ
<ul>
<li>複数選択して一括で記事に挿入</li>
<li>選択しているものをD&amp;Dで別のフォルダへ移動
<ul>
<li>記事のアップデートまではしない予定
<ul>
<li>記事を書いてそのあとにパスを考えるのはあり得ないオペレーションだと考えている</li>
</ul></li>
</ul></li>
</ul></li>
<li>タグ
<ul>
<li>選択しているものをD&amp;Dで別の階層へ移動
<ul>
<li>これは記事側も更新される</li>
</ul></li>
</ul></li>
<li>インストールマニュアル</li>
<li>ハンバーガーメニューの追従
<ul>
<li>今は追従しないのでスクロールすると消える</li>
</ul></li>
<li>目次の追従
<ul>
<li><a href="https://wiki.maud.io/ja/akane/guideline">https://wiki.maud.io/ja/akane/guideline</a>みたいなやつ</li>
<li>現状の3カラムをどうするかは考え直す余地がある</li>
<li>SPビューでもアイコンで目次を配置したい</li>
</ul></li>
<li>favicon設定
<ul>
<li>自動で各サイズのアイコンを作る</li>
<li>既定はpub/assets/logoにある奴を使う</li>
</ul></li>
<li>Ping通知
<ul>
<li>管理画面からtextareaで宛先を行単位に登録可能</li>
</ul></li>
<li>HTTP CLIENT
<ul>
<li>基本的にHTTP通信はこいつを通す
<ul>
<li>例外が必要な場合は検討する</li>
</ul></li>
<li>UAにはソフトウェアバージョンやサイトドメインなどを含める
<ul>
<li>例：<code>Lyndbaum/0.1-beta5 (+https://blog.example.com)</code></li>
</ul></li>
</ul></li>
<li>画像以外のアップロード
<ul>
<li>現状テキストやHTMLとかはアップロードできない気がするため
<ul>
<li>画像以外はサムネなしでファイル種別の分かるアイコン出せれば良さそう？</li>
<li>初期では単純にファイルアイコンに拡張子書いたSVGでもいいかも</li>
</ul></li>
<li>アップロード可能な拡張子は設定可能にする</li>
</ul></li>
<li>記事のフラグ機能
<ul>
<li>任意のフラグを設定して記事の表示時に何かをする機能、例えばNSFWフラグを立ててブラーや検索エンジン向けのメタ通知をレンダリングできるとよい</li>
</ul></li>
<li>記法の管理
<ul>
<li>adiaryでは任意のSatsuki構文を追加できるが、新CMSではまだできない</li>
<li>WordPressのshortcodeは色々面倒なのでSatsuki構文で行きたい</li>
</ul></li>
</ul>
</section>
<section>
<h3 id="あとがき"><a href="https://blog.lycolia.info/0804#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></h3>


<p>ここに書いていない事でも細々とした修正を重ねていて、既にCMSの新規作成と言うよりは、細かい詰めのフェーズに入っている感じだ。早ければ今月中、遅くとも年内には切り替えられるのではないかと考えている。</p>

<p>切り替えるとadiary利用者一覧に乗せられなくなるのが残念だが、その時点で利用者ではないため仕方がない。</p>

<p>また移行時にはRSSフィードのURLを変える予定なので、RSSを購読されている方々におかれては追々移行の対応をしていただけると幸いである。しばらくはリダイレクトをつける予定なので、すぐに読めなくなることはない。</p>

<p>そういえばLightboxで画像の拡大ができないのでFancyboxを導入していたのだが、<a href="https://lokeshdhakar.com/projects/lightbox3/">Lightbox3</a>が今年の8月に出ていたようで、なんと画像の拡大に対応していた。しかし画像に角丸が付いてたり、画像にUIがオーバーレイしまくりだったり、何とも言えない感じなので、採用は見送った。</p>

<p>かつて画像拡大モーダルの代名詞だったLightboxは、あの時のLightboxのままを記憶にとどめとこうと思った。</p>
</section>
]]></description>
	</item>
	<item>
		<title>adiary置き換え計画 進捗その2</title>
		<link>https://blog.lycolia.info/0803</link>
		<guid>https://blog.lycolia.info/0803</guid>
		<category>ソフトウェア::CMS::adiary,ジャンル::サイト運営</category>
		<pubDate>Fri, 16 Oct 2026 03:58:54 GMT</pubDate>
		<author>Lycolia Rizzim</author>
		<description><![CDATA[<section>
<p><a href="https://blog.lycolia.info/0801">adiary置き換え計画始動</a>より着手した、adiaryに代わるCMSの開発について、<a href="https://blog.lycolia.info/0802">前回たたき台を作成していることを書いた</a>が、その続き。</p>

<p>前回から進展して現状では最低限ブログとして使えるだけの機能性を有している。</p>


<ul>
	<li><a href="https://blog.lycolia.info/0803#%e5%89%8d%e5%9b%9e%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%8b%e3%82%89%e5%a4%89%e3%82%8f%e3%81%a3%e3%81%9f%e7%94%bb%e9%9d%a2">前回の記事から変わった画面</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0803#%e7%ae%a1%e7%90%86%e7%94%bb%e9%9d%a2">管理画面</a></li>
		<li><a href="https://blog.lycolia.info/0803#%e8%a8%98%e4%ba%8b%e4%bd%9c%e6%88%90%e7%94%bb%e9%9d%a2">記事作成画面</a></li>
		<li><a href="https://blog.lycolia.info/0803#%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6">メディアブラウザ</a></li>
		<li><a href="https://blog.lycolia.info/0803#%e3%83%96%e3%83%ad%e3%82%b0%e3%81%ae%e8%a8%ad%e5%ae%9a">ブログの設定</a></li>
		<li><a href="https://blog.lycolia.info/0803#%e7%b7%a8%e9%9b%86%e3%81%ae%e8%a8%ad%e5%ae%9a%ef%bc%88%e8%a8%98%e4%ba%8b%e6%8a%95%e7%a8%bf%e3%81%ae%e8%a8%ad%e5%ae%9a%ef%bc%89">編集の設定（記事投稿の設定）</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0803#%e8%a8%ad%e8%a8%88%e3%81%a7%e5%b7%a5%e5%a4%ab%e3%81%97%e3%81%9f%e9%83%a8%e5%88%86">設計で工夫した部分</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0803#%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e6%a7%8b%e6%88%90%e3%82%84%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e9%9a%8e%e5%b1%a4%e3%81%ae%e4%b8%80%e8%88%ac%e5%8c%96">ファイル構成やフォルダ階層の一般化</a></li>
		<li><a href="https://blog.lycolia.info/0803#%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89%e3%81%ae%e3%83%8f%e3%83%83%e3%82%b7%e3%83%a5%e5%8c%96">パスワードのハッシュ化</a></li>
		<li><a href="https://blog.lycolia.info/0803#%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e5%90%8d%e5%89%8d%e3%81%ae%e5%88%b6%e7%b4%84">コンテンツページの名前の制約</a></li>
		<li><a href="https://blog.lycolia.info/0803#rss%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%81%ae%e3%83%95%e3%82%a9%e3%83%bc%e3%83%9e%e3%83%83%e3%83%88%e3%82%92%e8%a6%8b%e7%9b%b4%e3%81%97">RSSフィードのフォーマットを見直し</a></li>
		<li><a href="https://blog.lycolia.info/0803#%e8%a8%98%e4%ba%8b%e3%81%a8%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%aeurl%e3%82%92adiary%e3%81%8b%e3%82%89%e5%bc%95%e3%81%8d%e7%b6%99%e3%81%84%e3%81%a0">記事とコンテンツページのURLをadiaryから引き継いだ</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0803#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></li>
</ul>

</section>

<section>
<h3 id="前回の記事から変わった画面"><a href="https://blog.lycolia.info/0803#%e5%89%8d%e5%9b%9e%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%8b%e3%82%89%e5%a4%89%e3%82%8f%e3%81%a3%e3%81%9f%e7%94%bb%e9%9d%a2">前回の記事から変わった画面</a></h3>


<h4 id="管理画面"><a href="https://blog.lycolia.info/0803#%e7%ae%a1%e7%90%86%e7%94%bb%e9%9d%a2">管理画面</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-16_8-36-39-663.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-16_8-36-39-663.png.jpg"></a></p>

<p>前回と比べるとメディアブラウザとブログの設定が追加され、基本的な管理機能が揃った。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-16_8-50-9-308.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-16_8-50-9-308.png.jpg"></a></p>

<p>まだPC前提の画面と言う感じが強く、画面幅を狭めると使いづらい。狭い画面でのメニュー類はハンバーガーメニューにしたいところだ。</p>

<h4 id="記事作成画面"><a href="https://blog.lycolia.info/0803#%e8%a8%98%e4%ba%8b%e4%bd%9c%e6%88%90%e7%94%bb%e9%9d%a2">記事作成画面</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/lyndbaum_lycolia_info_admin_articles_new.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/lyndbaum_lycolia_info_admin_articles_new.png.jpg"></a></p>

<p>前回と比べるとOGPの設定やメディアブラウザに繋ぐボタンの追加があり、記事の設定がしやすくなった。</p>

<p>しかしメディアブラウザから複数ファイルを一括で入れる機能や、動画やテキスト、バイナリファイルの挿入には対応していない。</p>

<p>画面のレイアウトはWordPressを参考に作ってほしいと途中から指示している関係で中途半端にWordPress感がある。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-16_8-55-9-10.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-16_8-55-9-10.png.jpg"></a></p>

<p>比較用にadiaryの編集画面はこんな感じ。adiaryのデザインは踏襲せず、どちらかと言えばWordPressのようなレイアウトに寄せていきたい考えだ。理由として1カラムより2カラムの方が1画面に要素を入れられるし、マウスは上下より左右に移動させる方が楽な気がしているからだ。</p>

<p>それに記事を書く場合、本文エリアは文章執筆に集中できるように余計なものがない方がいいと考えている。WordPressは標準だとメインカラムにあれこれ乗っていた気がするが一旦新CMSでは操作系のパネルは右に寄せていきたい。</p>

<p>WordPressのように要素を再配置可能にするかについては未検討。</p>

<h4 id="メディアブラウザ"><a href="https://blog.lycolia.info/0803#%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6">メディアブラウザ</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-16_8-38-0-826.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-16_8-38-0-826.png.jpg"></a><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-16_9-3-0-990.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-16_9-3-0-990.png.jpg"></a></p>

<p>取り敢えずアップロードされてるファイルの一覧や操作が出来たらいいよねと言うことで作ったもの。これがないブログCMSは知りうる限りない。15年以上前に使っていたPHP製CMSのBlognですら装備していた。</p>

<p>ディレクトリツリーが折りたためない、リネームができないなど、機能的にはイマイチだが、取り敢えず一覧表示とゴミ箱への移動は実装している。</p>

<p>ファイル選択時のレイアウトシフトが邪魔くさいので、これも何とかしたい。たぶんWordPressのレイアウトを参考にする。</p>

<h4 id="ブログの設定"><a href="https://blog.lycolia.info/0803#%e3%83%96%e3%83%ad%e3%82%b0%e3%81%ae%e8%a8%ad%e5%ae%9a">ブログの設定</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-16_8-38-27-924.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-16_8-38-27-924.png.jpg"></a></p>

<p>ブログの基本的な設定が出来るようになり、ブログの説明をテンプレートにハードコードしなくてよくなった。</p>

<h4 id="編集の設定（記事投稿の設定）"><a href="https://blog.lycolia.info/0803#%e7%b7%a8%e9%9b%86%e3%81%ae%e8%a8%ad%e5%ae%9a%ef%bc%88%e8%a8%98%e4%ba%8b%e6%8a%95%e7%a8%bf%e3%81%ae%e8%a8%ad%e5%ae%9a%ef%bc%89">編集の設定（記事投稿の設定）</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-16_8-45-41-685.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-16_8-45-41-685.png.jpg"></a></p>

<p>以前は履歴を積むまでの間隔の単位が「時間」だったが、「分」にした。時間を割った指定がしづらいためだ。例えば0.75時間が45分なのは直感的でなくUXが悪いと思っている。</p>
</section>

<section>
<h3 id="設計で工夫した部分"><a href="https://blog.lycolia.info/0803#%e8%a8%ad%e8%a8%88%e3%81%a7%e5%b7%a5%e5%a4%ab%e3%81%97%e3%81%9f%e9%83%a8%e5%88%86">設計で工夫した部分</a></h3>


<h4 id="ファイル構成やフォルダ階層の一般化"><a href="https://blog.lycolia.info/0803#%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e6%a7%8b%e6%88%90%e3%82%84%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e9%9a%8e%e5%b1%a4%e3%81%ae%e4%b8%80%e8%88%ac%e5%8c%96">ファイル構成やフォルダ階層の一般化</a></h4>


<p>当たり前のこと過ぎて、これが工夫に当たるかどうかは限りなく謎だが…。</p>

<p>adiaryの構成は一見すると何がどこにあるか全くわからないため、これを一般的なMVCアーキテクチャにしてどこに何があるかわかりやすくした。</p>

<p>またadiaryでは画像処理やハッシュ化などに自作処理が多いが、脆弱性やバグのもとになるためPerl標準のライブラリで実現できる機能はライブラリに任せている。</p>

<p>以下のスクショにはないが自動テストも作っており、デグレの検知が出来るようにもしてあるし、一般的な構成にできていると思う。</p>

<div><table><thead><tr>
	<th>adiary</th>
	<th>新CMS</th>
</tr></thead>
<tbody>
<tr>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-16_13-18-25-694.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-16_13-18-25-694.png.jpg"></a></td>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-16_13-18-59-55.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-16_13-18-59-55.png.jpg"></a></td>
</tr>
</tbody>
</table></div>

<h4 id="パスワードのハッシュ化"><a href="https://blog.lycolia.info/0803#%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89%e3%81%ae%e3%83%8f%e3%83%83%e3%82%b7%e3%83%a5%e5%8c%96">パスワードのハッシュ化</a></h4>


<p>何をそんな当たり前のことを…と思うかもしれないが、当たり前だからこそ書いている。昨今システムへの攻撃ニュースが相次いでいるが、歴史的経緯や要件の都合で、パスワードを平文で持っているシステムもまだあるだろう。</p>

<p>当然、今回のシステムではハッシュ化して保存しており、アルゴリズムにはbcryptを使っている。</p>

<p>最初はClaude Opus 5.5が提案した<a href="https://ja.wikipedia.org/wiki/PBKDF2">PBKDF2-HMAC-SHA256</a>を採用していた。これはLLMが言うならbcryptより新しく強固だろうと思ったからだ。しかし調べたところ今回の要件では特に優位点がなく、<a href="https://laravel.com/docs/hashing">Laravelの標準</a>でレンタルサーバーのような貧弱な環境でも広く使われているbcryptに切り替えた。</p>

<p>bcryptは72バイトまでの制約がある軽量なハッシュ化アルゴリズムで、PBKDF2-HMAC-SHA256と比べた場合にハッシュが漏洩したときの総当たり計算コストが高い優位性があるらしい。PBKDF2-HMAC-SHA256も軽量だが、こちらは長さの制約がない代わりに、総当たりコストがbcryptより低いらしい。どっちみち今回のシステムではハッシュが漏れた時点で色々終わっており、ここを比べてもあまり意味がないため、PBKDF2-HMAC-SHA256でも問題ないと言えばない。</p>

<p>なお<a href="https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html">OWASP Password Storage Cheat Sheet</a>では、第一候補はArgon2idとされている。bcryptより強固だが、推奨構成（メモリ19MiB、反復数2、並列度1）ではログインが100件同時に走るだけで約1.9GB、1000件なら約19GBのメモリを使うため不採用とした。OWASPもbcryptはArgon2idを使えない環境向けとしており、今回の用途に合っている。まぁ実際にDoS攻撃が来たら、どのアルゴリズムでも耐えられないとは思うが…。</p>

<h4 id="コンテンツページの名前の制約"><a href="https://blog.lycolia.info/0803#%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e5%90%8d%e5%89%8d%e3%81%ae%e5%88%b6%e7%b4%84">コンテンツページの名前の制約</a></h4>


<p>adiaryではコンテンツページの名前に制約がほとんどなく、記事IDと衝突しないものなら作れてしまう。するとどうなるかと言うと、例えばRSSフィードと同じパスでページを作るとページが表示されずRSSフィードが表示されてしまう。</p>

<p>今回の開発ではこれが起きないように、記事IDに加え、物理パスと衝突しない対策も入れてある。</p>

<h4 id="rssフィードのフォーマットを見直し"><a href="https://blog.lycolia.info/0803#rss%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%81%ae%e3%83%95%e3%82%a9%e3%83%bc%e3%83%9e%e3%83%83%e3%83%88%e3%82%92%e8%a6%8b%e7%9b%b4%e3%81%97">RSSフィードのフォーマットを見直し</a></h4>


<p>adiaryのRSSフィードでは<code>&lt;category&gt;</code>の中身がカンマ区切りだが、これはRSSの仕様違反らしく、一般的には1カテゴリ1要素になるらしいので、そのように実装した。実際の動作は見ていないが<a href="https://developer.wordpress.org/reference/functions/get_the_category_rss/">WordPressもリファレンスを見る限りではそうなっている</a>ようだ。</p>

<p>これでRSSリーダーに優しくなるかもしれないが確認はしていない。</p>

<p>また<code>&lt;![CDATA[...]]&gt;</code>も使わないようにしている。基本的にないと思うが本文中に<code>&lt;![CDATA[...]]&gt;</code>が入るとエスケープなしでは壊れるし、改行が入る関係で個人的にRSSを読みづらかったりして微妙な気がするからだ。</p>

<h4 id="記事とコンテンツページのurlをadiaryから引き継いだ"><a href="https://blog.lycolia.info/0803#%e8%a8%98%e4%ba%8b%e3%81%a8%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%aeurl%e3%82%92adiary%e3%81%8b%e3%82%89%e5%bc%95%e3%81%8d%e7%b6%99%e3%81%84%e3%81%a0">記事とコンテンツページのURLをadiaryから引き継いだ</a></h4>


<p><code>posts/123</code>, <code>pages/ほげほげ</code>とするのも一つだとは思うのだがページパスが長いとURL直打ちや、記事を書く時のリンク張りが面倒なほか、外部サイトから過去に貼られた被リンクも壊れるので、これは引き継ぐことにした。</p>

<p>WordPressのように書式を変えることも検討したが、こういう機能を増やすと手間が増えるだけだし、利用者としても「どれがいいだろうか…？」みたいな迷いが生じると思ったので、その自由はなくすことにした。変なの付けてもSEOや管理的に不利になって自分の首を絞めるだけと言うのもある。</p>

<p>私はかつて日本語タイトルをパーマリンクにしており、常にタイトルとパーマリンクを同期させていたせいで記事名を変えたときに過去記事からのリンク張替えで地獄を見ている。</p>
</section>

<section>
<h3 id="あとがき"><a href="https://blog.lycolia.info/0803#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></h3>


<p>とりあえず使える状態にはなったが、まだまだ微妙な部分があるのである程度快適に使える状態になったら、このブログをadiaryから新しいCMSに置き換えようと思う。現時点での名前はlyndbaumとしている。</p>

<p>adiaryの次だからbdiaryとか、adiaryが作者名+diaryなのでldiaryにしようかとか、和風にHiyoriにしようかとか色々考えたのだが、lyndbaumの語感がいいなと思ったのでこれにした。</p>

<p>名前の由来としてはサモンナイトにある世界リィンバウムを基にしている。リィンバウムは周囲に他の異世界を取り巻いており、このCMSも将来的にプロジェクト管理やWikiを派生させていく核としたいという構想があるため、その類似点からリィンバウムのスペルであるlyndbaumを名前にした。とはいえノリで付けた言葉に後から意味を持たせたのが現実であるため、深い意味はない。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/cb063acdb56637d7.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/cb063acdb56637d7.png.jpg"></a></p>

<p>ロゴも作っており、機界ロレイラル、鬼妖界シルターン、霊界サプレス、幻獣界メイトルパが取り巻くリィンバウムをイメージしている。見た目的には取り巻いていないがそれは見栄えの都合と言うことで…。</p>

<p>真ん中のLYは頭二文字で、各世界を繋ぐ大樹をなんとなくイメージしている（謎）</p>

<p>この着想は<a href="https://dic.pixiv.net/a/%E3%83%AA%E3%82%A3%E3%83%B3%E3%83%90%E3%82%A6%E3%83%A0">ピクシブ百科事典のリィンバウムのページにあったイラスト</a>から得ている。</p>

<p>GitHubにはすでに公開していて、<a href="https://github.com/Lycolia/lyndbaum">Lycolia/lyndbaum</a>に作っている。</p>

<p>ここまでのClaude使用量はProプランで73%だったため、かなり余裕がある。但し週の頭に無関係なことに使いすぎていた関係で次の使用量リセットまではお休みとなりそうだ。そしてGPTは完全にイマイチになってしまったので今月限りで一旦解約することにした。</p>

<p>GPTはGPTでWebチャットではトークンが削られないのは便利だし、ダル絡みには悪くないのだが、それで可処分時間を溶かしてもアレなので…。</p>
</section>
]]></description>
	</item>
	<item>
		<title>adiary置き換え計画 進捗その1</title>
		<link>https://blog.lycolia.info/0802</link>
		<guid>https://blog.lycolia.info/0802</guid>
		<category>ソフトウェア::CMS::adiary,ジャンル::サイト運営</category>
		<pubDate>Thu, 15 Oct 2026 00:27:47 GMT</pubDate>
		<author>Lycolia Rizzim</author>
		<description><![CDATA[<section>
<p><a href="https://blog.lycolia.info/0801">adiary置き換え計画始動</a>でadiaryを置き換えるCMSの開発に着手し、現在たたき台を作っているためその進捗状況。</p>

<p>結論から言うと既に記事を書くだけなら既に一応できる。ただ作りこんでいないので不自由が多く、セキュリティを含めたレビューもしていないため本番公開はまだしない。ある程度できたら出していきたいところだ。勢い的に恐らく今月中にはベータ版的なものを出せると思っている。</p>


<ul>
	<li><a href="https://blog.lycolia.info/0802#%e7%8f%be%e7%8a%b6%e3%81%a7%e3%81%8d%e3%81%a6%e3%81%84%e3%82%8b%e3%82%82%e3%81%ae">現状できているもの</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0802#%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8">トップページ</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e6%a4%9c%e7%b4%a2">検索</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e7%ae%a1%e7%90%86%e7%94%bb%e9%9d%a2">管理画面</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e8%a8%98%e4%ba%8b%e4%b8%80%e8%a6%a7">記事一覧</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e3%82%bf%e3%82%b0%e7%ae%a1%e7%90%86">タグ管理</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e8%a8%98%e4%ba%8b%e3%81%ae%e6%96%b0%e8%a6%8f%e4%bd%9c%e6%88%90%e3%83%bb%e7%b7%a8%e9%9b%86">記事の新規作成・編集</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e7%ae%a1%e7%90%86">コメント管理</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e6%8a%95%e7%a8%bf%e8%a8%ad%e5%ae%9a">コメント投稿設定</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e8%a8%98%e4%ba%8b%e6%8a%95%e7%a8%bf%e3%81%ae%e8%a8%ad%e5%ae%9a">記事投稿の設定</a></li>
		<li><a href="https://blog.lycolia.info/0802#rss">RSS</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0802#%e3%81%be%e3%81%a0%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%84%e3%81%aa%e3%81%84%e3%82%82%e3%81%ae">まだ作っていないもの</a></li>
	<li><a href="https://blog.lycolia.info/0802#%e4%bd%9c%e3%82%89%e3%81%aa%e3%81%84%e3%82%82%e3%81%ae">作らないもの</a></li>
	<li><a href="https://blog.lycolia.info/0802#%e5%88%87%e3%82%8a%e6%8d%a8%e3%81%a6%e3%82%8b%e3%82%82%e3%81%ae">切り捨てるもの</a></li>
	<li><a href="https://blog.lycolia.info/0802#%e8%a8%ad%e8%a8%88%e4%b8%8a%e3%81%ae%e7%90%86%e5%bf%b5">設計上の理念</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0802#%e4%be%9d%e5%ad%98%e9%96%a2%e4%bf%82%e3%81%ae%e6%9c%80%e5%b0%8f%e5%8c%96">依存関係の最小化</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e5%8b%95%e7%9a%84%e7%94%9f%e6%88%90">動的生成</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e3%83%a9%e3%83%b3%e3%82%bf%e3%82%a4%e3%83%a0%e4%bf%9d%e5%ae%88%e3%82%b3%e3%82%b9%e3%83%88%e3%81%ae%e6%9c%80%e5%b0%8f%e5%8c%96">ランタイム保守コストの最小化</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e3%83%93%e3%83%ab%e3%83%89%e3%81%aa%e3%81%97">ビルドなし</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e9%ab%98%e5%ba%a6%e3%81%aa%e3%83%ac%e3%82%ac%e3%82%b7%e3%83%bc%e6%a4%9c%e7%b4%a2">高度なレガシー検索</a></li>
		<li><a href="https://blog.lycolia.info/0802#%e3%82%b7%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a7%e3%81%82%e3%82%8b%e3%81%93%e3%81%a8">シンプルであること</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0802#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></li>
</ul>

</section>

<section>
<h3 id="現状できているもの"><a href="https://blog.lycolia.info/0802#%e7%8f%be%e7%8a%b6%e3%81%a7%e3%81%8d%e3%81%a6%e3%81%84%e3%82%8b%e3%82%82%e3%81%ae">現状できているもの</a></h3>


<p>網羅的に書き出すと大変なのでざっくり目。</p>

<h4 id="トップページ"><a href="https://blog.lycolia.info/0802#%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8">トップページ</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-14_0-38-37-916.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-14_0-38-37-916.png.jpg"></a></p>

<p>前回の記事でもあげたとおりだが、新着コメント一覧も出るようにしている。スクショでは長すぎて見切れている。</p>

<p>レスポンシブデザインを前提にしているためPC/SPによるサーバーサイドの分岐はない。adiaryではUAを見てサーバーサイドから返すHTMLを分岐している。</p>

<p>テンプレートエンジン化しているため、レイアウトはテンプレートをいじれば変えることができる。adiaryやWordPressにあるようなデザイナは未実装。</p>

<p>ページングもできる。</p>

<h4 id="検索"><a href="https://blog.lycolia.info/0802#%e6%a4%9c%e7%b4%a2">検索</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-14_0-45-3-883.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-14_0-45-3-883.png.jpg"></a></p>

<p>ファセット検索機能により、検索ワード・タグ・年月ベースでの絞り込み検索を実現している。</p>

<p>ページングもできる。</p>

<h4 id="管理画面"><a href="https://blog.lycolia.info/0802#%e7%ae%a1%e7%90%86%e7%94%bb%e9%9d%a2">管理画面</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-15_8-34-25-543.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-15_8-34-25-543.png.jpg"></a></p>

<p>各種管理ができる画面。</p>

<p>スクショにある通りのものが管理できる。</p>

<h4 id="記事一覧"><a href="https://blog.lycolia.info/0802#%e8%a8%98%e4%ba%8b%e4%b8%80%e8%a6%a7">記事一覧</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-15_8-35-32-548.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-15_8-35-32-548.png.jpg"></a></p>

<p>記事の一覧。</p>

<h4 id="タグ管理"><a href="https://blog.lycolia.info/0802#%e3%82%bf%e3%82%b0%e7%ae%a1%e7%90%86">タグ管理</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-15_8-36-36-451.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-15_8-36-36-451.png.jpg"></a></p>

<p>タグの管理。リネームや親の付け替え、ソートなどが出来る。UIが微妙。</p>

<h4 id="記事の新規作成・編集"><a href="https://blog.lycolia.info/0802#%e8%a8%98%e4%ba%8b%e3%81%ae%e6%96%b0%e8%a6%8f%e4%bd%9c%e6%88%90%e3%83%bb%e7%b7%a8%e9%9b%86">記事の新規作成・編集</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-15_8-41-40-317.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-15_8-41-40-317.png.jpg"></a></p>

<p>最低限投稿できる状態にしている。メディアブラウザはまだない。</p>

<p>adiary互換のMarkdownパーサーは入れており、現時点で使っているSatsuki記法にも対応している。</p>

<p>これはadiaryのplain-textデータとHTMLデータを突き合わせてLLMにリバエンさせて作らせたものだ。Satsuki記法については網羅的に対応できておらず、追加もできない。</p>

<p>複数タブで開いたときに更新が衝突しない機能も実装されているらしいが確かめていない。</p>

<p>ゴミ箱や履歴機能も作っているがスクショ時点では未成のため写っていない。</p>

<h4 id="コメント管理"><a href="https://blog.lycolia.info/0802#%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e7%ae%a1%e7%90%86">コメント管理</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-15_8-38-20-97.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-15_8-38-20-97.png.jpg"></a></p>

<p>コメントの確認や削除ができる。</p>

<h4 id="コメント投稿設定"><a href="https://blog.lycolia.info/0802#%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e6%8a%95%e7%a8%bf%e8%a8%ad%e5%ae%9a">コメント投稿設定</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-15_8-39-3-457.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-15_8-39-3-457.png.jpg"></a></p>

<p>これはadiaryにはない機能で、連投規制や投稿制限などを設定できる。</p>

<p>現状スパム対策はadiaryそのものにスパムIPからの接続を拒否するようにハードコーディングするかnginxで接続拒否するくらいしかないのでこれで楽になる。</p>

<h4 id="記事投稿の設定"><a href="https://blog.lycolia.info/0802#%e8%a8%98%e4%ba%8b%e6%8a%95%e7%a8%bf%e3%81%ae%e8%a8%ad%e5%ae%9a">記事投稿の設定</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-15_8-41-2-515.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-15_8-41-2-515.png.jpg"></a></p>

<p>記事を投稿する際の設定ができる。</p>

<h4 id="rss"><a href="https://blog.lycolia.info/0802#rss">RSS</a></h4>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-15_8-49-52-172.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-15_8-49-52-172.png.jpg"></a></p>

<p>本文はadiaryのCDATA方式ではなくなり、categoryもカンマ区切りでなく、複数持ちに変わっている。</p>

<p>他にもdocsの値など、細部が微妙に変わっている。LLMが言うには最新のRSS 2.0の仕様準拠でValidに作ってくれているらしい。</p>
</section>

<section>
<h3 id="まだ作っていないもの"><a href="https://blog.lycolia.info/0802#%e3%81%be%e3%81%a0%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%84%e3%81%aa%e3%81%84%e3%82%82%e3%81%ae">まだ作っていないもの</a></h3>


<p>あったらいいな～の山。やるやらはともかくとして、夢は大きく！</p>

<ul>
<li>画像以外のアップロード
<ul>
<li>現状テキストやHTMLとかはアップロードできない気がするため</li>
</ul></li>
<li>メディアブラウザ
<ul>
<li>添付ファイルの管理をするのに必要</li>
</ul></li>
<li>マルチセッション
<ul>
<li>adiaryはセッションを一つしか持てず複数端末でアクセスするとログインが排他になり面倒なので、マルチセッション化したい</li>
<li>記事更新時の衝突対策さえできれば問題ない</li>
<li>セキュリティが落ちるがログイン時にフィンガープリントを見るなどで変なのがきたらメール通知とかすれば不正ログインには対処できそう</li>
<li>セッション一覧画面から既存セッションを殺す機能や、PW変更時に全滅させるなどの対応も必要になる</li>
</ul></li>
<li>テーマ機能
<ul>
<li>作るかどうかからして未定</li>
</ul></li>
<li>デザイナ
<ul>
<li>テンプレートの手編集がだるいので作りたいが優先度は低い</li>
</ul></li>
<li>マイグレーション機能
<ul>
<li>adiaryからファイルと記事を一体的にマイグレーションできるようにしたい</li>
<li>記事自体は現状でも移行できるがファイルの移行ができていない</li>
<li>添付ファイルについてはパス構造が変わっているため整合を取る必要がある
<ul>
<li>記事やページのパス構造は維持しているため、内部リンクや外部からの被リンクはそのままでよくしてある</li>
</ul></li>
<li>adiaryのすべてを取り込むようなことはせず、いったんは自分が使ってる範囲だけ変換できるようにするつもり</li>
<li>WordPressやMovableTypeなど、adiary以外からのCMSへの取り込みは想定してない
<ul>
<li>動作確認や保守がだるすぎるため</li>
<li>気が向けば作るかもしれないが未定</li>
</ul></li>
</ul></li>
<li>まともな見た目・快適な操作性
<ul>
<li>叩き台なので全く作りこんでいない</li>
<li>特にタグの管理機能は使いづらいので何とかしたい</li>
</ul></li>
<li>サイトマップ
<ul>
<li>SEO用のXML</li>
</ul></li>
<li>処理時間計測
<ul>
<li>Pukiwikiなど、昔のCGIにはよくついてたやつ。adiaryにもある</li>
</ul></li>
<li>画像エディタ
<ul>
<li>回転やトリムが出来ると便利だしあわよくばモザイクが掛けられればさらに便利</li>
<li>ペイント機能まであれば最強</li>
<li>優先度は低い</li>
</ul></li>
<li>記事のフラグ機能
<ul>
<li>任意のフラグを設定して記事の表示時に何かをする機能、例えばNSFWフラグを立ててブラーや検索エンジン向けのメタ通知をするなど</li>
</ul></li>
<li>ログイン時の管理者メニュー
<ul>
<li>adiaryもWordPressもログイン中にページトップに来ると管理者メニューが出るが、まだ作っていない</li>
<li>これがないと主に記事の編集が不便
<ul>
<li>記事を開いたときに編集メニューが欲しいため</li>
</ul></li>
</ul></li>
<li>インストーラー
<ul>
<li>なくてもいいが、あるとより良い</li>
<li>公開型のインストーラーはユーザーフレンドリーだが、セキュリティリスクがあるのでどうするか
<ul>
<li>とはいえ大抵のCGIのインストーラーは公開型である。adiaryもWordPressもMatomoも、基本的に大概はそうだ。ttrssは<a href="https://blog.lycolia.info/0200">CLIから入れた気がする</a>。</li>
</ul></li>
</ul></li>
<li>パスワード変更機能
<ul>
<li>新規設定は出来るが、変更はまだできない。出来ないと困る</li>
</ul></li>
<li>プラグイン機能
<ul>
<li>そのうち作りたい気はしている</li>
</ul></li>
<li>ページのソート機能
<ul>
<li>並び変え出来たほうが良い</li>
</ul></li>
<li>OGP周り
<ul>
<li>SNSで共有したときに欲しいよね</li>
<li>OGP未設定の時ははてなダイアリーやZennのような奴を出したいと考えている
<ul>
<li>タイトルを画像に変換したやつ</li>
</ul></li>
</ul></li>
<li>Satsuki記法の管理
<ul>
<li>adiaryでは任意構文を追加できるが、新CMSではまだできない</li>
</ul></li>
<li>Ping
<ul>
<li>飛ばせない</li>
</ul></li>
<li>アカウント管理
<ul>
<li>今のところ作る予定がないが、そのうち欲しい</li>
<li>複数人での編集は想定しておらず、記事の限定公開辺りに使うことを想定している
<ul>
<li>例えばStripeと連携して、有料記事が作れたりすると面白いかもしれない</li>
<li>やるかどうかは未定</li>
</ul></li>
</ul></li>
<li>API機能
<ul>
<li>ユーザーを限定してMCPとかを走らせるのに使う想定</li>
<li>公開APIは作らない。連打されると困るので</li>
<li>記事に対してJSONリクエストしたときにJSON出すくらいはやっていいかもしれないが未定（MastodonやMisskeyにはある</li>
</ul></li>
<li>ActivityPub
<ul>
<li>対応したいとは思っているが、無駄に拡散されても困るので悩みどころ</li>
<li>1万フォローとかされると非同期ジョブがないと大変そうなので、そこらへんも難しそうだ</li>
<li>WordPressは対応してるんだっけ？</li>
</ul></li>
<li>VOICEBOX対応
<ul>
<li>動画配信が流行ってるしあると面白いかなと思っているが、地の文を読ませても微妙なのと少なからずトラフィックを食うのでやるかどうかは未定</li>
<li>個人的には<a href="https://voicevox.hiroshiba.jp/dormitory/meimei_himari/">冥鳴ひまり</a>が好き</li>
</ul></li>
<li>あいまい検索
<ul>
<li>あった方がいいケースもあるかもしれないため</li>
<li>とはいえelasticsearch乗せるか…？みたいなのは思う</li>
<li>CGIには大げさなので、やるとしてもプラグインかな</li>
</ul></li>
</ul>
</section>
<section>
<h3 id="作らないもの"><a href="https://blog.lycolia.info/0802#%e4%bd%9c%e3%82%89%e3%81%aa%e3%81%84%e3%82%82%e3%81%ae">作らないもの</a></h3>


<p>これは要らないなと考えているモノたち。</p>

<ul>
<li>マルチサイト管理
<ul>
<li>マルチサイト管理は面倒なのでやらない</li>
<li>WordPressでやると運用が軽く地獄になる奴</li>
<li>現状のadiaryでもバグっており、なんか機能していない記憶がある</li>
<li>この機能自体不要だと思う</li>
<li>その代わり複数のブログを外側からラップして統括管理するものは別建てで欲しいかもしれない</li>
</ul></li>
<li>WebPush
<ul>
<li>adiaryにはついてるようだが、私はWebサイトに通知は不要だと考えているため付けない（Webアプリにはあってよいと思う）</li>
</ul></li>
<li>印刷画面
<ul>
<li>ユースケースが思いつかない</li>
<li>アクセス解析を眺めているとBOTがここに吸いこまれる傾向が非常にある</li>
</ul></li>
<li>Markdown以外のパーサー
<ul>
<li>adiaryはreStructuredTextやTeXに対応しているが、これは取り込まない</li>
<li>Markdownについても私が使っている構文しかサポートしない
<ul>
<li>仕様上はかなり理不尽なレベルで存在すが、対応していると大変すぎるため基本的にPrettier v3が補正して出てくるやつで私が過去に使ったことがあるものをベースにパーサーを作ることにしている</li>
</ul></li>
</ul></li>
<li>トラックバック
<ul>
<li>adiaryには機能そのものがない</li>
<li>かつてのスパムの温床であり、今時実装するようなものでもない</li>
</ul></li>
<li>Webmention
<ul>
<li>トラックバック同様の理由で対応しない</li>
<li>そもそも他人の抱く感想に興味がない
<ul>
<li>SNSで空リプが増えたのも相手の気分を害さないことが大きいだろう</li>
<li>文脈を共有していない意見と言うのは概して害悪であることが少なくないと思う</li>
</ul></li>
</ul></li>
<li>非公開コメント
<ul>
<li>ブログのコメント欄をメールボックスにしたくないため</li>
</ul></li>
</ul>
</section>
<section>
<h3 id="切り捨てるもの"><a href="https://blog.lycolia.info/0802#%e5%88%87%e3%82%8a%e6%8d%a8%e3%81%a6%e3%82%8b%e3%82%82%e3%81%ae">切り捨てるもの</a></h3>


<p>過去との決別。</p>

<ul>
<li>非公開コメント
<ul>
<li><a href="https://blog.lycolia.info/0506#%e9%9d%9e%e5%85%ac%e9%96%8b%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e6%a9%9f%e8%83%bd%e3%81%ae%e5%bb%83%e6%ad%a2">かつて運用上非公開コメントを廃止した</a>が、移行時にはこのコメントデータを切り捨てる予定</li>
</ul></li>
</ul>
</section>
<section>
<h3 id="設計上の理念"><a href="https://blog.lycolia.info/0802#%e8%a8%ad%e8%a8%88%e4%b8%8a%e3%81%ae%e7%90%86%e5%bf%b5">設計上の理念</a></h3>


<p>設計にあたり重視したコンセプト。</p>

<h4 id="依存関係の最小化"><a href="https://blog.lycolia.info/0802#%e4%be%9d%e5%ad%98%e9%96%a2%e4%bf%82%e3%81%ae%e6%9c%80%e5%b0%8f%e5%8c%96">依存関係の最小化</a></h4>


<p>依存関係地獄を防ぎたい。<code>pnpm i</code>も<code>composer install</code>も<code>bundle install</code>も<code>pip install -r requirements.txt</code>もしたくない。打つのが面倒だしフックの脆弱性対応とかそういうの要らない。</p>

<p>よくあるCGIのように置いたら動く、というシンプルさが欲しい。流石にPerl本体だけでは厳しいがpure Perlで動けばいいと思っている。なので標準にないCPANモジュールも使わない。</p>

<h4 id="動的生成"><a href="https://blog.lycolia.info/0802#%e5%8b%95%e7%9a%84%e7%94%9f%e6%88%90">動的生成</a></h4>


<p>回線環境が劣悪な場所で使うことが多いため、レスポンスデータは小さくあってほしい。</p>

<p>静的生成だとどうしても初回リクエストのデータが肥大化しがちだ。登山中やトンネル、人口密集地など電波の悪い場所で検索用などの巨大なJSONが送られてくると困る。</p>

<h4 id="ランタイム保守コストの最小化"><a href="https://blog.lycolia.info/0802#%e3%83%a9%e3%83%b3%e3%82%bf%e3%82%a4%e3%83%a0%e4%bf%9d%e5%ae%88%e3%82%b3%e3%82%b9%e3%83%88%e3%81%ae%e6%9c%80%e5%b0%8f%e5%8c%96">ランタイム保守コストの最小化</a></h4>


<p>ライフサイクルが早く後方互換性を切り捨てまくるPHPは保守が面倒だし、Node.jsもメモリリークの問題があるので避けたい。Pythonはvenvの概念がだるすぎる。Ruby？そんな奴は知らん！</p>

<p>という訳でPerlを採用。Perlは枯れており、構文が腐り果てている関係で相当古代のものが今でも動くし、テストランナーも内蔵されていて便利だ。大概のものが本体にバンドルされている上に、後方互換性も破壊的変更も私の用途ではほとんど気にしなくてよい。とはいえ、Perl 5.32.0を要求バージョンの下限として定めている。</p>

<p>5.40.0でパフォーマンスが上がっているのと、JSON::PPやCPAN::Meta::YAMがアップデートされているらしいので、これを採用したい思いもあるが、5.40.0なんてUbuntu 26じゃないと動かないし、ちょっと早すぎる。とはいえ2024年のリリースなので2年前のバージョンではあるが…。まぁPerlなんてそんなもんだ、古くてなんぼ！</p>

<h4 id="ビルドなし"><a href="https://blog.lycolia.info/0802#%e3%83%93%e3%83%ab%e3%83%89%e3%81%aa%e3%81%97">ビルドなし</a></h4>


<p>手元でサッと書き換えれば動くこと。手間なのでコンパイルやビルドはしたくない。TypeScriptやRubyもスクリプトの分際でビルドがあるし、GoやRust、C#.NETは言わずもがなだ。</p>

<p>Perlであれば書き換えれば即座に動く。とても便利だ。</p>

<h4 id="高度なレガシー検索"><a href="https://blog.lycolia.info/0802#%e9%ab%98%e5%ba%a6%e3%81%aa%e3%83%ac%e3%82%ac%e3%82%b7%e3%83%bc%e6%a4%9c%e7%b4%a2">高度なレガシー検索</a></h4>


<p>膨大な記事を抱える本ブログでは絞り込み検索は必須である。ワーディングで記事が見つかれば苦労しないし、あいまい検索で関係ない記事がヒットするのにうんざりするのはごめんだ。</p>

<h4 id="シンプルであること"><a href="https://blog.lycolia.info/0802#%e3%82%b7%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a7%e3%81%82%e3%82%8b%e3%81%93%e3%81%a8">シンプルであること</a></h4>


<p>adiaryはとてもシンプルなので、そのシンプルさは保ちたい。2ペインのMarkdownプレビューやパーマリンクの変更と言った凝った機能は載せない。</p>

<p>adiaryやPukiwikiのようなシンプルなシステムをリスペクトしたい。CGIであることもその一つだしDockerもk8sもMySQKもPostgreSQLもRedisも、変な依存ライブラリも要らない。</p>
</section>

<section>
<h3 id="あとがき"><a href="https://blog.lycolia.info/0802#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></h3>


<p>ClaudeのProプランでも全然余裕で作れるのでOpus 5.5には非常に助けられている。このCMSの開発だけに使っている限りはトークンが尽きる気配はない。何なら開発に入る前に無駄な雑談で週次トークンの25%ほど削っていたが、それでも今の目測ではギリギリ足りる算段である。</p>

<p>他人が使うことをどれほど想定するかも決めていないが、ひとまずは最低限自分が使える程度のものには仕上げていきたい。配布物とする場合CGIなので最低限さくらのレンサバはサポートしたい考えで、現時点でも非機能要件にさくらのレンサバで動くことを設定している。</p>

<p>ある程度出来てきたら、このシステムを核としてWikiやタスク管理などのシステムにも派生させていき、エコシステムを形成していきたいと思っている。</p>

<p>全く関係ないが、気が付いたら記事IDが800を超えていた。記事数は764件らしい。</p>
</section>
]]></description>
	</item>
	<item>
		<title>adiary置き換え計画始動</title>
		<link>https://blog.lycolia.info/0801</link>
		<guid>https://blog.lycolia.info/0801</guid>
		<category>ジャンル::サイト運営,ソフトウェア::CMS::adiary</category>
		<pubDate>Tue, 13 Oct 2026 15:59:12 GMT</pubDate>
		<author>Lycolia Rizzim</author>
		<description><![CDATA[<section>
<p>前々からadiaryを置き換えるCMSと言うかブログシステムを作ろう作ろうと思っていたが、遂に新製に乗り出した。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-14_0-38-37-916.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-14_0-38-37-916.png.jpg"></a></p>

<p>今はまだそこまで作りこめていないが、取り敢えず記事の表示ができる程度のたたき台を作っている。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-14_0-45-3-883.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-14_0-45-3-883.png.jpg"></a></p>

<p>なんとadiary最大の持ち味である絞り込み検索も実装できている。一般的にはファセット検索と呼ばれる機能らしいが、これがまともにできるブログ向けCMSを私はadiary以外に知らない。WordPressの頃にこれを組み込もうとしたが、碌なプラグインがなくて諦めた記憶がある。</p>

<p>まだ実装途中だが、既にそこそこいい出来だと思う。</p>

<p>実装コードについても完全に新規で起こしている。これはadiaryの実装からOpus 5.5に仕様表を作らせ、別セッションでゼロから実装しているためだ。つまり実装用のエージェントは元のコードを知らないため完全新規という訳である。これによってadiaryに潜在していたバグも持ち越さない予定だ。</p>

<p>また従来であれば手の入れようがなかったテンプレートエンジンやキャッシュシステムも新製するため、レスポンシブ対応など、今時の機能も追加で盛り込んでいく予定である。他にも現在利用している<a href="https://github.com/Lycolia/adiary-extends">Extends版</a>で組み込んでいる簡易なアクセシビリティ対策、主に画像のaltの話だが、これもまともにしていき、全体的にモダンにしていくつもりだ。</p>

<p>過去幾度もCMSを乗り換えてそのたびに資産を失ったり、URLの変更で検索エンジンのインデックスが吹き飛んだりしたが、データはすべて引き継ぎ、URLのフォーマットも極力同じにすることで、こういった問題が起きないようにする予定である。少なくとも現時点での設計はそうなっている。</p>
</section>

<section>
<h3 id="経緯"><a href="https://blog.lycolia.info/0801#%e7%b5%8c%e7%b7%af">経緯</a></h3>


<p>2024-02-01にCMSをWordPressからadiaryに乗り換えたが、adiaryには不満も多くあり、過去の記事でも改修ネタをいくつか出していた。</p>

<p>しかしadiaryは結構作りが古いこともあり、手を入れるのが大変という問題があった。そこで私は前々からCMSの新製を考えていたのだが、これが中々腰が重かった。</p>

<p>adiaryの機能一覧を作ろうとして途中で飽きたり、Markdownパーサーを自作しようとして飽きたり、そんなのばかりだった。</p>

<p>しかしそんな日々にも転機が訪れた。それはClaude Opus 5.5の登場と<a href="https://blog.lycolia.info/0797">BANされたAnthropicのアカウントを力業で復活させた</a>ことである。私は従来のコーディングエージェントには満足しておらず、ぶっちゃけバイブコーディングとかクソゲーのガチャだと思っていた。しかしOpus 5.5はこれまでと明らかに違った。上手く扱えばハルシネーションは少なく、エンタープライズシステムでもそこそこの品質でやってくれる。</p>

<p>実はGPT-5.6 Solもそれなりに出来が良く、ある程度のことはできたのだが、Opus 5.5は次元が違った。かなり自律的に開発してくれて、正直私より出来がいいんじゃないかと思うほどだ。認めざるを得ない、敗北を、みたいな感じである。</p>

<p>エージェンティックコーディングの進化は目覚ましいもので、これまではしょっぱいツールやパッチレベルのものを作るのに活用していたが、これからはまさになくてはならない存在だと、そう感じるほどの進化を遂げている。同時に私の存在意義と職も怪しくなった。</p>
</section>

<section>
<h3 id="あとがき"><a href="https://blog.lycolia.info/0801#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></h3>


<p>弘前日記は書けてないし、他にも書こうと思っている記事があったり、他にもしないといけない事やしたいことがある気がするのだが、ひとまず鉄は熱いうちに打てと言うことで何とか完遂させたいところだ。</p>

<p>現実問題としては並行でいろいろやって、ズルズルだらだら行く可能性もあるが、それはまぁそれと言うことで…。</p>

<p>とりあえず今日やっていて分かったこととして、私は基本的にMarkdownを書くときにPrettierで整形しているため大半の記事は上手いこと正規化されており、微妙な書き方の違いによる崩れなどがあまりなさそうだったというのは幸いだなと思った。これはOpus 5.5が書いた検知ツールをベースに確認している。</p>

<p>それでも壊れているのがあったので直したし、マイグレーションの歴史的経緯によって単純に壊れているものが新たに何個か見つかったので、そこらへんも潰しておいた。</p>

<p>LLMは嘘をつくことがあるが、ツールは嘘をつかないので安心と言う話である。</p>
</section>
]]></description>
	</item>
	<item>
		<title>adiaryを爆発的に改造した</title>
		<link>https://blog.lycolia.info/0800</link>
		<guid>https://blog.lycolia.info/0800</guid>
		<category>ソフトウェア::CMS::adiary,ジャンル::サイト運営</category>
		<pubDate>Fri, 09 Oct 2026 17:50:07 GMT</pubDate>
		<author>Lycolia Rizzim</author>
		<description><![CDATA[<section>
<p>adiaryを導入してからこれまで、ちまちま改修をしていたが根幹的な部分に手を入れるのが億劫で放置していた。</p>

<p>そこで今回その大半を一気にガッと直すことにした。理由は単純でOpus 5.5を使っていて十分な性能があり、ほぼハルシネーションを気にしなくていい次元に達したと感じたからだ。</p>

<p>Codexも使えるのでCodexでもいいっちゃいいのだが、Opus 5.5はGPT-5.6 Solより賢い気がしているのでこちらを使っている。GPT-6 Sol？あれはポンコツだと思う。</p>


<ul>
	<li><a href="https://blog.lycolia.info/0800#%e3%83%90%e3%82%b0%e4%bf%ae%e6%ad%a3">バグ修正</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0800#youtube%e3%81%aeid%e3%81%ab%e3%83%8f%e3%82%a4%e3%83%95%e3%83%b3%e3%81%8c%e3%81%82%e3%82%8b%e3%81%a8%e6%ad%a3%e3%81%97%e3%81%8f%e5%87%ba%e3%81%aa%e3%81%84%e5%95%8f%e9%a1%8c%e3%81%ae%e4%bf%ae%e6%ad%a3">YoutubeのIDにハイフンがあると正しく出ない問題の修正</a></li>
		<li><a href="https://blog.lycolia.info/0800#%e6%95%b0%e5%ad%97%e3%83%aa%e3%82%b9%e3%83%88%e3%81%8c2%e6%a1%81%e3%81%ab%e3%81%aa%e3%82%8b%e3%81%a8%e3%82%b3%e3%83%bc%e3%83%89%e3%83%95%e3%82%a7%e3%83%b3%e3%82%b9%e3%81%ae%e3%83%8d%e3%82%b9%e3%83%88%e3%81%8c%e6%a9%9f%e8%83%bd%e3%81%97%e3%81%aa%e3%81%8f%e3%81%aa%e3%82%8b%e5%95%8f%e9%a1%8c%e3%82%92%e4%bf%ae%e6%ad%a3">数字リストが2桁になるとコードフェンスのネストが機能しなくなる問題を修正</a></li>
		<li><a href="https://blog.lycolia.info/0800#%e3%83%aa%e3%82%b9%e3%83%88%e3%81%ab%e3%83%8d%e3%82%b9%e3%83%88%e3%81%95%e3%82%8c%e3%81%9f%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e3%81%97%e3%81%9f">リストにネストされたテーブルが表示されるようにした</a></li>
		<li><a href="https://blog.lycolia.info/0800#-foo-bar-%e3%81%8c%e6%ad%a3%e3%81%97%e3%81%8f%e3%82%b3%e3%83%bc%e3%83%89%e3%82%b9%e3%83%91%e3%83%b3%e3%81%ab%e3%81%aa%e3%82%89%e3%81%aa%e3%81%84%e5%95%8f%e9%a1%8c%e3%81%ae%e4%bf%ae%e6%ad%a3">`` foo ` bar ``が正しくコードスパンにならない問題の修正</a></li>
		<li><a href="https://blog.lycolia.info/0800#%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9%e3%83%aa%e3%82%b9%e3%83%88%e5%91%a8%e3%82%8a%e3%81%ae%e6%8a%9c%e6%9c%ac%e7%9a%84%e3%81%aa%e4%bf%ae%e6%ad%a3">チェックボックスリスト周りの抜本的な修正</a></li>
		<li><a href="https://blog.lycolia.info/0800#%e3%83%aa%e3%82%b9%e3%83%88%e3%81%a7%e6%b7%b1%e3%81%84%e5%85%a5%e3%82%8c%e5%ad%90%e3%81%8b%e3%82%89%e6%b5%85%e3%81%84%e6%ae%b5%e3%81%b8%e6%88%bb%e3%82%8b%e3%82%b1%e3%83%bc%e3%82%b9%e3%81%ae%e4%b8%80%e9%83%a8%e3%81%8c%e5%87%a6%e7%90%86%e3%81%a7%e3%81%8d%e3%81%a6%e3%81%84%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e3%81%ae%e3%82%92%e4%bf%ae%e6%ad%a3">リストで深い入れ子から浅い段へ戻るケースの一部が処理できていなかったのを修正</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0800#%e6%a9%9f%e8%83%bd%e6%94%b9%e5%96%84">機能改善</a>
	<ul>
		<li><a href="https://blog.lycolia.info/0800#%e9%82%aa%e9%ad%94%e3%81%aa%e3%83%98%e3%83%ab%e3%83%97%e3%81%ae%e5%89%8a%e9%99%a4">邪魔なヘルプの削除</a></li>
		<li><a href="https://blog.lycolia.info/0800#%e3%82%bf%e3%82%b0%e5%85%a5%e5%8a%9b%e3%82%92%e3%82%a4%e3%83%b3%e3%82%af%e3%83%aa%e3%83%a1%e3%83%b3%e3%82%bf%e3%83%ab%e3%82%b5%e3%83%bc%e3%83%81%e3%81%a7%e3%81%8d%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e4%bf%ae%e6%ad%a3">タグ入力をインクリメンタルサーチできるように修正</a></li>
		<li><a href="https://blog.lycolia.info/0800#%e5%a4%9a%e9%87%8d%e6%8b%a1%e5%bc%b5%e5%ad%90%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e3%82%92%e8%a8%b1%e5%ae%b9%e3%81%99%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e5%a4%89%e6%9b%b4">多重拡張子のアップロードを許容するように変更</a></li>
		<li><a href="https://blog.lycolia.info/0800#%e8%a8%98%e4%ba%8b%e4%b8%ad%e3%81%ae%e7%94%bb%e5%83%8f%e3%81%8b%e3%82%89%e3%82%b5%e3%83%a0%e3%83%8d%e3%82%a4%e3%83%ab%e3%82%92%e9%81%b8%e3%81%b9%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e3%81%97%e3%81%9f">記事中の画像からサムネイルを選べるようにした</a></li>
		<li><a href="https://blog.lycolia.info/0800#%e8%a8%98%e4%ba%8b%e3%81%ae%e3%81%94%e3%81%bf%e7%ae%b1%e3%81%a8%e6%9b%b4%e6%96%b0%e5%b1%a5%e6%ad%b4%e6%a9%9f%e8%83%bd%e3%82%92%e8%bf%bd%e5%8a%a0">記事のごみ箱と更新履歴機能を追加</a></li>
		<li><a href="https://blog.lycolia.info/0800#%e9%80%9a%e5%b8%b8%e3%81%ae%e7%94%bb%e5%83%8f%e6%a7%8b%e6%96%87%e3%81%a7-figure-%e3%81%ab%e3%83%a9%e3%83%83%e3%83%97%e3%81%95%e3%82%8c%e3%82%8b%e3%81%ae%e3%82%92%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84%e3%82%88%e3%81%86%e3%81%ab%e3%81%97%e3%81%9f">通常の画像構文で<code>&lt;figure&gt;</code>にラップされるのをされないようにした</a></li>
	</ul></li>
	<li><a href="https://blog.lycolia.info/0800#%e3%81%9d%e3%81%ae%e4%bb%96">その他</a></li>
	<li><a href="https://blog.lycolia.info/0800#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></li>
</ul>

</section>

<section>
<h3 id="バグ修正"><a href="https://blog.lycolia.info/0800#%e3%83%90%e3%82%b0%e4%bf%ae%e6%ad%a3">バグ修正</a></h3>


<h4 id="youtubeのidにハイフンがあると正しく出ない問題の修正"><a href="https://blog.lycolia.info/0800#youtube%e3%81%aeid%e3%81%ab%e3%83%8f%e3%82%a4%e3%83%95%e3%83%b3%e3%81%8c%e3%81%82%e3%82%8b%e3%81%a8%e6%ad%a3%e3%81%97%e3%81%8f%e5%87%ba%e3%81%aa%e3%81%84%e5%95%8f%e9%a1%8c%e3%81%ae%e4%bf%ae%e6%ad%a3">YoutubeのIDにハイフンがあると正しく出ない問題の修正</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/commit/429e54b47a530f4354e45c050f8ad6f0da2fe5e3">https://github.com/Lycolia/adiary-extends/commit/429e54b47a530f4354e45c050f8ad6f0da2fe5e3</a></p>

<p>以下の問題のパターンが表示できなかったためこれを出来るようにした。</p>

<div><table><thead><tr>
	<th>問題ないパターン</th>
	<th>問題のパターン</th>
</tr></thead>
<tbody>
<tr>
	<td><code>[&amp;https://www.youtube.com/watch?v=xikYPB3QO_0&amp;t=2145s]</code></td>
	<td><code>[&amp;https://www.youtube.com/watch?v=n_D__CT5-H0&amp;t=4279s]</code></td>
</tr>
</tbody>
</table></div>

<h4 id="数字リストが2桁になるとコードフェンスのネストが機能しなくなる問題を修正"><a href="https://blog.lycolia.info/0800#%e6%95%b0%e5%ad%97%e3%83%aa%e3%82%b9%e3%83%88%e3%81%8c2%e6%a1%81%e3%81%ab%e3%81%aa%e3%82%8b%e3%81%a8%e3%82%b3%e3%83%bc%e3%83%89%e3%83%95%e3%82%a7%e3%83%b3%e3%82%b9%e3%81%ae%e3%83%8d%e3%82%b9%e3%83%88%e3%81%8c%e6%a9%9f%e8%83%bd%e3%81%97%e3%81%aa%e3%81%8f%e3%81%aa%e3%82%8b%e5%95%8f%e9%a1%8c%e3%82%92%e4%bf%ae%e6%ad%a3">数字リストが2桁になるとコードフェンスのネストが機能しなくなる問題を修正</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/commit/5b90f22bb557871f44cbad33ca6b3429e368463c">https://github.com/Lycolia/adiary-extends/commit/5b90f22bb557871f44cbad33ca6b3429e368463c</a></p>

<p>インデントの処理を直した。元の処理は桁数が増えたことによるインデント幅の増分が取れなかったので、取れるようにして解決した。</p>

<div><table><thead><tr>
	<th>修正前</th>
	<th>修正後</th>
</tr></thead>
<tbody>
<tr>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_1-57-41-342.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_1-57-41-342.png.jpg"></a></td>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_1-57-53-26.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_1-57-53-26.png.jpg"></a></td>
</tr>
</tbody>
</table></div>

<h4 id="リストにネストされたテーブルが表示されるようにした"><a href="https://blog.lycolia.info/0800#%e3%83%aa%e3%82%b9%e3%83%88%e3%81%ab%e3%83%8d%e3%82%b9%e3%83%88%e3%81%95%e3%82%8c%e3%81%9f%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e3%81%97%e3%81%9f">リストにネストされたテーブルが表示されるようにした</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/pull/75/changes/a476eab24cedf3520bdab61b0cf8ee7d76fbe5a6">https://github.com/Lycolia/adiary-extends/pull/75/changes/a476eab24cedf3520bdab61b0cf8ee7d76fbe5a6</a></p>

<p>次のような構文でテーブルが出るようにした。</p>

<pre><code>- hoge
  |col1|col2|
  |----|----|
  |row1|row2|
</code></pre>

<h4 id="-foo-bar-が正しくコードスパンにならない問題の修正"><a href="https://blog.lycolia.info/0800#-foo-bar-%e3%81%8c%e6%ad%a3%e3%81%97%e3%81%8f%e3%82%b3%e3%83%bc%e3%83%89%e3%82%b9%e3%83%91%e3%83%b3%e3%81%ab%e3%81%aa%e3%82%89%e3%81%aa%e3%81%84%e5%95%8f%e9%a1%8c%e3%81%ae%e4%bf%ae%e6%ad%a3">`` foo ` bar ``が正しくコードスパンにならない問題の修正</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/commit/6c95f8edea6e65f93b1a1a4d3917c7ed4bbd2d27">https://github.com/Lycolia/adiary-extends/commit/6c95f8edea6e65f93b1a1a4d3917c7ed4bbd2d27</a></p>

<p>遭遇するたびに<code>&lt;code&gt;</code>で書いてた記憶があるが、しなくてよくなった。</p>

<div><table><thead><tr>
	<th>修正前</th>
	<th>修正後</th>
</tr></thead>
<tbody>
<tr>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_1-58-4-85.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_1-58-4-85.png.jpg"></a></td>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_1-58-11-197.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_1-58-11-197.png.jpg"></a></td>
</tr>
</tbody>
</table></div>

<h4 id="チェックボックスリスト周りの抜本的な修正"><a href="https://blog.lycolia.info/0800#%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9%e3%83%aa%e3%82%b9%e3%83%88%e5%91%a8%e3%82%8a%e3%81%ae%e6%8a%9c%e6%9c%ac%e7%9a%84%e3%81%aa%e4%bf%ae%e6%ad%a3">チェックボックスリスト周りの抜本的な修正</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/pull/75/changes/6dc02a3ffd6e835189d05eaffbc4dcf0a1fb9e16">https://github.com/Lycolia/adiary-extends/pull/75/changes/6dc02a3ffd6e835189d05eaffbc4dcf0a1fb9e16</a></p>

<p>チェックボックスに構文の文字がそのまま出る不具合や、リストマーカーが出る問題などがあったため、全体的に直している。そもそも使った記憶がなく、本家も使うことをろくに想定していないと思うため、対応する必要性は謎であるが、まぁ取り敢えずほら、構文としてあるし？みたいな？</p>

<div><table><thead><tr>
	<th>修正前</th>
	<th>修正後</th>
</tr></thead>
<tbody>
<tr>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_2-5-10-854.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_2-5-10-854.png.jpg"></a></td>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_2-5-39-115.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_2-5-39-115.png.jpg"></a></td>
</tr>
</tbody>
</table></div>

<h4 id="リストで深い入れ子から浅い段へ戻るケースの一部が処理できていなかったのを修正"><a href="https://blog.lycolia.info/0800#%e3%83%aa%e3%82%b9%e3%83%88%e3%81%a7%e6%b7%b1%e3%81%84%e5%85%a5%e3%82%8c%e5%ad%90%e3%81%8b%e3%82%89%e6%b5%85%e3%81%84%e6%ae%b5%e3%81%b8%e6%88%bb%e3%82%8b%e3%82%b1%e3%83%bc%e3%82%b9%e3%81%ae%e4%b8%80%e9%83%a8%e3%81%8c%e5%87%a6%e7%90%86%e3%81%a7%e3%81%8d%e3%81%a6%e3%81%84%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e3%81%ae%e3%82%92%e4%bf%ae%e6%ad%a3">リストで深い入れ子から浅い段へ戻るケースの一部が処理できていなかったのを修正</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/commit/4ac398ed30adcd0a10304dc815985ec7af035da3">https://github.com/Lycolia/adiary-extends/commit/4ac398ed30adcd0a10304dc815985ec7af035da3</a></p>

<p>一部のケースで入れ子が深くならず、浅い段に復帰するときの深さで固定されているケースがあったため、それを直した。</p>

<p>具体的にはこれの最後の奴らが3段目のインデントに全て収束し、4段目のインデントが起きない問題があった。これはどうもケツに3段目がいるせいで、そこに引っ張られていたらしい？</p>

<pre><code>- `-protocol_whitelist "tcp, udp, ..."`
  - カンマ区切りでプロトコルを指定することで、プロトコルを利用できるようになる
  - https://ffmpeg.org/ffmpeg-protocols.html#Protocol-Options
  - SDPファイルを用いてRTPストリームを受ける場合には `"file,udp,rtp"` を指定する
    - file
      - ローカルファイルへのアクセスプロトコル
      - &lt;https://ffmpeg.org/ffmpeg-protocols.html#file&gt;
    - udp
      - UDP
      - &lt;https://ffmpeg.org/ffmpeg-protocols.html#udp&gt;
    - rtp
      - RTP
      - &lt;https://ffmpeg.org/ffmpeg-protocols.html#rtp&gt;
    - なんでfileがいるのかは正直良くわかってない
</code></pre>
</section>

<section>
<h3 id="機能改善"><a href="https://blog.lycolia.info/0800#%e6%a9%9f%e8%83%bd%e6%94%b9%e5%96%84">機能改善</a></h3>


<h4 id="邪魔なヘルプの削除"><a href="https://blog.lycolia.info/0800#%e9%82%aa%e9%ad%94%e3%81%aa%e3%83%98%e3%83%ab%e3%83%97%e3%81%ae%e5%89%8a%e9%99%a4">邪魔なヘルプの削除</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/commit/196b8d75ecfc4001a192b7b83893f8987bb60f29">https://github.com/Lycolia/adiary-extends/commit/196b8d75ecfc4001a192b7b83893f8987bb60f29</a></p>

<p>adiaryのヘルプはマウスオーバーで出るのだが、出たはいいもののどこかをクリックしないと消えないことがあり、しかも他のUIの手前に出てくるのもあり記事を書いててめちゃくちゃ邪魔だったので消した。</p>

<h4 id="タグ入力をインクリメンタルサーチできるように修正"><a href="https://blog.lycolia.info/0800#%e3%82%bf%e3%82%b0%e5%85%a5%e5%8a%9b%e3%82%92%e3%82%a4%e3%83%b3%e3%82%af%e3%83%aa%e3%83%a1%e3%83%b3%e3%82%bf%e3%83%ab%e3%82%b5%e3%83%bc%e3%83%81%e3%81%a7%e3%81%8d%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e4%bf%ae%e6%ad%a3">タグ入力をインクリメンタルサーチできるように修正</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/commit/07516010985f18506b3b6fafb419fe3fd1d7ab4b">https://github.com/Lycolia/adiary-extends/commit/07516010985f18506b3b6fafb419fe3fd1d7ab4b</a></p>

<p>今回の目玉コンテンツその１！！！</p>

<p>タグを探すのが面倒だったので楽にできるようにした。うちは地獄のようにタグがあるので面倒で面倒でもうやってられなかった。そもそも何のタグがあって何のタグがないかもわからないし、限界だった。</p>

<div><table><thead><tr>
	<th>変更前</th>
	<th>変更後</th>
</tr></thead>
<tbody>
<tr>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_1-58-21-158.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_1-58-21-158.png.jpg"></a><br/><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_1-58-32-385.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_1-58-32-385.png.jpg"></a></td>
	<td><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_1-58-48-976.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_1-58-48-976.png.jpg"></a><br/><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_1-58-56-547.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_1-58-56-547.png.jpg"></a></td>
</tr>
</tbody>
</table></div>

<h4 id="多重拡張子のアップロードを許容するように変更"><a href="https://blog.lycolia.info/0800#%e5%a4%9a%e9%87%8d%e6%8b%a1%e5%bc%b5%e5%ad%90%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e3%82%92%e8%a8%b1%e5%ae%b9%e3%81%99%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e5%a4%89%e6%9b%b4">多重拡張子のアップロードを許容するように変更</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/commit/5e4b49f7f9f0a27f9531856aeed3048460da085b">https://github.com/Lycolia/adiary-extends/commit/5e4b49f7f9f0a27f9531856aeed3048460da085b</a></p>

<p>今回の目玉コンテンツその２！！！</p>

<p><code>photo.edited.jpg</code>のような名前を持つファイルがアップロードできるように対応した。多重拡張子になっているファイルをアップロードしようとしてエラーになった回数は計り知れない。</p>

<p>これまでは恐らくセキュリティ対策で規制がかかっており<code>hoge.php.jpg</code>と言ったものがアップロードされたとき、Apacheの設定によっては不正にphpが実行される恐れがあった。で、そこを過度に恐れるあまり<code>hoge.edited.jpg</code>みたいなのも弾かれる状態になっていた。</p>

<p>今回はその対策として拡張子以外のピリオドをアンダースコアに改名してアップロードすることで対処している。<code>hoge.edited.jpg</code>なら<code>hoge_edited.jpg</code>でアップロードされるみたいな。</p>

<h4 id="記事中の画像からサムネイルを選べるようにした"><a href="https://blog.lycolia.info/0800#%e8%a8%98%e4%ba%8b%e4%b8%ad%e3%81%ae%e7%94%bb%e5%83%8f%e3%81%8b%e3%82%89%e3%82%b5%e3%83%a0%e3%83%8d%e3%82%a4%e3%83%ab%e3%82%92%e9%81%b8%e3%81%b9%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e3%81%97%e3%81%9f">記事中の画像からサムネイルを選べるようにした</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/commit/1246e9b7fdd115e9cdb9f381a5d0c8bef1be07d5">https://github.com/Lycolia/adiary-extends/commit/1246e9b7fdd115e9cdb9f381a5d0c8bef1be07d5</a></p>

<p>今回の目玉コンテンツその３！！！</p>

<p>実はadiaryにはOGPを任意設定する機能がない。記事中を文字列検索してパターンにマッチしたものが自動でOGPに設定されるのが仕様だ。</p>

<p>そこで過去にv0.2.0で任意の画像をサムネイル（OGP）に設定可能にしたが、元々あったロジックを流用して実装した関係で、色々煩雑だった。これは特定のフォーマットで入力する必要があるのと、入力ミスで存在しないURLが埋め込まれることがあったためだ。</p>

<p>なので私は手打ちしたときは毎回OGPを手動確認してちゃんと出るか見ていた。しかしこれが面倒だった。なので今回は任意のOGPを選べつつ、入力ミスも起きないスーパーウルトラハッピー仕様にしたわけだ。</p>

<p>この機能の追加に当たり記事中の画像のみを選択対象にしたため、それ以外も設定できる脱出ハッチとして従前の手設定も一応残しているが、個人的に利用した実績がないため、使うことはない気もしている。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_2-11-14-741.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_2-11-14-741.png.jpg"></a></p>

<p>記事外の画像を入れる場合は、これまで通りの方法で指定して解決する。</p>

<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_2-12-26-817.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_2-12-26-817.png.jpg"></a></p>

<p>記事に膨大な画像があると膨大に出るが、まぁ別にいいかと言うので放置することにした。</p>

<p>記事から画像が消えるとどうなるかについては試していないが、従前のままなら選択肢からは消えるものの、手設定欄に残っているはずである。動作確認はしていない。</p>

<h4 id="記事のごみ箱と更新履歴機能を追加"><a href="https://blog.lycolia.info/0800#%e8%a8%98%e4%ba%8b%e3%81%ae%e3%81%94%e3%81%bf%e7%ae%b1%e3%81%a8%e6%9b%b4%e6%96%b0%e5%b1%a5%e6%ad%b4%e6%a9%9f%e8%83%bd%e3%82%92%e8%bf%bd%e5%8a%a0">記事のごみ箱と更新履歴機能を追加</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/commit/3f5f203624e564015195dd18e2dabacf6955108d">https://github.com/Lycolia/adiary-extends/commit/3f5f203624e564015195dd18e2dabacf6955108d</a></p>

<p>今回の目玉コンテンツその４！！！</p>

<p>記事を誤って消したが戻したいとか、間違えて別の記事で上書きするなどのミスをしばしばしていたので、この対策として復旧できる機能を追加した。</p>

<p>特に過去記事からコピペして別の記事に移植する作業中に移植先と移植元を間違えるなどで頻発していたので、その対策。</p>

<p>履歴はPukiwikiを参考に既定では原則最終更新から3h経過で積むことにしている。ゴミ箱についても、消したけど戻したいということが年に一回くらい起きていたため、機能追加した。</p>

<h4 id="通常の画像構文で-figure-にラップされるのをされないようにした"><a href="https://blog.lycolia.info/0800#%e9%80%9a%e5%b8%b8%e3%81%ae%e7%94%bb%e5%83%8f%e6%a7%8b%e6%96%87%e3%81%a7-figure-%e3%81%ab%e3%83%a9%e3%83%83%e3%83%97%e3%81%95%e3%82%8c%e3%82%8b%e3%81%ae%e3%82%92%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84%e3%82%88%e3%81%86%e3%81%ab%e3%81%97%e3%81%9f">通常の画像構文で<code>&lt;figure&gt;</code>にラップされるのをされないようにした</a></h4>


<p><a href="https://github.com/Lycolia/adiary-extends/pull/75/changes/61d287986ed812126f3b72b0482e2fb9a476ac90">https://github.com/Lycolia/adiary-extends/pull/75/changes/61d287986ed812126f3b72b0482e2fb9a476ac90</a></p>

<p>基本的にはセマンティクス違反の解消。但し根絶はしておらず、条件次第で許容している。</p>

<p>今までは<code>&lt;img&gt;</code>の描画時に<code>&lt;figure&gt;</code>でラップしていたため、画像の多い記事は若干軽くなっているはず。</p>

<p>イメージとしてはこんな感じ。</p>

<pre><code>- &lt;figure&gt;
    &lt;a href="..."&gt;&lt;img src="..."&gt;&lt;/a&gt;
- &lt;/figure&gt;
</code></pre>
</section>

<section>
<h3 id="その他"><a href="https://blog.lycolia.info/0800#%e3%81%9d%e3%81%ae%e4%bb%96">その他</a></h3>


<p><a href="https://blog.lycolia.info/pub/attachments/posts/2026/10/paste-image-2026-10-10_2-49-43-731.png" title=""><img alt="" src="https://blog.lycolia.info/pub/attachments/posts/2026/10/.thumbnail/paste-image-2026-10-10_2-49-43-731.png.jpg"></a></p>

<p>その他Markdown周りとして、リポジトリの変更履歴などには書けていないが、恐らく細かい部分が色々改善したはず。正直実装面はClaude Opus 5.5に投げたため、どこまで変わったのかよく分かってない。</p>

<p>取り敢えず使っていない構文の切り捨てを指示したが、差分を見た感じ切り捨てられているかは謎である。まぁ別に使ってない構文だしどうでもいいのだが…。軽く見た感じのデグレはなさそうなのでヨシくらいで見ている。</p>

<p>Markdown処理に関するドキュメントとテストコードの追加もしたが中身は流し見程度しかレビューしていない。</p>
</section>

<section>
<h3 id="あとがき"><a href="https://blog.lycolia.info/0800#%e3%81%82%e3%81%a8%e3%81%8c%e3%81%8d">あとがき</a></h3>


<p>更新が多いためマイナーバージョンを12も上げている。そのうち10は一気に上げた。0.30.0-&gt;0.40.0-&gt;0.41.0-&gt;0.42.0みたいな。</p>

<p>Claudeの契約はProだが、今回の対応ではClaude Codeの週制限の25%しか使わなかった。やった規模感のわりに、全然余裕だなぁという感じ。作業時間としては動作確認とレビュー込みで5時間くらい。</p>

<p>この改造版は<a href="https://github.com/Lycolia/adiary-extends">GitHubで公開している</a>ものの、私以外が使うことは特段考慮していないため、使いやすいかどうかは謎である。少なくともテーマは完全に今表示しているものにロックインしており、他のテーマで使えるような作りにはしていない。</p>

<p>また今回の対応に当たり、古い記事を中心に構文の揺らぎがあったため以下の記事に対して構文の正規化を掛けている。このため、内容に本質的な変化はないがタイムスタンプの更新が入っている。</p>

<ul>
<li><a href="https://blog.lycolia.info/01">ffmpegを使ったRTP配信の備忘録</a></li>
<li><a href="https://blog.lycolia.info/05">AURAが起動しない問題を解決した話</a></li>
<li><a href="https://blog.lycolia.info/07">【ラグマス】WSのステやスキルとかについて</a></li>
<li><a href="https://blog.lycolia.info/020">Raspberry Pi 4のセットアップメモ</a></li>
<li><a href="https://blog.lycolia.info/026">npmコマンドの作り方</a></li>
<li><a href="https://blog.lycolia.info/034">実はCGIってCLIアプリなのでは？と思ったので試してみた</a></li>
<li><a href="https://blog.lycolia.info/0113">TextInputHost.exeが無限に起動する問題を対処した</a></li>
<li><a href="https://blog.lycolia.info/0173">久々にC#でコードを書いてみたらテスタブルなコードを書くのが難しくて諦めた話</a></li>
<li><a href="https://blog.lycolia.info/0208">Windows 11が0xc000000eで起動しなくなったのを直した</a></li>
<li><a href="https://blog.lycolia.info/0220">TypeScriptでNode.jsのローカルライブラリを作る</a></li>
<li><a href="https://blog.lycolia.info/0275">YAPC::Hiroshima 2024に参加してみた</a></li>
<li><a href="https://blog.lycolia.info/0605">Xubuntu環境でThunarを使ってSSHをマウントする</a></li>
<li><a href="https://blog.lycolia.info/0715">今日のサイト改築の話とかadiary改造の話とか</a></li>
<li><a href="https://blog.lycolia.info/0730">MSYS2のGitを高速化する</a></li>
</ul>
<p>今回は数が多いのでこのように書いているが、普段から巡回で構文が壊れている記事を見かけたらひっそり直しているので、まぁよくあることではある。</p>

<p>現存している記事でadiary移行前からあるものは、モノによってはWordPress→Qiita→はてなブログ→WordPress→adiaryという過酷な移行をたどっているため構文が壊れていることはざらにある。何なら今回の対応ではてなフォトライフの参照構文を一つ見つけ消したくらいだ。</p>

<p>しかしまぁ先日<a href="https://blog.lycolia.info/0797">BANされたAnthropicのアカウントを力業で復活させた</a>のが、さっそく効果を発揮してくれて頑張った甲斐があったというものである。それと従前は個人的なプログラマーの矜持的に、AIコーディングに否定的だったり、余り肯定的でなかったこともあったが、使っているうちに使わざるを得ないなと言う気持ちが高まってくるし、もはや使わないということは無理があるだろうなぁと思えてきた。</p>

<p>とはいえ、たまには手でかくと言うのも忘れないようにしていきたい。GTP-5.6 SolやOpus 5.5がだいぶ優秀になってしまった関係で気を抜くと忘れてしまいそうだが、読めるからこそレビューが出来ているし、やらないと忘れてしまうし、ここら辺は難しいところだ。</p>
</section>
]]></description>
	</item>
</channel>
</rss>
