<feed xmlns="http://www.w3.org/2005/Atom" xmlns:cc="http://web.resource.org/cc/">
	<title>List of Site [text.Baldanders.info]</title>
	<link rel="alternate" type="text/html" href="https://text.baldanders.info/tags/site/" />
	<link rel="self" type="application/atom+xml" href="https://text.baldanders.info/tags/site/index.xml" />
	<id>tag:text.Baldanders.info,2026-10-14:/tags</id>
	<updated>2026-10-14T16:49:41+09:00</updated>
	<subtitle>帰ってきた「しっぽのさきっちょ」</subtitle>
	<icon>https://text.baldanders.info/images/avatar.jpg</icon>
	<logo>https://text.baldanders.info/images/avatar.jpg</logo>

	<entry>
		<title>𝕏 に人間と認められなかったので活動を停止します</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2026/10/x-verification-failed/" />
		<id>tag:text.Baldanders.info,2026-10-14:/remark/2026/10/x-verification-failed/</id>
		<published>2026-10-14T07:49:41+00:00</published>
		<updated>2026-10-14T07:56:14+00:00</updated>
		<summary>ブログのコミット履歴を圧縮しました / 𝕏 に人間と認められなかったので活動を停止します</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;今回は，このブログの最近の運用についてお知らせかたがた覚え書きを記しておく。&lt;/p&gt;
&lt;h2 id=&#34;commit-log&#34;&gt;ブログのコミット履歴を圧縮しました&lt;/h2&gt;
&lt;p&gt;このブログは，&lt;a href=&#34;https://github.com/spiegel-im-spiegel/github-pages-env&#34; target=&#34;_blank&#34; title=&#34;spiegel-im-spiegel/github-pages-env: Document Environment for spiegel-im-spiegel.github.io&#34;&gt;&lt;code&gt;github-pages-env&lt;/code&gt;&lt;/a&gt; リポジトリで作成環境を，&lt;a href=&#34;https://github.com/spiegel-im-spiegel/spiegel-im-spiegel.github.io&#34; target=&#34;_blank&#34; title=&#34;spiegel-im-spiegel/spiegel-im-spiegel.github.io: text.Baldanders.info&#34;&gt;&lt;code&gt;spiegel-im-spiegel.github.io&lt;/code&gt;&lt;/a&gt; リポジトリでデプロイを管理している。&lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world&amp;#39;s fastest framework for building websites&#34;&gt;Hugo&lt;/a&gt; と &lt;a href=&#34;https://docs.github.com/ja/pages&#34; target=&#34;_blank&#34; title=&#34;GitHub Pages ドキュメント - GitHubドキュメント&#34;&gt;GitHub Pages&lt;/a&gt; を利用。
基本的にブランチは切らずに &lt;code&gt;master&lt;/code&gt; ブランチに直接コミットしている。
ひとりで運用してるので，こんなもんだろう。&lt;/p&gt;
&lt;p&gt;なにせ10年以上もこの体制で運用しているもんで，コミットログも10年分溜まってしまってるのだ。
まぁ，どれだけログが溜まってようと普段は気にしないのだけど，最近は AI (&lt;a href=&#34;https://github.com/features/copilot&#34; target=&#34;_blank&#34; title=&#34;GitHub Copilot · Your AI pair programmer · GitHub&#34;&gt;GitHub Copilot&lt;/a&gt;) といっしょに記事やデプロイのチェックを行っていて，ときどきサンドボックス上に clone して動作テストをしたりするの。
その度に10年分のログがダウンロードされるわけで，遅い遅い。&lt;/p&gt;
&lt;p&gt;というわけで「昨年までのコミットだけまとめられる？」と AI に訊いたら「できます」と言うのでサンドボックス上でやらせてみたんだけど，塩漬けのネタ用にブランチを切っていた関係でうまく rebase できなかったので，最終的に今年7月までのコミットをまとめることにした。
サンドボックス上で動作テストまでやらせて，最終的な作業手順をシェルスクリプトにまとめてもらった。
あとはスクリプトを実行して作業完了。&lt;/p&gt;
&lt;p&gt;コミットをまとめた弊害もあって，このページの右上にもある &amp;ldquo;History in GitHub Page&amp;rdquo; で該当ページのコミット履歴を見れるようにしているのだが，今年7月までの履歴がなくなってしまった。
ゴメンペコン &lt;abbr class=&#34;emoji-chars&#34; title=&#34;ペコン&#34;&gt;🙇&lt;/abbr&gt;&lt;/p&gt;
&lt;p&gt;まぁ，でも，これでリポジトリがスッキリした。&lt;/p&gt;
&lt;h2 id=&#34;x&#34;&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;X&#34;&gt;&amp;#x1D54F;&lt;/abbr&gt; に人間と認められなかったので活動を停止します&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://support.mozilla.org/ja/kb/how-use-firefox-containers&#34; target=&#34;_blank&#34; title=&#34;Firefox コンテナーの使い方 | Firefox ヘルプ&#34;&gt;Firefox のコンテナ機能&lt;/a&gt;がなかなか便利で最近よく使っているのだが，これの影響で &lt;abbr class=&#34;emoji-chars&#34; title=&#34;X&#34;&gt;&amp;#x1D54F;&lt;/abbr&gt; のサインイン状態が外れちゃったのね。
「しょうがない」とサインインし直したのだが&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./x-verification-failed-1.png&#34;&gt;&lt;img src=&#34;./x-verification-failed-1.png&#34; srcset=&#34;./x-verification-failed-1.png 698w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;あなたが人間であることを確認します&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;./x-verification-failed-1.png&#34;&gt;あなたが人間であることを確認します&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;とか出るの。
「は？」とか思ってコンテナやブラウザを変えて試してみるのだが状況は変わらない。
私は Twitter 時代からスマホに公式アプリを入れてなくて，ブラウザからしかアクセスしていない。
なので「スマートフォンでXアプリを開いて続行」とか言われても「知らんがな」となる。&lt;/p&gt;
&lt;p&gt;あとで調べて知ったのだが，最近の &lt;abbr class=&#34;emoji-chars&#34; title=&#34;X&#34;&gt;&amp;#x1D54F;&lt;/abbr&gt; ってユーザが「人間」であることを確認できないとサインインできなくなってるんだって？ ググったら，これのせいで iOS なんかが困らされてるという記事が挙がっていた。&lt;/p&gt;
&lt;p&gt;試しに手持ちの Android タブレットに一時的にアプリを入れてサインインしてみようとしたのだが（スマホに入れるのはどうしても嫌）&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./x-verification-failed-2.png&#34;&gt;&lt;img src=&#34;./x-verification-failed-2.png&#34; srcset=&#34;./x-verification-failed-2.png 1200w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;あなたが人間であることを確認してください&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;./x-verification-failed-2.png&#34;&gt;あなたが人間であることを確認してください&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;とか表示が出て生体認証を要求するの。
なんだそれ？ もういいや！ 金払ってるわけじゃないし，サインインしなくても（自 TL が見れないだけで）推し VTuber とかのポストは見れるし，ゲーム情報は Discord でも見れるので実害はない（多分）。&lt;/p&gt;
&lt;p&gt;というわけで &lt;a href=&#34;https://x.com/spiegel_2007&#34; target=&#34;_blank&#34;&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;X&#34;&gt;&amp;#x1D54F;&lt;/abbr&gt; 上での活動&lt;/a&gt;を完全停止します。
サインインできないから退会すらできないョ。
まぁ，そのうち勝手に BAN されるかもしれんけど（笑） ホンマどこまで粘着質なんだか。&lt;/p&gt;
</content>
	</entry><entry>
		<title>「マガジン航」サイト終了のお知らせ</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2026/10/magazine-k-shutdown/" />
		<id>tag:text.Baldanders.info,2026-10-07:/remark/2026/10/magazine-k-shutdown/</id>
		<published>2026-10-07T03:23:27+00:00</published>
		<updated>2026-10-07T03:31:32+00:00</updated>
		<summary>あとは magazine-k.jp ドメインが spam や phishing に転用されないよう，あるいは Internet Archive が市場や時の為政者に踏み潰されないよう祈るばかりである。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;&lt;a href=&#34;https://yamdas.hatenablog.com/entry/20261007/magazine-ko&#34; target=&#34;_blank&#34; title=&#34;「マガジン航」終了のお知らせに寄せて - YAMDAS現更新履歴&#34;&gt;yomoyomo さんの記事&lt;/a&gt;経由で知ったのだが&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://note.com/solar1964/n/n18a48f8d6412&#34; target=&#34;_blank&#34;&gt;「マガジン航」終了のお知らせ ｜ 仲俣暁生&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://web.archive.org/web/20261003032524/https://magazine-k.jp/2026/10/01/cease_publication/&#34; target=&#34;_blank&#34;&gt;「マガジン航」終了のお知らせ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;えっ「&lt;a href=&#34;https://web.archive.org/web/20261003095755/https://magazine-k.jp/&#34; target=&#34;_blank&#34; title=&#34;マガジン航[kɔː]&#34;&gt;マガジン航&lt;/a&gt;」って続いてたのか？ と一瞬思ったが，そういえば止めたという話も聞いてなかったな。&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://note.com/solar1964/n/n18a48f8d6412&#34;&gt;&lt;p&gt;しかし2023年秋に最後の記事更新をして以来、今後このメディアをどのように活かして行くべきか、編集発行人としてその方向性を見出すことができずにいました。&lt;/p&gt;
&lt;p&gt;この間にインターネットの環境そのものが、ウェブからSNSへ、さらに生成AIへと急速にシフトしており、そのようななかで過去記事のアーカイヴをどのように管理すべきかについても検討を重ねましたが、いまの状況のもとではウェブ上にいつまでも置き続けること自体がよいことだとは思えず、サイトの終了と完全閉鎖を選ぶことにしました。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://note.com/solar1964/n/n18a48f8d6412&#34;&gt;「マガジン航」終了のお知らせ&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;なるほど。
というわけで，今月いっぱいでドメインごとなくなるらしい。&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://note.com/solar1964/n/n18a48f8d6412&#34;&gt;&lt;p&gt;これまでの記事のアーカイヴは、&lt;a href=&#34;https://web.archive.org/web/20260415124052/https://magazine-k.jp/&#34; target=&#34;_blank&#34;&gt;Internet ArchiveのWayback Machine&lt;/a&gt;に委ねることとし、ドメイン名も含めてすべて解消いたします。&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;これまでにご寄稿いただいたテキストについては、ローカルファイルでもバックアップをとっておりますので、万一、Internet Archiveからのサルベージができなかった場合は、責任をもってこちらからコピーをお送りします。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://note.com/solar1964/n/n18a48f8d6412&#34;&gt;「マガジン航」終了のお知らせ&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;私の&lt;a href=&#34;https://baldanders.info/&#34; target=&#34;_blank&#34; title=&#34;Baldanders.info&#34;&gt;本家サイト&lt;/a&gt;で塩漬けになっている日記や旧ブログはいまさら弄る気も起きないのだが，ここのブログは直しておいたほうがいいか。
とりあえず &lt;a href=&#34;https://github.com/features/copilot&#34; target=&#34;_blank&#34; title=&#34;GitHub Copilot · Your AI pair programmer · GitHub&#34;&gt;GitHub Copilot&lt;/a&gt; に調査と作業計画の立案をしてもらおう。
結果はこんな感じ。&lt;/p&gt;
&lt;div class=&#34;by-ai smaller&#34;&gt;&lt;p&gt;&lt;strong&gt;Plan: マガジン航リンクのWayback化&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;content&lt;/code&gt; 内のマガジン航リンクを，指定日時を基準にしたWayback URLへ置き換えます。現状は66件・44ファイルで，記事リンクのほか，サイトトップ・作者・カテゴリへのリンクも含まれています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;content&lt;/code&gt; の対象URLを確定します。生成物の &lt;code&gt;public&lt;/code&gt; と，過去のDelicious書き出し資料は直接変更しません。&lt;/li&gt;
&lt;li&gt;リンク先を &lt;code&gt;https://web.archive.org/web/20261003095755/&lt;/code&gt; と元URLをつないだ形式に置き換えます。リンク文字列や引用文，元URLのパス・クエリ・フラグメントは保ち，Markdownリンクと &lt;code&gt;fig-quote&lt;/code&gt; などの属性も対象にします。&lt;/li&gt;
&lt;li&gt;Waybackで記事ページとトップ・作者・カテゴリページの保存状態を確認します。保存がない，または適切でないURLは元URLを残して例外として報告します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;content&lt;/code&gt; を再検索し，例外以外に元ドメインが残っていないことと，差分がリンク先の変更に限られることを確認します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;build.sh&lt;/code&gt; を実行し，ビルド成功と生成HTMLのリンク先を確認します。コミット・公開は行いません。公開する場合はリポジトリの作業手順に従います。&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;content&lt;/code&gt; は &lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world&amp;#39;s fastest framework for building websites&#34;&gt;Hugo&lt;/a&gt; 環境で記事ファイルを置くディレクトリのこと。
&lt;code&gt;fig-quote&lt;/code&gt; は引用ブロックを書くために独自に作成したショートコードである。
&lt;code&gt;build.sh&lt;/code&gt; は名前の通りビルド用のバッチファイル（シェルスクリプト）。&lt;/p&gt;
&lt;p&gt;リンク先の変更自体は（大抵のエディタが備えている）単純な置換処理でできるのだが，対象範囲の制限と変更後の Internet Archive への疎通テストもお願いした。
作業計画は問題なさそうなので，そのまま進めてもらう。&lt;/p&gt;
&lt;p&gt;Internet Archive 側のリンクでパスの修正が必要だったが（古い日付にリダイレクトされる），それも含めてほぼ手放しで修正作業を完了した。
いやぁ，いい時代になったねぇ。
手作業なら面倒くさくなって途中で投げ出していたところだ。&lt;/p&gt;
&lt;p&gt;私がこのブログで最後に参照した記事は2016年の&lt;a href=&#34;https://bsky.app/profile/fumikok.bsky.social&#34; target=&#34;_blank&#34; title=&#34;工藤郁子 Fumiko Kudo (@fumikok.bsky.social) — Bluesky&#34;&gt;工藤郁子&lt;/a&gt;さんによる以下の記事だ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://web.archive.org/web/20260123182520/https://magazine-k.jp/2016/01/25/spam-and-media/&#34; target=&#34;_blank&#34;&gt;メディアは（常に）スパムか？&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは書籍『&lt;a href=&#34;https://www.amazon.co.jp/dp/430924744X?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34; target=&#34;_blank&#34; title=&#34;Amazon.co.jp: スパム[spam]:インターネットのダークサイド : フィン・ブラントン, 生貝直人, 成原慧, 松浦俊輔: 本&#34;&gt;スパム[spam]:インターネットのダークサイド&lt;/a&gt;』の書評記事なのだが，件の本がめっちゃ読みにくいため，&lt;a href=&#34;https://web.archive.org/web/20260123182520/https://magazine-k.jp/2016/01/25/spam-and-media/&#34; target=&#34;_blank&#34; title=&#34;メディアは（常に）スパムか？&#34;&gt;工藤郁子さんの書評記事&lt;/a&gt;のほうを参考にさせてもらっている。
これは今後も変わらないだろう。&lt;/p&gt;
&lt;p&gt;「&lt;a href=&#34;https://web.archive.org/web/20261003095755/https://magazine-k.jp/&#34; target=&#34;_blank&#34; title=&#34;マガジン航[kɔː]&#34;&gt;マガジン航&lt;/a&gt;」の終了自体は時代的なものもあり「しょうがないか」と思うこともあるが，サイト自体が消えるのは残念な気持ちではある。
あとは &lt;code&gt;magazine-k.jp&lt;/code&gt; ドメインが spam や phishing に転用されないよう，あるいは Internet Archive が市場や時の為政者に踏み潰されないよう祈るばかりである。&lt;/p&gt;
&lt;p&gt;ところで&lt;a href=&#34;https://note.com/solar1964&#34; target=&#34;_blank&#34; title=&#34;仲俣暁生｜note&#34;&gt;仲俣暁生&lt;/a&gt;さんは Bluesky か Mastodon あたりに来てはいただけないのだろうか。
いや &lt;abbr class=&#34;emoji-chars&#34; title=&#34;X&#34;&gt;𝕏&lt;/abbr&gt; の TL は見ないので，個人的な願望なのだが&amp;hellip;&lt;/p&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;p&gt;&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/430924744X?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51KtN0YwWcL._SL160_.jpg&#34; width=&#34;108&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/430924744X?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;スパム[spam]:インターネットのダークサイド&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;フィン・ブラントン (著), 生貝直人 (監修), 成原慧 (監修), 松浦俊輔 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;河出書房新社 2015-12-25&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;430924744X (ASIN), 9784309247441 (EAN), 430924744X (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;3&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;&lt;strong&gt;[Comment]&lt;/strong&gt; とりあえず読みづらい。修飾語が多すぎるよ。ギリシア神話かっての。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2016-12-10&#34;&gt;2016-12-10&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- スパム --&gt;&lt;/p&gt;
</content>
	</entry><entry>
		<title>Web ページの著者情報に Fediverse/Mastodon アカウントを設定する</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2026/09/fediverse-author/" />
		<id>tag:text.Baldanders.info,2026-09-24:/remark/2026/09/fediverse-author/</id>
		<published>2026-09-24T12:32:18+00:00</published>
		<updated>2026-09-24T12:42:15+00:00</updated>
		<summary>これは以前からある rel=&amp;#34;me&amp;#34; を使った Web サイト認証とは異なる。ブログ等を運営している方は，検討してみてもいいかもしれない。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;正式には Mastodon v4.3 からの機能らしいのだが Web ページの &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; 要素に著者情報として Fediverse/Mastodon アカウントを設定できるようになっている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.joinmastodon.org/2024/10/mastodon-4.3/&#34; target=&#34;_blank&#34;&gt;Mastodon 4.3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.joinmastodon.org/2024/07/highlighting-journalism-on-mastodon/&#34; target=&#34;_blank&#34;&gt;Highlighting journalism on Mastodon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://blog.joinmastodon.org/2024/07/highlighting-journalism-on-mastodon/&#34;&gt;&lt;p&gt;We’ve decided to create a new kind of OpenGraph tag—the same kind of tags you have on your website to determine which thumbnail image will appear on the preview for the page when shared on Discord, iMessage, or Mastodon. It looks like this: &lt;code&gt;&amp;lt;meta name=&amp;quot;fediverse:creator&amp;quot; content=&amp;quot;@Gargron@mastodon.social&amp;quot; /&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The handle can be any fediverse account, not just Mastodon. That includes Flipboard, Threads, WordPress (with the ActivityPub plugin installed), PeerTube, Pixelfed, and many others. It will work with and without the leading at-symbol for the handle. If multiple tags are present on the page, the first one will be displayed, but we may add support for showing multiple authors in the future. We intend to propose a specification draft for other ActivityPub platforms in the coming weeks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://blog.joinmastodon.org/2024/07/highlighting-journalism-on-mastodon/&#34;&gt;Highlighting journalism on Mastodon&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;これは以前からある &lt;code&gt;rel=&amp;quot;me&amp;quot;&lt;/code&gt; を使った Web サイト認証とは異なる。&lt;/p&gt;
&lt;p&gt;たとえば Mastodon アカウントが &lt;code&gt;@username@mstdn.example.com&lt;/code&gt; なら Web ページの &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; 要素内に以下の &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; 要素を追記する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fediverse:creator&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;@username@mstdn.example.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上の引用文では Open Graph 語彙の新種みたいに書かれているが，厳密な &lt;a href=&#34;https://baldanders.info/spiegel/rdfa/&#34; target=&#34;_blank&#34; title=&#34;RDFa 入門 — 旧コンテンツ置き場 | Baldanders.info&#34;&gt;RDFa&lt;/a&gt; の語彙があるわけではなく，固定名 &lt;code&gt;fediverse:creator&lt;/code&gt; のデータを &lt;code&gt;name&lt;/code&gt; 属性と &lt;code&gt;content&lt;/code&gt; 属性の組で記述しているに過ぎない。
どちらかというと &lt;a href=&#34;https://text.baldanders.info/remark/2017/10/twitter-card-metadata/&#34; target=&#34;_blank&#34; title=&#34;Twitter Card メタデータに対応した&#34;&gt;Twitter Card の仕組み&lt;/a&gt;に近いかな。&lt;/p&gt;
&lt;p&gt;上手く設定できればリンクプレビューに著者情報が表示される。
こんな感じ。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://goark.fedicity.net/@spiegel/117323386403107012&#34;&gt;&lt;img src=&#34;./post.png&#34; srcset=&#34;./post.png 588w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;リンクプレビュー表示例&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://goark.fedicity.net/@spiegel/117323386403107012&#34;&gt;リンクプレビュー表示例&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;全く関係ない Web ページに著者情報を設定されるのは困るので，ユーザのプロフィール設定で有効なドメインを指定する。&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote class=&#34;nobox&#34; style=&#39;margin:0 auto;text-align:center;&#39; cite=&#34;./profile.png&#34;&gt;
&lt;a href=&#34;./profile.png&#34;&gt;&lt;img src=&#34;./profile.png&#34; srcset=&#34;./profile.png 782w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;認証 - プロフィール&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;./profile.png&#34;&gt;認証 - プロフィール&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;上の例なら &lt;a href=&#34;https://baldanders.info/&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;baldanders.info&lt;/code&gt;&lt;/a&gt; および &lt;a href=&#34;https://text.baldanders.info/&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;text.baldanders.info&lt;/code&gt;&lt;/a&gt; ドメインの Web ページに対してのみ著者情報が有効になる。&lt;/p&gt;
&lt;p&gt;ブログ等を運営している方で自力で &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; 要素を設置可能であれば，検討してみてもいいんじゃないだろうか。&lt;/p&gt;
</content>
	</entry><entry>
		<title>ブログ記事に OGP article メタデータを追加した</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2026/08/ogp-article-meta/" />
		<id>tag:text.Baldanders.info,2026-08-10:/remark/2026/08/ogp-article-meta/</id>
		<published>2026-08-10T06:20:48+00:00</published>
		<updated>2026-08-10T06:26:24+00:00</updated>
		<summary>OGP は相変わらずセマンティック・ウェブからかけ離れたところにいるのがいい感じである（笑）</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;他所のブログ記事を眺めてたら &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; 要素内のメタデータに&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;article:tag&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;foo&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;みたいな記述が見える。
&lt;code&gt;article&lt;/code&gt; なんてあったか？ と思い，調べてみたら，どうやら &lt;a href=&#34;https://ogp.me/&#34; target=&#34;_blank&#34; title=&#34;The Open Graph protocol&#34;&gt;OGP&lt;/a&gt; の中で定義されている語彙（vocabulary）のようだ。&lt;/p&gt;
&lt;h2&gt;オブジェクトタイプに article を指定する&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;article&lt;/code&gt; を使うためには &lt;code&gt;prefix&lt;/code&gt; に &lt;code&gt;article&lt;/code&gt; の語彙を定義し &lt;code&gt;og:type&lt;/code&gt; に &lt;code&gt;article&lt;/code&gt; を指定する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;head&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;prefix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og: http://ogp.me/ns# article: http://ogp.me/ns/article#&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:type&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;article&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;content&lt;/code&gt; 属性は本来リテラルデータを指すので内容に（RDF 上の）意味はないのだが，どうやらただの文字列ではなく， Web 上のリソースを指定しなければいけないようだ。
したがって &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; 要素に&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:type&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;article&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と書きたければ &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; 要素の &lt;code&gt;prefix&lt;/code&gt; 属性を使って&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;head&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;prefix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og: http://ogp.me/ns# article: http://ogp.me/ns/article#&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; ... &lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のように記述する必要がある。
まぁ RDFa の設計思想的には間違ってるけどね。
もう，私は気にしないことにしている。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://ogp.me/&#34; target=&#34;_blank&#34; title=&#34;The Open Graph protocol&#34;&gt;OGP&lt;/a&gt; では &lt;code&gt;article&lt;/code&gt; を含め，以下の語彙が定義されている。&lt;/p&gt;
&lt;div class=&#34;smaller&#34;&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;IRI&lt;/th&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;resource&lt;/th&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;types&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;music&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;https://ogp.me/ns/music#&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;music.song&lt;/code&gt;, &lt;code&gt;music.album&lt;/code&gt;, &lt;code&gt;music.playlist&lt;/code&gt;, &lt;code&gt;music.radio_station&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;video&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;https://ogp.me/ns/video#&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;video.movie&lt;/code&gt;, &lt;code&gt;video.episode&lt;/code&gt;, &lt;code&gt;video.tv_show&lt;/code&gt;, &lt;code&gt;video.other&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;article&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;http://ogp.me/ns/article#&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;article&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;book&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;http://ogp.me/ns/book#&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;book&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;payment&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;http://ogp.me/ns/payment#&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;payment.link&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;profile&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;http://ogp.me/ns/profile#&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;profile&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;website&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;http://ogp.me/ns/website#&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;website&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;これ以外の語彙が欲しいなら独自に定義するしかない。&lt;/p&gt;
&lt;h2&gt;article のメタデータ&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;article&lt;/code&gt; の語彙で使えるメタデータは以下の通り&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;property&lt;/th&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;content&lt;/th&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;description&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;article:published_time&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ISO 8601 形式の日時&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;記事の公開日時&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;article:modified_time&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ISO 8601 形式の日時&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;記事の最終更新日時&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;article:expiration_time&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ISO 8601 形式の日時&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;記事の有効期限&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;article:author&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;profile&lt;/code&gt; リソース&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;記事の著者情報&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;article:section&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;文字列&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;記事のセクション（カテゴリ）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;article:tag&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;文字列&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;記事のタグ&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;article:author&lt;/code&gt; に正しくリソース（通常は URI）を指定している Web ページを見たことがない（笑） みんな名前を文字列で書いてるっぽい。
私も &lt;code&gt;profile&lt;/code&gt; の語彙でわざわざメタデータを書く気にならないので，名前の文字列をセットしている。
文法的には &lt;code&gt;content&lt;/code&gt; 属性はリテラル値なので，ただの文字列でも文法上はエラーにならないのだが。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;article:author&lt;/code&gt; や &lt;code&gt;article:tag&lt;/code&gt; が複数ある場合は &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; 要素を複数書けばよい。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;article:tag&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;foo&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;property&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;article:tag&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;bar&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;article:section&lt;/code&gt; や &lt;code&gt;article:tag&lt;/code&gt; には文字列を指定するとあるが，それって意味なくね？ 普通はセクションやタグの情報を示すリソースを示すものなんじゃないのか？&lt;/p&gt;
&lt;h2&gt;OGP は，やっぱり OGP だった&lt;/h2&gt;
&lt;p&gt;以上を踏まえて，このブログサイトも &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; 要素に &lt;a href=&#34;https://ogp.me/&#34; target=&#34;_blank&#34; title=&#34;The Open Graph protocol&#34;&gt;OGP&lt;/a&gt; の &lt;code&gt;article&lt;/code&gt; メタデータを追加している。
まぁ &lt;code&gt;article&lt;/code&gt; メタデータがどのくらい活用されているのかは分からないけど。
しばらくは様子見ということで。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://ogp.me/&#34; target=&#34;_blank&#34; title=&#34;The Open Graph protocol&#34;&gt;OGP&lt;/a&gt; は（RDFa に則ってるのに）相変わらずセマンティック・ウェブからかけ離れたところにいるのがいい感じである（笑）&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.w3.org/TR/rdfa-primer/&#34; target=&#34;_blank&#34;&gt;RDFa 1.1 Primer - Third Edition&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.w3.org/TR/rdfa-core/&#34; target=&#34;_blank&#34;&gt;RDFa Core 1.1 - Third Edition&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.w3.org/TR/html-rdfa/&#34; target=&#34;_blank&#34;&gt;HTML+RDFa 1.1 - Second Edition&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://webtech.fukushimaku.jp/kiji/ogp-open-graph-protocol-knowledge.html&#34; target=&#34;_blank&#34;&gt;アナタの知らないOGPタグ&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2017/10/twitter-card-metadata/&#34; target=&#34;_blank&#34;&gt;Twitter Card メタデータに対応した&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- eof --&gt;
</content>
	</entry><entry>
		<title>リンクカードに対応した</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2026/07/link-card-support/" />
		<id>tag:text.Baldanders.info,2026-07-08:/remark/2026/07/link-card-support/</id>
		<published>2026-07-08T11:36:01+00:00</published>
		<updated>2026-07-31T07:28:07+00:00</updated>
		<summary>久しぶりに（AI を使わず）自力でコードを書いた。たまには脳みそを使わないと（笑）</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;取引量が少なくて &lt;a href=&#34;https://text.baldanders.info/remark/2025/11/paapi-access-disabled/&#34; target=&#34;_blank&#34; title=&#34;Amazon PA-API にアクセスできなくなった&#34;&gt;Amazon PA-API にアクセスできなくなってしまった&lt;/a&gt;ので，今までの商品レビューカードから Web サイトのリンクカードに切り替えないと。
&amp;hellip;と思いながら半年以上経ってしまった（その間に骨折入院とかもあったけど）。&lt;/p&gt;
&lt;p&gt;ようやくリンクカードを Hugo の処理で出せるようになった。
こんな感じ。&lt;/p&gt;
&lt;p&gt;&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://text.baldanders.info/&#34;&gt;&lt;img src=&#34;https://text.baldanders.info/images/thumbs/79c9ba36c62cd792801ef499cffe7e614e89670a.jpg&#34; width=&#34;110&#34; alt=&#34;thumbs&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://text.baldanders.info/&#34;&gt;text.Baldanders.info&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;帰ってきた「しっぽのさきっちょ」&lt;/dd&gt;
	&lt;dd&gt;&amp;nbsp;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;powered-by&#34;&gt;Powered by &lt;a href=&#34;https://github.com/spiegel-im-spiegel/linkcard&#34;&gt;linkcard&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt; &lt;!-- https://text.baldanders.info/ --&gt;&lt;/p&gt;
&lt;p&gt;Web ページの情報収集のための&lt;a href=&#34;%22https://github.com/spiegel-im-spiegel/linkcard%22&#34; target=&#34;_blank&#34; title=&#34;spiegel-im-spiegel/linkcard: Information for creating link cards&#34;&gt;ツール&lt;/a&gt;を作るのに時間がかかってしまったのだ。
いや，厳密には，実作業時間では半日ほどなのだが，やる気スイッチがなかなか入らなくて（笑）&lt;/p&gt;
&lt;p&gt;あらかじめ&lt;a href=&#34;%22https://github.com/spiegel-im-spiegel/linkcard%22&#34; target=&#34;_blank&#34; title=&#34;spiegel-im-spiegel/linkcard: Information for creating link cards&#34;&gt;ツール&lt;/a&gt;を使って Web ページ情報をこんな感じに Hugo の環境下に保持っておいて&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;hash_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;79c9ba36c62cd792801ef499cffe7e614e89670a&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://text.baldanders.info/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;title&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;text.Baldanders.info&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;帰ってきた「しっぽのさきっちょ」&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;image_url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://text.baldanders.info/images/attention/site.jpg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;image_path&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;/images/thumbs/79c9ba36c62cd792801ef499cffe7e614e89670a.jpg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;image_width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;stars&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;実際に使うときは Hugo のショートコードで展開してる。
上のリンクカードだとこんな感じ。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-hugo&#34; data-lang=&#34;hugo&#34;&gt;{{&amp;lt; linkcard &amp;#34;79c9ba36c62cd792801ef499cffe7e614e89670a&amp;#34; &amp;gt;}}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;引数で &lt;code&gt;hash_id&lt;/code&gt; を指定すれば，そのリンクカードを展開するようにしている。&lt;/p&gt;
&lt;p&gt;最近は出版社さんもページの &lt;code&gt;og:image&lt;/code&gt; 等で書影を指示してくれるので，こちらは &lt;code&gt;og:image&lt;/code&gt; の中身をサムネイル表示すれば，本の紹介用リンクカードになる。
たとえば&lt;a href=&#34;https://text.baldanders.info/remark/2026/07/skimming-through-careless-people/&#34; target=&#34;_blank&#34; title=&#34;『ケアレス・ピープル』を斜め読み&#34;&gt;最近読んだ『ケアレス・ピープル』&lt;/a&gt;ならこんな感じ。&lt;/p&gt;
&lt;p&gt;&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.subarusya.jp/book/b676548.html&#34;&gt;&lt;img src=&#34;https://text.baldanders.info/images/thumbs/955ecd76b8158e21c4262c73717f0c1bc2d94351.jpg&#34; width=&#34;110&#34; alt=&#34;thumbs&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.subarusya.jp/book/b676548.html&#34;&gt;ケアレス・ピープル - 株式会社　すばる舎 学び・成長・成功をあなたに&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;ケアレス・ピープル詳細をご覧いただけます。&lt;/dd&gt;
	&lt;dd&gt;&amp;nbsp;&lt;/dd&gt;
	&lt;dd&gt;Release &lt;abbr class=&#34;release-date&#34; title=&#34;2026-07-03&#34;&gt;2026-07-03&lt;/abbr&gt;&lt;/dd&gt;
	
	&lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;3&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;&lt;strong&gt;[Comment]&lt;/strong&gt; 米国では某企業から圧力がかかってると聞いて紙の本を買ってみた&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;Powered by &lt;a href=&#34;https://github.com/spiegel-im-spiegel/linkcard&#34;&gt;linkcard&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt; &lt;!-- ケアレス・ピープル --&gt;&lt;/p&gt;
&lt;p&gt;ありがたい話である。&lt;/p&gt;
&lt;p&gt;YouTube とかも埋め込みにしないで，こんな感じにリンクカードにすれば煩くないかな。&lt;/p&gt;
&lt;p&gt;&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=-dqLfiQ5IHU&#34;&gt;&lt;img src=&#34;https://text.baldanders.info/images/thumbs/ffea61f5e3dfd0138b8ce8d45abc1acb9e50f134.jpg&#34; width=&#34;150&#34; alt=&#34;thumbs&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.youtube.com/watch?v=-dqLfiQ5IHU&#34;&gt;【 3D LIVE 】Flat Out  輪堂千速生誕祭2026 Summer Fes!🔧【#輪堂千速生誕祭2026 】&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;輪堂千速 誕生日記念グッズ2026🛒販売ページURLhttps://shop.hololivepro.com/products/rindochihaya_birthday_2026⏰グッズ販売期間（受注販売）2026年07月08日(水) 21時00分 ～ 2026年08月10日(月) 18時00分🎧🔧輪堂千...&lt;/dd&gt;
	&lt;dd&gt;&amp;nbsp;&lt;/dd&gt;
	&lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;4&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;powered-by&#34;&gt;Powered by &lt;a href=&#34;https://github.com/spiegel-im-spiegel/linkcard&#34;&gt;linkcard&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt; &lt;!-- 輪堂千速生誕祭2026 --&gt;&lt;/p&gt;
&lt;p&gt;今回，&lt;a href=&#34;%22https://github.com/spiegel-im-spiegel/linkcard%22&#34; target=&#34;_blank&#34; title=&#34;spiegel-im-spiegel/linkcard: Information for creating link cards&#34;&gt;ツール&lt;/a&gt;を組むのに意図的に AI エージェントを使わないようにした。
いや，細かく指示するのが面倒になって「自分で書いたほうが速い」となってしまったのだ。
たまには自力でコードを書かないと脳みそが鈍るからな（笑）&lt;/p&gt;
&lt;p&gt;あっ，でも，レビューとかは AI エージェントにやってもらってる。
ひとりでコードを書くときって AI が QA 役みたいに振る舞ってくれるので，めっちゃ助かっている。
AI がコードを書くときは私が QA 役かな。&lt;/p&gt;
</content>
	</entry><entry>
		<title>Hugo v0.162.0 がリリースされた【Security fix あり】</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/release/2026/05/hugo-v0_162_0-is-released/" />
		<id>tag:text.Baldanders.info,2026-05-27:/release/2026/05/hugo-v0_162_0-is-released/</id>
		<published>2026-05-27T07:01:18+00:00</published>
		<updated>2026-07-31T07:28:07+00:00</updated>
		<summary>このバージョンから既定で HTML フォーマットの入力ファイルを拒否するようになった。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;&lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world&amp;#39;s fastest framework for building websites&#34;&gt;Hugo&lt;/a&gt; v0.162.0 がリリースされた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/gohugoio/hugo/releases/tag/v0.162.0&#34; target=&#34;_blank&#34;&gt;Release v0.162.0 · gohugoio/hugo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; コンパイラおよび関連パッケージのセキュリティ・アップデートがあるのはいつものことなのだが，今回は注意すべき修正がある。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://github.com/gohugoio/hugo/releases/tag/v0.162.0&#34;&gt;&lt;p&gt;&lt;strong&gt;Security fixes and hardening in Hugo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The following changes either fix a concrete issue or reduce the default attack surface of &lt;code&gt;hugo&lt;/code&gt; builds.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disallow &lt;code&gt;text/html&lt;/code&gt; content files by default (&lt;a href=&#34;https://github.com/gohugoio/hugo/commit/e41a06447d&#34; target=&#34;_blank&#34;&gt;e41a064&lt;/a&gt;). A new &lt;code&gt;security.allowContent&lt;/code&gt; policy gates which content media types may be used for pages under &lt;code&gt;/content&lt;/code&gt;. &lt;code&gt;text/html&lt;/code&gt; is denied by default; sites that rely on hand-authored or adapter-emitted HTML content can opt back in with &lt;code&gt;security.allowContent = [&#39;.*&#39;]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Re-check &lt;code&gt;security.http.urls&lt;/code&gt; on every redirect hop in &lt;code&gt;resources.GetRemote&lt;/code&gt; (&lt;a href=&#34;https://github.com/gohugoio/hugo/commit/86fbb0f7a8&#34; target=&#34;_blank&#34;&gt;86fbb0f&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Reject symlinked entries in &lt;code&gt;resources.Get&lt;/code&gt; (&lt;a href=&#34;https://github.com/gohugoio/hugo/commit/f8b5fa09a6&#34; target=&#34;_blank&#34;&gt;f8b5fa0&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://github.com/gohugoio/hugo/releases/tag/v0.162.0&#34;&gt;Release v0.162.0 · gohugoio/hugo&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;このうち，最初の項目にまんまと引っかかった。
こんな感じ：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ERROR error building site: assemble: failed to create page from pageMetaSource 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/remark/2015/gnupg-2-1-8: &amp;#34;/path/to/content/remark/2015/gnupg-2-1-8.html:1:1&amp;#34;: 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;access denied: &amp;#34;text/html&amp;#34; is not whitelisted in policy &amp;#34;security.allowContent&amp;#34;; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;the current security configuration is:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[security]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  allowContent = [&amp;#39;! ^text/html$&amp;#39;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  enableInlineShortcodes = false
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;どうも既定では HTML ファイルを拒否する設定になったらしい。
それならば HTML を許可すればいいだろうと， “&lt;code&gt;!&lt;/code&gt;” を取って&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;security&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;allowContent&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;^text/html$&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と &lt;code&gt;hugo.toml&lt;/code&gt; に書いたら markdown ファイルが全拒否になってしまった（笑）。HTML と markdown のみを許可するには&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;security&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;allowContent&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;^text/markdown$&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;^text/html$&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;などとする必要がある。
ちなみに &lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world&amp;#39;s fastest framework for building websites&#34;&gt;Hugo&lt;/a&gt; では&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://gohugo.io/content-management/formats/&#34;&gt;Create your content using Markdown, HTML, Emacs Org Mode, AsciiDoc, Pandoc, or reStructuredText.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://gohugo.io/content-management/formats/&#34;&gt;Content formats&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;と多様なフォーマットに対応している。
この中で HTML 形式を受け入れるのは（malware を埋め込まれたりとか）リスクが高いと判断して安全側に倒したものと思われる。
実運用では &lt;code&gt;security.allowContent&lt;/code&gt; に，実際に使用するドキュメントフォーマットのみを列挙するのが正しいのだろう。&lt;/p&gt;
&lt;p&gt;エラーの出た &lt;code&gt;gnupg-2-1-8.html&lt;/code&gt; はこのブログにおける&lt;a href=&#34;https://text.baldanders.info/remark/2015/gnupg-2-1-8/&#34; target=&#34;_blank&#34; title=&#34;GnuPG 2.1.8 released&#34;&gt;最初の記事&lt;/a&gt;で，元々は Movable Type 用に書いた記事で「そのまま読み込ませてコンパイルできるかなぁ」と試してみた記事だった。
記事本文の HTML 記述はともかく front matter を整えるのが面倒くさそうなので旧ブログからの移行は諦めたが。
今なら変換ツールを AI に書かせたんだろうなぁ（笑）&lt;/p&gt;
&lt;p&gt;最近は GitHub Copilot に &lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world&amp;#39;s fastest framework for building websites&#34;&gt;Hugo&lt;/a&gt; のアップデートと redeploy をさせているのだが，今回の障害の分析と対処はすべてお任せで作業を完遂できた。
「Hugo のマイナーバージョンアップは問題が出やすいから気をつけて」と指示に添えたのが功を奏したようだ。
自力でやったら悩みまくって，&lt;a href=&#34;https://gohugo.io/documentation/&#34; target=&#34;_blank&#34; title=&#34;Hugo Documentation&#34;&gt;ドキュメント&lt;/a&gt;を調べまくって30分くらい時間を無駄にしてただろう。
いい時代になったものである。&lt;/p&gt;
</content>
	</entry><entry>
		<title>GitHub Copilot はシェル芸達者</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2026/04/github-copilot-shell-wizardry/" />
		<id>tag:text.Baldanders.info,2026-04-09:/remark/2026/04/github-copilot-shell-wizardry/</id>
		<published>2026-04-09T06:57:34+00:00</published>
		<updated>2026-07-31T07:28:07+00:00</updated>
		<summary>GitHub Copilot に少しずつ仕事を振ってみたら，記事の下ごしらえからタグ整理，デプロイ，Hugo 更新まで思った以上に任せられた話。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;最初に予防線を張っておくと，この記事は技術系の内容ではありませんし，私は生成 AI の扱いにも慣れてません。
その辺を割り引いて読んでいただけるとありがたいです。&lt;/p&gt;
&lt;h2&gt;生成 AI にどこまで任せていいのか&lt;/h2&gt;
&lt;p&gt;最近は GitHub Copilot に開発支援だけじゃなくて，このブログのメンテナンスもさせている。
なにせ，どこまで任せていいのか匙加減がさっぱり分からないので，できそうなところから徐々に任せていく感じ。
気分は新卒社会人の OJT だぜ（笑）&lt;/p&gt;
&lt;p&gt;今のところ GitHub Copilot に任せているのは以下の作業：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;タイトル &amp;amp; slug の提案と記事ファイルの作成&lt;/li&gt;
&lt;li&gt;書いた記事の校正とタグの提案&lt;/li&gt;
&lt;li&gt;記事ファイルの commit &amp;amp; push&lt;/li&gt;
&lt;li&gt;ブログのビルドと GitHub Pages への commit &amp;amp; push&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world&amp;#39;s fastest framework for building websites&#34;&gt;Hugo&lt;/a&gt; の更新&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;記事そのものは書かせてない。&lt;/p&gt;
&lt;p&gt;いや，生成 AI に書かせるとホンマに好き勝手な（私の意図とは程遠い）ことを書くのよ。
一度，タイトルだけ決めたまっさらな状態で書かせようとしたら「何の論文を書く気？」って感じのアウトラインを組み始めて，さすがに止めた。
ブログ記事に10個も章立てしてどうする（笑）&lt;/p&gt;
&lt;p&gt;よくアフィリエイト記事を AI に書かせて云々みたいな話を聞くけど，ホンマに AI に書かせてるの？ かなり無茶苦茶するぞ。
ある意味，文才があるのかも知れないが。&lt;/p&gt;
&lt;p&gt;というわけで「記事を書く」以外の作業をやらせている。&lt;/p&gt;
&lt;p&gt;ちなみにモデルは GPT-5.3-Codex を使っている。
あまり Premium Request を消費したくないので最初は GPT-5 mini を使ってたのだが，どうもこの手の「作業」には向かない感じ。
最終的にはローカル LLM を構築したいのだが，お試しレベルならともかく，まともに動くモデルを個人環境で構築するのは難しいか？&lt;/p&gt;
&lt;h2&gt;タイトル &amp;amp; slug の提案と記事ファイルの作成&lt;/h2&gt;
&lt;p&gt;私は最初にタイトルを決めないとブログ記事が書けない。
マイクロブログ程度の短文ならともかく，ブログ記事でタイトルも決めずに書き始めると大抵記事が迷走する（タイトルを決めて書いても迷走しがちなのだが，それはそれ）。&lt;/p&gt;
&lt;p&gt;手順としては&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;日本語のタイトルを決める（ここだけ私の作業）&lt;/li&gt;
&lt;li&gt;Copilot に英語の翻訳と対応する slug を提案させる（たいてい複数個の候補を提案してくれる）&lt;/li&gt;
&lt;li&gt;slug が決まったら記事ファイルを作成させる&lt;/li&gt;
&lt;li&gt;ファイル内の front matter を埋めさせる&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;という感じ。
日本語タイトルを英訳させるための対話で，色々と気付きがあって面白い。&lt;/p&gt;
&lt;p&gt;たとえば日本語タイトルが曖昧で英訳が頓珍漢な文になることがある。
これは生成 AI 以前の機械翻訳サービスを使ってたときもそうだったが，機械と対話することで「文のこの部分が誤解を招いてるのか」と気づいたりできるわけだ。
こういったやり取りが意外と面白かったりする。&lt;/p&gt;
&lt;p&gt;記事ファイルの作成用にシェルスクリプトを組んでいるのだが，まずその挙動を理解させるところから始めた。
したら「このスクリプトをリファクタリングするか？」と訊いてきたのでやらせてみたら，なかなかいい感じに仕上げてくれた。
これなら AI にスクリプトを改善させることもできそうだ。&lt;/p&gt;
&lt;p&gt;他の既存のスクリプトについても同様にリファクタリングさせ，それらの使い方を &lt;code&gt;copilot-instructions.md&lt;/code&gt; および &lt;code&gt;README.md&lt;/code&gt; にまとめさせた。&lt;/p&gt;
&lt;h2&gt;書いた記事の校正とタグの提案&lt;/h2&gt;
&lt;p&gt;私のブログは意図的に文体を崩して書いているので（設計書やビジネス文書じゃあるまいし），下手に賢い lint では却って使いづらかったりする。
ためしに Copilot に「誤字だけ指摘して」と指示してみたら，いい感じに結果を返してくれた。
以来，校正は Copilot に任せている。&lt;/p&gt;
&lt;p&gt;誤字だけでなく慣用句の漢字間違いの指摘とかは結構ありがたかったり。
それでいて崩した文体については一切スルーしてくれる（笑） 偉い偉い。&lt;/p&gt;
&lt;p&gt;もうひとつ悩んでいるのが記事に付与するタグの選択だ。
これを普通に AI に任せるとメチャクチャにしてくれるので，まずは過去の記事を全て浚ってタグの一覧を作らせるところから始めた。&lt;/p&gt;
&lt;p&gt;したらすごい勢いでシェルスクリプトを書き始めた。
私はそれを「へぇ。なるほど」とか言いながら眺めるだけ。
アレだ。
ペアプログラミングってやつ（笑） 機械相手にペアプロすることになるとは思わなかった。&lt;/p&gt;
&lt;p&gt;せっかくいい感じのスクリプトを書いてくれたので，それをファイルにまとめていつでも呼び出せるようにさせた。
タグの一覧を出現数の多いものからソートして CSV ファイルに出力させる。
ここまでできれば，作成した記事に対してタグ一覧の中から妥当なタグを提案するよう指示すればよい。&lt;/p&gt;
&lt;p&gt;タグ一覧を作ったメリットはもうひとつあって typo がいくつか見つかったのと似たような意味のタグの重複が見つかった。
見つけたのも Copilot だけど（なにせ10年以上の間にタグが450個以上できてるのだ）。
これらも修正方針を提案させた上で修正させた。
ファイル作業に関してはちゃんと手順を踏めば間違えることなくやってくれる。&lt;/p&gt;
&lt;h2&gt;記事ファイルの commit &amp;amp; push&lt;/h2&gt;
&lt;p&gt;記事ファイルの commit に関しては，念のため，最初に commit message を提案させて，私が確認してから実際の作業を行わせている。
ここで GPT-5 mini と GPT-5.3-Codex の違いが大きく出た。&lt;/p&gt;
&lt;p&gt;いや，ブログ記事の追加なんだから &lt;ruby&gt;&lt;rb&gt;AI&lt;/rb&gt;&lt;rp&gt; (&lt;/rp&gt;&lt;rt&gt;君&lt;/rt&gt;&lt;rp&gt;) &lt;/rp&gt;&lt;/ruby&gt; のしたことを書くんじゃなくて，どんな記事を追加したのかを書けよ！&lt;/p&gt;
&lt;p&gt;というわけで，GPT-5 mini は向いてないという結論になった。
commit &amp;amp; push するためのコマンドラインの組み立て自体はどちらも大差ないんだけどねぇ。&lt;/p&gt;
&lt;h2&gt;ブログのビルドと GitHub Pages への commit &amp;amp; push&lt;/h2&gt;
&lt;p&gt;ブログのビルドと GitHub Pages への commit &amp;amp; push についても以前からスクリプトファイルを作っていたので，それをそのまま Copilot に使わせている。
まぁ，自分でやったほうが早いのだが，作業の一連を任せることに意味があると思ってるので，敢えて任せている。
この辺も OJT っぽいよな（笑）&lt;/p&gt;
&lt;p&gt;指示も最初はできるだけ具体的にしていたが，最近は「デプロイして」だけでも（過去の作業履歴や &lt;code&gt;copilot-instructions.md&lt;/code&gt; の記述から）適切に処理してくれるようになった。&lt;/p&gt;
&lt;h2&gt;Hugo の更新&lt;/h2&gt;
&lt;p&gt;このブログは静的サイトジェネレータである &lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world&amp;#39;s fastest framework for building websites&#34;&gt;Hugo&lt;/a&gt; を使って構築しているのだが，未だ v1 に到達せずベータ版のままである。
古いテンプレート変数や関数のいくつかは deprecated になっているし，稀に破壊的変更が起きることもある。
&lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world&amp;#39;s fastest framework for building websites&#34;&gt;Hugo&lt;/a&gt; のバージョンアップのたびにビルドし直して互換性等の確認をしているのだが，だんだん面倒くさくなってきたので，これも Copilot に任せてみることにした。&lt;/p&gt;
&lt;p&gt;今回もゴリゴリとスクリプトを書き始める AI。
私も前と同じく様子を眺めていたが，出来がよさそうなのでスクリプトファイルとして書き出してもらった。
こんな感じ（長いぞ！）。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/usr/bin/env bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; -euo pipefail
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Install latest Hugo Extended .deb from GitHub Releases using apt.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Usage: ./hugo_inst.sh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;REPO&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gohugoio/hugo&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;API_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://api.github.com/repos/&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;REPO&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/releases/latest&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;WORK_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;TMPDIR&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;:-&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/tmp&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/hugo-inst.&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$$&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cleanup&lt;span class=&#34;o&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  rm -rf &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$WORK_DIR&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;trap&lt;/span&gt; cleanup EXIT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir -p &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$WORK_DIR&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$WORK_DIR&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;arch&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;dpkg --print-architecture&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;case&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$arch&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; in
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  amd64&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;arm64&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  *&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Unsupported architecture: &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$arch&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;This script supports: amd64, arm64&amp;#34;&lt;/span&gt; &amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;exit&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;esac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Current Hugo:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt; -v hugo &amp;gt;/dev/null 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;1&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  hugo version &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;hugo command not found&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Fetching latest release metadata from &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;REPO&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; ...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;release_json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;curl -fsSL &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$API_URL&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;version&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;awk -F &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#34;&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;/&amp;#34;tag_name&amp;#34;/ {print $4; exit}&amp;#39;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$release_json&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[[&lt;/span&gt; -z &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$version&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Failed to read latest release version.&amp;#34;&lt;/span&gt; &amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;exit&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;asset_url&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;awk -F &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#34;&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;/&amp;#34;browser_download_url&amp;#34;/ &amp;amp;&amp;amp; /hugo_extended_.*_linux-&amp;#39;&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$arch&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;\.deb/ {print $4; exit}&amp;#39;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$release_json&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[[&lt;/span&gt; -z &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$asset_url&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Failed to find hugo_extended .deb for architecture: &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$arch&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;exit&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;deb_file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;asset_url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;##*/&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Latest release: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;version&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Downloading: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;deb_file&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fL --retry &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; --retry-delay &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; -o &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$deb_file&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$asset_url&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Optional checksum verification when checksums.txt exists in latest release.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;checksums_url&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;awk -F &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#34;&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;/&amp;#34;browser_download_url&amp;#34;/ &amp;amp;&amp;amp; /checksums\.txt/ {print $4; exit}&amp;#39;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$release_json&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[[&lt;/span&gt; -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$checksums_url&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Downloading checksums.txt for verification ...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  curl -fL --retry &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; --retry-delay &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; -o checksums.txt &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$checksums_url&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; awk &lt;span class=&#34;s1&#34;&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt; checksums.txt &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -qx &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$deb_file&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Verifying checksum ...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    grep &lt;span class=&#34;s2&#34;&gt;&amp;#34;  &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$deb_file&lt;/span&gt;$&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; checksums.txt &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sha256sum -c -
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;checksums.txt does not include &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;deb_file&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;; skipping verification.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;checksums.txt not found in latest release; skipping verification.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Installing &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;deb_file&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; with apt ...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y &lt;span class=&#34;s2&#34;&gt;&amp;#34;./&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$deb_file&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Installed Hugo:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Done.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これについては，私は1行も触っていない。&lt;/p&gt;
&lt;p&gt;手順としては&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;インストールするマシンのアーキテクチャを確認して対応する &lt;code&gt;.deb&lt;/code&gt; ファイルをダウンロードする&lt;/li&gt;
&lt;li&gt;可能ならチェックサムの検証も行う&lt;/li&gt;
&lt;li&gt;ダウンロードした &lt;code&gt;.deb&lt;/code&gt; ファイルを &lt;code&gt;apt install&lt;/code&gt; コマンドでインストールする&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;という感じ。&lt;/p&gt;
&lt;p&gt;これを実行して &lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world&amp;#39;s fastest framework for building websites&#34;&gt;Hugo&lt;/a&gt; を更新した後，ブログのビルドを行い，ビルド前後の差分を調べて問題がないことを確認する。
問題がなければビルドしたものを commit &amp;amp; push させる。&lt;/p&gt;
&lt;p&gt;「問題がないことを確認する」の部分は私が判断しているので完全な自動化ではないが，今のところ問題は起きていない。&lt;/p&gt;
&lt;h2&gt;GitHub Copilot はシェル芸達者&lt;/h2&gt;
&lt;p&gt;という感じで緩々と GitHub Copilot を使っている。&lt;/p&gt;
&lt;p&gt;今回の一連で意外とシェル芸達者なのが分かったので，自宅機に &lt;a href=&#34;https://github.com/features/copilot/cli&#34; target=&#34;_blank&#34; title=&#34;GitHub Copilot CLI · GitHub&#34;&gt;CLI 版&lt;/a&gt;を入れようかなぁ。
でも，&lt;a href=&#34;https://social.hyuki.net/@hyuki&#34; target=&#34;_blank&#34; title=&#34;結城浩 / Hiroshi Yuki (@hyuki@social.hyuki.net) - 結城浩のマストドン&#34;&gt;結城浩&lt;/a&gt;さんほど使い倒す勇気はないんだよなぁ。
それよりもローカル LLM 構築に向けて環境を整えるほうが先か？&lt;/p&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B07TSZZPWN?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51H&amp;#43;4kUhbFL._SL160_.jpg&#34; width=&#34;121&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B07TSZZPWN?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;フルスクラッチから1日でCMSを作る_シェルスクリプト高速開発手法入門 改訂2版 (アスキードワンゴ)&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;上田 隆一 (著), 後藤 大地 (著), ＵＳＰ研究所 (監修)&lt;/dd&gt;
    &lt;dd&gt;ドワンゴ 2019-07-05 (Release 2019-07-05)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B07TSZZPWN (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;4&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;&lt;strong&gt;[Comment]&lt;/strong&gt; 既存の常識に凝り固まったソフトウェア・エンジニアに「痛恨の一撃」を加える快書もしくは怪書。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2014-09-21&#34;&gt;2014-09-21&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- フルスクラッチから1日でCMSを作る_シェルスクリプト高速開発手法入門 --&gt;
</content>
	</entry><entry>
		<title>ブログを Fediverse &amp;amp; Atmosphere に参加させる</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2026/03/blog-federation-design-with-bridgy-fed/" />
		<id>tag:text.Baldanders.info,2026-03-23:/remark/2026/03/blog-federation-design-with-bridgy-fed/</id>
		<published>2026-03-23T11:42:41+00:00</published>
		<updated>2026-07-31T07:28:07+00:00</updated>
		<summary>とりあえず，このブログを Fediverse &amp;amp; Atmosphere に参加させるところまでやってみた。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;随分前に &lt;a href=&#34;https://fed.brid.gy/&#34; target=&#34;_blank&#34; title=&#34;Bridgy Fed&#34;&gt;Bridgy Fed&lt;/a&gt; を利用して Bluesky と Mastodon を相互接続させる方法を&lt;a href=&#34;https://text.baldanders.info/remark/2024/10/bridgy-fed-for-bluesky/&#34; target=&#34;_blank&#34; title=&#34;Fediverse と Bluesky を相互接続する&#34;&gt;紹介&lt;/a&gt;したが，同じサービスを使ってブログなどの Web サイト（の更新）を Bluesky/Atmosphere および Mastodon/Fediverse と連携させることが出来るようだ。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;
&lt;div class=&#34;mermaid&#34;&gt;
graph LR
  Website[&#34;Web site&#34;]
  BridgyFed((&#34;Bridgy Fed&#34;))
  Mastodon[&#34;Mastodon (Fediverse)&#34;]
  Bluesky[&#34;Bluesky (Atmosphere)&#34;]

  Website--&gt;BridgyFed
  BridgyFed--&gt;Mastodon
  BridgyFed--&gt;Bluesky
&lt;/div&gt;
&lt;figcaption&gt;&lt;div&gt;Federation with Bridgy Fed&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;登録自体は簡単で，以下のページでブログの URL を入力するだけ。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote class=&#34;nobox&#34; style=&#39;margin:0 auto;text-align:center;&#39; cite=&#34;https://fed.brid.gy/web-site&#34;&gt;
&lt;a href=&#34;https://fed.brid.gy/web-site&#34;&gt;&lt;img src=&#34;./web-site-1.png&#34; srcset=&#34;./web-site-1.png 1175w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Enter a web site to bridge:&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://fed.brid.gy/web-site&#34;&gt;Enter a web site to bridge:&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;成功すれば以下の画面に遷移する。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote class=&#34;nobox&#34; style=&#39;margin:0 auto;text-align:center;&#39; cite=&#34;https://fed.brid.gy/web/text.baldanders.info&#34;&gt;
&lt;a href=&#34;https://fed.brid.gy/web/text.baldanders.info&#34;&gt;&lt;img src=&#34;./web-site-2.png&#34; srcset=&#34;./web-site-2.png 1175w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;text.baldanders.info profile - Bridgy Fed&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://fed.brid.gy/web/text.baldanders.info&#34;&gt;text.baldanders.info profile - Bridgy Fed&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;RSS フィードを備えているサイトであれば問題なく登録できるはず。
サイトの登録は誰でもどのサイトでもできる。
勝手に登録されてしまい取り消したいのであれば，&lt;a href=&#34;https://fed.brid.gy/docs#opt-out&#34; target=&#34;_blank&#34;&gt;オプトアウト&lt;/a&gt;の手続きを行う必要がある。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://fed.brid.gy/docs#opt-out&#34;&gt;If you&amp;rsquo;re on the web, &lt;a href=&#34;mailto:feedback@brid.gy&#34; target=&#34;_blank&#34;&gt;email us&lt;/a&gt; from an address at your web site&amp;rsquo;s domain to show that you own it, or you can put the text &lt;code&gt;#nobridge&lt;/code&gt; in the &lt;a href=&#34;https://fed.brid.gy/docs#web-profile&#34; target=&#34;_blank&#34;&gt;profile on your home page&lt;/a&gt; and then &lt;a href=&#34;https://fed.brid.gy/docs#update-profile&#34; target=&#34;_blank&#34;&gt;update your profile&lt;/a&gt; on &lt;a href=&#34;https://fed.brid.gy/docs#user-page&#34; target=&#34;_blank&#34;&gt;your user page&lt;/a&gt;.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://fed.brid.gy/docs#opt-out&#34;&gt;How do I opt out and remove my site or account?&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;初期状態では Bluesky ハンドルは &lt;code&gt;@yourdomain.com.web.brid.gy&lt;/code&gt; に， Mastodon ハンドルは &lt;code&gt;@yourdomain@web.brid.gy&lt;/code&gt; になっている。&lt;/p&gt;
&lt;p&gt;たとえばサイトのドメインが &lt;code&gt;text.baldanders.info&lt;/code&gt; であれば，それぞれ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@text.baldanders.info.web.brid.gy&lt;/code&gt; (Bluesky)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@text.baldanders.info@web.brid.gy&lt;/code&gt; (Mastodon)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;となる。&lt;/p&gt;
&lt;p&gt;このうち Bluesky ハンドルはサイトのドメイン名に変更可能である。
変更方法は&lt;a href=&#34;https://text.baldanders.info/remark/2026/03/creating-a-new-pds-registry-on-pckt/#change-handle&#34; target=&#34;_blank&#34; title=&#34;ハンドル名を独自ドメイン（サブドメイン）に変更する&#34;&gt;以前書いた記事&lt;/a&gt;を参照のこと。
DNS の TXT レコードまたは &lt;code&gt;/.well-known/atproto-did&lt;/code&gt; ファイルに DID を設置すれば勝手に更新してくれるみたい。&lt;/p&gt;
&lt;p&gt;ちなみに，ここのブログのように GitHub Pages で独自ドメインにしている場合は DNS の TXT レコードが使えないため &lt;code&gt;/.well-known/atproto-did&lt;/code&gt; ファイルに DID を書いて設置した。
この場合 &lt;code&gt;/_config.yml&lt;/code&gt; ファイルに以下の記述を追加する必要がある。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;include&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.well-known&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最終的には以下のハンドル名になった。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://bsky.app/profile/text.baldanders.info&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;@text.baldanders.info&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote class=&#34;nobox&#34; style=&#39;margin:0 auto;text-align:center;&#39; cite=&#34;https://pdsls.dev/at://did:plc:crwrada4cit2ijjxuwz4bsjc#identity&#34;&gt;
&lt;a href=&#34;https://pdsls.dev/at://did:plc:crwrada4cit2ijjxuwz4bsjc#identity&#34;&gt;&lt;img src=&#34;./pdsls.png&#34; srcset=&#34;./pdsls.png 549w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;text.baldanders.info - PDSls&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://pdsls.dev/at://did:plc:crwrada4cit2ijjxuwz4bsjc#identity&#34;&gt;text.baldanders.info - PDSls&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Mastodon ハンドル名の &lt;code&gt;web.brid.gy&lt;/code&gt; の部分を&lt;a href=&#34;https://fed.brid.gy/docs#fediverse-enhanced&#34; target=&#34;_blank&#34; title=&#34;Can I use my own domain as my fediverse handle?&#34;&gt;独自ドメインに変える&lt;/a&gt;こともできるようだが，このブログではメリットが薄い（かえってハンドル名が長くなる）のでやらないかな。&lt;/p&gt;
&lt;p&gt;Fediverse の各サービスや Bluesky 等とやり取りするために &lt;a href=&#34;https://indieweb.org/&#34; target=&#34;_blank&#34;&gt;IndieWeb&lt;/a&gt; や &lt;a href=&#34;https://webmention.net/&#34; target=&#34;_blank&#34;&gt;Webmention&lt;/a&gt; が推奨されているみたいだが，これは後日調査して可能なら対応するか。&lt;/p&gt;
&lt;p&gt;今回はここまで。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://paul.kinlan.me/using-web-mentions-in-a-static-sitehugo/&#34; target=&#34;_blank&#34;&gt;Using Web Mentions in a static site (Hugo) | Modern Web Development with Chrome&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.tyage.net/post/2023/2023-07-17-bridgy-fed/&#34; target=&#34;_blank&#34;&gt;このブログがFediverseに対応しました&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ubanis.com/note/bridgy_fed_summary/&#34; target=&#34;_blank&#34;&gt;Bridgy-Fedのまとめ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://webmention.io/&#34; target=&#34;_blank&#34;&gt;Webmention.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.anew.social/long-form-comes-to-bridgy-fed/&#34; target=&#34;_blank&#34;&gt;Long-Form Comes To Bridgy Fed&lt;/a&gt; : Bridgy Fed が長文ドキュメント用の &lt;a href=&#34;https://standard.site/&#34; target=&#34;_blank&#34; title=&#34;Standard.site - One schema. Every platform.&#34;&gt;Standard.site&lt;/a&gt; に対応&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry><entry>
		<title>AT Protocol &amp;amp; ActivityPub 関連サービスの利用について</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/atproto-based-services/" />
		<id>tag:text.Baldanders.info,2026-03-06:/atproto-based-services/</id>
		<published>2026-03-06T02:36:06+00:00</published>
		<updated>2026-07-31T07:28:07+00:00</updated>
		<summary>AT Protocol ベースのサービスをいくつか試しているが，そろそろ覚えきれなくなってきたので，整理のためにここでまとめておく。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;h2&gt;ATProto/Atmosphere 関連サービス&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://atproto.com/&#34; target=&#34;_blank&#34; title=&#34;The AT Protocol&#34;&gt;AT Protocol&lt;/a&gt; ベースのサービスをいくつか試しているが，そろそろ覚えきれなくなってきたので，整理のためにここでまとめておく。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;サービス&lt;/th&gt;
      &lt;th&gt;アカウント等&lt;/th&gt;
      &lt;th&gt;備考&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td rowspan=&#34;5&#34; class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://bsky.app/&#34;&gt;Bluesky&lt;/a&gt;&lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.app/profile/did:plc:w7fwp2mtlaaffnx42wsc76wt&#34;&gt;&lt;code&gt;@baldanders.info&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;
        メインアカウント
        (&lt;a href=&#34;https://pdsls.dev/at://did:plc:w7fwp2mtlaaffnx42wsc76wt&#34;&gt;PDSls&lt;/a&gt;)
      &lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.app/profile/did:plc:hbzmqswkx5pbg5fhr33pw4iw&#34;&gt;&lt;code&gt;@fanapod.baldanders.info&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;
        非公式 APOD 配信ボット
        (&lt;a href=&#34;https://pdsls.dev/at://did:plc:hbzmqswkx5pbg5fhr33pw4iw&#34;&gt;PDSls&lt;/a&gt;)
      &lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.app/profile/did:plc:qv4cel4jrf5qqzfq6ddvp6yv&#34;&gt;&lt;code&gt;@crawler.baldanders.info&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;
        Web クローラー ボット
        (&lt;a href=&#34;https://pdsls.dev/at://did:plc:qv4cel4jrf5qqzfq6ddvp6yv&#34;&gt;PDSls&lt;/a&gt;)
      &lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.app/profile/did:plc:4kzexuq4xieuarc3q6lmkeou&#34;&gt;&lt;code&gt;@photos.baldanders.info&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;
        お散歩カメラ, 実験用
        (&lt;a href=&#34;https://pdsls.dev/at://did:plc:4kzexuq4xieuarc3q6lmkeou&#34;&gt;PDSls&lt;/a&gt;)
      &lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.app/profile/did:plc:26eoqvsiov3hmsfqruoi4d3s&#34;&gt;&lt;code&gt;@goark.bsky.social&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;
        開発・実験用
        (&lt;a href=&#34;https://pdsls.dev/at://did:plc:26eoqvsiov3hmsfqruoi4d3s&#34;&gt;PDSls&lt;/a&gt;)
      &lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://pckt.blog/&#34;&gt;Pckt&lt;/a&gt;&lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://osanpo.pckt.blog&#34;&gt;お散歩カメラ&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;ブログ, &lt;a href=&#34;https://bsky.app/profile/did:plc:4kzexuq4xieuarc3q6lmkeou&#34;&gt;photos&lt;/a&gt;アカウント使用&lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://stream.place/&#34;&gt;Streamplace&lt;/a&gt;&lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://stream.place/baldanders.info&#34;&gt;@baldanders.info&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;動画配信, &lt;a href=&#34;https://bsky.app/profile/did:plc:w7fwp2mtlaaffnx42wsc76wt&#34;&gt;メイン&lt;/a&gt;アカウント使用&lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://nowplayingat.suibari.com/&#34;&gt;なうぷれあっと&lt;/a&gt;&lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://nowplayingat.suibari.com/profile/did:plc:w7fwp2mtlaaffnx42wsc76wt&#34;&gt;@baldanders.info&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;音楽共有, &lt;a href=&#34;https://bsky.app/profile/did:plc:w7fwp2mtlaaffnx42wsc76wt&#34;&gt;メイン&lt;/a&gt;アカウント使用&lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://leaflet.pub/&#34;&gt;Leaflet&lt;/a&gt;&lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://spiegel.leaflet.pub/&#34;&gt;お散歩カメラ&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;ブログ（休眠中）, &lt;a href=&#34;https://bsky.app/profile/did:plc:w7fwp2mtlaaffnx42wsc76wt&#34;&gt;メイン&lt;/a&gt;アカウント使用&lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://trilinesat.suibari.com/&#34;&gt;TriLinesAt&lt;/a&gt;&lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&amp;mdash;&lt;/td&gt;
      &lt;td&gt;三行日記（休眠中）, &lt;a href=&#34;https://bsky.app/profile/did:plc:w7fwp2mtlaaffnx42wsc76wt&#34;&gt;メイン&lt;/a&gt;アカウント使用&lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://skyreader.app/&#34;&gt;Skyreader&lt;/a&gt;&lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&amp;mdash;&lt;/td&gt;
      &lt;td&gt;休眠中, &lt;a href=&#34;https://bsky.app/profile/did:plc:w7fwp2mtlaaffnx42wsc76wt&#34;&gt;メイン&lt;/a&gt;アカウント使用&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;他にも面白そうなサービスが色々と登場しているので，これからも増えていくかも知れない。
自作ツールで &lt;code&gt;bsky.social&lt;/code&gt; 以外の PDS で Bluesky の API を使えるようになれば &lt;code&gt;pckt.cafe&lt;/code&gt; とかも使いやすくなるのだが&amp;hellip; この辺は調査中。&lt;/p&gt;
&lt;h2&gt;ActivityPub/Fediverse 関連サービス&lt;/h2&gt;
&lt;p&gt;ついでに，私が利用している ActivityPub/Fediverse 関連サービスも挙げておく。
といっても今のところは Mastodon しか使ってないのだが。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;サービス&lt;/th&gt;
      &lt;th&gt;アカウント等&lt;/th&gt;
      &lt;th&gt;備考&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td rowspan=&#34;3&#34; class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://goark.fedicity.net/&#34;&gt;Goark&lt;/a&gt;&lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://goark.fedicity.net/@spiegel&#34;&gt;&lt;code&gt;@spiegel@goark.fedicity.net&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;メインアカウント&lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://goark.fedicity.net/@osanpo&#34;&gt;&lt;code&gt;@osanpo@goark.fedicity.net&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;Web クローラー ボット&lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://goark.fedicity.net/@goark&#34;&gt;&lt;code&gt;@goark@goark.fedicity.net&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;開発・実験用, 今のところボット運用&lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://fedibird.com/&#34;&gt;Fedibird&lt;/a&gt;&lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://fedibird.com/@spiegel&#34;&gt;&lt;code&gt;@spiegel@fedibird.com&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;予備系&lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;&lt;a href=&#34;https://mstdn.jp/&#34;&gt;mstdn.jp&lt;/a&gt;&lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://mstdn.jp/@spiegel&#34;&gt;&lt;code&gt;@spiegel@mstdn.jp&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;休眠中&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;PixcelFed も気になっているのだが，これも API とかどうなってるんだろうと踏み出せてない。
まぁ Mastodon が問題なく使えてるので優先順位は低め。&lt;/p&gt;
&lt;h2&gt;Bridgy Fed 連携&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://fed.brid.gy/&#34; target=&#34;_blank&#34; title=&#34;Bridgy Fed&#34;&gt;Bridgy Fed&lt;/a&gt; は &lt;a href=&#34;https://bsky.app/&#34; target=&#34;_blank&#34; title=&#34;Bluesky&#34;&gt;Bluesky&lt;/a&gt; や &lt;a href=&#34;https://joinmastodon.org/&#34; target=&#34;_blank&#34; title=&#34;Mastodon - Decentralized social media&#34;&gt;Mastodon&lt;/a&gt; 等の ActivityPub 連合（Fediverse）を連携させるサービスで，現在 Bluesky → Fediverse と Fediverse → Bluesky のブリッヂが提供されている。
また Web サイトを &lt;a href=&#34;https://bsky.app/&#34; target=&#34;_blank&#34; title=&#34;Bluesky&#34;&gt;Bluesky&lt;/a&gt; や Fediverse へ参加させる機能も提供されている。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://fed.brid.gy/&#34; target=&#34;_blank&#34; title=&#34;Bridgy Fed&#34;&gt;Bridgy Fed&lt;/a&gt; について詳しくは&lt;a href=&#34;https://fed.brid.gy/docs&#34; target=&#34;_blank&#34; title=&#34;Bridgy Fed&#34;&gt;ドキュメント&lt;/a&gt;を参照のこと。
ここでは本サイトで提供している &lt;a href=&#34;https://fed.brid.gy/&#34; target=&#34;_blank&#34; title=&#34;Bridgy Fed&#34;&gt;Bridgy Fed&lt;/a&gt; 連携の設定を挙げておく。&lt;/p&gt;
&lt;h3&gt;Bluesky → Fediverse&lt;/h3&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;
&lt;div class=&#34;mermaid&#34;&gt;
graph LR
  BridgyFed((&#34;Bridgy Fed&#34;))
  Bluesky[&#34;Bluesky&#34;]
  Mastodon[&#34;Fediverse\n(Mastodon, ...)&#34;]

  Bluesky e2@--&gt; BridgyFed
  BridgyFed e1@--&gt; Mastodon

  e1@{ animate: true }
  e2@{ animate: true }
&lt;/div&gt;&lt;/figure&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Bluesky&lt;/th&gt;
      &lt;th&gt;Fediverse&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.app/profile/did:plc:w7fwp2mtlaaffnx42wsc76wt&#34;&gt;&lt;code&gt;@baldanders.info&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.brid.gy/r/https://bsky.app/profile/baldanders.info&#34;&gt;&lt;code&gt;@baldanders.info@bsky.brid.gy&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.app/profile/did:plc:hbzmqswkx5pbg5fhr33pw4iw&#34;&gt;&lt;code&gt;@fanapod.baldanders.info&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.brid.gy/r/https://bsky.app/profile/fanapod.baldanders.info&#34;&gt;&lt;code&gt;@fanapod.baldanders.info@bsky.brid.gy&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Mastodon → Bluesky&lt;/h3&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;
&lt;div class=&#34;mermaid&#34;&gt;
graph LR
  BridgyFed((&#34;Bridgy Fed&#34;))
  Bluesky[&#34;Bluesky\n(and Atmosphere)&#34;]
  Mastodon[&#34;Mastodon&#34;]

  Mastodon e1@--&gt; BridgyFed
  BridgyFed e2@--&gt; Bluesky

  e1@{ animate: true }
  e2@{ animate: true }
&lt;/div&gt;&lt;/figure&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Mastodon&lt;/th&gt;
      &lt;th&gt;Bluesky&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://goark.fedicity.net/@spiegel&#34;&gt;&lt;code&gt;@spiegel@goark.fedicity.net&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.app/profile/mstdn.baldanders.info&#34;&gt;&lt;code&gt;@mstdn.baldanders.info&lt;/code&gt;&lt;/a&gt;
        (&lt;a href=&#34;https://pdsls.dev/at://did:plc:fe7f76dxtltjam5kh5xk3blz&#34;&gt;PDSls&lt;/a&gt;)
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;※ &lt;code&gt;@mstdn.baldanders.info&lt;/code&gt; アカウントは認証には使えない。&lt;/p&gt;
&lt;h3&gt;Web → Bluesky &amp;amp; Fediverse&lt;/h3&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;
&lt;div class=&#34;mermaid&#34;&gt;
graph LR
  Website[&#34;Web site&#34;]
  BridgyFed((&#34;Bridgy Fed&#34;))
  Bluesky[&#34;Bluesky\n(and Atmosphere)&#34;]
  Mastodon[&#34;Fediverse\n(Mastodon, ...)&#34;]

  Website e1@--&gt; BridgyFed
  BridgyFed e2@--&gt;Mastodon
  BridgyFed e3@--&gt;Bluesky

  e1@{ animate: true }
  e2@{ animate: true }
  e3@{ animate: true }
&lt;/div&gt;&lt;/figure&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Web site&lt;/th&gt;
      &lt;th&gt;Profile, Fediverse, and Bluesky&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td rowspan=&#34;3&#34; class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://text.baldanders.info/&#34;&gt;&lt;code&gt;text.baldanders.info&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://fed.brid.gy/web/text.baldanders.info&#34;&gt;Bridgy Fed profile&lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://web.brid.gy/text.baldanders.info&#34;&gt;&lt;code&gt;@text.baldanders.info@web.brid.gy&lt;/code&gt;&lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;/tr&gt;&lt;tr&gt;
      &lt;td class=&#34;nowrap&#34;&gt;
        &lt;a href=&#34;https://bsky.app/profile/text.baldanders.info&#34;&gt;&lt;code&gt;@text.baldanders.info&lt;/code&gt;&lt;/a&gt;
        (&lt;a href=&#34;https://pdsls.dev/at://did:plc:crwrada4cit2ijjxuwz4bsjc&#34;&gt;PDSls&lt;/a&gt;)
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Fediverse アカウントの URL はブラウザでは Web サイトにリダイレクトされる（フォローは可能）&lt;/li&gt;
&lt;li&gt;Bluesky アカウントは認証には使えない&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2023/07/crawler/&#34; target=&#34;_blank&#34;&gt;Mastodon と Bluesky でボット運用はじめました&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2024/10/bridgy-fed-for-bluesky/&#34; target=&#34;_blank&#34;&gt;Fediverse と Bluesky を相互接続する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2025/10/a-bluesky-mastodon-account-migration-tool/&#34; target=&#34;_blank&#34;&gt;Bluesky と Mastodon の間でアカウントの移行が可能らしい&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2026/01/trilinesat/&#34; target=&#34;_blank&#34;&gt;三行日記はじめました&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2026/02/leaflet-and-the-atmosphere/&#34; target=&#34;_blank&#34;&gt;Leaflet と The Atmosphere&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2026/02/skyreader-powered-by-atproto/&#34; target=&#34;_blank&#34;&gt;Skyreader: AT Protocol で駆動する Feed Reader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2026/03/creating-a-new-pds-registry-on-pckt/&#34; target=&#34;_blank&#34;&gt;Pckt に新しい PDS レジストリを作る&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2026/03/pds-for-everyone/&#34; target=&#34;_blank&#34;&gt;そろそろ PDS を個人で管理する時代か？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2026/04/gogh-streaming-on-streamplace/&#34; target=&#34;_blank&#34;&gt;Streamplace で Gogh 作業配信を行う&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry><entry>
		<title>Mastodon/Bluesky で共有するためのボタンを追加・更新</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2026/02/update-share-buttons/" />
		<id>tag:text.Baldanders.info,2026-02-26:/remark/2026/02/update-share-buttons/</id>
		<published>2026-02-26T06:32:46+00:00</published>
		<updated>2026-07-31T07:28:07+00:00</updated>
		<summary>そろそろ重い腰をあげようかな，ということで。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;そろそろ重い腰をあげようかな，ということで。&lt;/p&gt;
&lt;p&gt;このブログ各記事ページの右上には共有のためのボタンがある（目立たないようにわざと小さくしているが）。
今まで Bluesky の共有ボタンを付けてなかったのだが，今回これを追加した。
ボタンに対応する URL の組み立ては以下の公式ドキュメントを参考にした。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.bsky.app/docs/advanced-guides/intent-links&#34; target=&#34;_blank&#34;&gt;Action Intent Links | Bluesky&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ついでに Mastodon の共有ボタンも更新した。
第三者サービスを経由してポストするのはそろそろやめようかなと思って（信用してないわけじゃないけど）。
参考にしたのは以下の記事。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://freefielder.jp/blog/2024/11/share-on-mastodon-button.html&#34; target=&#34;_blank&#34;&gt;サイトに「Mastodonで共有」ボタンを設置する。 - freefielder.jp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このページで公開している CSS および JavaScript コードをそのまま使わせてもらった。
権利の帰属先および利用ライセンスは&lt;a href=&#34;https://text.baldanders.info/mstdn_share/license.txt&#34; target=&#34;_blank&#34;&gt;こちら&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;ありがたや &lt;abbr class=&#34;emoji-chars&#34; title=&#34;ペコン&#34;&gt;🙇&lt;/abbr&gt;&lt;/p&gt;
&lt;p&gt;なお &lt;a href=&#34;https://getpocket.com/&#34; target=&#34;_blank&#34;&gt;Pocket&lt;/a&gt; への共有ボタンは外した。
私が使わなくなったので。
はてな への共有ボタンも付けない。
そもそも はてな のアカウント持ってないしな。&lt;/p&gt;
</content>
	</entry>
</feed>
