<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>crofty で作った実例</title>
		<link>https://demo.crofty.site/ja/</link>
		<description>Recent content on crofty で作った実例</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Sat, 13 Jun 2026 19:00:00 +0900</lastBuildDate>
		
			<atom:link href="https://demo.crofty.site/ja/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>abc.js で楽譜を書く</title>
				<link>https://demo.crofty.site/ja/posts/music-notation-with-abc/</link>
				<pubDate>Sat, 13 Jun 2026 19:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/music-notation-with-abc/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://abcnotation.com/&#34;&gt;ABC notation&lt;/a&gt; は音楽を書くための素のテキストの方法だ。&#xA;プロジェクトのレンダーフック（&lt;code&gt;render-codeblock-abc&lt;/code&gt;）が &lt;code&gt;abc&lt;/code&gt; フェンス付きコードブロックを&#xA;&lt;a href=&#34;https://www.abcjs.net/&#34;&gt;abc.js&lt;/a&gt; に送り、それが譜面を彫刻して再生ボタンを加える──&#xA;すべてブラウザのなかで、あなたの記事のテキストから。&lt;/p&gt;&#xA;&lt;h2 id=&#34;簡単な曲&#34;&gt;簡単な曲&lt;/h2&gt;&#xA;&lt;figure class=&#34;abc-block&#34;&gt;&#xA;  &lt;div id=&#34;abc-0-paper&#34; class=&#34;abc-paper&#34;&gt;&lt;/div&gt;&#xA;  &lt;div id=&#34;abc-0-audio&#34; class=&#34;abc-audio&#34;&gt;&lt;/div&gt;&#xA;  &lt;script type=&#34;text/vnd.abc&#34; id=&#34;abc-0-src&#34;&gt;X:1&#xA;T:Cooley&#39;s&#xA;M:4/4&#xA;L:1/8&#xA;R:reel&#xA;K:Emin&#xA;D2|EBBA B2 EB|B2 AB dBAG|FDAD BDAD|FDAD dAFD|&#xA;EBBA B2 EB|B2 AB defg|afe^c dBAF|DEFD E2:|&lt;/script&gt;&#xA;  &lt;script&gt;&#xA;  (function () {&#xA;    function render() {&#xA;      var src = document.getElementById(&#34;abc-0-src&#34;).textContent;&#xA;      var visual = ABCJS.renderAbc(&#34;abc-0-paper&#34;, src, { responsive: &#34;resize&#34; })[0];&#xA;      if (ABCJS.synth &amp;&amp; ABCJS.synth.supportsAudio()) {&#xA;        var ctl = new ABCJS.synth.SynthController();&#xA;        ctl.load(&#34;#abc-0-audio&#34;, null, { displayPlay: true, displayProgress: true });&#xA;        ctl.setTune(visual, false);&#xA;      } else {&#xA;        document.getElementById(&#34;abc-0-audio&#34;).textContent =&#xA;          &#34;Audio playback is not supported in this browser.&#34;;&#xA;      }&#xA;    }&#xA;    if (window.ABCJS) { render(); }&#xA;    else { (window.__abcQueue = window.__abcQueue || []).push(render); }&#xA;  })();&#xA;  &lt;/script&gt;&#xA;&lt;/figure&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://cdn.jsdelivr.net/npm/abcjs@6/abcjs-audio.css&#34;&gt;&#xA;&lt;script&#xA;  src=&#34;https://cdn.jsdelivr.net/npm/abcjs@6/dist/abcjs-basic-min.js&#34;&#xA;  onload=&#34;(window.__abcQueue || []).forEach(function (f) { f(); });&#34;&gt;&lt;/script&gt;&#xA;&lt;h2 id=&#34;調と拍子を変えた音階&#34;&gt;調と拍子を変えた音階&lt;/h2&gt;&#xA;&lt;figure class=&#34;abc-block&#34;&gt;&#xA;  &lt;div id=&#34;abc-1-paper&#34; class=&#34;abc-paper&#34;&gt;&lt;/div&gt;&#xA;  &lt;div id=&#34;abc-1-audio&#34; class=&#34;abc-audio&#34;&gt;&lt;/div&gt;&#xA;  &lt;script type=&#34;text/vnd.abc&#34; id=&#34;abc-1-src&#34;&gt;X:2&#xA;T:C major scale&#xA;M:4/4&#xA;L:1/4&#xA;K:C&#xA;C D E F | G A B c | c B A G | F E D C |]&lt;/script&gt;&#xA;  &lt;script&gt;&#xA;  (function () {&#xA;    function render() {&#xA;      var src = document.getElementById(&#34;abc-1-src&#34;).textContent;&#xA;      var visual = ABCJS.renderAbc(&#34;abc-1-paper&#34;, src, { responsive: &#34;resize&#34; })[0];&#xA;      if (ABCJS.synth &amp;&amp; ABCJS.synth.supportsAudio()) {&#xA;        var ctl = new ABCJS.synth.SynthController();&#xA;        ctl.load(&#34;#abc-1-audio&#34;, null, { displayPlay: true, displayProgress: true });&#xA;        ctl.setTune(visual, false);&#xA;      } else {&#xA;        document.getElementById(&#34;abc-1-audio&#34;).textContent =&#xA;          &#34;Audio playback is not supported in this browser.&#34;;&#xA;      }&#xA;    }&#xA;    if (window.ABCJS) { render(); }&#xA;    else { (window.__abcQueue = window.__abcQueue || []).push(render); }&#xA;  })();&#xA;  &lt;/script&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;どちらの譜面でも再生を押せば音が聞こえる。記法はあなたの Markdown のなかで素の&#xA;テキストのまま残るので、差分はきれいに取れ、どのプラットフォームでも生き延びる──&#xA;レンダリングと音声は、ファイルに焼き込まれているのではなく、読者のブラウザが加える。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ここでの Markdown の見え方</title>
				<link>https://demo.crofty.site/ja/posts/what-markdown-looks-like/</link>
				<pubDate>Fri, 12 Jun 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/what-markdown-looks-like/</guid>
				<description>&lt;p&gt;このページのすべては Markdown で書かれている。それが何をもたらすか、手短に紹介しよう。&lt;/p&gt;&#xA;&lt;h2 id=&#34;見出しは構造を明快に保つ&#34;&gt;見出しは構造を明快に保つ&lt;/h2&gt;&#xA;&lt;p&gt;長い文章を、読者が見渡せる節に分けるのに使う。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;太字&lt;/strong&gt;、&lt;em&gt;斜体&lt;/em&gt;、&lt;code&gt;インラインコード&lt;/code&gt; を、記法を意識せずに書ける。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;リストはただのハイフン&lt;/li&gt;&#xA;&lt;li&gt;1 行に 1 項目&lt;/li&gt;&#xA;&lt;li&gt;入れ子もできる&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;引用は、立ち止まる価値のある一行を際立たせる。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;コードは、フェンスで囲む:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;crofty build&#xA;crofty deploy&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;そして &lt;a href=&#34;https://crofty.site&#34;&gt;リンク&lt;/a&gt; は角括弧の中のただのテキスト。これで道具立ては全部だ&#xA;── エディタもプラットフォームも要らず、どのファイルでも読めるテキストだけ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>コードに色を</title>
				<link>https://demo.crofty.site/ja/posts/code-with-highlighting/</link>
				<pubDate>Thu, 11 Jun 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/code-with-highlighting/</guid>
				<description>&lt;p&gt;フェンス付きブロックにその言語のタグを付ければ、Hugo のハイライター（Chroma）が色を付けてくれる。&#xA;このサイトはクラスベースのハイライトを使っているので、色は&#xA;&lt;code&gt;css/chroma.css&lt;/code&gt; から来ており、読者のライト／ダーク設定とともに切り替わる。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;crofty build&lt;/code&gt; のようなインラインコードはそのまま素のままだ。ブロックには完全な扱いが施される。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&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;w&#34;&gt;&#xA;&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;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&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;w&#34;&gt;&#xA;&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;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&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;w&#34;&gt;&#xA;&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// a tiny program&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&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;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&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;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#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;w&#34;&gt;&#xA;&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;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;hello, crofty&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 class=&#34;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&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 class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;posts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;fetch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/index.json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;then&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;recent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;posts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;draft&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;slice&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&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;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`showing &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt; posts`&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&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;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;word_count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;folder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&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;return&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read_text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;split&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;folder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;glob&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;*.md&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&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;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;word_count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;content/posts&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&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;crofty build       &lt;span class=&#34;c1&#34;&gt;# render Markdown to a static site&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;crofty deploy      &lt;span class=&#34;c1&#34;&gt;# push it to your own domain&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&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;&#xA;&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;workspace&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;01KV1XEQ26RCK07BFWGZW743K1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&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;deploy&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 class=&#34;nt&#34;&gt;&amp;#34;provider&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;cloudflare&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;project&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;crofty-demo&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&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;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;言語を指定しないフェンスは色が付かないまま残る──シェルのやり取りや素の出力にはこれで十分だ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>言葉を所有する</title>
				<link>https://demo.crofty.site/ja/posts/owning-your-words/</link>
				<pubDate>Wed, 10 Jun 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/owning-your-words/</guid>
				<description>&lt;p&gt;web 上の文章の多くは、誰か他人のプラットフォームの上にある。無料に見えるが、住所は相手の&#xA;もので、読者は借り物、サービスが終われば言葉も消えうる。&lt;/p&gt;&#xA;&lt;p&gt;このブログは設計からして逆だ。すべての記事はディスク上の Markdown ファイル。crofty はそれを&#xA;素の静的サイトに変え、私が所有するドメインへ公開する。出ていきたくなっても、エクスポート&#xA;するものは何もなく、囲い込みもない ── ファイルははじめから私のもので、土台はただの Hugo だ。&lt;/p&gt;&#xA;&lt;p&gt;言葉を所有するのは郷愁ではない。自分が持つ土地の上に建てるか、借りた土地の上に建てるか、&#xA;その違いだ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>フィードを持ちつづけるということ</title>
				<link>https://demo.crofty.site/ja/posts/on-keeping-a-feed/</link>
				<pubDate>Tue, 09 Jun 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/on-keeping-a-feed/</guid>
				<description>&lt;p&gt;フィードはサイトを追う最も古い方法であり、いまなお最も優しい方法だ。ログインもなく、アプリもなく、何を目にするかを決めるアルゴリズムもない。購読すれば、新しい記事は、あなたがすでに使っているどんなリーダーにも届く。&lt;/p&gt;&#xA;&lt;p&gt;私がここでひとつ持ちつづけているのは、この関係を直接のものにしたいからだ。私の書くものを気に入ってくれたなら、そのアドレスを手に取って、そのまま持ち去ってくれていい。あいだに立って、私の言葉があなたに届くかどうかを決めるものは、何ひとつ存在しない。&lt;/p&gt;&#xA;&lt;p&gt;それこそがすべての魅力だ。フィードは何も求めず、すべてを覚えている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mermaid で図を描く</title>
				<link>https://demo.crofty.site/ja/posts/diagrams-with-mermaid/</link>
				<pubDate>Sun, 07 Jun 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/diagrams-with-mermaid/</guid>
				<description>&lt;p&gt;Mermaid はフェンス付きコードブロックを図に変える。あなたは関係をテキストで書き、&#xA;ブラウザがそれを描く。プロジェクトのレンダーフック（&lt;code&gt;render-codeblock-mermaid&lt;/code&gt;）が&#xA;それを使うページにだけ Mermaid を読み込み、図はあなたのライト／ダーク&#xA;設定に追随する。&lt;/p&gt;&#xA;&lt;h2 id=&#34;フローチャート&#34;&gt;フローチャート&lt;/h2&gt;&#xA;&lt;pre class=&#34;mermaid&#34; aria-label=&#34;diagram&#34;&gt;graph TD&#xA;  A[Write Markdown] --&amp;gt; B{crofty build}&#xA;  B --&amp;gt;|ok| C[Static site]&#xA;  B --&amp;gt;|error| D[Fix and retry]&#xA;  C --&amp;gt; E[Deploy to your domain]&lt;/pre&gt;&#xA;&lt;script type=&#34;module&#34;&gt;&#xA;  import mermaid from &#34;https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs&#34;;&#xA;  const dark = window.matchMedia(&#34;(prefers-color-scheme: dark)&#34;).matches;&#xA;  mermaid.initialize({ startOnLoad: true, theme: dark ? &#34;dark&#34; : &#34;neutral&#34; });&#xA;&lt;/script&gt;&#xA;&lt;h2 id=&#34;シーケンス図&#34;&gt;シーケンス図&lt;/h2&gt;&#xA;&lt;pre class=&#34;mermaid&#34; aria-label=&#34;diagram&#34;&gt;sequenceDiagram&#xA;  participant You&#xA;  participant crofty&#xA;  participant Cloudflare&#xA;  You-&amp;gt;&amp;gt;crofty: crofty deploy&#xA;  crofty-&amp;gt;&amp;gt;Cloudflare: upload built site&#xA;  Cloudflare--&amp;gt;&amp;gt;You: live URL&lt;/pre&gt;&#xA;&lt;h2 id=&#34;円グラフ&#34;&gt;円グラフ&lt;/h2&gt;&#xA;&lt;pre class=&#34;mermaid&#34; aria-label=&#34;diagram&#34;&gt;pie title Where the words live&#xA;  &amp;#34;Plain Markdown&amp;#34; : 92&#xA;  &amp;#34;Front matter&amp;#34; : 6&#xA;  &amp;#34;Everything else&amp;#34; : 2&lt;/pre&gt;&#xA;&lt;p&gt;ソースは記事のなかで素のテキストのままなので、図はその周りの散文と同じくらい&#xA;持ち運びやすく──そして差分も取りやすい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>出口こそが機能だ</title>
				<link>https://demo.crofty.site/ja/posts/the-exit-is-a-feature/</link>
				<pubDate>Sat, 06 Jun 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/the-exit-is-a-feature/</guid>
				<description>&lt;p&gt;ほとんどのプラットフォームは、去れないように作られている。投稿も、フォロワーも、履歴も、&#xA;すべて内側にあり、出口はわざと狭い。&lt;/p&gt;&#xA;&lt;p&gt;私は逆がよかった。このサイトは、私が持つファイルを、私が持つドメインへ公開しているだけだ。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;去りたくなっても、エクスポートするものは何もない。ファイルははじめから私のものだ。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;それは些細なことに聞こえる ── 終了したサービスに十年分の文章を奪われるまでは。容易な出口は、&#xA;去るつもりがある印ではない。はじめから囚われていなかった、という印だ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>画像と図版</title>
				<link>https://demo.crofty.site/ja/posts/images-and-figures/</link>
				<pubDate>Thu, 04 Jun 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/images-and-figures/</guid>
				<description>&lt;p&gt;画像は、それを使う記事のすぐ隣に置かれる。この記事は &lt;em&gt;ページバンドル&lt;/em&gt;&#xA;──&lt;code&gt;index.md&lt;/code&gt; とその写真を収めたフォルダ──なので、ファイルは一緒に旅をし、&#xA;リンクが壊れることはない。&lt;/p&gt;&#xA;&lt;h2 id=&#34;素の-markdown-画像&#34;&gt;素の Markdown 画像&lt;/h2&gt;&#xA;&lt;p&gt;標準の記法は &lt;code&gt;![alt text](file)&lt;/code&gt; だ。これはこのフォルダに同梱された SVG である。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://demo.crofty.site/posts/images-and-figures/hills.svg&#34; alt=&#34;夕暮れに重なる丘&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;代替テキストは省略可能な飾りではない──それはスクリーンリーダーが読み上げるものであり、&#xA;画像が読み込みに失敗したときに表示されるものだ。声に出して言うキャプションのように&#xA;書こう。&lt;/p&gt;&#xA;&lt;h2 id=&#34;キャプション付きの図版&#34;&gt;キャプション付きの図版&lt;/h2&gt;&#xA;&lt;p&gt;写真にクレジットやキャプションが必要なとき、生の HTML も使える（このサイトは&#xA;Hugo の &lt;code&gt;unsafe&lt;/code&gt; な Markdown を有効にしているので、あなた自身の HTML がそのまま通る）。&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;  &lt;img src=&#34;https://demo.crofty.site/posts/images-and-figures/pipeline.svg&#34; alt=&#34;Markdown becomes a static site, then deploys&#34;&gt;&#xA;  &lt;figcaption&gt;Markdown のフォルダから、デプロイ済みのサイトへ、ひと手間で。&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;文中にインラインで&#34;&gt;文中に、インラインで&lt;/h2&gt;&#xA;&lt;p&gt;画像は文中にも、周囲のテキストの大きさで収まれる──文の途中に落とした&#xA;小さなアイコン &lt;img src=&#34;https://demo.crofty.site/avatar.svg&#34; alt=&#34;サイトのアイコン&#34; style=&#34;height:1.1em;vertical-align:-0.15em;border-radius:3px&#34;&gt; に便利だ。（これは高さを&#xA;指定するのに少しだけ生の HTML を使っている。素の &lt;code&gt;![]()&lt;/code&gt; 画像はつねにそれ自身の&#xA;ブロックとしてフルサイズでレンダリングされ、本物の写真にはたいていそのほうが読みやすい。）&lt;/p&gt;&#xA;&lt;p&gt;これが写真のための道具一式のすべてだ。フォルダのなかのファイルと、それを指す&#xA;一行の Markdown。&lt;/p&gt;</description>
			</item>
			<item>
				<title>テキストのフォルダ</title>
				<link>https://demo.crofty.site/ja/posts/a-folder-of-text/</link>
				<pubDate>Tue, 02 Jun 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/a-folder-of-text/</guid>
				<description>&lt;p&gt;このサイトの背後にデータベースはなく、ダッシュボードもない。あるのはフォルダだ。その中には Markdown ファイルが、記事ごとに一つずつ、名前順に並んでいる。&lt;/p&gt;&#xA;&lt;p&gt;そのフォルダはどんなエディタでも開けるし、どんなツールでも検索でき、どこかへコピーすればバックアップになる。二十年後も意味をなしているだろう。テキストはいつもそうだったのだから。&lt;/p&gt;&#xA;&lt;p&gt;テキストのフォルダはつつましい。そしてそこが肝心なのだ。動かし続けるのに企業を必要としない。必要なのは、私が書き続けることだけだ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>動画を埋め込む</title>
				<link>https://demo.crofty.site/ja/posts/embedding-video/</link>
				<pubDate>Sun, 31 May 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/embedding-video/</guid>
				<description>&lt;p&gt;自分の所有するページに動画を載せる誠実なやり方は二つある。ファイルを自分で&#xA;ホストするか、どこか別の場所からプレイヤーを埋め込むか。ここではどちらも動く。&lt;/p&gt;&#xA;&lt;h2 id=&#34;自前ホスティングの動画&#34;&gt;自前ホスティングの動画&lt;/h2&gt;&#xA;&lt;p&gt;ファイルを手元に置けば、主導権も手元に残る。HTML の &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; 要素には第三者も&#xA;JavaScript も要らない。下のクリップはこの記事のフォルダに同梱されているので、&#xA;音を出してほしい──音声がある。&lt;/p&gt;&#xA;&lt;video controls preload=&#34;metadata&#34;&gt;&#xA;  &lt;source src=&#34;https://demo.crofty.site/posts/embedding-video/bunny.mp4&#34; type=&#34;video/mp4&#34;&gt;&#xA;  Your browser does not support the video tag.&#xA;&lt;/video&gt;&#xA;&lt;p&gt;&lt;code&gt;.mp4&lt;/code&gt; を記事のフォルダに置き、画像と同じやり方で &lt;code&gt;src&lt;/code&gt; をそこに向ければいい。&#xA;（このクリップは &lt;em&gt;Big Buck Bunny&lt;/em&gt;、© Blender Foundation, CC-BY 3.0。）&lt;/p&gt;&#xA;&lt;h2 id=&#34;youtube-の埋め込み&#34;&gt;YouTube の埋め込み&lt;/h2&gt;&#xA;&lt;p&gt;動画がすでにプラットフォーム上にあるなら、Hugo の組み込みショートコードを使う──&#xA;生の HTML は要らず、動画 id だけでいい。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/aqz-KE-bpKQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;このショートコードはレスポンシブでプライバシーに配慮した iframe をレンダリングする。&lt;code&gt;{{&amp;lt; vimeo id &amp;gt;}}&lt;/code&gt;&#xA;は Vimeo に対して同じように働く。プラットフォームの到達力がほしいときは埋め込みに、&#xA;ファイルがプラットフォームより長生きしてほしいときは &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; に手を伸ばそう。&lt;/p&gt;</description>
			</item>
			<item>
				<title>開かれた場で書く</title>
				<link>https://demo.crofty.site/ja/posts/writing-in-the-open/</link>
				<pubDate>Thu, 28 May 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/writing-in-the-open/</guid>
				<description>&lt;p&gt;頭のなかにある考えと、見知らぬ人たちのために書き留めなければならない考えとのあいだには、違いがある。後者は、筋が通っていなければならない。曖昧な身振りの陰に隠れることはできない。&lt;/p&gt;&#xA;&lt;p&gt;だから私は開かれた場で書く──どの投稿も完成しているからではなく、それを仕上げるという行為そのものが、私に何かを教えてくれるからだ。ページを埋めようとして初めて、穴が見えてくる。&lt;/p&gt;&#xA;&lt;p&gt;これらの投稿のほとんどは、ごくわずかな人にしか読まれないだろう。それでいい。この鍛錬は私自身のものだ。誰かが見ていようといまいと。&lt;/p&gt;</description>
			</item>
			<item>
				<title>貼り付けるだけの外部スニペット</title>
				<link>https://demo.crofty.site/ja/posts/external-snippets/</link>
				<pubDate>Mon, 25 May 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/external-snippets/</guid>
				<description>&lt;p&gt;web の半分は HTML のかたまりを手渡して「これをあなたのサイトに貼り付けて」と言う。&#xA;それらのスニペットはただの生の HTML と &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; であり、このサイトが Hugo の&#xA;&lt;code&gt;unsafe&lt;/code&gt; な Markdown を有効にしているので、ここでも動く。よくあるものをいくつか。&lt;/p&gt;&#xA;&lt;h2 id=&#34;github-gist&#34;&gt;GitHub Gist&lt;/h2&gt;&#xA;&lt;p&gt;Gist は、gist の &lt;code&gt;.js&lt;/code&gt; URL を指す一つのスクリプトタグで埋め込める。&lt;/p&gt;&#xA;&lt;script src=&#34;https://gist.github.com/octocat/6cad326836d38bd3a7ae.js&#34;&gt;&lt;/script&gt;&#xA;&lt;h2 id=&#34;codepen&#34;&gt;CodePen&lt;/h2&gt;&#xA;&lt;p&gt;CodePen の埋め込みは &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; のプレースホルダーと彼らの &lt;code&gt;ei.js&lt;/code&gt; で、それがライブの&#xA;エディタに差し替わる（これは CodePen 自身のドキュメントにある例の pen だ）。&lt;/p&gt;&#xA;&lt;p class=&#34;codepen&#34; data-height=&#34;380&#34; data-default-tab=&#34;result&#34; data-slug-hash=&#34;XWJPxpZ&#34; data-user=&#34;Mamboleoo&#34;&gt;&#xA;  &lt;span&gt;See &lt;a href=&#34;https://codepen.io/Mamboleoo/pen/XWJPxpZ&#34;&gt;the Pen on CodePen&lt;/a&gt;.&lt;/span&gt;&#xA;&lt;/p&gt;&#xA;&lt;script async src=&#34;https://cpwebassets.codepen.io/assets/embed/ei.js&#34;&gt;&lt;/script&gt;&#xA;&lt;h2 id=&#34;ソーシャル投稿&#34;&gt;ソーシャル投稿&lt;/h2&gt;&#xA;&lt;p&gt;Mastodon（や X、Bluesky、Instagram…）は &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; と、それをリサイズする小さな&#xA;スクリプトを手渡してくる。iframe は本物の HTML なので、スクリプトがブロックされても&#xA;投稿は表示される──ただ高さを自動で合わせられないだけだ。これは Mastodon 自身の&#xA;アカウントである。&lt;/p&gt;&#xA;&lt;iframe src=&#34;https://mastodon.social/@Mastodon/115503016101266241/embed&#34; width=&#34;100%&#34; height=&#34;420&#34; allowfullscreen sandbox=&#34;allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox&#34; style=&#34;border:0&#34;&gt;&lt;/iframe&gt;&#xA;&lt;script src=&#34;https://mastodon.social/embed.js&#34; async&gt;&lt;/script&gt;&#xA;&lt;h2 id=&#34;素の-iframe&#34;&gt;素の iframe&lt;/h2&gt;&#xA;&lt;p&gt;そして他のすべてが行き詰まったとき、素の &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; はそれを許すものなら何でも&#xA;埋め込む──地図、スライドデッキ、ダッシュボード。&lt;/p&gt;&#xA;&lt;iframe&#xA;  title=&#34;A map of central Tokyo&#34;&#xA;  width=&#34;100%&#34;&#xA;  height=&#34;320&#34;&#xA;  loading=&#34;lazy&#34;&#xA;  src=&#34;https://www.openstreetmap.org/export/embed.html?bbox=139.69,35.67,139.78,35.71&amp;layer=mapnik&#34;&gt;&lt;/iframe&gt;&#xA;&lt;p&gt;上のどの埋め込みも、本物の生きたリソースを指している──だからここで見えるものは&#xA;読者が得るものそのものであり、あなたのページをどのプラットフォームも所有しない。&lt;/p&gt;</description>
			</item>
			<item>
				<title>タイムラインを去った理由</title>
				<link>https://demo.crofty.site/ja/posts/why-i-left-the-timeline/</link>
				<pubDate>Fri, 22 May 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/why-i-left-the-timeline/</guid>
				<description>&lt;p&gt;タイムラインは、人を反応させ続けるために作られている。すべての投稿が他のすべての投稿と競い合い、勝つのは最も真実なものではなく、最も声の大きいものだ。気づけば私は、勝つために書いていた。&lt;/p&gt;&#xA;&lt;p&gt;それは、ゆっくりと自分を見失っていく道だ。考えをフィードに合わせて形づくるようになり、フィードを自分の考えに合わせて形づくることをしなくなる。&lt;/p&gt;&#xA;&lt;p&gt;だから私は去り、何もスクロールして消えていかない場所を作った。ここでは投稿は、誰かが読もうと選ぶまで、じっと留まっている。カウンターも、ランキングも、急かすものもない。聴衆が叫び返すのをやめてみると、私にはかえって語るべきことが多くあったのだ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>プレーンテキストは生き残る</title>
				<link>https://demo.crofty.site/ja/posts/plain-text-outlasts/</link>
				<pubDate>Fri, 15 May 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/plain-text-outlasts/</guid>
				<description>&lt;p&gt;九〇年代のファイルで、もうどのプログラムでも開けないものが手元にある。その形式は、それを作った会社とともに死んだ。だが、同じ年に作られたプレーンテキストのファイルは、何ででも、たちどころに開く。&lt;/p&gt;&#xA;&lt;p&gt;それがテキストの静かな超能力だ。バージョンもなく、ライセンスもなく、依存するホストもない。Markdown のファイルとは、構造のふりをした文字といくつかの約物にすぎない。&lt;/p&gt;&#xA;&lt;p&gt;何で書くかを選ぶとき、私はそれがどれだけ生き永らえるかも選んでいる。プレーンテキストは、私が選びうるほとんど何よりも、長く生き残る。&lt;/p&gt;</description>
			</item>
			<item>
				<title>自分だけのドメイン</title>
				<link>https://demo.crofty.site/ja/posts/a-domain-of-ones-own/</link>
				<pubDate>Fri, 08 May 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/a-domain-of-ones-own/</guid>
				<description>&lt;p&gt;プラットフォーム上のユーザー名は、ゲスト用の通行証だ。取り消され、名前を変えられ、サービスが畳まれれば消し去られてしまう。ドメインは違う。それは自分が直接借りる住所であり、好きなところへ向けることができる。&lt;/p&gt;&#xA;&lt;p&gt;私のドメインは、これまで何度かホストを移ってきた。リンクが切れたことは一度もない。名前は変わらず、その背後にある機械だけが入れ替わったからだ。&lt;/p&gt;&#xA;&lt;p&gt;その連続性は、書き続けるほど重みを増す。人は古い記事を見つける。他のサイトが自分のサイトへリンクを張る。自分だけのドメインは、そのすべてが塵に帰すのを防いでくれるものだ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ゆるやかな web のための覚え書き</title>
				<link>https://demo.crofty.site/ja/posts/notes-toward-a-slower-web/</link>
				<pubDate>Thu, 30 Apr 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/notes-toward-a-slower-web/</guid>
				<description>&lt;p&gt;ページは、生きているために動く必要はない。私を追跡することも、何かを勝手に再生することも、一文を読み終える前に注意を乞うこともいらない。&lt;/p&gt;&#xA;&lt;p&gt;ゆるやかな web とは、ただそういったものをすべて取り除いた web のことだ。一度に読み込まれるページ。じっと佇むテキスト。読むこと以外、あなたに何も求めないサイト。&lt;/p&gt;&#xA;&lt;p&gt;私は自分のささやかな一画を、そんなふうに築こうとしている。ポップアップもなく、装飾もなく、人為的に煽られた切迫感もない。ただ、あなたの時間を尊重する一枚のページの上の言葉だけ。ほかのすべてが速くなればなるほど、私はただ静かに待つ場所をひとつ欲しくなる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ブログロールの復活</title>
				<link>https://demo.crofty.site/ja/posts/the-blogroll-returns/</link>
				<pubDate>Wed, 22 Apr 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/the-blogroll-returns/</guid>
				<description>&lt;p&gt;かつては、どの個人サイトにも、その書き手が気に入った他のサイトの短い一覧が載っていた。そのリンクをたどって、人はさまよった。一つの良いブログが、さらに三つへと導いた。&lt;/p&gt;&#xA;&lt;p&gt;その習慣は、プラットフォームが発見を引き受けたときに薄れていった。次に見るものをアルゴリズムが差し出してくれるのなら、なぜわざわざ外へリンクを張る必要があるだろう。&lt;/p&gt;&#xA;&lt;p&gt;けれど、そのさまよいこそが一番よいところだった。ブログロールは、ささやかな寛容のふるまいだ ── 自分から目をそらし、読む価値があると思う人たちへと指し示すこと。それが戻ってきているのを見るのはうれしい。同じ視線を奪い合うのではなく、互いを薦め合うとき、web はもっと面白くなる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>バックアップは未来の自分への恋文</title>
				<link>https://demo.crofty.site/ja/posts/backups-are-a-love-letter/</link>
				<pubDate>Tue, 14 Apr 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/backups-are-a-love-letter/</guid>
				<description>&lt;p&gt;バックアップのことを考える人は、それがあればすべてを救えたはずの瞬間が来るまでは、誰もいない。そのときにはもう手遅れで、その喪失は、味わったことのない人には説明しがたいほど全面的だ。&lt;/p&gt;&#xA;&lt;p&gt;バックアップとは、どこか別の場所に置いた複製にすぎない。華やかさはなく、後回しにしやすい。だがそれは、来年の自分への静かな約束でもある──今日やっている仕事が、それでもなお存在し続けるという約束だ。&lt;/p&gt;&#xA;&lt;p&gt;私のサイトはまるごと素朴なファイルなので、バックアップはフォルダをコピーするだけのことだ。もっとも単純な仕組みが、もっとも安全な仕組みでもあったというわけだ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>バズらないということ</title>
				<link>https://demo.crofty.site/ja/posts/on-not-going-viral/</link>
				<pubDate>Sun, 05 Apr 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/on-not-going-viral/</guid>
				<description>&lt;p&gt;かつて私は、ある記事をどれだけ広がったかで測っていた。大きな数字は、その文章が良かった証のように感じられた。だが、そうではなかった。それはたいてい、その文章が声高だった証にすぎなかった。&lt;/p&gt;&#xA;&lt;p&gt;いまでは私は、最初の一行を見て立ち去った一万人より、最後まで読んでくれた十人に届くほうがいい。小さな数字のほうが、正直なのだ。&lt;/p&gt;&#xA;&lt;p&gt;バズらないことは、ほとんど誰の心にも留まらないものについて書く自由を私に与えてくれた。そうして書いたものこそ、私がいちばん誇りに思う記事であり、数人が実際に覚えていてくれる記事になる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Markdown で十分だ</title>
				<link>https://demo.crofty.site/ja/posts/markdown-is-enough/</link>
				<pubDate>Fri, 27 Mar 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/markdown-is-enough/</guid>
				<description>&lt;p&gt;何年ものあいだ、私はより良い執筆ツールを追いかけてきた。より豊かなエディタ、より多くのボタン、より巧みなページの整え方。そのどれも、文章をいっこうに良くしてはくれなかった。&lt;/p&gt;&#xA;&lt;p&gt;私が実際に必要としていたのは、見出しと、いくらかの強調と、ときおりのリスト、そして外へリンクを張る手立てだった。Markdown はそのすべてを、キーから手を離さずに打てるひと握りの素朴な記号で与えてくれる。&lt;/p&gt;&#xA;&lt;p&gt;制約こそが贈り物だ。段落の見た目についての選択肢が少なければ、その分の注意を段落の中身へ注げる。Markdown で十分であり、たいていの場合、十分こそがちょうどいい量なのだ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>所有すべきは関係であって、読者ではない</title>
				<link>https://demo.crofty.site/ja/posts/owning-the-relationship/</link>
				<pubDate>Wed, 18 Mar 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/owning-the-relationship/</guid>
				<description>&lt;p&gt;プラットフォームはあなたの読者を、まるであなたが所有する何かであるかのように語る。だが、そうではない。フォロワーはプラットフォームの上に暮らしており、あなたのどの記事が彼らに届くかは、プラットフォームが決めている。&lt;/p&gt;&#xA;&lt;p&gt;あなたが所有できるのは、その経路そのものだ。フィードとドメインは私のものだ。誰かが購読するとき、次の記事を見せるに値するかどうかを判断して、私たちのあいだに立つ者は誰もいない。&lt;/p&gt;&#xA;&lt;p&gt;私はここで読者を集めているのではない。一枚の扉を開けたままにしているだけだ。くぐりたい者は、自らの条件でくぐればいいし、好きなときに去ればいい。それこそが、web において持つに値する唯一の関係だ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>web の静かな片隅</title>
				<link>https://demo.crofty.site/ja/posts/a-quiet-corner/</link>
				<pubDate>Mon, 09 Mar 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/a-quiet-corner/</guid>
				<description>&lt;p&gt;すべてが舞台である必要はない。ただの部屋であるような場所もある──小さくて、灯りがともり、人の住んだ気配のある部屋が。このサイトはそのひとつだ。&lt;/p&gt;&#xA;&lt;p&gt;ここに投稿するのは、演じるためではない。私のものである片隅で、声に出して考えるために投稿する。私をスクロールさせ続けようと照明が変わることもなく、見知らぬ誰かの怒りが招かれもせずにやってくることもない場所で。&lt;/p&gt;&#xA;&lt;p&gt;大きな web はこれからもずっと騒がしいだろう。それを直そうとも、争おうとも思わない。ただ、戻ってこられる自分だけの静かな片隅がほしい。そして通りすがる誰のためにも、扉の鍵は開けたままにしておきたい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>文章のためのバージョン管理</title>
				<link>https://demo.crofty.site/ja/posts/version-control-for-prose/</link>
				<pubDate>Thu, 26 Feb 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/version-control-for-prose/</guid>
				<description>&lt;p&gt;プログラマーは仕事のすべてのバージョンを残し、その歴史のどの瞬間にも戻ることができる。書き手はめったにそうしない。そのために私たちは何かを失っている ── 一作が実際にどのようにして生まれてきたか、その記録を。&lt;/p&gt;&#xA;&lt;p&gt;私の記事は素のテキストファイルなので、コードが保たれるのと同じやり方で残している。一つひとつの編集が、保存された小さな一歩だ。三つ前の草稿の段落を振り返ることもできるし、いったん切ったあとで惜しくなった一行を取り戻すこともできる。&lt;/p&gt;&#xA;&lt;p&gt;それはまた、何ものも本当に消え去ることはない、ということでもある。古いバージョンがコマンド一つ先にあるなら、まずい書き直しは悲劇ではない。書くことの歴史が、書くことそのものの一部になる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>無料の代償</title>
				<link>https://demo.crofty.site/ja/posts/the-cost-of-free/</link>
				<pubDate>Sat, 14 Feb 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/the-cost-of-free/</guid>
				<description>&lt;p&gt;無料のプラットフォームは、お金を稼ぐ必要が出てくるまでは気前がよい。そのとき、代償がひそかにやってくる。支払わなければリーチは絞られる。投稿は広告に包まれる。規約は足元で移ろい、自分が注いだ仕事は、誰か他人の収支のために働きはじめる。&lt;/p&gt;&#xA;&lt;p&gt;あなたは決して顧客ではなかった。あなたこそが、売られていたものだ。&lt;/p&gt;&#xA;&lt;p&gt;私はむしろ、ドメインとホスティングのために、小さく素直な対価を払い、自分が何に払っているのかを正確に知っていたい。請求は正直で、仕事は自分のものであり続ける。無料には必ず代償がある。問いはただ一つ、それが自分に見えているかどうかだ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ふたたび RSS で読む</title>
				<link>https://demo.crofty.site/ja/posts/reading-by-rss-again/</link>
				<pubDate>Sat, 31 Jan 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/reading-by-rss-again/</guid>
				<description>&lt;p&gt;今年、私はふたたびフィードで読むようになった。それが web の感触を変えた。リーダーは、私が選んだサイトのものすべてを、順番どおりに、ほかには何も混ぜずに見せてくれる。終わりまで来れば、それで終わりだ。&lt;/p&gt;&#xA;&lt;p&gt;無限スクロールはない。フォローしたこともないアカウントからのおすすめ投稿もない。何を見てよいかをひそかに選り分けることもない。&lt;/p&gt;&#xA;&lt;p&gt;それはより穏やかな読み方であり、書き手にとってもより公平な読み方だ。私が購読するどのサイトも、大きかろうと小さかろうと、同じやり方で私のもとへ届く。フィードリーダーは古い技術だ。そこへ戻ってきたのは、忘れるべきでなかった何かを思い出すような感覚だった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>小さく始める</title>
				<link>https://demo.crofty.site/ja/posts/starting-small/</link>
				<pubDate>Sun, 18 Jan 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/posts/starting-small/</guid>
				<description>&lt;p&gt;サイトを決して持たないための一番たやすい方法は、それについての完璧な計画ができるまで待つことだ。デザイン、テーマ、更新の頻度、読者層。すべてを練り終えるころには、その瞬間はもう過ぎ去っている。&lt;/p&gt;&#xA;&lt;p&gt;このサイトを、私は小さく始めた。数本の記事、素っ気ないレイアウト、何になるかという大それた構想もなしに。あとから育ってもいいし、控えめなままでもいい。どちらでもかまわない。&lt;/p&gt;&#xA;&lt;p&gt;大切なのは、それが存在すること、それが自分のものであること、そして言いたいことができたときにいつでも書き足せることだ。小さく始めるのも、始めることに変わりはない。あとはただ、また姿を見せるだけだ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>お問い合わせ</title>
				<link>https://demo.crofty.site/ja/contact/</link>
				<pubDate>Thu, 01 Jan 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/contact/</guid>
				<description>&lt;p&gt;このようなサイトの著者に連絡する静かな方法はメールです：&#xA;&lt;a href=&#34;mailto:hello@example.com&#34;&gt;hello@example.com&lt;/a&gt;。フォームも、アカウントも、順番待ちも&#xA;要りません ── 昔ながらのやり方で、メッセージが受信箱に届きます。&lt;/p&gt;&#xA;&lt;p&gt;静的サイトにはフォーム送信を受け取るサーバーがありません。それは欠点ではなく利点です。&#xA;侵入される対象もなく、入力内容を黙って集める仕組みもありません。もしフォームが必要なら&#xA;── 予約や、長めの問い合わせなら ── スモールウェブの答えは、それを処理してくれるサービス&#xA;（Formspree、Tally、Google フォームなど）を埋め込むことです。ページは静的なまま、受け取りは&#xA;フォーム提供側が担います。&lt;/p&gt;</description>
			</item>
			<item>
				<title>このサイトについて</title>
				<link>https://demo.crofty.site/ja/about/</link>
				<pubDate>Thu, 01 Jan 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/about/</guid>
				<description>&lt;p&gt;これは &lt;strong&gt;crofty&lt;/strong&gt; で作ったデモサイトです。下に出てくる著者は例 ── このブログを持つであろう&#xA;人物の代役です。&lt;/p&gt;&#xA;&lt;p&gt;ここにあるものはすべて、素の Markdown を静的サイトに変換したもので、所有者が管理する&#xA;ドメインに置かれています。間にプラットフォームはなく、どこかへ黙って通信することもなく、&#xA;いつでも普通の Hugo へ持ち出せます。記事はフォルダの中のファイルにすぎず、このページも&#xA;その一つです。&lt;/p&gt;&#xA;&lt;p&gt;もしあなたが自分の小さなサイトを始めるか迷ってここを読んでいるなら ── 許可は要りませんし、&#xA;多くも要りません。テキストの入ったフォルダと、それを置く場所があれば十分です。&lt;/p&gt;</description>
			</item>
			<item>
				<title>プライバシーと奥付</title>
				<link>https://demo.crofty.site/ja/legal/</link>
				<pubDate>Thu, 01 Jan 2026 09:00:00 +0900</pubDate>
				<guid>https://demo.crofty.site/ja/legal/</guid>
				<description>&lt;p&gt;ここに書くことはほとんどありません。それがむしろこのサイトの姿勢です。Cookie は設定せず、&#xA;アクセス解析も動かさず、読み手を追跡する第三者スクリプトも読み込みません。どこかへ黙って&#xA;通信することもありません。ホストはファイルを配信するために静的ホストが記録するぶんだけを&#xA;記録し、それ以上は何もしません。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;奥付。&lt;/strong&gt; Markdown で書き、Hugo の上の&#xA;&lt;a href=&#34;https://github.com/ShiroDoromoto/crofty&#34;&gt;crofty&lt;/a&gt; でビルドし、著者が所有するドメインに静的&#xA;ファイルとして公開しています。テーマは凍結されていますが eject 可能で、中身はテキストの&#xA;入ったフォルダにすぎません。物販をするサイトや、ここより多くを集めるサイトなら、特定商取引法&#xA;に基づく表記やより詳しいプライバシーポリシーもここに置くことになります。&lt;/p&gt;</description>
			</item>
			<item>
				<title>リンク集</title>
				<link>https://demo.crofty.site/ja/links/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://demo.crofty.site/ja/links/</guid>
				<description>&lt;p&gt;よく読むサイト。これは昔ながらの blogroll ── あなたの時間に値する場所への、一方向の&#xA;リストです。公開ページにリンクするのに許諾は要らず、誰かを「友達」と称してもいません。&#xA;ただ web の良い片隅というだけです。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
