2026-07-25 11:55:00
[!NOTE] newskin | 养病中低浮上
自把敝站从 WordPress 迁到 Hexo,已三年有余。彼时 Astro 才刚刚发布第一个 Beta 版本不久,尚不为在下所知。直到 2023 年底,在下才终于了解到这个推行「群岛架构」的框架,不过当时的 Astro 社区生态还处于起步阶段,对于低技术力的在下来说,将其作为博客框架来用还为时尚早。况且,Volantis 主题的优化做得还不错,在下也没有在博客里塞进大量的 JavaScript 资源,因而 Lighthouse 评分还是看得过去的。另外,敝站的部署早就扔到了 Serverless 服务上运行,对部署时间的长短并不敏感,对服务器渲染更是没有要求,因此,没有必要追求那一点点性能提升而放弃现有成熟的解决方案。
虽然如此,在下依旧对 Astro 的 View Transitions API 印象深刻,无论是切换页面时的体验还是平滑的原生动画,都是老旧的 Hexo 打补丁所不能及的。因此,在下还是在心中暗自决定了下一代的敝站将会由 Astro 驱动,并为此持续关注着社区当中的新主题。
在下最早关注的主题是 fuwari,基于 MD3 风格的设计一下子抓住了在下的眼睛。不过 fuwari 依旧缺乏一些基本的博客功能,例如文章目录(现在已经支持)、评论模块和友链页面,虽然可以自己手搓,不过对于在下来说还是有些费时费力,仅仅只是将其拉到了本地略微研究了一番,便就此作罢。
随着时间的推移,更多有趣的主题开始涌现,其中基于 Hexo 主题 Shoka 设计的 koharu 吸引了在下的注意。Hexo 的 Shoka 本就是在下比较喜欢的主题,但在下同时也注意到更多基于 fuwari 修改的主题开始出现,例如 Twilight、Mizuki 等,都是在下比较中意的。最终,在下在左挑右拣中选定了 MD3 设计的 Mizuki。
比起上次从 WordPress 迁移出来,这次的迁移就要方便的多了。首先,由于文章都是以 MD 文档的形式储存,只需要简单地复制粘贴,改一下 Frontmatter,就可以直接用了,唯一需要注意的是 Volantis 主题的特色功能代码需要适配新主题,不过这充其量只是字符串替换,无论是手动 Ctrl + F 之后批量替换还是直接让 AI 修改都不算费事。
而在上次迁移花费最多精力的评论方面,由于之前使用的是 twikoo 评论系统,只需要引入前端 JS 并连接到之前的数据库,就可以像模块一样方便地在不同的博客之中插拔。
值得一提的是,Mizuki 给 twikoo 写的样式还是基于 1.7.6 的,而在在下部署博客的时候,发现其对当时 twikoo 最新的 1.7.13 的适配有问题,为此拷打了一番 AI,提交了 PR 把这个问题给解决了。
最终,在迁移过程中最花时间的项目落到了对主题的微调上,由于这是在下首次接触到 Astro 项目,花了一点时间才搞明白文件结构,特此把一些重要的修改项目列出来备忘。
Mizuki 之前的字体配置在 src/config/siteConfig.ts 中调整,不过后来由于一些问题,转而直接使用 Astro 原生的字体 API 配置,需要到 astro.config.mjs 中修改。
Astro 的字体 API 可以非常方便地引用敝站使用的谷歌字体:
export default defineConfig({
fonts: [
{
provider: fontProviders.google(),
name: "Noto Sans",
cssVariable: "--font-body",
weights: [400, 600],
},
{
provider: fontProviders.google(),
name: "Noto Sans SC",
cssVariable: "--font-cjk",
weights: [400, 600],
},
{
provider: fontProviders.google(),
name: "Lobster",
cssVariable: "--font-lobster",
},
]
});
需要注意的是 Mizuki 必须要有 --font-body 和 --font-cjk 这两个 CSS 变量,修改的时候要确保这两个变量被正确配置,不然会报错。
在 astro.config.mjs 中引入之后,就可以在 src/styles/main.css 中进一步自定义了,例如敝站:
@theme {
--font-sans: var(--font-body), var(--font-cjk), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-display: var(--font-lobster), var(--font-body), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-title: var(--font-rampart-one), var(--font-body), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
如果在 astro.config.mjs 定义了新的字体变量,不要忘记在 src/layouts/Layout.astro 中引入,否则不会有效果,例如敝站在这里新引入了 --font-lobster :
<!doctype html>
<html
lang={siteLang}
class="bg-(--page-bg) text-[14px] md:text-[16px]"
data-overlayscrollbars-initialize
data-waves-config-enabled={siteConfig.banner?.waves?.enable ? "true" : "false"}
data-banner-title-config-enabled={siteConfig.banner?.homeText?.enable ? "true" : "false"}
data-post-list-layout-enabled={siteConfig.postListLayout?.enable ? "true" : "false"}
>
<head>
<meta charset="UTF-8" />
<Font cssVariable="--font-body" preload />
<Font cssVariable="--font-cjk" /> // [!code highlight]
<Font cssVariable="--font-jetbrains-mono" />
<Font cssVariable="--font-lobster" />
<Font cssVariable="--font-rampart-one" /> // [!code ++]
...
Mizuki 使用 Tailwind CSS,只需找到位置,调整起来还是很方便的。
lg:px-5 的值shrink-0
min-w-[12rem] 改为 min-w-max
Mizuki 的文章链接默认存在 src/contest/posts 下,使用默认的文件名作链接,默认链接路径为 /posts/文件名/ ,如果不想要前面的 /posts/ ,则需要开启 src/config/permalinkConfig.ts 中的 PermalinkConfig 功能。不过,即便开启永久链接之后,旧有的带 /posts/ 的链接依旧能访问到文章。
这里有一些值得注意的问题,一是使用永久链接访问的文章,底部的「上一篇文章」「下一篇文章」按钮依旧会导航到带 /posts/ 的链接;二是最底部的主题相关文章和随机文章模块不显示。排查后发现,主要原因出在组件内部的硬编码以及永久链接的路由组件缺失。
要解决上述问题,首先就要让模块和按钮在生成数据时,就携带计算好的文章路径。来到 src/utils/content-utils.ts,将第 45 行 getSortedPosts 处改为:
export async function getSortedPosts() {
const sorted = await getRawSortedPosts();
for (let i = 1; i < sorted.length; i++) {
sorted[i].data.nextSlug = sorted[i - 1].id;
sorted[i].data.nextSlug = getPostUrl(sorted[i - 1]);
sorted[i].data.nextTitle = sorted[i - 1].data.title;
}
for (let i = 0; i < sorted.length - 1; i++) {
sorted[i].data.prevSlug = sorted[i + 1].id;
sorted[i].data.prevSlug = getPostUrl(sorted[i + 1]);
sorted[i].data.prevTitle = sorted[i + 1].data.title;
}
return sorted;
}
再将第 382 行处开始的两个循环改为:
for (const s of withTagMatch) {
if (result.length >= maxCount) break;
result.push({ id: s.post.id, data: s.post.data });
result.push({
id: s.post.id,
data: s.post.data,
url: getPostUrl(s.post)
});
}
for (const s of withoutTagMatch) {
if (result.length >= maxCount) break;
result.push({ id: s.post.id, data: s.post.data });
result.push({
id: s.post.id,
data: s.post.data,
url: getPostUrl(s.post)
});
}
搞定了数据部分,再修改组件逻辑,使其能够读取传入的永久链接。先是上下文按钮的,来到 src/components/PostNavigation.astro 第 33 行处,将 <a> 标签作如下修改,这个链接对应「上一篇文章」:
<a
href={getPostUrlBySlug(prevSlug)}
href={prevSlug.startsWith('/') || prevSlug.startsWith('http') ? prevSlug : getPostUrlBySlug(prevSlug)}
class="w-full font-bold overflow-hidden active:scale-95"
>
第 52 行处的 <a> 标签也是同理,这个链接对应「下一篇文章」:
<a
href={getPostUrlBySlug(nextSlug)}
href={nextSlug.startsWith('/') || nextSlug.startsWith('http') ? nextSlug : getPostUrlBySlug(nextSlug)}
class="w-full font-bold overflow-hidden active:scale-95"
>
这样按钮就改好了,接下来修改相关文章和随机文章模块中携带的路径,来到 src/components/widget/PostListItem.astro 的第 34 行处,将 <a> 标签作如下修改:
<a
href={getPostUrlBySlug(post.id)}
href={post.url || getPostUrl(post as any)}
class="group flex items-center gap-3 px-3 py-3 -mx-1 rounded-lg transition-all hover:bg-black/5 dark:hover:bg-white/5 active:scale-[0.98]"
>
最后,补全永久链接的页面路由中的相关文章和随机文章模块,来到 src/pages/[...permalink].astro,找到:
import {
LastModified,
PostMeta,
PostNavigation,
} from "@components/features/posts";
部分,在 PostNavigation, 后面补上 RandomPosts, 和 RelatedPosts,,接着找到:
import { getSortedPosts } from "@utils/content-utils";
把 getSortedPosts 这个变量加到 getSortedPosts 后面,再找到 import { licenseConfig } from "src/config"; ,将其改为:
import {
licenseConfig,
randomPostsConfig,
relatedPostsConfig,
} from "src/config";
随后在 Frontmatter 结束前(--- 前)补充:
const relatedPosts = relatedPostsConfig.enable
? await getRelatedPosts(entry, relatedPostsConfig.maxCount)
: [];
最后,在最后(</MainGridLayout> 前)补上:
{
(relatedPostsConfig.enable || randomPostsConfig.enable) && (
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
{relatedPostsConfig.enable && relatedPosts.length > 0 && (
<RelatedPosts relatedPosts={relatedPosts} />
)}
{randomPostsConfig.enable && (
<RandomPosts
excludeIds={[entry.id]}
maxCount={randomPostsConfig.maxCount}
/>
)}
</div>
)
}
到这里,问题就算全部解决。不过,在下建议顺便给带 /posts/ 的链接加个重定向,来到 src/pages/posts/[...slug].astro,在第 22 行引入 getPostUrl :
import { getFileDirFromPath, removeFileExtension, getPostUrl } from "@utils/url-utils";
再于第 97 行 const { entry } = Astro.props; 后加入判断就好了:
if (permalinkConfig.enable) {
const targetUrl = entry.url || getPostUrl(entry);
if (targetUrl && !targetUrl.startsWith("/posts/")) {
return Astro.redirect(targetUrl, 301);
}
}
另外,出于对 SEO 的考虑,也一并建议修改 src/pages/robots.txt.ts,因为 Mizuki 的默认配置只允许首页和 /posts/ 下的地址被爬取:
import type { APIRoute } from "astro";
const robotsTxt = `
User-agent: *
Disallow:
Sitemap: ${new URL("sitemap-index.xml", import.meta.env.SITE).href}
`.trim();
/* 至少也要保证站点地图能被正常爬取
Disallow: /
Allow: /$
Allow: /posts/
Allow: /sitemap-index.xml
Allow: /sitemap-0.xml
Allow: /sitemap-1.xml(如果有)*/
export const GET: APIRoute = () => {
return new Response(robotsTxt, {
headers: {
"Content-Type": "text/plain; charset=utf-8",
},
});
};
Mizuki 自带的源在 /assets/js/twikoo.all.min.js,可以选择下载最新版本将其替换,后端不使用腾讯云云函数的只需要 twikoo.min.js 即可。
也可以直接引用官方 CDN:https://unpkg.com/twikoo/dist/twikoo.min.js,需要在 src/components/comment/Twikoo.astro 中替换 TWIKOO_SCRIPT_URL。
也算是敝站为数不多的自 WordPress 时代以来一直传承下来的特性。直接在 src/layouts/Layout.astro 添加:
<style>
/* 1. 默认状态 */
html, body {
cursor: url('https://PATH_TO_YOUR_DOMAIN/normal.cur'), auto;
}
/* 2. 悬停与点击状态 */
a, button, [role="button"], summary, select, option {
cursor: url('https://PATH_TO_YOUR_DOMAIN/selecting.cur'), pointer;
}
a:active, button:active {
cursor: url('https://PATH_TO_YOUR_DOMAIN/selected.cur'), pointer;
}
/* 3. 文本输入与选择状态 */
input[type="text"], input[type="search"], textarea, [contenteditable="true"] {
cursor: url('https://PATH_TO_YOUR_DOMAIN/text.cur') 16 16, text;
}
/* 4. 等待/后台加载状态 */
.is-loading, .loading-state {
cursor: url('https://PATH_TO_YOUR_DOMAIN/waiting.cur'), wait;
}
</style>
敝站的动态页基于 Mastodon embed timeline widget 制作,用于展示自己在 Mastondon 发表的内容,本质上是直接引用 JS。不过需要注意的是,Astro 需要把 JS 内容单独拿出来,用 script is:inline 放到 UI 孤岛中,否则将不会被加载。
另外,似乎必须完全刷新一次页面才能正确加载出页面内容,因此加入了强制刷新代码:
<script>
initMastodon();
document.addEventListener('astro:page-load', initMastodon);
</script>
最后是对主题颜色的适配:
<style is:global>
.mt-container,.mt-container[data-theme],.mt-dialog,.mt-dialog[data-theme] {
--mt-txt-max-lines: none;
--mt-preview-max-lines: none;
--mt-color-bg: rgba(255, 255, 255, 0);
--mt-color-bg-hover: rgba(233, 238, 241, 0);
--mt-color-line-gray: var(--line-color);
--mt-color-contrast-gray: var(--content-meta);
--mt-color-content-txt: var(--color-neutral-700);
--mt-color-hashtag: var(--primary);
--mt-color-link: var(--btn-content);
--mt-color-error-txt: var(--admonitions-color-caution);
--mt-color-btn-bg: var(--btn-regular-bg);
--mt-color-btn-bg-hover: var(--btn-regular-hover);
--mt-color-btn-txt: var(--btn-content);
--mt-color-backdrop: #00000090;
--mt-color-placeholder: #60698425
}
.dark .mt-container,.dark .mt-container[data-theme],.dark .mt-dialog,.dark .mt-dialog[data-theme] {
--mt-color-bg: rgba(255, 255, 255, 0);
--mt-color-bg-hover: rgba(233, 238, 241, 0);
--mt-color-content-txt: var(--color-neutral-300);
--mt-color-backdrop: #00000090;
--mt-color-placeholder: #60698425
}
</style>
这次的迁移,在下大约花了一个周末的时间完成。除了上述必要的一些适配之外,在下还删掉了一部分文章封面,虽然封面确实能提高页面美观程度,但是给每一篇文章都加上封面反而让网站显得过于花哨,删掉一部分与文章相关不大的封面之后,看起来有了呼吸的空间,错落交致之间反而提升了整体的美观度;另一方面,也能变相加快网页的加载速度。
对于既往文章的修订当然也是必不可少的,不过对于这些琐碎的部分,就不再一一赘述。此外,由于架构迁移,旧有的一些功能,例如剧集页无法继续提供,不过有动态页的 NeoDB 消息补足,可以等之后再慢慢打磨上线。
在迁移的过程中,在下总是能迸发出最初搭建博客时的,发自内心的快乐,在电脑前一坐就是好几个小时,心无旁骛,无视外界的打扰,把食欲和困意也暂时放在一边,脑子里只考虑自己想要考虑的东西,进入全神贯注的心流状态。哪怕是结束之后只想瘫在床上被睡意裹挟,那种带给在下的充实感与满足感,也依然会从骨子里蔓延开来,告诉在下:博客在迁移,时代在变,但那份对折腾发自内心的热爱与专注,从未改变。
2025-12-31 22:59:59
[!NOTE] 封面来源:えびっ | ヘナチョコ
杪岁垂垂尽,寒花悄悄繁。又是一年,随着年岁的增长,每逢岁暮,似乎心中也总不由得隐隐生出悲秋之感。写博客快要 6 年了,阅遍所有文章,年终总结仅有前年的一篇而已。老实说,那篇总结多少是在下的跟风产物——在玩了近 4 年博客之后,在下才终于意识到有那么一个话题可以被拿出来在一年的最后水一篇文章——那两年也算得上是博客更新的高频期,几乎有什么想法,都会被在下迫不及待地转化出来,为此一连码上四五个小时的字也是常有的事。然而正如两年前的总结所说,毕业之后,闲云野鹤的生活渐渐远去,各类事务催着在下向前迈步。当习惯的生活节奏被打破,总有一些东西要面临取舍,而博客便成为取舍的牺牲品,更新的日期被一再拖延,有趣的想法即便被及时记录,新建了文件夹,甚至已经写了一部分,但随着各类因素的影响,也无法逃脱被搁置的命运。于是此时,本来只为跟风而作的年终总结,也是时候发挥它应有的作用了。
从模糊的记忆、老照片与父母的口中,在下可以轻松得知,自己在小学三年级之前是偏瘦小的类型。不过,由于在二年级暑假摄入了过多的奶奶的蛋炒饭,因此在下不慎成为了超重儿童。亲戚朋友、左邻右舍见了,一个劲地夸赞在下变「壮」了。于是,这之后的很多年里,在下几乎没有动过减重的念头,一直把超重的体格维持了下去。随后,经历了高中三年的艰苦修炼,在下终究是越过了 BMI 28 的界限,成功晋升为肥胖人群。
闲云野鹤的大学生活是肥膘的绝佳培养皿,随着体测的成绩一次次下降,到了毕业时,在下的 BMI 已上升至 31.5。养膘容易减脂难,尽管知道自己应该做出改变,但是每日坐在电脑前成为了一种习惯,挪动沉重的身体早已变得困难。加上比起在学校时更加唾手可得的外卖,又过了 4 个月的时间,在下的 BMI 飙升至 33.3。
小时候亲戚评价在下「壮」并非没有道理,在下的身体属于比较会藏肉的类型,大量的脂肪堆积在了臀部和大腿,而肚子和下巴则相比没有那么突出。然而到了这个地步,即使再能藏肉也无济于事。无法忍受镜中自己的面庞,在下于 2024 年 11 月 6 日开始减肥。
虽然在下之前从来没有减过肥,但是还是了解过不少减肥理论,深知减肥的本质就是制造热量缺口。在下开始计算每天热入的总热量,将其控制在 1800~2200 大卡上下。不过,单纯的节食肯定是不可取的,因为那无法持续。为了抑制饥饿感,调节身体激素水平,提升减肥速率,运动是必不可少的。由于在下不喜欢跑步,住宅不是公房爬不了楼梯(下楼梯对膝盖的损伤大,因此一般选择坐电梯下楼),更不想去健身房,于是就决定在家对着 B 站视频跟练 HIIT——在下自认不算毫无运动基础。不过现在看来,也许做 2 区有氧会更加合理一些——第一天跟练 12 分钟的 HIIT,仅仅只做完 1 组(4分钟),在下的动作就完全变形了,但还是强撑着完成了。做完的那一刻,在下一屁股坐倒在瑜伽垫上,心跳简直像是蹦到了嗓子眼,过了整整 10 分钟都没能平静下来,还伴有强烈的恶心感,差点以为自己真的要交代了。
好在从第二天开始,就再也没有了第一天那样的恐怖回忆。在下每周 6 练,时间都控制在午饭前,周日则安排休息日+欺骗餐。体重便开始以一周一公斤的速度往下掉,虽然这个数字略有些快,但总体还能接受。过了一段时间之后,在下开始在晚上做一些哑铃运动,防止肌肉流失过快。得益于 HIIT 的锻炼,在下的心肺功能显著上升了,12 月份和朋友去爬黄山时,朋友已难以跟上在下的节奏。
体重秤上数字的不断下降激励着在下坚持下去。到了春节前后,在下已经累计减重近 20 斤,12 分钟的 HIIT 已经变得轻松,于是在下又在这之后加入了 15 分钟的 TABATA。就这样,到了 3 月末,在下那么多年来,第一次在体重秤上看到了 7 开头的数字。
4 月开始,在下的生活发生了巨大的改变:在下去了日本,居住在东京的寮里。虽然是一个人一间房,但是像以往一样继续做带有跑跳动作的 HIIT,显然对四邻相当不友好,因此在下便开始改做 40 分钟的无跑跳 HIIT。没有时间时,在下也会选择做之前一直以来做的 15 分钟的 TABATA,因为那套动作没有大跳,相对而言噪音在可接受范围内。
随着体重变小,减重的速度也慢了下来,从一开始的一周一公斤,变成一周一斤,又变成两周一斤……但是由于始终坚持热量控制和运动,体重下降的趋势也一直没有停下。8 月份趁着暑假回国时,在下的体重来到了 68 公斤以下,不过由于在下抱着放纵的进食态度加上国内低廉的外卖价格,暑假期间在下胖了 3 斤左右。好在这没有超出在下的预期,回到日本之后花了一个月时间把这 3 斤减掉了。
在那之后,在下开始感受到平台期的存在,体重在 67 公斤上下摇摆不定,腰围也不再大幅下降,大部分的肥肉已经被消耗完毕,剩下的脂肪都是些皮下的顽固脂肪。在下在换跟练视频的同时,也不再纠结减重速度,进而开始注重饮食结构。通过对 AI 的一番拷打,在下决定进一步减少零食的摄入,并开始购买蛋白粉,加入力量训练,每日维持 300 大卡的热量缺口,慢慢地消磨这些脂肪。
时至今日,在下已经减轻了 30 公斤的体重,完成了年初制定的减重至 65 公斤的目标,目前的 BMI 是 22.8,而最终目标是减重到 63 公斤,并维持在这个水平,再把重心慢慢转向增肌。最后的最后,在下希望自己能维持住的不只是体重的数字,还有这一年多以来一直坚持的饮食习惯与健身习惯。
开始学新标日的两年后,小李赴日终究变成了在下赴日。
目标是考日本的大学院,当然,厉害的人会在国内学好然后直接旅游签飞过去考试。在下没有这个本事,由于在国内自学日语总是三天打鱼两天晒网,到赴日的时候对自身的日语水平依旧不自信,只能先从语校开始了。好在日常交流和上课是没什么问题的,只是考文科专业,N1 是敲门砖,所以 N1 的大山必须翻过去。
1 月开始,在下就开始用 Anki 背单词了,用的单词书范围涵盖了从 N1~N5,大概 2 万个单词左右吧,一开始每天背 40 个,到 4 月落地日本时,把 N3~N5 的单词基本都过了一遍。4 月落地之后开始猛冲 N1、N2 的单词,当时的背诵量大约是每天 80 个,复习量在 400 个上下。由于语法也有很多没学的,还要另外买教材多过几遍 N1 和 N2 的语法……现在回想起来,从 4 月到 7 月初考试的这段时间,确实是这一年当中最刻苦的时光了。
尽管每天背 80 个,也架不住单词多,到了考试当天,也不过把必考的单词背完而已,核心词的进度则不足三分之一 。但是苍天有眼,在下还是顺利通过了 N1,虽然分说不上有多高,但从分数上来看也不算很惊险,也许是汤岛天满宫的学问之神确实比较灵。
考过 N1 之后,又回国玩了半个月,感觉自己的状态就不如备战 N1 的时期了。尽管考学远比 JLPT 更重要,但是不知为何总感觉缺乏了一些干劲。每天背完单词之后(当然,考完之后也没有每天 80 个了),动力就大幅下降了,如今冬季考临头,自己却又陷入了没底的状态……感觉自己的弱点就是「尻が重い」,不到「尻に火がつく」的状态就不愿意好好努力。
在那之后唯一值得称道的,就是在下依旧坚持每天背单词,再过一周的时间,这本单词书就要被全部背完了。
赴日之前,在下和朋友去了黄山与西安,还首次体验了滑雪。可惜的是这些游记至今仍未写成,本来订下每月更新一篇博客的计划,也自然而然落空了。
赴日之后能写的也有很多,作为一名动画爱好者,去了很多地方圣巡,都内就有很多圣地,刚来的那一周,几乎每天都是一两万步,跟着巡礼地图到处走。印象深刻的是由于那时樱花季还没结束,赶着那段时间跑去了练马巡礼四谎。
日本的黄金周期间,天气渐渐变热,跑去了镰仓和箱根。镰仓风光很好,游客很多,圣地也很多,灌篮高手是自然的,还有青猪系列、孤独摇滚等等,甚至是迪迦奥特曼都在这里拍过一集,可惜的是气温高,往富士山的方向望去,只能看到一团云雾,直到了傍晚才能望见一个影子。至于箱根,作为温泉胜地理应是去泡温泉的,只不过这次是陪 EVA 狂热厨朋友一起去,主要的任务变成了巡礼 EVA。
7 月的时候和另一个朋友一起去爬了富士山,为了看日出,晚上宿在八合目的山小屋,凌晨两点起来攻顶。尽管是 7 月,山顶的寒风却依旧凛冽,套着专门准备好的薄羽绒服也依旧冷的哆嗦,不过在太阳升起的那一刻,这一切都变得值得了。
7 月末作为水水人,去了水水人的快乐老家沼津。正值当地的花火大会,定不到合适的房间,只能住在邻近的富士。头一天与一位小红书上找的千歌厨作伴,后一天则自己单独游玩。这两天是在下今年活动量最大的两天,光是第二天就生生走了 4 万步。当然,也很满足。
之后就没有怎么到处跑了,基本都在都内活动,最近一次是和朋友去了立川简单地巡礼了一下魔禁 & 超炮。
因为各种各样的原因,在下搁置了相当一部分的文章写作计划,尽管其中有些已经颇有时日了,但是在下依然希望能尽量抽时间把它们全部完成。
今年定下的观影量达标,读书量仍有待提升,不过好的一点是开始阅读原版书籍了。至于看过的电影、剧集、番剧、书籍,听过的歌等等,在博客的补完页皆有记录,就不在此过多赘述了。有几部好莱坞大片是在日本影院看的,一边听着英语一边看着日语字幕的体验很是新奇。今年只带了 MacBook 赴日,所以没有怎么玩过游戏,倒是回坑了明日方舟(突然想起也是时候该打一打这一期的领航者合约了)。
愿 2026 的自己,依旧热烈,依旧满怀期待。
2025-11-09 16:30:00
为了持续精进日语水平,也为了一并练习阅读直排文本时的速度,在下最近开始了阅读日文原版轻小说的计划。虽然在下手头上不缺纸质的阅读材料,但是作为一名不折不扣的电子书爱好者,电子版的轻小说自然也是不可缺少的。目前在下在电脑和手机上使用能够做到多端同步的 Readest 作为电子书的阅读器,而 Kindle 则几乎只剩下了 KOReader 这一唯一的选择。值得称道的一点是,由于 Readest 支持与 KOReader 同步服务器同步阅读进度,从某种程度上,也算打通了 Kindle 与主流设备之间的电纸书阅读体验壁垒(直接使用亚马逊 Kindle APP 确实是一种方案,但是原生不支持 EPUB 格式的问题是在下所不能接受的)。
不过,当在下在尝试把直排电子书导入 Kindle 阅读时,却发现了一个重大问题,KOReader 似乎并不支持显示直排文本,原来的直排格式只能以普通的横排文本的格式显示,导致好不容易打通的阅读体验壁垒又重新出现了。
好在,对直书有需求的电子书阅读者显然远不止在下一个。早在电子书刚刚起步阶段,相当一部分电子书阅读器也同样不支持直排文本的显示。对此,彼时的主流解决方案是直接将文字的显示方向旋转 90 度(一般是逆时针方向),然后把设备也一样横过来阅读,就这样实现所谓的「伪直排」阅读。然而在软件层面实现旋转文字的显示方向,比起直接支持直排文本来说显然更加复杂,直接简单粗暴地旋转显然不可行——那样的话,一些本不必要旋转的标点符号也会跟着一起旋转,比如省略号……或是直角引号「」。因此,有必要特意为此制作一套旋专用于「伪直排」阅读的字体。
原本修改字体是一件非常麻烦的事情,好在早有前人用 python 写了这个现成字体旋转工具 tategakifont 可供在下使用,此工具不仅能靠一行命令完成字体制作,还已经提前写好了相应的旋转规则,确保所有字符都被正确地旋转。
项目至少需要 Python 3.8.10 以及 FontForge 20230101 或更新的版本,在使用前需提前安装好运行环境。
随后,将项目文件克隆到本地,进入本地项目目录,把用于制作的原字体文件也拉进项目根目录,并在终端内运行以下命令,将 input 与 output 这两个字段分别替换为用于制作的原字体文件名称和拟定的经处理后的新字体文件名称:
python3 main.py input output
等待一会之后,「伪直排」字体就被制作好,躺在项目根目录当中了。
如果想在 KOReader 上同时使用原字体与经过处理后的「伪直排」字体,则需要更改「伪直排」字体的 Family Name。
由于 KOReader 会将 Family Name 相同的字体合并为一个选项,导致选择时无法指定到底是用原字体还是「伪直排」字体显示。
如果使用的是带有图形界面的字体编辑工具,那么直接想办法找到字体信息的编辑界面,将带有 Family Name (ID 1) 按照自己的意愿修改之即可。至于 Subfamily Name (ID 2)、Full Name (ID 4) 和 PostScript Name (ID 6),tategakifont 在制作新字体文件的时候会自动修改,因此一般不需修改,以防万一可以检查之。
由于在下只是装了一个 FontForge 的命令行版本,并不具有图形界面,所以具体操作起来比起图形化操作更加复杂一些,使用了基于 Python 的字体处理库 fonttools 实现。
直接在 tategakifont 的目录下创建一个虚拟环境并激活。
{% tabs 创建 Python 虚拟环境并激活 %} <!-- tab Mac -->
python3 -m venv font_env
source font_env/bin/activate
<!-- endtab --> <!-- tab Windows CMD -->
python3 -m venv font_env
font_env\Scripts\activate.bat
<!-- endtab --> <!-- tab Windows Powershell -->
python3 -m venv font_env
font_env\Scripts\Activate.ps1
<!-- endtab --> {% endtabs %}
随后安装 fonttools 库。
pip install fonttools
再使用 ttx 工具将「伪直排」的字体文件转换为 XML, -t name 参数告诉 ttx 只转换包含名称信息(Name Table)的部分,这样生成的 XML 文件会小很多,方便编辑。将 your_font_file.ttf 改成「伪直排」字体的文件名称。
ttx -t name your_font_file.ttf
XML 文件在根目录生成后,随便用一个文本编辑器打开,按照自己的意愿修改带有 nameID="1" 部分的 namerecord 字段后保存即可。
最后,使用 ttx 命令将 XML 重新编译回字体文件,将 your_font_file.ttf 与 your_font_file.ttx 改成对应文件的文件名称。
ttx -m your_font_file.ttf your_font_file.ttx
至此,「伪直排」字体的 Family Name 修改完毕。
直接使用「伪直排」字体已经能达到阅读直排文本的目的了,但是由于仅旋转了字体,而电子书阅读器的界面却没有跟着一起旋转,因此在使用时,操作阅读器界面就会变得非常难受。此外,翻页逻辑也没有被一并更改,依旧需要像看横排书籍一样,从左至右翻页而非一般阅读直排书籍时的从右至左翻页,阅读体验依旧不完美。
去年,KOReader 的其中一名开发者在用户提出的关于日语直排书籍支持的 issue 中,针对此问题发布了一个补丁,效果是当文档的排版规则被设置为日语时,会自动将阅读器的文字部分的画面整体向顺时针旋转 90 度,这样一来,配合上向逆时针旋转 90 度的「伪直排」字体,可以完美地在 KOReader 上做到直排文本的显示。此外,补丁也适配了直排书惯用的从右至左的翻页方向。作者之后将其在 Github Gist 重新发布,比起在 issue 中发布的版本,主要修复了跨页选择文本的问题。
直排补丁的使用方法很简单,首先,前往此处下载补丁。
重命名文件,把原文件的 .txt 删除,使其扩展名变为 .lua,随后找到 KOReader 目录,将其放到 /koreader/patches 下,如果没有 patches 文件夹,则需要手动创建。
最后,在 KOReader 中打开直排书籍,在设置中更改排版规则为日语,再把字体换成制作好的伪直排字体即可。

2025-05-05 17:35:00
[!NOTE] 封面来源:The New Order: Last Days of Europe
[!NOTE] 此文章由铁血幼儿园指挥官·威权壬(存疑)·P 社战犯·我不是二刺螈さん荣誉撰稿。
<div><ruby>人民必须知道他们的总统不是骗子。<rt>People have got to know whether or not their president is a crook.</rt>我不是骗子,<rt>Well, I’m not a crook.</rt>我拥有的一切都是应得的。<rt>I’ve earned everything I’ve got.</rt></ruby></div> <div class="text-right"><ruby>理查德·尼克松<rt>Richard Nixon</rt></ruby></div>
1940 年,由于受到苏联布哈林政府的失败影响(详见《柏林春晓:TNO 德国施佩尔左线》一文中「假如轴心国赢得了二战:TNO 世界观速览」的说明,由于版本更迭,两版世界观存在出入),政府调控经济的模式在美国遭到普遍质疑,时任美国总统富兰克林·罗斯福担心再次参选可能会摧毁他的政治遗产,因而决定不再参与他的第三次大选。于是,共和党人托马斯·杜威以微弱的优势战胜对手,入主白宫。为了回报孤立主义者的鼎力支持,杜威宣布美国将在世界大战中保持中立,并着手逐步撤销罗斯福政府的新政,这些决定最终改变了世界线:保守的经济政策导致美国的经济重新陷入停滞,而珍珠港事件也彻底击碎了孤立主义者的美梦。当美国仓促应战时,欧洲几乎已尽入轴心国之手,仅仅只得到了冰岛和法罗群岛作为安慰奖。尽管欧洲尽失,但杜威仍然凭借太平洋战场的战果取得了 1944 年大选的胜利。然而,很快杜威的政治生涯和美国在太平洋战场取得的优势便随着珍珠港核爆一起烟消云散。


由于杜威政府在二战中的彻底败北,共和党在 1948 年大选中大败。民主党人,国际主义者德怀特·艾森豪威尔旋即走走马上任,他主张美国应当重拾自己的昭昭天命。很快,美国便宣布全面禁止与共荣圈和团结协定成员国的贸易,开启了属于 TNO 世界的冷战。然而,由于孤立主义者和建制派的阻挠,艾森豪威尔政府的政策收效甚微。另一边,出于对建制派不作为的愤怒和二战失败的不甘,大批极右翼政客从共和党出走,重建了国民党并参加了 1952 年大选。尽管艾森豪威尔仍设法在 1952 年大选中艰难取胜,但总统与国会的矛盾愈演愈烈,使其难以兑现自己的竞选承诺。


尽管艾森豪威尔任内几乎没有留下什么政治遗产,民主党和共和党却仍然遵循历史惯性,选择提名温和派政客参与总统大选,这无疑助长了美国民众对于建制派能力的怀疑。尽管又一位民主党人,建制派人士埃斯蒂斯·基福弗在 1956 年总统大选中得胜,极端主义党派如进步党、国民党等依旧凭借选票成功打入国会,慢慢搅动起早已是一潭死水的美国两党政治。极端派们虽然政见往往大相径庭,但是却有一个明确的共识:联合起来,打败建制派,重塑美利坚。在这一共识的推动下,国家进步公约(NPP)诞生了。出于对极端派颠覆美国政治格局的恐惧,共和党和民主党逐渐越走越近,最终形成了代表建制派的共民联盟。共民联盟首战告捷,共和党人理查德·尼克松联手民主党人约翰·F·肯尼迪在 1960 年大选中得胜,似乎标志着建制派在美国的统治地位仍将持续。


与其说 NPP 是一个政党,不如说是它一个松散的联盟。它聚集了一批不为建制派或主流社会观点接纳的奇人异士:有主张种族隔离的,也有主张种族融合的;有主张全球出击的,也有主张完全孤立的;有社会主义者,也有国家社会主义者……复杂的构成使得 NPP 的内耗极其严重,这也是他们 1960 年大选大败而归的原因之一。然而,只要建制派无法解决美国的沉疴顽疾,NPP 的对于建制派的威胁就永远不会消退。
与成天鸡飞狗跳,内斗不止的 NPP 相比,代表建制派的共民联盟更加团结。但温和的政治主张意味着共民联盟无法开展激进的变革,倘若总统一意孤行一心求变,则共民联盟的政治团结将会遭受严重的破坏。


昔日的美国因为秉持孤立主义而与其他自由国家一道成为二战中的败者,如今在共民联盟的领导下,美国重振旗鼓,将要领导其他的自由国家一道从新世界启程与日本和德国争夺世界霸权,自由国家组织(OFN)因此成立,只是美国究竟是代表人类文明的灯塔,还是披着民主外衣的帝国,犹未可知。


1962 年的美国,内有极端势力步步紧逼,外有德国日本虎视眈眈。美利坚合众国能否否极泰来,令自由火炬熊熊燃烧;抑或改变航向,坠入深渊……这一切,皆将由接下来的这十年时间来一一定夺。
理查德·尼克松的中立的政治立场,使得他成为了首位来自公民联盟的美国总统。在他的统治下,美国将延续积极的对外干涉政策,希望将更多国家纳入自由世界的大家庭中。但是,尼克松也绝非恪守民主精神的卫道士,为了对抗影响力逐渐变强的 NPP,调查和窃听,甚至直接进行政治迫害成为了他光辉外表之下的黑暗阴影。



而在种族平等这个几乎全美关注政治议题上,尼克松为了讨好南方选民以及共和党内的迪克西派,不得不保持不置可否的态度。然而这种首鼠两端的表态不仅没能阻止 NPP 夺取南方各州,也很快惹恼了北方的民权活动家们,因种族问题引发的暴力冲突和游行示威不断蚕食着美国的稳定度。尼克松装鸵鸟的日子不会太长久,很快他便要在废除或维持种族隔离中做出自己的选择。


接下来,美国将会执行自己的干涉政策。由于 TNO 的设定,各国无法自由地加入军事同盟,也不得自由地向其他国家派遣志愿军,更不能自由地造宣称开战,取而代之的是一套内置的外交系统:德美日可以通过此系统干涉其他国家的冲突,并依最后的结果得到奖赏或惩罚。第一个美国可以入局的冲突是马来亚内战,马来亚半岛的日本合作政府自 1957 年崩溃以来,北部的抗日游击队和南部的日本帝国第 25 军便陷入到了长期的拉锯战中。虽然对共产党没有什么好感,但在马来亚建立一个亲美政权将为 OFN 在共荣圈中心取得一个珍贵的落脚点。至于如何在新生的马来亚建立一个亲美政权,这就是 CIA 需要考虑的事了。








不过,美国在马来亚的胜利给尼克松带来的喜悦没几天就被持续升温的种族议题给冲散了:马丁·路德·金的著名演讲将种族隔离制度再度推向风口浪尖;而在国会,高呼「州权神圣不可侵犯」的保守派议员与坚持人人平等理念的进步派议员吵作一团。最终,对尼克松保持缄默的行为感到失望的副总统约翰·肯尼迪在不知会尼克松的情况下独走,将自己制订的民权法案交予国会并获审通过。但或许是提防肯尼迪的影响力过大,又或者是不愿意太得罪保守派议员,尼克松最终否决了该法案,这导致大量民主党进步派党员加入 NPP 进步党。




在否决民权法案,暂时压制了种族议题的争论之后,尼克松继续将目光投向海外:臭名昭著的独裁者「公羊」拉斐尔·特鲁希略统治多米尼加已二十年有余,凭借着三头同盟和团结协定的支持,特鲁希略有恃无恐。美国对于特鲁希略的存在深恶痛绝,古巴和墨西哥也希望能铲除特鲁希略。现在机会出现了,三头同盟因为内部的积怨宣告解散,团结协定因为希特勒的昏迷陷入混乱,是时候把公羊送入地狱,让多米尼加回归自由世界了。






在多米尼加革命阵线取得阶段性胜利之后,白宫将在彻底清除原多米尼加残党与支持建立多米尼加联合政府之间做出选择:前者符合道义,也更契合其他美洲国家的愿望,但是新生的多米尼加有着倒向社会主义的风险,这将极大地助长海地本就难以控制的社会主义叛乱;后者虽然宽恕了曾经的纳粹分子,但是可以保证将多米尼加共和国转变为亲美政府。




与此同时,法属马达加斯加崩溃的报告也被呈至白宫。马达加斯加名义上由法国派遣殖民总督进行管理,实际上其真正的主人是德国国防军。德国人在当地大肆奴役当地人,攫取马达加斯加的资源,还在当地修建海军基地以保证德国对印度洋的影响力。然而随着日本支持的马达加斯加独立军起义,美国也找到了入局这一非洲最大岛屿的跳板。现在美国可以秘密地向叛军提供武器,并且增加叛军中亲美派系的影响力,如若成功,马达加斯加将在未来加入 OFN;然而,一旦美国的暗中行动被揭发,那么美国将再也无法影响马达加斯加的局势。








马达加斯加的战火尚未燃尽,菲律宾也紧接着发生了剧变。作为第二次世界大战中日本帝国的战利品之一,菲律宾的局势始终变幻莫测,日本合作者,共产党游击队和美国残兵反复争夺着这片区域。自从 1959 年以来,菲律宾政府军只能勉强控制马尼拉周边地区,但是随着北部的游击队和南部的美军同时发起进攻,菲律宾政府的崩溃似乎已成必然。






虽然菲律宾政府军在两面夹击之下很快败亡,但日本绝对不会坐视菲律宾这一南洋明珠脱离共荣圈,随着高山信武将军率领的第 14 军奉着不计代价勘定菲律宾叛乱的命令从吕宋岛登陆,菲律宾的局势迅速激化。这也给了美国加码菲律宾内战的机会,在赶走日本人之后,美国将可以通过为期半年的重建计划在菲律宾扶持一个亲美政府。






海地,其政治局势在被美国军事占领之后便长期受美国操纵,现任总统路易·德茹瓦更是彻头彻尾的顶级买办,在他统治下海地的百姓可谓生活在水深火热之中。不断积聚的民族主义情感以及尖锐的阶级矛盾在海地孕育出了强大的社会主义游击队,腐败横行的海地政府对乡间的游击队束手无策,若没有美国的援助,海地政府很快将会被游击队推翻,美国在加勒比海地区的影响力也有可能因此大受打击。因此,华盛顿一声令下,源源不断的美元、武器和军队开始送往太子港。







1963 年对于全世界来说注定是多事之年。在东亚,安田财团的崩溃引发了全共荣圈的经济危机;在欧洲,随着阿道夫·希特勒的死亡,德国及其专员辖区很快陷入到全面战争中,旧大陆再度陷于战火。而就在这一年快要结束之时,来自开普敦的急报将全世界的目光吸引到了这处前英国殖民地上。南非在二战中早就被德军吓破了胆,在德国挺进前葡萄牙殖民地莫桑比克和安哥拉时便直接滑跪,交出了纳米比亚。在之后的二十年里,南非一直在 OFN 和团结协定之间如履薄冰。但德国人并没有因为南非的懦弱而放弃征服南非的计划,南非的布尔人群体也早就看不惯龟缩在开普敦的英裔贵族,虽然德国内战尚未结束,但东非专员辖区专员许蒂希决定独走,指挥在非洲的国防军向南非猛攻。
对于美国来说,帮助南非对 OFN 回到非洲的计划大有裨益,而尼克松的想法则更加激进:如果不仅能保住南非,还能趁着德国内乱之际反攻并解放德国在非洲的殖民地,岂不是能大大扩展 OFN 在非洲的地盘?因此,在尼克松的运作下,OFN 开始全面动员,大批军队被调集至南非。然而,这几个非洲专员辖区可不比几座小岛,想要达成此目标,不仅要付出大量的人力和钱财,而且几乎必然面临一场旷日持久的战争。此外,当美国民众发现这个盛行种族隔离的南非绝非什么自由国家,而美军也绝非什么正义之师的时候,如何才能说服国内继续向非洲用兵,也将成为一个巨大的问题。










正当 OFN 军队在非洲前线与敌军酣战之时,来自伦敦的求助信也被送上了坚毅桌。在二战期间,尽管等来了美国的参战,英国最终还是惨败于德国之手。然而并不是所有的英国人都甘愿接纳这一屈辱的事实:游击队「女王陛下最忠诚的抵抗运动」(HMMLR)多年来一直活跃在伪政府的眼皮之下,随着德国崩溃,国防军离开英国,HMMLR 抓住了这一千载难逢的好机会,一举将伦敦的合作政府赶出了英国。但是现在还不是庆祝的时候,随着德国的内战尘埃落定,大日耳曼尼亚得以腾出手来解决这群英国的叛匪,新生的自由不列颠随时都有被扼杀的风险。英国之于 OFN 意义非凡,因为 OFN 大多数成员国都是前英属殖民地,而且保住英国也预示着 OFN 将有机会重返旧大陆。于是,美国和德国在英吉利海峡的对峙开始了,胜利者将能得到英国,然而若双方都互不相让的话,全面战争将可能一触即发,世界都将陷于核子烈焰之中……






正当尼克松在白宫对自己任内的外交成果沾沾自喜之时,一个足以让他的政治生涯提前结束的危机正在悄然形成。尼克松在 1960 年大选时曾出于对 NPP 的忌惮,决定进行种种间谍行动,最终以不义的手段赢得总统大选。虽然即位之后,尼克松便开始极力销毁或掩盖这些秘密,但是这些秘密还是被媒体得知。一开始,尼克松凭借着公民联盟在参议院占有多数席位而免于弹劾,但是随着事件的发酵和多方势力的推波助澜,尼克松的政治盟友们开始一个一个地与他划清界限。最终,在确认自己已回天乏术的情况下,为了避免落得最后彻底身败名裂的下场,尼克松无奈宣布辞职,由副总统约翰·肯尼迪接替他的位置。







尼克松在一片骂声中黯然下台,副总统约翰·F·肯尼迪走马上任。与在民权议题上唯唯诺诺的保守派尼克松不同,肯尼迪是众所周知的自由派,他对于南方种族隔离政策的厌恶和联邦至上的理念也是人尽皆知。现在,肯尼迪将要行使自己意外得到的总统大权,将美国打造成更加平等,博爱的国家。



然而肯尼迪的征程尚未开始便在意外中彻底结束,他的自由倾向激起了南方的种族主义者的愤恨和恐惧,正当肯尼迪在达拉斯举行自己的竞选集会之时,一颗饱含仇恨的子弹贯穿了他的大脑。



肯尼迪遇刺之后,众议院议长约翰·麦科马克在仓促之中走马上任。短短几个月之内,美国政局风起云涌,先是总统尼克松在丑闻缠身中被迫辞职,又是副总统肯尼迪遇刺身亡,美国政府的公信力几乎跌入谷底,民众对于美式价值观的认同也接近破灭。在这种情况下,麦科马克不敢再有所作为,他现在唯一的任务,就是确保美国在接下来的几个月内不再有大事发生,然后就只能寄期望于下一任总统能救美国于水火之中。



约翰·肯尼迪之死对于美国进步人士来说是一个重大损失,对于他的弟弟,罗伯特·肯尼迪来说更是如此。两兄弟曾怀抱着革除弊政的心态来到华盛顿特区,但是如今尼克松倒行逆施,约翰·肯尼迪身首异处,靠共民联盟这帮温和的建制派,美国的现状怎会有好转的可能?怀揣着这样的心态,罗伯特·肯尼迪宣布脱离民主党,加入以民权法案被否决为契机,影响力与日俱增的 NPP 进步党团,并凭借其在全美的声望被选为 1964 大选 NPP 的总统候选人。



随着 1964 年大选在绝望与激烈并存的氛围中开展,最终结果出人意料:来自 NPP 进步党团的罗伯特·F·肯尼迪险胜对手,赢得了总统之位。同时,NPP 在参议院的席位首次超过了共民联盟,建制派最终还是失去了美国民众的信任。「鲍比」·肯尼迪在就职典礼上发誓:要继承已故兄长的遗愿,将美国建设成更加平等的国家。然而赢家不止他一个人,信奉白人至上主义的 NPP 国民党团显然不会轻易让总统施展自己的手脚,约翰·肯尼迪的死亡也提醒着他一意孤行的最终下场……





2024-10-24 12:00:00
在博客半年之前的文章,《藏地行纪》的最后提到,西藏之行结束之后,在下花了 47 个小时,在大巴上速览了 1600 公里的川藏线,最终到达成都。其实这样做的目的并非仅仅只想体验一回川藏线的味道,而是意图利用剩下来的时间将成都浅游一番。
虽只是浅游,在下却始终念念不忘,记述之心,夙夜加增。只是半年多来,琐事繁多,游记一拖再拖。加之在下决心「标新立异」,以美食为骨作文,于是每每提笔,馋意难耐,故餐前写作不能,而饭后慵懒,行文三两行,哈欠不止,头脑空空,只得作罢。如此一来,纵有三年五载,文章也不能成。近来自恨,倘若蹉跎至此,则大事难成,遂强打精神,立志作毕。
虽然常年身处东部沿海,但在下却时常为成都所吸引——神秘地深居于四川盆地之中,历史文化却同中原同样悠久;孕育了熊猫这种天然为水墨画而生的动物;方言相当活泼有趣,听着令人好生愉快;派生出享誉全国的饮食文化,美食可谓一绝……就算直到如今,成都的存在感也依旧不输北上广深这些老牌一线城市,先有《谭谈交通》这样优质的电视小品(笑)引得全网乐不可支,又是一首《成都》火遍大江南北引得士农工商纷纷传唱……于是当成都生人的鹏加入西藏之行的队伍当中时,在下几乎毫不犹豫地和他探讨起成都之行的计划。
秉持着在西藏使劲玩,在成都使劲吃的思想,在下对成都之行的构想明确且独特:导游一责完全委任给鹏,去哪儿玩都不重要,但只有一个要求——让在下吃到爽,哪怕最后吃进:spoiler[成都名景点——]华西医院肛肠科,也在所不惜。
在下素来是一个嗜辣之人。即便生在江南,在下对于鲜辣之喜爱也远胜于甜口。由于一些复杂的原因,父亲从小在新疆长大,因而家里的餐桌上总是少不了辣味。在这样的影响下,在下的口味也渐渐被培养到了无辣不欢的地步,久而久之,麻辣鲜香的川菜也无可争议地成为了在下的 No.1。此去四川,终于来到川菜的大本营,可谓是就连做梦也在流口水。
好在在下的行程足够快,在口水流干之前,1 月 22 日晨,满载着藏地来客的林芝-成都国营快巴刚过金沙江,进入蜀地境内,便停靠在了路边的一家川菜馆子吃早餐,在此处,在下品尝到了令自己即便是过了很久也念念不忘的名小吃——红油抄手。
一开始在下压根没听明白鹏点了个啥菜,经过其解释之后才了解:抄手基本上和馄饨差不多,但是也有所区别,一般来说抄手的面皮会比馄饨厚一些,可以把它当作厚皮馄饨。
说实话,一开始在下有些打鼓:在馄饨和饺子的论战当中,在下会毫不犹豫地选择馄饨,这不仅仅是因为常处地域的关系,而是馄饨的面皮要比饺子薄,吃起来更加有味;若是面皮厚了,吃上去味道也会打折扣。如今出现这厚皮馄饨,岂不是将馄饨之优势抹杀,而成为与饺子并无相异之物么?
不久,传说中的红油抄手便被端了上来,映入眼帘的首先是赏心悦目的红色,整碗抄手汤底的表面,几乎都是由辣油构成的,其中又辅以大葱、葱花等佐料,看起来就食欲十足。一口咬下,中间裹着鲜肉馅,辣意交织,还夹带着具有蜀地特色的麻意,好生痛快。只是这鹏之前的介绍到底还是有些问题,吃上去也没有感觉到皮有多厚,后来自行搜索一番才知道,原来这抄手的面皮应当是比馄饨薄才对。这波,鹏可谓在胡说八道。
还是暂且撇去鹏糟糕的美食理解,回到这碗红油抄手上来:它几乎击中了在下对于馄饨类食物的每一个爽点。在下有一段时间曾喜欢在千里香小馄饨里加入大量辣油,以追求在鲜香当中加入辛辣感,然而最终却并不如在下所预料,一来店内提供的辣油通常不够辣,二来大量辣油的加入反而破坏了小馄饨独有的鲜香,口感大不如前。如今红油抄手完美地解决了这个问题,虽然其不比小馄饨的鲜味十足,但是辣口却是浑然天成的。一碗抄手下肚,整个世界顿然美好,残留的余味惹得人生出再来一碗的冲动,可惜接下来还需赶路,只得就此作罢。
到达成都双流西航港客运站之时,是清晨的六点,在下几乎在巴士进站的同时醒了过来,天色未明,在客运站橘黄色的照明灯下,在下踏出了在落脚在成都的第一步。不久后,在下和鹏便钻进路口的成都地铁 19 号线龙港站,这是一座建成启用还不到半年的车站,配套设施非常新,在下再次使出了手机里交通联合版的上海公共交通卡,也不出意料地依旧畅行无阻。
我们在地铁系统里快速穿行,成都地铁给在下留下的第一印象非常不错,在下搭乘的连接机场的两条地铁——19 号线以及 10 号线的座位都采用纵横两种布局模式,横排座位之间的间距也比较宽,相当适合运载机场旅客。尤其值得一提的是 19 号线,其座椅都采用了布料材质的软座,坐上去比起一般的玻璃缸硬座好了不是一点半点,此外,考虑到列车会在高架段运行,车厢内竟然还配备了遮光帘!这样的配置也许放眼全国的轨道交通,都是相当豪华的。
再度钻出地铁站,天色才渐渐微亮而已,鹏家离地铁站并不远,我们横过两条马路,经过街边散发出腾腾热气的包子铺,穿过也许是几个小时前还是人头攒动的烧烤摊,又路过一家灯火通明的红旗连锁,便到了鹏家所在的小区。鹏母热情地招待了在下,事先准备了一些面包,还泡了点银耳羹,在下便吃了些垫饥,与鹏做了些准备,待二人皆洗完了澡之后,便又换上鞋再度出门——由于在西藏已经玩了许久,加之春节又近,在下决定只在成都玩上两天,时间紧凑,事不宜迟,虽然刚经历了川藏线的旅途颠簸,但是我们还是保有相当的精力的,尤其是在下,在成都美食的诱惑下,脚都恨不得自己向前动起来。
此时正是清晨,灰白色的天幕下,小絮般的雪花竟随风飘落,这也是今年以来,成都城区的首场降雪。当然,对于刚跑去西藏玩了一圈雪的我们来说,对此也不甚稀奇,只是快步再次赶赴地铁站,正式开始在成都的美食之旅。
鹏最先带在年来到的,是成都的文殊院地区,同处市区,比起上海更像是塞在犄角旮旯里的静安寺、龙华寺、城隍庙等有名寺庙来说,文殊院动辄 20 余万平方米的建筑面积显然要大得多了。不过我们并未直入文殊院参观,而是在外围兜兜转转,不知怎的转到了一扇小区大门里,这里竟坐落着一家不起眼的小吃店,原来,这里就是传说中的邱二哥锅魁。这家小店从 1987 年做起,一开就是近四十年,传统技法做出的古味锅魁,深深抓住了成都人的味蕾,前两年也是阴差阳错登上了热搜,创下日卖六七百个锅魁的亮眼记录。我们来的时候,有不少人等待着早就预定好的锅魁,其中不乏下单十数个者,生意相当兴隆。锅魁的种类非常简单,只红糖锅魁、混糖锅魁、椒盐锅魁和白面锅魁四种,其中,红糖锅魁当属最经典的一款了,我们也是要了两个红糖锅魁,价格也是相当实惠,只四块钱一个。
锅魁到手时,薄薄的一层纸难掩新鲜出炉的锅魁的火热温度,上手轻轻捏动,就觉面皮筋道,一口咬下,又感饼皮内部不失松软,仅这两点,相信没有经过认真锤打,及耐心的文火炕制,是无法做出这样的感觉的。多吃几口,兜在其中的浓稠的红糖汁便随之而出,红糖的熬制也是相当到位,品来口感绵密,唇齿流香。在下大快朵颐的时候,不觉手上用多了些力气,结果挤出来好大一滩红糖汁,流得手上到处都是,惹得鹏乐不可支。
吃完红糖锅魁,也差不多走到了文殊院门口,朱红色的院墙对面,排列着一连串的店铺门面,其中的一家店铺正是我们要去的下一站:洞子口张老二凉粉。这又是一家在成都享有盛名的老字号,店面不大,倒不如说显得有些局促,此时正值早餐时分,来往的顾客络绎不绝,几乎很难找到座位。我们等待了一会儿,终于寻得一方空位,方才落座。
鹏跑去点餐,回来告诉在下要了甜水面和钟水饺各两份,人声嘈杂,在下只听清一个甜水面,不过无妨,待过会上菜,疑问便可自解。
尽管店内客流很大,但是上菜速度并不算慢,不多久,甜水面就被端了上来,极粗的面条和泛着红油的酱汁立刻就把在下吸引。鹏告诉在下,品尝之前记得多沾些酱汁,这汤汁才是这道小吃的经典所在。
沾上了汤汁的甜水面红得晶莹,散发出诱人的魅力。入口之后,筋道的面条裹挟着精妙的味道:先是能感觉到甜,这甜味不仅来自于酱汁,还来源于面条本身;随即便是红油的辣及花椒的麻,巧妙地与甜味混合在一起;紧接着又似有陈醋之酸,加上花生碎、姜蒜汁等辅料,只觉鲜香意味层叠而来。抄起筷子,品时尽是百味,放下筷子,嗅时止有垂涎,区区小食甜水面,珍馐美馔不能及。
接下来上的,便是钟水饺了。从外观上看,钟水饺带给在下的冲击,就不如甜水面那样大,主要的原因是因为它与红油抄手多有相似。不过二者实际品尝起来,确实有所不同。首先,钟水饺的馅料完全以猪肉馅构成,是纯肉的水饺,吃起来自然更加鲜美。其次,区别于红油抄手的汤汤水水一大碗,钟水饺出菜时多是小小一盘,淋上红油、酱油、芝麻油、蒜泥等辅料,着重于强调突出水饺的香味,吃起来自然也是更香的。再者,钟水饺上口时,同样有一丝微妙的甜味,不过这个甜味和甜水面的甜略有不同,但同样也能和其本身的鲜辣味巧妙结合,不免使人吃得痛快非常。
将饭桌上最后一个钟水饺吸干了吮尽了,我们才肯闭上贪恋美食的嘴,朝着文殊院里面兜上几圈——不要忘了,在下来成都的终极目的就只有吃,那么最大的问题,无非在于怎么在让自己在有限的时间之内吃得尽可能更多,于是答案便呼之欲出:运动。运动地越多,身体就会需要更多的能量,进食的欲望也就越强烈。于是,景点游览便这样成为了成都之行当中必不可少的一环。
文殊院不愧为长江上下游四大禅林之首,规模庞大,建筑恢宏,不乏宝物贮藏其中,又有佛陀舍利、玄奘法师顶骨舍利,又有康熙题的「空林」御笔,名气相当响亮,香火自然也是络绎不绝的。天王殿前,前来拜谒的人流排起长队;大雄宝殿前,人头攒动,青烟缭绕;三大士殿前也同样门庭若市,前来求德行、求平安、求智慧的人群熙熙攘攘。除了前来烧香拜佛及旅游的人群之外,不乏扛着长焦大炮的摄影爱好者;偏殿一方,一群年级较小的学生正对着一尊形似鱼身的彩绘雕塑临摹……




在下和鹏不通佛学,也并非带有强烈目的,只是到处游荡,转碑廊、闯画室、穿茶馆、赏字画、巡殿宇、绕宝塔、览戒坛、逛佛园,堪堪将整个文殊院历遍一圈,才最终从正门离开。


为了尽最大努力清空我们的胃,在下和鹏决定再接再厉,继续步行前往下一站——天府广场。
天府广场和紧临其的四川科技馆的位置,原先坐落着明朝的蜀王府邸,也叫成都皇城,可惜在文革当中被炸毁,改建成了毛泽东思想胜利万岁展览馆(也就是今天的四川科技馆),剩余的部分,又经过重新建设,就变成了占地 8.8 万平方米的大型城市广场。这里是成都市的正中心,除了四川科技馆,四川图书馆、大剧院、成都博物院等建筑也依次环绕四周。广场的下方有着规模不小的地下商业街,并与地铁连通,交通相当便捷。



在天府广场打了卡,提上一杯霸王茶姬,此刻也将要接近正午时分,在下开始向鹏咨询午饭的具体事宜,鹏也是做好了准备,直接带着在下往成都 IFS 国际金融中心的方向走。
若是阁下有幸来到成都太古里边上的 IFS,那么一定会被其外墙上的一个巨大熊猫雕塑所吸引,这只熊猫正用两只前脚扒在建筑外墙的边沿上,仿佛下一秒就要爬上 IFS 七楼的雕塑花园。我们也先是上七楼小小参观了一下被游客围满了的熊猫正脸,在跟随鹏一顿好找,才找到这家鹏非常喜欢的餐厅——金翠河香港茶餐厅。


虽说专门跑到成都来吃粤菜有些奇怪,但是鹏推荐这家餐厅肯定有他的理由——这家餐厅在西南地区也算是小有名气,是品质非常不错的茶餐厅连锁。鹏本想来这吃那皮薄肉嫩的招牌烧鹅,不想来得晚了,烧鹅竟然已经卖完,只得要了烧腊拼盘,也顺带尝尝港式烧鸭烧鸡的味道。
烧腊以五香味打底,配合酥脆的皮质,鲜嫩的肉质,再加上烧腊特供的鲜香醇厚的秘制酱汁,食来是甘香油润、细嫩弹牙,乃是绝佳之下饭菜。在下爱将沾满汁水的烧腊嵌于米饭之上,让酱汁的味道蕴在米饭之间,之后再将这些米饭尽食下肚,米粒入味,嚼来美味四溢,好不痛快!
等到烧腊将我们的肚子再度填饱之后,在下和鹏再度出发,前往春熙路开始新一轮的食物消化之旅。

春熙路就离太古里和 IFS 不远,往西走个两步就能到达,实际上这三个地方几乎是挨在一起的,共同构成了一个巨大的商圈。刚到春熙路商业街的入口,一股熟悉的感觉便扑面而来:广场样式的地砖铺在街道上,中间散布着路灯和小型售货亭,两边的店铺招牌层叠着垂直地悬挂出来,完美地契合着我们对于商业街的第一印象,那就是北京的王府井、上海的南京路、武汉的解放碑、广州的北京路……虽是下午,但此时冷意未消,寒风沿着大街阵阵扫过,游人纷纷靠着建筑墙根行走,在下和鹏二人倒是不怕,只管边走边欣赏着各种各样的建筑与店铺设计,不时评头论足一番。行至孙中山像附近时,遇到两个女孩前来求着帮搞某短视频平台的拉新任务,在下本想直接摆脱,但鹏看起来已经被缠上,加之天气寒冷,想来也确实拉客不易,自己的手机号也确属新用户,于是便卖了人情,才重新逛起街来。只是春熙路不如南京路那样长,不一会就走到了底,周围的店铺也同绝大多数有名的商业街一样,好看不好逛。于是在下问起鹏接下来的安排,鹏说他已有想法,只是下一站离得有些远,最好还是坐地铁前往。我们于是折返,往地铁春熙路站走,中途又觉口干,便点了一杯茶百道提进了地铁站。
虽然鹏说是有点远,不过也就是两站路的工夫,我们就从地铁里钻出来了。此地是是地铁人民公园站,鹏要带在下来的地方,自然也是成都人民公园了。
同是人民公园,和上海的相比,成都的人民公园显然要丰富许多,也有底蕴地得多。一百一十年前,辛亥秋保路死事纪念碑被树立在这个公园里,纪念着四川保路运动的血泪史;八十年前,川军抗日阵亡将士纪念碑又被树立在公园东门,纪念着一九三七年起,从这里誓师东出抗日的壮士们。除了两大纪念碑外,园内还有一个小型的历史展览馆供大众免费参观,体验还是相当不错的。

参观完展览馆,鹏便带着在下往公园的西侧走,随后,整个公园最具特色的地方映入了在下的眼帘——那是在古典园林建筑旁散布着的一簇簇桌椅板凳,四只竹椅围着一方小桌,上面坐满了喝着茶、聊着天、玩着牌局的人——原来这是开在公园里的茶社。
在上海,在下还从来没有在公园中见过那么大型的茶社,不由得感叹起巴蜀人民深谙生活之道。此处茂林修竹、绿意环绕,亭台楼阁、轩榭廊舫,一桌一椅一碗茶,正午一坐到晚霞,怪不得大家要说:「少不入川,老不出蜀」,仅此公园茶社便可见一斑。在下与鹏穿越拥挤的桌椅板凳,在一方角落找到一处空位,便各人要了一碗茶,索性拿出牌来玩起德扑。说起来,在下的德扑还是鹏教会的,只不过一开始还玩得不好,总是被鹏赢个干净,后来自己偷偷做了些研究,果然,这回轮到在下赢了不少,甚至不得不使鹏感叹起在下牌技之进步。
在茶社的时间相当愉快,四五盖惬意的茶下去,很快天色就暗了下来,我们收了牌,又往春熙路的方向走,看来鹏对于晚餐的事情已经有了些眉目。
天空渐渐下起了细雨,路上,我们钻进天府广场的地下街,竟被偶然发现一家谷子店,在下于是没忍住进去逛了逛,剁手了一款孤独摇滚的钥匙扣盲盒,开出一只在下推的喜多,Lucky~。
尽管细雨飘飘,春熙路的人流依旧不减,站在过街天桥上,桥下晚高峰的车流尾灯红彤彤地挤作一片,桥上也是人群熙攘,原来前方就是我们的目的地——陶德砂锅。这家馆子在成都看起来高低也是个网红店,之前天桥上的聚集人群大多都是在排它家的队伍。


在等待的时候,鹏向在下介绍,陶德砂锅原来是射洪的店,后来慢慢做大之后,就往周边开了很多分店,所以陶德砂锅其实算是射洪菜。现在商业化铺开了之后,菜品品控做得还可以,价格也实惠,属于吃起来不会出错的这一类馆子。
上了桌之后,在下还是老样子,把点菜的事全扔给鹏了,自己则关心起周围的情况来:前来就餐的食客男女老少各群体皆有,说明无论是价格还是口味,都是对大众友好的;店面看起来亮堂、整洁、干净,细节上也不失雅致的设计,说明对于连锁品牌形象的管理是到位的;服务员的整体面貌也很好,既没有懒懒散散,也不是那种打了鸡血一样的亢奋,给人的感觉是相当自然的。
片刻,鹏点的单就已经开始上菜了,不多时,菜品就全部上齐。鹏点了蒜蓉虾仁、酸菜乌鱼片、土豆牛肉以及野菌香包。这蒜蓉虾仁,听鹏介绍是陶德砂锅的招牌,上菜时也确实是颇有派头,需要同时上一个小锅现场来煮,确保虾仁的鲜嫩程度,大约需要五分钟左右,时间到了服务员还会帮忙揭盖。这样现烹的虾仁也不论其原本究竟是鲜货还是冻货,鲜嫩确实是到位的,加上蒜香和吸饱了微咸汤汁的粉丝,吃起来的味道的确可口,再加上我也是忠实的粉丝爱好者,这道菜没一会就被在下和鹏吃完了。
至于说到这酸菜乌鱼片和土豆牛肉,则是在下需要好好拷打一番鹏的点菜水准的时候了。倒不是说这两份菜不好吃,而是实在过于常见,主观上没有太大的新鲜感。这两份菜是基本上不会做坏的两道菜,而陶德砂锅选择的调味也果然如在下所料,偏向大众一些,以至于在下如今在回想这两道菜的味道时,发现并没有深刻的印象存留(当然也有时间太久的原因)。
最后的野菌香包倒是值得一说,菌菇包子天然就具有浓烈的鲜香味道,辅以肉馅和适当的调味,吃起来真是唇齿留香,软糯的包子皮和包裹其中的汁水就是令人吃了还想吃。
之前在下和鹏确实是有些饿了,这四份菜的菜量并不算小,但依旧被我们一扫而空。:spoiler[事后在下突然想到,能做到这样的高性价比+高出菜速度+稳定的菜品口味,陶德砂锅完全可以说是射洪的萨莉亚嘛。]
干完晚餐,在下能感觉到肚子的确是相当饱足了——这主要还得拜野菌香包所致,它的美味使在下无暇停下缓一缓再慢慢品尝,进而导致我们都吃得很快。于是为了缓解饱腹感,在下与鹏决定再去白天没有好好逛过的太古里逛一圈。
太古里显然与春熙路这种传统的商业街不同,开放式、低密度的街区形态,错落有致的建筑排列以及中央的下沉式广场将其现代购物中心的形态展现无遗,精美的装饰点缀在街区的分层结构之间,使得店铺内的精装与店铺外的世界连为一片,在地面积水的反射之下,更显得美轮美奂。



逛完太古里,我们拖着疲累的身体回到了鹏家,在成都的第一天行程就此结束。为了消化巨大的进食量,在下在这一天总共走出了超过三万步,加之前一晚在大巴上没有怎么好好休息,巨大的体力消耗使得在下很快睡了过去。
第二天醒来得时候并不算早,昨天吃得太多,到了这时食欲也并不算大,在下和鹏商量着先行出门,之后再看情况买点东西吃。
我们很快就搭上了地铁,往宽窄巷子赶去,这里也是鹏今天计划中的第一站。出门时,昨晚的细雨依然在飘,等到我们出了地铁,雨势也渐渐小了。在下和鹏在路上一边找着小吃,一边往宽窄巷子的方向走,正巧碰上迎面走来一群游客,正高声讨论着些什么,靠近之后,在下才发现他们竟在用亲切的上海话交谈,看来多半同是慕名来此地游玩的同乡游客了。
宽窄巷子主要由宽巷子、窄巷子和井巷子三条老街组成,因此,不同于传统商业街春熙路,现代商业街太古里,宽窄巷子则是老城区改造复兴的产物,更有是古镇商业街的感觉。此时约莫是九点多钟,店铺基本都开放了,街道上早已是人头攒动。和古镇类似,这里的商店也多是以售卖手工艺品、纪念品、小吃为主,而得益于蜀地的丰厚的饮食文化,小吃摊是非常多的,街道两边不时就能看见外溢的蒸汽蒸腾而上。鹏给在下看中一家卖蛋烘糕的小吃摊,于是我们第二天的美食体验就由蛋烘糕开始。



蛋烘糕也是名声在外的成都名小吃,主要有咸口和甜口之分。鹏买来的这款蛋烘糕是甜口的,金灿的外皮下裹进了只消轻轻一捏就会溢出来的肉松与奶油,从馅料来看,显然是做了改进的现代版本。咬进嘴中,外皮酥脆,内里绵软,奶油更是赋予了在下一种在吃泡芙的感觉,不过口感上要比泡芙更饱满,蛋香味也更加浓郁。虽然奶油肉松的甜口味道不错,不过下次在下还是更想尝试下传统的咸口,相信炒香的肉末+咸菜的味道也不会让在下失望。
现如今的古镇到底还是逃不开商业化的影响,对于在下和鹏来说,除开感受感受氛围,观赏观赏古建,吃吃小吃,也没剩下什么别的花样了,倒是有不少川剧表演的场子揽客,台下也是如同茶社般,桌椅板凳茶水小吃一应俱全,只是行程紧凑,遗憾未能进去坐坐,体验一番。

几个蛋烘糕能给我们提供的能量到底还是有限,宽窄巷子里走过一圈,肚子也渐渐饿了,在下向鹏询问午餐的安排,鹏倒是没做好准备,拿起手机一阵乱翻,随即带着在下钻回地铁里。而鹏选择的地点,则是春熙路地铁站,没错,我们又双叒叕来到了春熙路。:spoiler[这个目的地的出现频率未免有些太高了]
鹏带着在下沿着排布着琳琅满目小吃店铺的糠市街,向东一直走到底,来到一幢外墙正在施工的大楼底下,这里转角的脚手架阴影下,还藏着一家叫做叶婆婆钵钵鸡的门店。:spoiler[事后在下复盘得知,我们完全没必要来这家叶婆婆钵钵鸡,因为同样的店在锦里也有一家,那里正好是我们下一站要去的地方。这波是鹏在带在下疯狂绕路w] 不知是不是施工影响了生意,午市时间,店内的客人并不多,当然,也有可能是店面本身比较大,给人一种空旷的感觉。
叶婆婆钵钵鸡也是连锁,鹏告诉在下这家店原先开在乐山,现在也是连锁店了。不过比起店面的历史,在下倒是对钵钵鸡本身比较感兴趣,因为在下还从来没有吃过钵钵鸡,甚至没怎么听说过钵钵鸡的存在,看到自助取餐台和别桌食客桌上泛着红油的大碗里泡着的串串,在下一开始还以为这是串串版的麻辣烫。
不过等到上了菜,在下才发现这绝非什么麻辣烫,因为它吃起来没有在下想象中的那般热辣滚烫,而是……出乎意料的凉?原来钵钵鸡的做法就是先用热水烫熟鸡肉之后,特意浸凉,再泡在红油汤底当中的,汤底承担了赋予鸡肉美味的使命。浸凉的奇妙口感使得在下能够持久续航,不必像吃麻辣烫般时,不得已要冷却冷却口腔。于是,不知不觉间,在下的桌上已经堆了不少签子了。
由于我们确实饿了,之后又去拿了店里的乐山甜皮鸭来,鹏还另外点了两碗冰粉,甚至还有一盘炒饭。炒饭因为过于常规,吃来难有新的感触,在此不论。这甜皮鸭红棕色的色泽,看上去卖相和北京烤鸭差不多,但随即一口咬上,立马就能感觉到不同,虽都有酥脆的外皮,但甜皮鸭外皮附在其中的丝丝甜味,是绝对不可能在北京烤鸭里品尝到的。只可惜这份甜皮鸭底下的肉的细嫩程度倒是差了些,吃起来总感觉差了点什么。冰粉倒是料丰味美,整整一大碗,光是看着就食欲倍增。可惜上来的晚了,我们拿的钵钵鸡、小食和炒饭都吃了大半,肚子多少有些塞不下,于是剩下的一点冰粉,就成了我们心有余而力不足的直接体现。
吃完一份令人饱足的大餐,我们火速前往早上就提前预约好了的武侯祠。
此次成都之行行程紧凑,虽说是主要以吃为主,但是武侯祠是在下心心念念想去的地方,因为它在历史上的名气实在太响,还屡次出现在有名的诗歌当中,到了成都,不去参观武侯祠,未免可惜。
「丞相祠堂何处寻?锦官城外柏森森。」只是如今的武侯祠周边早已是城区环绕,车水马龙,但进入武侯祠之后,历史的厚重感依旧扑面而来。稍微了解武侯祠,就能知道这个区域其实是由武侯祠、汉昭烈庙及惠陵共同组成的,导致最有意思的还是它的变迁,一开始初建时,武侯祠并不在此址,而是到了魏晋时期才迁到这里,与汉昭烈庙相邻并列;到了明代,人们认为君臣祠庙并立不合礼法,于是便将二者祠庙合一;而到了康熙年间重修武侯祠时,儒家思想中的君臣关系再度于此得到强调,汉昭烈庙被置于前处较高位置,而武侯祠则被置于后处较低位置,以示「君尊臣卑」,于是武侯祠的格局便延续至今。
然而,虽然封建礼法被不断强调,依旧无法压过诸葛亮在广大百姓心中的地位,于是合祀以来,武侯祠从来都处在「门额大书汉昭烈,世人都道武侯祠」的状态。
迈进题写着「汉昭烈庙」牌匾的大门,前庭面积虽然不大,但内容丰富至极,不同时代的各类碑刻、匾联、雕塑等文物汇聚一堂,其中记载重修昭烈庙或是武侯祠的记录碑刻属最多,这也应证了两千多年来,此地一直香火不绝。庭院两边是文臣武将廊,这里的塑像均是清代制成的,形象皆取自戏剧当中。刘备殿稳坐庭院正北,上书「明良千古」大字匾,中间有一尊巨大的刘备塑像,关羽、张飞的塑像分别则供于东西偏殿,君臣关系排列井然。





从刘备殿后穿出,即可看见悬有郭沫若题写的「武侯祠」过厅,其后就是真正意义上的武侯祠了,比起刘备殿,诸葛亮殿为矮为小,但殿前悬有雍正御笔「名垂宇宙」,可谓气势磅礴。然而正殿内又悬「静远堂」匾,仿佛外面的磅礴气势突然不见,唯留丞相高尚情操细水长流。中央置有诸葛亮塑像,羽扇纶巾的形象深入人心,两旁分侍儿子诸葛瞻、孙子诸葛尚的塑像。


诸葛亮殿后则是九十年代迁至此地的三义庙,殿内主要供有演义形象的刘关张三人,其他就没有什么内容了。由于我们此前参观地较为细致,而此时时候已经不早,后面还有参观杜甫草堂的打算。因此三义庙之后,我们只是草草略过了孔明苑,索性撇掉了惠陵,往出口赶去。


我们掐着杜甫草堂的截止入园时间火速赶路,却不想武侯祠的出口竟正好是锦里古街,无暇顾及这条历史悠久的商业街,在下与鹏只管在拥挤的人群中东插西窜,把街上什么张飞牛肉、芙蓉糕等一众酒招旗甩在身后。在下看人流实在太多,行进缓慢,实在心焦,不由得模仿成都话说了一句「我的草堂!」引得鹏哈哈大笑,原来竟是歪打正着,无意间说得相当正宗,可惜也仅仅只是昙花一现,之后在下又说了许多次,不过鹏都认为没有在锦里时说的这句标准。
从锦里抽身,已是下午五点左右,附近道路上的车辆大排长龙,手机叫车的话又不知何时能到,好在在下很快找到一辆堵在路上的空车出租,司机一听我们要去杜甫草堂,不禁问了一句「现在去吗?可能会有点晚了。」不过我们坚持要去,司机便拐了条小路,一路风驰电掣地将我们送至杜甫草堂门口,此时大约是下午五点二十分左右,距离闭园时间还有四十分钟,我们便抓紧时间入园。


杜甫在浣花溪畔茅屋居住约四年,期间创作了二百四十多首诗歌,也正机场,杜甫草堂自从唐末开始,就被开辟为名胜古迹,历经历朝历代十数次的扩建,如今已是规模斐然。南门正对着的祠堂建筑群部分,陈列着杜甫以及其他许多文人墨客的肖像以及与之相关的艺术作品。愈往深处走,便愈能感觉到川西园林的典雅风味,尤其是最核心的茅屋建筑群附近,更是古色古香。可惜茅屋皆是后世仿照旧式川西建筑重建,杜甫居住的茅屋早就被埋没在历史的长河之中。






园林的最深处,倒是有一处业已出土的唐代遗迹,并伴有出土文物的展示,应证了浣花溪畔在唐代有人居住的事实,也确认了如今认为的草堂所在的位置与实际情况是基本吻合的。
整个园区内游客最多的地方,当属连接祠堂建筑群和诗史堂、茅屋建筑群的花径。花径和我们在武侯祠没有去参观的惠陵一样,都有着沉静的红墙走廊,墙后种植着清幽的竹林,文静典雅。而花径中游客最多的地方,又当属用青花碎瓷镶嵌而成的「草堂」影壁,毛泽东在 1958 年参观杜甫草堂时,曾在此留下一张照片。也因此,很多游客都会选择在此合影留念。



天色渐晚,我们也加快了参观的速度,但尽管如此,还是拖得不少时间,直到傍晚六点二十多分,我们才从南门离开,不出意外的话,在下与鹏应该成为了这天最后一批离开杜甫草堂的游客。
草堂的南门正对着浣花溪公园,规模同样不小。公园的设计与杜甫草堂相辅相成,园内有一诗歌大道,石砖上满刻着许多著名诗句,两旁也不时列有著名诗人的塑像。我们在这里短暂地歇了歇脚,由于中午吃得太多,肚子还不饿,再加之在下翌日还需要早起赶飞机,因此就决定省去晚饭,直接回去休息。

这天是上午九点半的飞机,在下的西藏—成都行程也终于迎来尾声。
早上六点刚过,在下就收拾好行李离开了我家。巴蜀地区与东部地区的时差约有一小时,又是冬天,故而屋外夜色未褪。街道上弥漫着沉浸了一夜的空气,路灯透过薄雾,映出一片昏黄。在下呼着热气往地铁口走去,只看见前方的人行道上被一家灯火通明的店铺照亮,丝丝烟火气从光亮中抽离出来,伴随着食物的飘香。在下正好想吃些东西垫垫肚子,便驻足下来,要了一笼老面小笼包,一袋豆浆,只是考虑到时间因素,全部都打包了在路上边走边吃。
老面小笼和上海名小吃南翔小笼有所不同,在下认为,可以简单地把前者理解为小一点的,用发酵后的面皮制成的传统包子,而后者的形态则更为世人所熟知,是小一点的,用紧酵的面皮制成的灌汤包。二者风味各有千秋,老面小笼的优势就在于面皮的蓬松、宣软,配合饱满的鲜猪肉馅,一口下去汁香味美,肉香浓郁,属于是早餐摊可以无脑选择的品类之一。
一口接着一口,很快,在下便吃完了这份早餐。轨交系统总比它所在的城市苏醒得更早,南来北往的客流里,在下赶巧搭上了 19 号线前往天府机场的直达列车,和来时一样,车内依旧是不同于普通线路玻璃钢座椅的,布料材质的软座,在下得以放下旅途疲累,安心闭目养神,等待着列车平稳而又快速地载着在下,离开这座「来了就不想离开」的城市。