<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Lutpul</title><link>https://lutpul.com/</link><description>Recent content on Lutpul</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 29 Oct 2026 12:00:00 +0800</lastBuildDate><atom:link href="https://lutpul.com/index.xml" rel="self" type="application/rss+xml"/><item><title>文本示例</title><link>https://lutpul.com/posts/text-sample/</link><pubDate>Thu, 29 Oct 2026 12:00:00 +0800</pubDate><guid>https://lutpul.com/posts/text-sample/</guid><description>&lt;p&gt;这篇不是文章，是一张对照表：主题（以及它现在用的 Ubuntu Light / Ubuntu Regular 两档英文字脸）在各种文本形态下长什么样。中文目前还是系统的微软雅黑，Serif 档下会变成华文宋体。&lt;/p&gt;
&lt;h2 id="标题层级"&gt;标题层级&lt;/h2&gt;
&lt;p&gt;主题把 h1 和 h2 画成一样大、加粗；h3、h4 稍小；h5、h6 在同字号下变灰。所以下面这五级才是正文里真正能用到的层次。&lt;/p&gt;
&lt;h3 id="三级标题-third-level"&gt;三级标题 Third level&lt;/h3&gt;
&lt;h4 id="四级标题-fourth-level"&gt;四级标题 Fourth level&lt;/h4&gt;
&lt;h5 id="五级标题-fifth-level"&gt;五级标题 Fifth level&lt;/h5&gt;
&lt;h6 id="六级标题-sixth-level"&gt;六级标题 Sixth level&lt;/h6&gt;
&lt;h2 id="中英文混排"&gt;中英文混排&lt;/h2&gt;
&lt;p&gt;Lutpul 是一个 Hugo 主题，每一页都是桌面灰上的一扇窗口：条纹标题栏、下沉的内容框、状态条，还有一排像素按钮。A page is one window, and the window is the page —— 这句话放在 12px 的字号里读起来刚刚好。&lt;/p&gt;
&lt;p&gt;中文与 English 之间没有加空格；数字 2026、版本 v0.161.1、时间 12:00:00、比例 1.2 倍、区间 10–20px 混在同一行里。标点：逗号，句号。分号；冒号：问号？感叹号！引号「直角」、“弯引号”、‘单引号’；破折号 —— 这样；省略号…… 全角与半角 (half-width) 并用。&lt;/p&gt;
&lt;h2 id="强调"&gt;强调&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;粗体：这一段的字重是 700，由浏览器对 Ubuntu Light 做合成加粗。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;斜体：斜体没有对应文件，是合成倾斜，注意看它有没有发糊。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;粗斜体：两者叠加的样子。&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>代码示例</title><link>https://lutpul.com/posts/code-sample/</link><pubDate>Sat, 26 Sep 2026 09:00:00 +0800</pubDate><guid>https://lutpul.com/posts/code-sample/</guid><description>&lt;p&gt;这是一篇用来检查代码排版的示例文章：行内代码、围栏代码块、Hugo 高亮、长行折行、中文注释、斜体合成各来一份。&lt;/p&gt;
&lt;p&gt;行内代码长这样：&lt;code&gt;hugo server -D&lt;/code&gt;，夹在中文句子里 &lt;code&gt;--scale: 1.2&lt;/code&gt; 也要看得清。较长的行内代码 &lt;code&gt;themes/lutpul/static/fonts/UbuntuMono-R.ttf&lt;/code&gt; 应该整段不断字地贴着文字走。&lt;/p&gt;
&lt;h2 id="shell"&gt;Shell&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 中文注释：把主题字体换成自带文件之后，构建产物落在 public/fonts/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo --minify --gc &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; rsync -av --delete public/ /var/www/blog/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -sS -H &lt;span style="color:#e6db74"&gt;&amp;#39;Content-Type: application/json&amp;#39;&lt;/span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#39;{&amp;#34;name&amp;#34;:&amp;#34;lutpul&amp;#34;,&amp;#34;tags&amp;#34;:[&amp;#34;hugo&amp;#34;,&amp;#34;mac-os-9&amp;#34;,&amp;#34;platinum&amp;#34;]}&amp;#39;&lt;/span&gt; https://example.org/api/v1/posts
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="javascript"&gt;JavaScript&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// 长行不换行会撑破窗口，主题用 pre-wrap，会在任意处折回来
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;apply&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; () =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;doc&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;style&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;setProperty&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;--ts&amp;#34;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;size&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;px&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;doc&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;classList&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;toggle&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;serif&amp;#34;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;serif&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;b&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;of&lt;/span&gt; document.&lt;span style="color:#a6e22e"&gt;querySelectorAll&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;.type [data-type]&amp;#34;&lt;/span&gt;)) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;b&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;setAttribute&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;aria-pressed&amp;#34;&lt;/span&gt;, String((&lt;span style="color:#a6e22e"&gt;b&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;dataset&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;type&lt;/span&gt; &lt;span style="color:#f92672"&gt;===&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;serif&amp;#34;&lt;/span&gt;) &lt;span style="color:#f92672"&gt;===&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;serif&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="python"&gt;Python&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; pathlib &lt;span style="color:#f92672"&gt;import&lt;/span&gt; Path
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;load_config&lt;/span&gt;(path: Path) &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; dict:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&amp;#34;读取 hugo.yaml 里 params 的一段，注释里的中文占两个字符宽。&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; text &lt;span style="color:#f92672"&gt;=&lt;/span&gt; path&lt;span style="color:#f92672"&gt;.&lt;/span&gt;read_text(encoding&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; json&lt;span style="color:#f92672"&gt;.&lt;/span&gt;loads(json&lt;span style="color:#f92672"&gt;.&lt;/span&gt;dumps({&lt;span style="color:#e6db74"&gt;&amp;#34;raw&amp;#34;&lt;/span&gt;: text, &lt;span style="color:#e6db74"&gt;&amp;#34;size&amp;#34;&lt;/span&gt;: len(text)}))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="斜体粗体删除线"&gt;斜体、粗体、删除线&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;italic: the quick brown fox jumps over the lazy dog
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bold: the quick brown fox jumps over the lazy dog
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;没有斜体文件时，&lt;code&gt;italic&lt;/code&gt; 由浏览器合成倾斜，可能比正文糊一点；这一点用肉眼对一下就知道了。&lt;/p&gt;</description></item><item><title>图片示例</title><link>https://lutpul.com/posts/media-sample/</link><pubDate>Sat, 22 Aug 2026 07:00:00 +0800</pubDate><guid>https://lutpul.com/posts/media-sample/</guid><description>&lt;p&gt;这篇是图片的对照表。主题只对&lt;strong&gt;独占一个段落的图片&lt;/strong&gt;做处理：套上 1px 黑框 + 下沉阴影 + 淡蓝底，像一张贴在纸上、压进框里的照片。行内小图、徽章不套框。&lt;/p&gt;
&lt;h2 id="独占一段会套上下沉框"&gt;独占一段：会套上下沉框&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://lutpul.com/posts/media-sample/photo-wide.jpg" srcset="https://lutpul.com/posts/media-sample/photo-wide_hu_da6e41813a25f84b.jpg 480w, https://lutpul.com/posts/media-sample/photo-wide.jpg 800w" sizes="(max-width: 752px) calc(100vw - 40px), 678px" width="800" height="500" alt="宽图" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;图片单独占一段（前后空行，Markdown 会包成 &lt;code&gt;&amp;lt;p&amp;gt;&amp;lt;img&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;），于是拿到边框和阴影。原来 800×500，会被压到窗口宽度内等比缩放。&lt;/p&gt;
&lt;h2 id="图片--说明文字"&gt;图片 + 说明文字&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://lutpul.com/posts/media-sample/photo-square.jpg" width="300" height="300" alt="方图" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;说明：图片后面紧接一行斜体，读起来像图注。主题没有专门的 &lt;code&gt;figure&lt;/code&gt;，斜体段落就够了。&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="行内小图不套框"&gt;行内小图：不套框&lt;/h2&gt;
&lt;p&gt;段首放一张小图 &lt;img src="https://lutpul.com/posts/media-sample/badge.png" width="88" height="31" alt="徽章" loading="lazy" decoding="async"&gt; 然后接着写字，因为图片不是独占一段，所以它老老实实待在文字流里，没有边框也没有背景——适合表情、徽章这种小东西。&lt;/p&gt;
&lt;h2 id="8831-的像素徽章"&gt;88×31 的像素徽章&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://lutpul.com/posts/media-sample/badge.png" width="88" height="31" alt="Badge" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;这张恰好是 88×31，主题把它当像素画处理：&lt;code&gt;image-rendering: pixelated&lt;/code&gt;，缩放时不做插值，边缘保持硬边；而且即使它独占一段也不套框。&lt;/p&gt;
&lt;h2 id="竖图"&gt;竖图&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://lutpul.com/posts/media-sample/photo-tall.jpg" width="400" height="600" alt="竖图" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;400×600 的竖图，高度会按比例放大，超过窗口宽度时会先缩到宽度。&lt;/p&gt;
&lt;h2 id="图片当链接"&gt;图片当链接&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://lutpul.com/"&gt;&lt;img src="https://lutpul.com/posts/media-sample/photo-square.jpg" width="300" height="300" alt="点一下回首页" loading="lazy" decoding="async"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;图片外面套 &lt;code&gt;[ ]( )&lt;/code&gt; 就成了链接；框和阴影跟着图片走，鼠标移上去没有额外动效（主题整体没有 hover 状态）。&lt;/p&gt;
&lt;h2 id="附文件放哪"&gt;附：文件放哪&lt;/h2&gt;
&lt;p&gt;这篇用的是 &lt;strong&gt;page bundle&lt;/strong&gt;：&lt;code&gt;content/posts/media-sample/&lt;/code&gt; 里放 &lt;code&gt;index.md&lt;/code&gt; 和图片，引用写成 &lt;code&gt;/posts/media-sample/xxx.jpg&lt;/code&gt;。也可以把图片统一扔进 &lt;code&gt;static/images/&lt;/code&gt;，用 &lt;code&gt;/images/xxx.jpg&lt;/code&gt; 引用（不会经过 Hugo 的处理管道，路径固定）。&lt;/p&gt;
&lt;h2 id="一张普通的收尾图"&gt;一张普通的收尾图&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://lutpul.com/posts/media-sample/photo-wide.jpg" srcset="https://lutpul.com/posts/media-sample/photo-wide_hu_da6e41813a25f84b.jpg 480w, https://lutpul.com/posts/media-sample/photo-wide.jpg 800w" sizes="(max-width: 752px) calc(100vw - 40px), 678px" width="800" height="500" alt="宽图再来一次" loading="lazy" decoding="async"&gt;&lt;/p&gt;</description></item><item><title>关于</title><link>https://lutpul.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lutpul.com/about/</guid><description>&lt;p&gt;这是 Lutpul，一个把每一页画成桌面窗口的 Hugo 主题：条纹标题栏、下沉的内容框、状态条，还有一排像素按钮。&lt;/p&gt;
&lt;h2 id="这个站"&gt;这个站&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;文章在 &lt;code&gt;content/posts/&lt;/code&gt; 下，一篇一个目录（&lt;code&gt;index.md&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;归档页是 &lt;code&gt;content/archive/_index.md&lt;/code&gt;，front matter 里写 &lt;code&gt;layout: archive&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;字体只有三份文件：Ubuntu Mono 两份（细 / 粗）、思源黑体 Light 一份，其余靠系统自带。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="联系"&gt;联系&lt;/h2&gt;
&lt;p&gt;把这里换成你自己的邮箱、社交账号或者 RSS 地址就行。&lt;/p&gt;</description></item><item><title>友链</title><link>https://lutpul.com/links/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lutpul.com/links/</guid><description>&lt;p&gt;下面是常逛的站点。想交换友链的话，按下面的格式发邮件给我就行。&lt;/p&gt;
&lt;h2 id="申请友链"&gt;申请友链&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;站点名称：两到六个字最好&lt;/li&gt;
&lt;li&gt;站点地址：&lt;code&gt;https://&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;一句话描述：三十字以内&lt;/li&gt;
&lt;li&gt;一个图标（可选）：32×32 或 88×31 的 PNG&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;满足下面两条就加：站点能正常访问、内容不是纯采集或广告站。加好后我会回信。&lt;/p&gt;</description></item><item><title>徽章</title><link>https://lutpul.com/badge/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lutpul.com/badge/</guid><description>&lt;p&gt;把这枚 88×31 的徽章放到你的友链页、关于页或者博客侧栏，读者就能顺着它回到这里。&lt;/p&gt;
&lt;p class="badge-live"&gt;&lt;img src="https://lutpul.com/images/badge.png" alt="Lutpul" width="88" height="31"&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;a href="https://lutpul.com/" target="_blank" rel="noopener"&amp;gt;&amp;lt;img src="https://lutpul.com/images/badge.png" alt="Lutpul" width="88" height="31"&amp;gt;&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id="怎么用"&gt;怎么用&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;把上面的 HTML 整段复制走（代码块右上角有复制按钮）；&lt;/li&gt;
&lt;li&gt;想把图片存到自己站上，就下载这个文件：&lt;code&gt;/images/badge.png&lt;/code&gt;，改一下 &lt;code&gt;src&lt;/code&gt; 的地址；&lt;/li&gt;
&lt;li&gt;尺寸正好 88×31，别用 CSS 再缩放，像素画一缩就糊。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="交换友链"&gt;交换友链&lt;/h2&gt;
&lt;p&gt;愿意互换的话，把你这边的站名、地址、一句话描述，外加一枚图标发到 &lt;a href="https://lutpul.com/links/"&gt;友链页&lt;/a&gt; 上写着的方式给我就行。&lt;/p&gt;</description></item></channel></rss>