feat: add format-posts srcipt

This commit is contained in:
radishzzz 2025-05-31 16:53:20 +01:00
parent 4d1e5b3054
commit 5ec894cd36
20 changed files with 232 additions and 89 deletions

View file

@ -12,6 +12,7 @@
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"new-post": "esno scripts/new-post.ts",
"format-posts": "esno scripts/format-posts.ts",
"update-theme": "esno scripts/update-theme.ts",
"update-vendors": "curl -L https://unpkg.com/@waline/client@latest/dist/waline.css -o public/vendors/waline/waline.css && curl -L https://unpkg.com/@waline/client@latest/dist/waline.js -o public/vendors/waline/waline.js"
},
@ -53,9 +54,11 @@
"@unocss/preset-attributify": "66.1.3",
"@unocss/reset": "66.1.3",
"astro-eslint-parser": "^1.2.2",
"autocorrect-node": "^2.14.0",
"eslint": "^9.28.0",
"eslint-plugin-astro": "^1.3.1",
"esno": "^4.8.0",
"fast-glob": "^3.3.2",
"lint-staged": "^16.1.0",
"typescript": "~5.8.3",
"unocss": "66.1.3",

64
pnpm-lock.yaml generated
View file

@ -114,6 +114,9 @@ importers:
astro-eslint-parser:
specifier: ^1.2.2
version: 1.2.2
autocorrect-node:
specifier: ^2.14.0
version: 2.14.0
eslint:
specifier: ^9.28.0
version: 9.28.0(jiti@2.4.2)
@ -123,6 +126,9 @@ importers:
esno:
specifier: ^4.8.0
version: 4.8.0
fast-glob:
specifier: ^3.3.2
version: 3.3.3
lint-staged:
specifier: ^16.1.0
version: 16.1.0
@ -1499,6 +1505,41 @@ packages:
peerDependencies:
'@astrojs/compiler': '>=0.27.0'
autocorrect-node-darwin-arm64@2.14.0:
resolution: {integrity: sha512-l5IRTQz6zYAlkfEc5emIDXBkayD0MIwPPAVXCFMceFwyTNhAJ5veoKqRrsPuBVthIbfYKtAUs9oy9oFoHQn7bw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
autocorrect-node-darwin-x64@2.14.0:
resolution: {integrity: sha512-vRO0lwfXff2Fs41NzdDqN5t4VQ03M0Xsn6Tk4OjMrbjoWJqaEq05KZOTSaSF/wEs/7E1VoaI9Kz+c0fqylVX4Q==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
autocorrect-node-linux-x64-gnu@2.14.0:
resolution: {integrity: sha512-v1y1wh340cbhrHSZZP0oPkvWUprDtUIwnBP69Bls27VhQ2ZyVV4eijDNOP//yGUyUunMB0rtWoZaBsq8ugt1Kg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
autocorrect-node-linux-x64-musl@2.14.0:
resolution: {integrity: sha512-3LifiLG61VIXBrOITpD/REcg/ZEUuLz/P2XUWMCfGqhzoUb8oFgM3o0A6extvIH2NefiHMndB9kNbfQjXCl3zA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
autocorrect-node-win32-x64-msvc@2.14.0:
resolution: {integrity: sha512-OM6TeGUW0+4R9KtUYTYNEwlInd+b2kumw/B1HCbCzb1F7HpfaNxnZiMk1li0bdPPBDzD5YuzwM30VJZMCWIi5A==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
autocorrect-node@2.14.0:
resolution: {integrity: sha512-Pkdw3Hr1Wbtpm8f7KYOaPnHFa7TNVo9dyuOffVaNGN3iWWRBs011XBuCJUEmHV097kJkab94cs4P6KJ4pvI41g==}
engines: {node: '>= 10'}
hasBin: true
axobject-query@4.1.0:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
@ -5689,6 +5730,29 @@ snapshots:
'@astrojs/compiler': 2.12.0
synckit: 0.11.8
autocorrect-node-darwin-arm64@2.14.0:
optional: true
autocorrect-node-darwin-x64@2.14.0:
optional: true
autocorrect-node-linux-x64-gnu@2.14.0:
optional: true
autocorrect-node-linux-x64-musl@2.14.0:
optional: true
autocorrect-node-win32-x64-msvc@2.14.0:
optional: true
autocorrect-node@2.14.0:
optionalDependencies:
autocorrect-node-darwin-arm64: 2.14.0
autocorrect-node-darwin-x64: 2.14.0
autocorrect-node-linux-x64-gnu: 2.14.0
autocorrect-node-linux-x64-musl: 2.14.0
autocorrect-node-win32-x64-msvc: 2.14.0
axobject-query@4.1.0: {}
bail@2.0.2: {}

68
scripts/format-posts.ts Normal file
View file

@ -0,0 +1,68 @@
/**
* Project: https://github.com/huacnlee/autocorrect
* Format posts by fixing spaces and punctuations in CJK text
* Usage: pnpm format-posts
*/
import { readFile, writeFile } from 'node:fs/promises'
import process from 'node:process'
import { format } from 'autocorrect-node'
import fg from 'fast-glob'
function splitContent(content: string) {
const match = content.match(/^---\r?\n([\s\S]+?)\r?\n---\r?\n([\s\S]*)$/m)
if (match) {
return {
frontmatter: match[1],
body: match[2],
hasFrontmatter: true,
}
}
return {
frontmatter: '',
body: content,
hasFrontmatter: false,
}
}
async function main() {
const files = await fg(['src/content/**/*.{md,mdx}'])
console.log(`🔍 ${files.length} Markdown files found`)
let changedCount = 0
let errorCount = 0
for (const file of files) {
try {
const content = await readFile(file, 'utf8')
const { frontmatter, body, hasFrontmatter } = splitContent(content)
const formattedBody = format(body)
const newContent = hasFrontmatter
? `---\n${frontmatter}\n---\n${formattedBody}`
: formattedBody
if (content !== newContent) {
await writeFile(file, newContent, 'utf8')
console.log(`${file}`)
changedCount++
}
}
catch (error) {
console.error(`${file}: ${error instanceof Error ? error.message : error}`)
errorCount++
}
}
console.log(`\n${changedCount > 0
? `✨ Formatted ${changedCount} files successfully`
: `✅ Check complete, no files needed formatting changes`}`)
if (errorCount > 0) {
console.log(`⚠️ ${errorCount} files failed to format`)
}
}
main().catch((error) => {
console.error('❌ Execution failed:', error)
process.exit(1)
})

View file

@ -1,16 +1,20 @@
/**
* Create a new post with frontmatter
* Usage: pnpm new-post <title>
*
* Example: pnpm new-post
* Example: pnpm new-post first-post
* Example: pnpm new-post first-post.md
* Example: pnpm new-post first-post.mdx
* Example: pnpm new-post 2025/03/first-post
* Example: pnpm new-post 2025/03/first-post.md
* Example: pnpm new-post 2025/03/first-post.mdx
*/
import { existsSync, mkdirSync, writeFileSync } from 'node:fs'
import { basename, dirname, extname, join } from 'node:path'
import process from 'node:process'
import { themeConfig } from '../src/config'
// pnpm new-post
// pnpm new-post first-post
// pnpm new-post first-post.md
// pnpm new-post first-post.mdx
// pnpm new-post 2025/03/first-post
// pnpm new-post 2025/03/first-post.md
// pnpm new-post 2025/03/first-post.mdx
// Process file path
const rawPath = process.argv[2] || 'new-post'
const baseName = basename(rawPath).replace(/\.(md|mdx)$/, '')

View file

@ -1,3 +1,7 @@
/**
* Update theme from upstream repository
* Usage: pnpm update-theme
*/
import { execSync } from 'node:child_process'
import fs from 'node:fs'
import path from 'node:path'

View file

@ -2,4 +2,4 @@
lang: ja
---
Retypesetは、日本語では「再組版」と呼ばれる、[Astro](https://astro.build/) フレームワークをベースにした静的ブログテーマです。[活版印字](https://astro-theme-typography.vercel.app/) からデザインのインスピレーションを得て、新しい視覚的な規範を確立し、すべてのページのレイアウトを再構成することで、紙の書籍のような読書体験を提供し、版面の美しさを蘇らせます。見るものすべてが細部にこだわり、限られたスペースの中に優雅さを表現しています。
Retypeset は、日本語では「再組版」と呼ばれる、[Astro](https://astro.build/) フレームワークをベースにした静的ブログテーマです。[活版印字](https://astro-theme-typography.vercel.app/) からデザインのインスピレーションを得て、新しい視覚的な規範を確立し、すべてのページのレイアウトを再構成することで、紙の書籍のような読書体験を提供し、版面の美しさを蘇らせます。見るものすべてが細部にこだわり、限られたスペースの中に優雅さを表現しています。

View file

@ -98,7 +98,7 @@ i18n 对我来说是必需的。因为我之前发过一篇英文的 [三星优
三是因为 Webkit。我有 Macbook Pro、三星 S23U、iPad Mini 6 和 iPhone15 Pro 这几台设备。每次网站部署之后,我都会在这几台设备上进行测试。
iPhone 上总是会出现一些奇怪的 BUG例如切换页面时背景会闪烁? View Transition 期间字体会被裁切?图标的水平位置跟标题对不齐?换了几个浏览器都是这样,后来才知道是 iOS 上的 Webkit 浏览器引擎的锅。
iPhone 上总是会出现一些奇怪的 BUG例如切换页面时背景会闪烁View Transition 期间字体会被裁切?图标的水平位置跟标题对不齐?换了几个浏览器都是这样,后来才知道是 iOS 上的 Webkit 浏览器引擎的锅。
以下图片均为慢动作拍摄。

View file

@ -5,7 +5,7 @@ lang: ja
abbrlink: katex-mathematical-demo
---
KaTeX はクロスブラウザ対応の JavaScript ライブラリで、ウェブブラウザ上で数式を表示します。高速性と使いやすさに重点を置き、カーンアカデミーによって開発され、GitHub で最も注目を集める上位5プロジェクトの一つとなりました。
KaTeX はクロスブラウザ対応の JavaScript ライブラリで、ウェブブラウザ上で数式を表示します。高速性と使いやすさに重点を置き、カーンアカデミーによって開発され、GitHub で最も注目を集める上位 5 プロジェクトの一つとなりました。
## 群論
@ -19,7 +19,7 @@ $$
各整数 $n\ge2$ に対して、商群 $\mathbb{Z}/n\mathbb{Z}$ は $1+n\mathbb{Z}$ によって生成される巡回群であり、したがって $\mathbb{Z}/n\mathbb{Z}\cong\mathbb{Z}_n$ となります。
商群 $\mathbb{R}/\mathbb{Z}$ は $([0,1),+_1)$ と同型です。これは区間 $[0,1)$ 上の実数のモジュロ1の加法群です。
商群 $\mathbb{R}/\mathbb{Z}$ は $([0,1),+_1)$ と同型です。これは区間 $[0,1)$ 上の実数のモジュロ 1 の加法群です。
同型定理。準同型 $\phi\colon(G,\circ)\to(H,*)$ に対して、次の関数

View file

@ -8,23 +8,23 @@ lang: ja
abbrlink: tolerance-freedom
---
今から17、18年前、私は母校コニヤース大学の歴史学修士ジョージ・リンカーン・バー氏と最後に会った。私たちは、生前に執筆を準備していた『自由の歴史』を書かずに亡くなった英国の歴史家アクトン卿について話していた。その日、バー氏は多くの会話を交わしたが、その中で私が今でも忘れられない一文があった。年を取れば取るほど、自由よりも寛容の方が大切だと感じるようになる」と。
今から 17、18 年前、私は母校コニヤース大学の歴史学修士ジョージ・リンカーン・バー氏と最後に会った。私たちは、生前に執筆を準備していた『自由の歴史』を書かずに亡くなった英国の歴史家アクトン卿について話していた。その日、バー氏は多くの会話を交わしたが、その中で私が今でも忘れられない一文があった。年を取れば取るほど、自由よりも寛容の方が大切だと感じるようになる」と。
ブリュワー氏が亡くなって10年以上が経つが、彼のこの言葉は考えれば考えるほど、忘れられない格言だと感じる。私自身、「年を取れば取るほど、自由よりも寛容さの方が大切だと感じるようになる」という思いもある。寛容さこそがすべての自由の本質であり、それなくして自由はないとさえ思うことがある。
ブリュワー氏が亡くなって 10 年以上が経つが、彼のこの言葉は考えれば考えるほど、忘れられない格言だと感じる。私自身、「年を取れば取るほど、自由よりも寛容さの方が大切だと感じるようになる」という思いもある。寛容さこそがすべての自由の本質であり、それなくして自由はないとさえ思うことがある。
私が17歳のとき1908年、私は『競争倫敦新聞』にいくつかの記事を掲載した。その中には、小説『西遊記』や『風神榜』をこき下ろしたものもあり、私はこう言った
私が 17 歳のとき1908 年)、私は『競争倫敦新聞』にいくつかの記事を掲載した。その中には、小説『西遊記』や『風神榜』をこき下ろしたものもあり、私はこう言った:
「幽霊や神々の捏造、時日占いで群衆を疑い、殺す"。私はただ権力の数千年の行支配を責めて、世界と人民の自己期待への道を助けるために、無知で注意を払わないで、世界と虚偽の人民の教義を混同して実践することができて、そして私の神の状態を闇の世界に引き上げた!
これは「道の守護」に対する子供の非常に不寛容な態度だった。当時、私はすでに無霊・無神論者であったので、迷信を滅ぼすというあのような荒唐無稽な主張をし、『王制』の古典の一つ(『礼記』の一篇)である「幽霊や神を根拠に占いで民衆を疑えば、殺される」という言葉を実行に移したかったのである!
このように言った小さな子供が、15年後1923年、西遊記について 2 万字に及ぶ考察をするほどの熱意を持つようになるとは、その時は夢にも思わなかったその小さな子供が、20年後、30年後も『神々のタブレット』の作者であることを証明できる資料を探し続けているとは、その時は夢にも思わなかったまた、『王制』の一節が歴史的に重要であるなどとは、当時はまったく考えてもいなかった。その『王制』の一節の全文はこうだ
このように言った小さな子供が、15 年後1923 年)、西遊記について 2 万字に及ぶ考察をするほどの熱意を持つようになるとは、その時は夢にも思わなかったその小さな子供が、20 年後、30 年後も『神々のタブレット』の作者であることを証明できる資料を探し続けているとは、その時は夢にも思わなかった!また、『王制』の一節が歴史的に重要であるなどとは、当時はまったく考えてもいなかった。その『王制』の一節の全文はこうだ:
言葉を解析して法を破り、人の名を変え、左の道をたどって政を乱す者は殺せ。わいせつな音を立てたり、奇妙な衣装を着たりして、人々に不審を抱かせる者は殺せ。線は偽りで堅く、言葉は偽りで弁証法的であり、学問は広くはないが、滑らかな非ゼファーは群衆を疑うことであり、殺すことである。幽霊、神、時、日、占いのふりをして民衆を疑い、殺すことである。この4人の殺し屋の言うことは聞いてはいけない。
言葉を解析して法を破り、人の名を変え、左の道をたどって政を乱す者は殺せ。わいせつな音を立てたり、奇妙な衣装を着たりして、人々に不審を抱かせる者は殺せ。線は偽りで堅く、言葉は偽りで弁証法的であり、学問は広くはないが、滑らかな非ゼファーは群衆を疑うことであり、殺すことである。幽霊、神、時、日、占いのふりをして民衆を疑い、殺すことである。この 4 人の殺し屋の言うことは聞いてはいけない。
50 年前、私はこの一節の「罰」が、中国の権威主義体制下で新しい思想、新しい学問、新しい信仰、新しい芸術を禁止する古典的な根拠であることをまったく理解していなかった。当時、私は「迷信を打破する」という熱意を抱いていたので、「四刑」の4番目の 「幽霊や神、時日占いを偽って大衆を疑う者は殺せ 」を支持した。当時は、四罪の「幽霊や神......大衆を疑う」と一罪の「政府を混乱させる左翼」が、信教の自由を破壊するために使われるとは思っていなかった。その時、私はまた、鄭玄のメモが「奇妙な技法と外国の武器」として、公図蛮の例を用いていることに気づかなかった。さらに言えば、孔英大の『正義』が「孔子は7日間魯の参謀だったが、邵正茂を処刑した」という例を挙げて、「......」と説明していることにも気づかなかった。第二の刑罰は、その人の行動を禁止するために用いることができるが、その人の言論を禁止するために用いることはできない。したがって、第二の罰は芸術創作の自由を禁止するために使用することができ、また「奇妙な技術や奇妙な武器」を発明した多くの科学者を「殺す」ために使用することができる。したがって、第三の刑罰は、思想の自由、言論の自由、出版の自由を破壊するために使われる可能性がある。
50 年前、私はこの一節の「罰」が、中国の権威主義体制下で新しい思想、新しい学問、新しい信仰、新しい芸術を禁止する古典的な根拠であることをまったく理解していなかった。当時、私は「迷信を打破する」という熱意を抱いていたので、「四刑」の 4 番目の「幽霊や神、時日占いを偽って大衆を疑う者は殺せ」を支持した。当時は、四罪の「幽霊や神......大衆を疑う」と一罪の「政府を混乱させる左翼」が、信教の自由を破壊するために使われるとは思っていなかった。その時、私はまた、鄭玄のメモが「奇妙な技法と外国の武器」として、公図蛮の例を用いていることに気づかなかった。さらに言えば、孔英大の『正義』が「孔子は 7 日間魯の参謀だったが、邵正茂を処刑した」という例を挙げて、「......」と説明していることにも気づかなかった。第二の刑罰は、その人の行動を禁止するために用いることができるが、その人の言論を禁止するために用いることはできない。したがって、第二の罰は芸術創作の自由を禁止するために使用することができ、また「奇妙な技術や奇妙な武器」を発明した多くの科学者を「殺す」ために使用することができる。したがって、第三の刑罰は、思想の自由、言論の自由、出版の自由を破壊するために使われる可能性がある。
50 年前、私は『西遊記』と『神々の創世』の著者を「殺す」ために、王制の第 4 の罰を発動した。その時はもちろん、 10年後、私が北京大学で教鞭をとっていた時、同じ「道の擁護者」でありながら、私と私の友人を「殺す」ために「王制」の第三の刑罰を発動しようとする正義の人々が現れるとは夢にも思わなかった。当時、私は人を「殺したい」と思い、後に人は私を「殺したい」と思ったが、動機は同じで、ちょっとした正義の怒りのために寛容さを失ったのである。
50 年前、私は『西遊記』と『神々の創世』の著者を「殺す」ために、王制の第 4 の罰を発動した。その時はもちろん、10 年後、私が北京大学で教鞭をとっていた時、同じ「道の擁護者」でありながら、私と私の友人を「殺す」ために「王制」の第三の刑罰を発動しようとする正義の人々が現れるとは夢にも思わなかった。当時、私は人を「殺したい」と思い、後に人は私を「殺したい」と思ったが、動機は同じで、ちょっとした正義の怒りのために寛容さを失ったのである。
私が 50 年前、幽霊や神や時間や日に頼って占いをする人々を殺すことを提唱した話をしたのは、年を取れば取るほど、「自由」よりも「寛容」の方が大切だと感じるようになることを説明するためである。私は今日も無神論者である。
@ -40,17 +40,17 @@ abbrlink: tolerance-freedom
異端者に対する迫害も、「異論者」に対する破壊も、信教の自由の禁止も、思想や言論の弾圧も、すべて「人は間違ってはならない」という信念によるものだ。自分が間違っているはずがないという信念があるからこそ、人は自分と異なる思想や信念を容認することができない。
ヨーロッパにおける宗教刷新運動の歴史を見てみよう。マルティン・ルターとジョン・カルヴァンが宗教に革命を起こそうと立ち上がったのは、もともと古いローマ宗教の不寛容さと自由のなさに不満を持っていたからだ。しかし、中欧と北欧でプロテスタンティズムが勝利した後、プロテスタンティズムの指導者たちは次第に不寛容に戻り、自分たちの新しい教義を他人が批判することを許さなくなった。ジュネーブで宗教的権力を握っていたガルヴァンは、ガルヴァンの教義を批判し、独自の思想を持つことを敢えてした学者セルヴェトゥスを、実際に「異端」として有罪にし、杭に鎖でつないで薪を積み上げ、ゆっくりと生きたまま焼き殺した。1553年10月23日の出来事である。
ヨーロッパにおける宗教刷新運動の歴史を見てみよう。マルティン・ルターとジョン・カルヴァンが宗教に革命を起こそうと立ち上がったのは、もともと古いローマ宗教の不寛容さと自由のなさに不満を持っていたからだ。しかし、中欧と北欧でプロテスタンティズムが勝利した後、プロテスタンティズムの指導者たちは次第に不寛容に戻り、自分たちの新しい教義を他人が批判することを許さなくなった。ジュネーブで宗教的権力を握っていたガルヴァンは、ガルヴァンの教義を批判し、独自の思想を持つことを敢えてした学者セルヴェトゥスを、実際に「異端」として有罪にし、杭に鎖でつないで薪を積み上げ、ゆっくりと生きたまま焼き殺した。1553 年 10 月 23 日の出来事である。
この殉教者セビトゥスの悲劇的な歴史は、想起と考察に最も値するものである。宗教刷新運動の本来の目的は、「キリスト教的人間の自由」と「良心の自由」のために戦うことだった。なぜガルヴァンとその信奉者たちは、独立心の強いプロテスタントを徐火で焼き殺したのか?ガルヴァンの弟子の一人であるド・ベーズ(後にガルヴァンの後継者としてジュネーブの宗教独裁者となる)が、「良心の自由は悪魔の教義である」と宣言したのはなぜか。
その基本的な理由は、自分自身は「悪いことはできない」という小さな確信にある。もしガルヴァンのような敬虔な改革者が、自分の良心が本当に神の命令を表しており、自分の口とペンが本当に神の意志を表していると確信していたとしたら、彼の意見が間違っている可能性はあるのだろうか彼が間違っている可能性はあるのだろうかセルベトゥスの火刑の後、ガルヴァンは多くの人々から批判を受けたが、1554年、彼は自分自身を弁護する文章を発表し、その中で、「悪を語る者を厳しく罰する権威は疑う余地がない。...... この仕事は神の栄光のために戦っている」
その基本的な理由は、自分自身は「悪いことはできない」という小さな確信にある。もしガルヴァンのような敬虔な改革者が、自分の良心が本当に神の命令を表しており、自分の口とペンが本当に神の意志を表していると確信していたとしたら、彼の意見が間違っている可能性はあるのだろうか彼が間違っている可能性はあるのだろうかセルベトゥスの火刑の後、ガルヴァンは多くの人々から批判を受けたが、1554 年、彼は自分自身を弁護する文章を発表し、その中で、「悪を語る者を厳しく罰する権威は疑う余地がない。...... この仕事は神の栄光のために戦っている」
神ご自身が語ることが悪いことだろうか?神の栄光のために戦うことが悪いことだろうか?この 「私は間違っていない 」という小さな考え方が、あらゆる不寛容の根源なのだ。自分の信念は絶対であり、自分の意見は 「正義 」であり、反対する者はもちろん 「異端者 」である。私の意見は神の意志を代弁するものであり、私に反対する者の意見はもちろん「悪魔の教義」である。
神ご自身が語ることが悪いことだろうか?神の栄光のために戦うことが悪いことだろうか?この「私は間違っていない」という小さな考え方が、あらゆる不寛容の根源なのだ。自分の信念は絶対であり、自分の意見は「正義」であり、反対する者はもちろん「異端者」である。私の意見は神の意志を代弁するものであり、私に反対する者の意見はもちろん「悪魔の教義」である。
これは信教の自由の歴史が教えてくれる教訓である。寛容はすべての自由の基礎であり、「異端者」を寛容する恵みがなければ、「異端」の宗教的信念が自由を享受することは認められない。しかし、不寛容は「私の信念は間違っていない」という精神的習慣に基づくものであるため、「異論」に対する寛容は、寛容の中でも最も希少で、最も培われていないものである。
政治的思考や社会問題の議論においても、不寛容は一般的であり、寛容は常に稀であると感じる。例として、亡くなった旧友の話を挙げよう。40年以上前、雑誌『新青年』で方言文学を提唱する運動を始めたとき、私はアメリカから全斗秀に手紙を送り、こう言った
政治的思考や社会問題の議論においても、不寛容は一般的であり、寛容は常に稀であると感じる。例として、亡くなった旧友の話を挙げよう。40 年以上前、雑誌『新青年』で方言文学を提唱する運動を始めたとき、私はアメリカから全斗秀に手紙を送り、こう言った:
この問題の善悪は一朝一夕に決められるものではないし、一人や二人で決められるものでもない。私は、国内の人々が冷静かつ平和的な方法で、私たちとともにこの問題を研究してくれることを強く望んでいる。議論が成熟すれば、善悪は明らかになるだろう。私たちは革命の旗を掲げたが、後退することはできないが、私たちが主張することを必ずそうでなければならないとし、他者にそれを修正させない勇気はない。
@ -58,10 +58,10 @@ abbrlink: tolerance-freedom
私は、異論を受け入れることを意味し、自由な議論は、学術発展の原則であり、唯一の本格的な格言として、中国語の文学の改善で、その正誤は非常に明確であり、反対派が部屋の議論を持って許可されません。
当時、私はこれは非常に独断的な態度だと思った。それから40年以上たった今でも、私は杜秀のこの言葉を忘れることができない。そして、この「自分たちの主張することを絶対的な権利とする」という態度は、非常に不寛容な態度であり、他人の悪感情を最も呼び起こしやすく、最も反発を招きやすい態度だと今でも思っている。
当時、私はこれは非常に独断的な態度だと思った。それから 40 年以上たった今でも、私は杜秀のこの言葉を忘れることができない。そして、この「自分たちの主張することを絶対的な権利とする」という態度は、非常に不寛容な態度であり、他人の悪感情を最も呼び起こしやすく、最も反発を招きやすい態度だと今でも思っている。
私はかつて、社会が私に対して寛容であることに寛容な態度で報いるべきだと言ったことがある。もし他人に自分の意見を許容し、理解してもらいたいのであれば、まず自分が他人の意見を許容し、理解する尺度を身につけなければならない。少なくとも、「自分の主張が絶対的に正しいと思い込む」ようなことは決してしてはならない。実験主義の訓練を受けてきた私たちは、「絶対的なイエス」を認めないし、ましてや私たちが主張することを「絶対的なイエスとする」ことなどできない。
4-8, 3-12 朝
原文『自由中国』台北、1959年3月16日、第20巻、第6号)
原文『自由中国』台北、1959 年 3 月 16 日、第 20 巻、第 6 号)

View file

@ -40,11 +40,11 @@ abbrlink: tolerance-freedom
一切對異端的迫害,一切對「異已」的摧殘,一切宗教自由的禁止,一切思想言論的被壓迫,都由於這一點深信自己是不會錯的心理。因為深信自己是不會錯的,所以不能容忍任何和自己不同的思想信仰了。
試看歐洲的宗教革新運動的歷史。馬丁路德Martin Luther和約翰高爾文John Calvin等人起來革新宗教本來是因為他們不滿意於羅馬舊教的種種不容忍種種不自由。但是新教在中歐北歐勝利之後新教的領袖們又都漸漸走上了不容忍的路上去也不容許別人起來批評他們的新教條了。高爾文在日內瓦掌握了宗教大權居然會把一個敢獨立思想敢批評高爾文的教條的學者塞維圖斯Servetus定了「異端邪說」的罪名把他用鐵鏈鎖在木樁上堆起柴來慢慢的活燒死。這是1553年10月23日的事。
試看歐洲的宗教革新運動的歷史。馬丁路德Martin Luther和約翰高爾文John Calvin等人起來革新宗教本來是因為他們不滿意於羅馬舊教的種種不容忍種種不自由。但是新教在中歐北歐勝利之後新教的領袖們又都漸漸走上了不容忍的路上去也不容許別人起來批評他們的新教條了。高爾文在日內瓦掌握了宗教大權居然會把一個敢獨立思想敢批評高爾文的教條的學者塞維圖斯Servetus定了「異端邪說」的罪名把他用鐵鏈鎖在木樁上堆起柴來慢慢的活燒死。這是 1553 年 10 月 23 日的事。
這個殉道者塞維圖斯的慘史最值得人們的追念和反省。宗教革新運動原來的目標是要爭取「基督教的人的自由」和「良心的自由」。何以高爾文和他的信徒們居然會把一位獨立思想的新教徒用慢慢的火燒死呢何以高爾文的門徒後來繼任高爾文為日內瓦的宗教獨裁者柏時de Beze竟會宣言「良心的自由是魔鬼的教條」呢
基本的原因還是那一點深信我自己是「不會錯的」的心理。像高爾文那樣虔誠的宗教改革家他自己深信他的良心確是代表上帝的命令他的口和他的筆確是代表上帝的意志那末他的意見還會錯嗎他還有錯誤的可能嗎在塞維圖斯被燒死之後高爾文曾受到不少人的批評。1554年高爾文發表一篇文字為他自己辯護他毫不遲疑的說「嚴厲懲治邪說者的權威是無可疑的因為這就是上帝自己說話。……這工作是為上帝的光榮戰鬥」。
基本的原因還是那一點深信我自己是「不會錯的」的心理。像高爾文那樣虔誠的宗教改革家他自己深信他的良心確是代表上帝的命令他的口和他的筆確是代表上帝的意志那末他的意見還會錯嗎他還有錯誤的可能嗎在塞維圖斯被燒死之後高爾文曾受到不少人的批評。1554 年,高爾文發表一篇文字為他自己辯護,他毫不遲疑的說,「嚴厲懲治邪說者的權威是無可疑的,因為這就是上帝自己說話。……這工作是為上帝的光榮戰鬥」。
上帝自己說話還會錯嗎為上帝的光榮作戰還會錯嗎這一點「我不會錯」的心理就是一切不容忍的根苗。深信我自己的信念沒有錯誤的可能infallible我的意見就是「正義」反對我的人當然都是「邪說」了。我的意見代表上帝的意旨反對我的人的意見當然都是「魔鬼的教條」了。
@ -64,4 +64,4 @@ abbrlink: tolerance-freedom
四八、三、十二晨
(原載1959年3月16日台北《自由中國》第20卷第6期)
(原載 1959 年 3 月 16 日台北《自由中國》第 20 卷第 6 期)

View file

@ -40,11 +40,11 @@ abbrlink: tolerance-freedom
一切对异端的迫害,一切对“异已”的摧残,一切宗教自由的禁止,一切思想言论的被压迫,都由于这一点深信自己是不会错的心理。因为深信自己是不会错的,所以不能容忍任何和自己不同的思想信仰了。
试看欧洲的宗教革新运动的历史。马丁路德Martin Luther和约翰高尔文John Calvin等人起来革新宗教本来是因为他们不满意于罗马旧教的种种不容忍种种不自由。但是新教在中欧北欧胜利之后新教的领袖们又都渐渐走上了不容忍的路上去也不容许别人起来批评他们的新教条了。高尔文在日内瓦掌握了宗教大权居然会把一个敢独立思想敢批评高尔文的教条的学者塞维图斯Servetus定了“异端邪说”的罪名把他用铁链锁在木桩上堆起柴来慢慢的活烧死。这是1553年10月23日的事。
试看欧洲的宗教革新运动的历史。马丁路德Martin Luther和约翰高尔文John Calvin等人起来革新宗教本来是因为他们不满意于罗马旧教的种种不容忍种种不自由。但是新教在中欧北欧胜利之后新教的领袖们又都渐渐走上了不容忍的路上去也不容许别人起来批评他们的新教条了。高尔文在日内瓦掌握了宗教大权居然会把一个敢独立思想敢批评高尔文的教条的学者塞维图斯Servetus定了“异端邪说”的罪名把他用铁链锁在木桩上堆起柴来慢慢的活烧死。这是 1553 年 10 月 23 日的事。
这个殉道者塞维图斯的惨史最值得人们的追念和反省。宗教革新运动原来的目标是要争取“基督教的人的自由”和“良心的自由”。何以高尔文和他的信徒们居然会把一位独立思想的新教徒用慢慢的火烧死呢何以高尔文的门徒后来继任高尔文为日内瓦的宗教独裁者柏时de Beze竟会宣言“良心的自由是魔鬼的教条”呢
基本的原因还是那一点深信我自己是“不会错的”的心理。像高尔文那样虔诚的宗教改革家他自己深信他的良心确是代表上帝的命令他的口和他的笔确是代表上帝的意志那末他的意见还会错吗他还有错误的可能吗在塞维图斯被烧死之后高尔文曾受到不少人的批评。1554年高尔文发表一篇文字为他自己辩护他毫不迟疑的说“严厉惩治邪说者的权威是无可疑的因为这就是上帝自己说话。……这工作是为上帝的光荣战斗”。
基本的原因还是那一点深信我自己是“不会错的”的心理。像高尔文那样虔诚的宗教改革家他自己深信他的良心确是代表上帝的命令他的口和他的笔确是代表上帝的意志那末他的意见还会错吗他还有错误的可能吗在塞维图斯被烧死之后高尔文曾受到不少人的批评。1554 年,高尔文发表一篇文字为他自己辩护,他毫不迟疑的说,“严厉惩治邪说者的权威是无可疑的,因为这就是上帝自己说话。……这工作是为上帝的光荣战斗”。
上帝自己说话还会错吗为上帝的光荣作战还会错吗这一点“我不会错”的心理就是一切不容忍的根苗。深信我自己的信念没有错误的可能infallible我的意见就是“正义”反对我的人当然都是“邪说”了。我的意见代表上帝的意旨反对我的人的意见当然都是“魔鬼的教条”了。
@ -64,4 +64,4 @@ abbrlink: tolerance-freedom
四八、三、十二晨
(原载1959年3月16日台北《自由中国》第20卷第6期)
(原载 1959 年 3 月 16 日台北《自由中国》第 20 卷第 6 期)

View file

@ -24,7 +24,7 @@ abbrlink: my-native-heath
わたしどもはとうとう家移りのことを話した。「あちらの家も借りることに極めて、家具もあらかた調えましたが、まだ少し足らないものもありますから、ここにある嵩張物を売払って向うで買うことにしましょう」 「それがいいよ。わたしもそう思ってね。荷拵えをした時、嵩張物は持運びに不便だから半分ばかり売ってみたがなかなかお銭にならないよ」
こんな話をしたあとで母は語を継いだ。「お前さんは久しぶりで来たんだから、本家や親類に暇乞いを済まして、それから出て行くことにしましょう」 「ええそうしましょう」 「あの閏土がね、家へ来るたんびにお前のことをきいて、ぜひ一度逢いたいと言っているんだよ」と母はにこにこして 「今度到著の日取を知らせてやったから、たぶん来るかもしれないよ」 「おお、閏土!ずいぶん昔のことですね」
こんな話をしたあとで母は語を継いだ。「お前さんは久しぶりで来たんだから、本家や親類に暇乞いを済まして、それから出て行くことにしましょう」 「ええそうしましょう」 「あの閏土がね、家へ来るたんびにお前のことをきいて、ぜひ一度逢いたいと言っているんだよ」と母はにこにこして「今度到著の日取を知らせてやったから、たぶん来るかもしれないよ」 「おお、閏土!ずいぶん昔のことですね」
この時わたしの頭の中に一つの神さびた画面が閃き出した。深藍色の大空にかかる月はまんまろの黄金色であった。下は海辺の砂地に作られた西瓜畑で、果てしもなき碧緑の中に十一二歳の少年がぽつりと一人立っている。項には銀の輪を掛け、手には鋼鉄の叉棒を握って一疋の土竜に向って力任せに突き刺すと、土竜は身をひねって彼の跨ぐらを潜って逃げ出す。
@ -32,15 +32,15 @@ abbrlink: my-native-heath
わたしは閏土が来ると聞いて非常に嬉しく思った。というのはわたしは前から閏土の名前を聞き及んでいるし、年頃もわたしとおつかつだし、閏月生れで五行の土が欠けているから閏土と名づけたわけも知っていた。彼は仕掛罠で小鳥を取ることが上手だ。
わたしは日々に新年の来るのを待ちかねた。新年が来ると閏土も来るのだ。まもなく年末になり、ある日の事、母はわたしを呼んで 「閏土が来たよ」と告げた。わたしは馳け出して行ってみると、彼は炊事部屋にいた。紫色の丸顔!頭に小さな漉羅紗帽をかぶり、項にキラキラした銀の頸輪を掛け、――これを見ても彼の父親がいかに彼を愛しているかが解る。彼の死去を恐れて神仏に願を掛け、頸に輪を掛け、彼を庇護しているのである――人を見て大層はにかんだが、わたしに対して特別だった。誰もいない時に好く話をして、半日経たぬうちに我々はすっかり仲よしになった。
わたしは日々に新年の来るのを待ちかねた。新年が来ると閏土も来るのだ。まもなく年末になり、ある日の事、母はわたしを呼んで「閏土が来たよ」と告げた。わたしは馳け出して行ってみると、彼は炊事部屋にいた。紫色の丸顔!頭に小さな漉羅紗帽をかぶり、項にキラキラした銀の頸輪を掛け、――これを見ても彼の父親がいかに彼を愛しているかが解る。彼の死去を恐れて神仏に願を掛け、頸に輪を掛け、彼を庇護しているのである――人を見て大層はにかんだが、わたしに対して特別だった。誰もいない時に好く話をして、半日経たぬうちに我々はすっかり仲よしになった。
われわれはその時、何か知らんいろんな事を話したが、ただ覚えているのは、閏土が非常にハシャいで、まだ見たことのないいろいろの物を街へ来て初めて見たとの話だった。
次の日わたしは彼に鳥をつかまえてくれと頼んだ。「それは出来ません。大雪が降ればいいのですがね。わたしどもの沙地の上に雪が降ると、わたしは雪を掻き出して小さな一つの空地を作り、短い棒で大きな箕を支え、小米を撒きちらしておきます。小鳥が食いに来た時、わたしは遠くの方で棒の上に縛ってある縄を引くと、小鳥は箕の下へ入ってしまいます。何でも皆ありますよ。稲鶏、角鶏、※鴣「孛鳥」、105-11、藍背……」
そこでわたしは雪の降るのを待ちかねた。閏土はまた左のような話をした。「今は寒くていけませんが、夏になったらわたしの処へ被入っしゃい。わたしどもは昼間海辺に貝殻取に行きます。赤いのや青いのや、鬼が見て恐れるのや、観音様の手もあります。晩にはお父さんと一緒に西瓜の見張りに行きますから、あなたも被入っしゃい」 「泥棒の見張をするのかえ」 「いいえ、旅の人が喉が渇いて一つぐらい取って食べても、家の方では泥棒の数に入れません。見張が要るのは猪、山あらし、土竜の類です。月明りの下でじっと耳を澄ましているとララと響いて来ます。土竜が瓜を噛んでるんですよ。その時あなたは叉棒を攫んでそっと行って御覧なさい」 わたしはそのいわゆる土竜というものがどんなものか、その時ちっとも知らなかった。――今でも解らない――ただわけもなく、小犬のような形で非常に猛烈のように感じた。「彼は咬みついて来るだろうね」 「こちらには叉棒がありますからね。歩いて行って見つけ次第、あなたはそれを刺せばいい。こん畜生は馬鹿に利巧な奴で、あべこべにあなたの方へ馳け出して来て、跨の下から逃げてゆきます。あいつの毛皮は油のように滑ッこい」
そこでわたしは雪の降るのを待ちかねた。閏土はまた左のような話をした。「今は寒くていけませんが、夏になったらわたしの処へ被入っしゃい。わたしどもは昼間海辺に貝殻取に行きます。赤いのや青いのや、鬼が見て恐れるのや、観音様の手もあります。晩にはお父さんと一緒に西瓜の見張りに行きますから、あなたも被入っしゃい」 「泥棒の見張をするのかえ」 「いいえ、旅の人が喉が渇いて一つぐらい取って食べても、家の方では泥棒の数に入れません。見張が要るのは猪、山あらし、土竜の類です。月明りの下でじっと耳を澄ましているとララと響いて来ます。土竜が瓜を噛んでるんですよ。その時あなたは叉棒を攫んでそっと行って御覧なさい」わたしはそのいわゆる土竜というものがどんなものか、その時ちっとも知らなかった。――今でも解らない――ただわけもなく、小犬のような形で非常に猛烈のように感じた。「彼は咬みついて来るだろうね」 「こちらには叉棒がありますからね。歩いて行って見つけ次第、あなたはそれを刺せばいい。こん畜生は馬鹿に利巧な奴で、あべこべにあなたの方へ馳け出して来て、跨の下から逃げてゆきます。あいつの毛皮は油のように滑ッこい」
わたしは今までこれほど多くの珍らしいことが世の中にあろうとは知らなかった。海辺にこんな五色の貝殻があったり、西瓜にこんな危険性があったり――わたしは今の先きまで西瓜は水菓子屋の店に売っているものとばかし思っていた。「わたしどもの沙地の中には大潮の来る前に、たくさん跳ね魚が集って来て、ただそれだけが跳ね廻っています。青蛙のように二つの脚があって……」 ああ閏土の胸の中には際限もなく不思議な話が繋がっていた。それはふだんわたしどもの往来している友達の知らぬことばかりで、彼等は本当に何一つ知らなかった。閏土が海辺にいる時彼等はわたしと同じように、高塀に囲まれた屋敷の上の四角な空ばかり眺めていたのだから。
わたしは今までこれほど多くの珍らしいことが世の中にあろうとは知らなかった。海辺にこんな五色の貝殻があったり、西瓜にこんな危険性があったり――わたしは今の先きまで西瓜は水菓子屋の店に売っているものとばかし思っていた。「わたしどもの沙地の中には大潮の来る前に、たくさん跳ね魚が集って来て、ただそれだけが跳ね廻っています。青蛙のように二つの脚があって……」ああ閏土の胸の中には際限もなく不思議な話が繋がっていた。それはふだんわたしどもの往来している友達の知らぬことばかりで、彼等は本当に何一つ知らなかった。閏土が海辺にいる時彼等はわたしと同じように、高塀に囲まれた屋敷の上の四角な空ばかり眺めていたのだから。
惜しいかな、正月は過ぎ去り、閏土は彼の郷里に帰ることになった。わたしは大哭きに哭いた。閏土もまた泣き出し、台所に隠れて出て行くまいとしたが、遂に彼の父親に引張り出された。
@ -58,15 +58,15 @@ abbrlink: my-native-heath
わたしはぎょっとした。「解らないかね、わたしはお前を抱いてやったことが幾度もあるよ」
わたしはいよいよ驚いたが、いい塩梅にすぐあとから母が入って来て側から 「この人は永い間外に出ていたから、みんな忘れてしまったんです。お前、覚えておいでだろうね」
わたしはいよいよ驚いたが、いい塩梅にすぐあとから母が入って来て側から「この人は永い間外に出ていたから、みんな忘れてしまったんです。お前、覚えておいでだろうね」
とわたしの方へ向って 「これはすじ向うの楊二嫂だよ。そら豆腐屋さんの」
とわたしの方へ向って「これはすじ向うの楊二嫂だよ。そら豆腐屋さんの」
おおそう言われると想い出した。わたしの子供の時分、すじ向うの豆腐屋の奥に一日坐り込んでいたのがたしか楊二嫂とか言った。彼女は近処で評判の「豆腐西施」で白粉をコテコテ塗っていたが、頬骨もこんなに高くはなく、唇もこんなに薄くはなく、それにまたいつも坐っていたので、こんな分廻しのような姿勢を見るのはわたしも初めてで、その時分彼女があるためにこの豆腐屋の商売が繁盛するという噂をきいていたが、それも年齢の関係で、わたしは未だかつて感化を受けたことがないからまるきり覚えていない。ところがコンパス西施はわたしに対してはなはだ不平らしく、たちまち侮りの色を現し、さながらフランス人にしてナポレオンを知らず、亜米利加人にしてワシントンを知らざるを嘲る如く冷笑した。「忘れたの?出世すると眼の位まで高くなるというが、本当だね」 「いえ、決してそんなことはありません、わたし……」
わたしは慌てて立上がった。「そんなら迅ちゃん、お前さんに言うがね。お前はお金持になったんだから、引越しだってなかなか御大層だ。こんな我楽多道具なんか要るもんかね。わたしに譲っておくれよ、わたしども貧乏人こそ使い道があるわよ」 「わたしは決して金持ではありません。こんなものでも売ったら何かの足しまえになるかと思って……」 「おやおやお前は結構な道台さえも捨てたという話じゃないか。それでもお金持じゃないの?お前は今三人のお妾さんがあって、外に出る時には八人舁きの大轎に乗って、それでもお金持じゃないの?ホホ何と被仰ろうが、私を瞞すことは出来ないよ」
わたしは話のしようがなくなって口を噤んで立っていると 「全くね、お金があればあるほど塵ッ葉一つ出すのはいやだ。塵ッ葉一つ出さなければますますお金が溜るわけだ」
わたしは話のしようがなくなって口を噤んで立っていると「全くね、お金があればあるほど塵ッ葉一つ出すのはいやだ。塵ッ葉一つ出さなければますますお金が溜るわけだ」
コンパスはむっとして身を翻し、ぶつぶつ言いながら出て行ったが、なお、行きがけの駄賃に母の手袋を一双、素早く掻っ払ってズボンの腰に捻じ込んで立去った。
@ -74,7 +74,7 @@ abbrlink: my-native-heath
非常に寒い日の午後、わたしは昼飯を済ましてお茶を飲んでいると、外から人が入って来た。見ると思わず知らず驚いた。この人はほかでもない閏土であった。わたしは一目見てそれと知ったが、それは記憶の上の閏土ではなかった。身の丈けは一倍も伸びて、紫色の丸顔はすでに変じてどんよりと黄ばみ、額には溝のような深皺が出来ていた。目許は彼の父親ソックリで地腫れがしていたが、これはわたしも知っている。海辺地方の百姓は年じゅう汐風に吹かれているので皆が皆こんな風になるのである。彼の頭の上には破れた漉羅紗帽が一つ、身体の上にはごく薄い棉入れが一枚、その著こなしがいかにも見すぼらしく、手に紙包と長煙管を持っていたが、その手もわたしの覚えていた赤く丸い、ふっくらしたものではなく、荒っぽくざらざらして松皮のような裂け目があった。
わたしは非常に亢奮して何と言っていいやら 「あ、閏土さん、よく来てくれた」
わたしは非常に亢奮して何と言っていいやら「あ、閏土さん、よく来てくれた」
とまず口を切って、続いて連珠の如く湧き出す話、角鶏、飛魚、貝殻、土竜……けれど結局何かに弾かれたような工合になって、ただ頭の中をぐるぐる廻っているだけで口外へ吐き出すことが出来ない。
@ -82,11 +82,11 @@ abbrlink: my-native-heath
と一つハッキリ言った。わたしはぞっとして身顫いが出そうになった。なるほどわたしどもの間にはもはや悲しむべき隔てが出来たのかと思うと、わたしはもう話も出来ない。
彼は頭を後ろに向け 「水生や、旦那様にお辞儀をしなさい」
彼は頭を後ろに向け「水生や、旦那様にお辞儀をしなさい」
と背中に躱れている子供を引出した。これはちょうど三十年前の閏土と同じような者であるが、それよりずっと痩せ黄ばんで頸のまわりに銀の輪がない。「これは五番目の倅ですが、人様の前に出たことがありませんから、はにかんで困ります」
母は宏兒を連れて二階から下りて来た。大方われわれの話声を聞きつけて来たのだろう。閏土は丁寧に頭を低げて 「大奥様、お手紙を有難く頂戴致しました。わたしは旦那様がお帰りになると聞いて、何しろハアこんな嬉しいことは御座いません」 「まあお前はなぜそんな遠慮深くしているの、先にはまるで兄弟のようにしていたじゃないか。やっぱり昔のように迅ちゃんとお言いよ」
母は宏兒を連れて二階から下りて来た。大方われわれの話声を聞きつけて来たのだろう。閏土は丁寧に頭を低げて「大奥様、お手紙を有難く頂戴致しました。わたしは旦那様がお帰りになると聞いて、何しろハアこんな嬉しいことは御座いません」 「まあお前はなぜそんな遠慮深くしているの、先にはまるで兄弟のようにしていたじゃないか。やっぱり昔のように迅ちゃんとお言いよ」
母親はいい機嫌であった。「奥さん、今はそんなわけにはゆきません。あの時分は子供のことで何もかも解りませんでしたが」

View file

@ -8,11 +8,11 @@ lang: ja
abbrlink: markdown-extended-features
---
この記事では、RetypesetテーマがサポートするMarkdown拡張機能について、構文例と効果を紹介します。
この記事では、Retypeset テーマがサポートする Markdown 拡張機能について、構文例と効果を紹介します。
## 図のキャプション
標準のMarkdown画像構文 `![alt](src)` を使用すると、自動的に図のキャプションが生成されます。`alt` テキストの前にアンダースコア `_` を追加するか、`alt` テキストを空にすると、キャプションが非表示になります。
標準の Markdown 画像構文 `![alt](src)` を使用すると、自動的に図のキャプションが生成されます。`alt` テキストの前にアンダースコア `_` を追加するか、`alt` テキストを空にすると、キャプションが非表示になります。
### 構文
@ -28,9 +28,9 @@ abbrlink: markdown-extended-features
![_画像の説明](https://image.radishzz.cc/image/gallery/06.webp)
## Githubリポジトリカード
## Github リポジトリカード
二重コロン構文 `::github{repo="owner/repo"}` を使用すると、Githubリポジトリカードを作成できます。ページの読み込み後、GitHub APIからリアルタイムでリポジトリデータが取得されます。
二重コロン構文 `::github{repo="owner/repo"}` を使用すると、Github リポジトリカードを作成できます。ページの読み込み後、GitHub API からリアルタイムでリポジトリデータが取得されます。
### 構文
@ -44,7 +44,7 @@ abbrlink: markdown-extended-features
## アドモニションブロック
GitHub構文 `> [!TYPE]` または三重コロン構文 `:::type` を使用して、アドモニションブロックを作成できます。`note``tip``important``warning``caution`5種類がサポートされています。
GitHub 構文 `> [!TYPE]` または三重コロン構文 `:::type` を使用して、アドモニションブロックを作成できます。`note``tip``important``warning``caution` 5 種類がサポートされています。
### 構文
@ -96,7 +96,7 @@ GitHub構文 `> [!TYPE]` または三重コロン構文 `:::type` を使用し
## 動画
YouTubeや他の動画プラットフォームから埋め込みコードを取得し、markdownファイルに貼り付けることで、動画を作成できます。`width``height`パラメータを保持する必要はありません。
YouTube や他の動画プラットフォームから埋め込みコードを取得し、markdown ファイルに貼り付けることで、動画を作成できます。`width``height` パラメータを保持する必要はありません。
### 構文

View file

@ -99,7 +99,7 @@ abbrlink: markdown-style-guide
>
> —— <cite>『秋の夜』[^1]</cite>
[^1]: 『[秋の夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))』は魯迅の散文詩集『野草』の最初の散文詩で、1924年に書かれました。
[^1]: 『[秋の夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))』は魯迅の散文詩集『野草』の最初の散文詩で、1924 年に書かれました。
```
#### 効果
@ -108,11 +108,11 @@ abbrlink: markdown-style-guide
>
> —— <cite>『秋の夜』[^1]</cite>
[^1]: 『[秋の夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))』は魯迅の散文詩集『野草』の最初の散文詩で、1924年に書かれました。
[^1]: 『[秋の夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))』は魯迅の散文詩集『野草』の最初の散文詩で、1924 年に書かれました。
## 表
ハイフン `---`3つ以上使用してタイトルを区切り、パイプ記号 `|` を使用して列を区切ることで、表を作成できます。
ハイフン `---` 3 つ以上使用してタイトルを区切り、パイプ記号 `|` を使用して列を区切ることで、表を作成できます。
### 構文
@ -132,7 +132,7 @@ abbrlink: markdown-style-guide
## コードブロック
コードの上部と下部に3つのバッククォート ```` ``` ```` を追加することで、コードブロックを作成できます。上部のバッククォートの後に言語タイプhtml、javascript、css、markdownなどを指定することで、シンタックスハイライトを実現できます。
コードの上部と下部に 3 つのバッククォート ```` ``` ```` を追加することで、コードブロックを作成できます。上部のバッククォートの後に言語タイプhtml、javascript、css、markdown など)を指定することで、シンタックスハイライトを実現できます。
### 構文
@ -174,15 +174,15 @@ abbrlink: markdown-style-guide
```markdown
1. 最初の項目
2. 2番目の項目
3. 3番目の項目
2. 2 番目の項目
3. 3 番目の項目
```
#### 効果
1. 最初の項目
2. 2番目の項目
3. 3番目の項目
2. 2 番目の項目
3. 3 番目の項目
### 順序なしリスト
@ -245,7 +245,7 @@ X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
ほとんどの<mark>サンショウウオ</mark>は夜行性で、昆虫や虫などの小さな生き物を捕食します。
3つのハイフン `---` または `<hr>` タグを使用して、以下のような水平線を作成できます。
3 つのハイフン `---` または `<hr>` タグを使用して、以下のような水平線を作成できます。
---
```
@ -266,6 +266,6 @@ X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
ほとんどの<mark>サンショウウオ</mark>は夜行性で、昆虫や虫などの小さな生き物を捕食します。
3つのハイフン `---` または `<hr>` タグを使用して、以下のような水平線を作成できます。
3 つのハイフン `---` または `<hr>` タグを使用して、以下のような水平線を作成できます。
---

View file

@ -99,7 +99,7 @@ abbrlink: markdown-style-guide
>
> —— <cite>《秋夜》[^1]</cite>
[^1]: 《[秋夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))》是魯迅散文詩集《野草》中的第一首散文詩創作於1924年。
[^1]: 《[秋夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))》是魯迅散文詩集《野草》中的第一首散文詩,創作於 1924 年。
```
#### 效果
@ -108,7 +108,7 @@ abbrlink: markdown-style-guide
>
> —— <cite>《秋夜》[^1]</cite>
[^1]: 《[秋夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))》是魯迅散文詩集《野草》中的第一首散文詩創作於1924年。
[^1]: 《[秋夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))》是魯迅散文詩集《野草》中的第一首散文詩,創作於 1924 年。
## 表格

View file

@ -99,7 +99,7 @@ abbrlink: markdown-style-guide
>
> —— <cite>《秋夜》[^1]</cite>
[^1]: 《[秋夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))》是鲁迅散文诗集《野草》中的第一首散文诗创作于1924年。
[^1]: 《[秋夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))》是鲁迅散文诗集《野草》中的第一首散文诗,创作于 1924 年。
```
#### 效果
@ -108,7 +108,7 @@ abbrlink: markdown-style-guide
>
> —— <cite>《秋夜》[^1]</cite>
[^1]: 《[秋夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))》是鲁迅散文诗集《野草》中的第一首散文诗创作于1924年。
[^1]: 《[秋夜](https://zh.wikisource.org/wiki/%E7%A7%8B%E5%A4%9C_(%E9%AD%AF%E8%BF%85))》是鲁迅散文诗集《野草》中的第一首散文诗,创作于 1924 年。
## 表格

View file

@ -8,7 +8,7 @@ lang: ja
abbrlink: theme-color-schemes
---
Retypesetは、[OKLCH](https://oklch.com/)カラースペースに基づいてテーマカラーを定義し、デフォルトでは印刷スタイルを模した白黒グレーの配色を採用しています。
Retypeset は、[OKLCH](https://oklch.com/) カラースペースに基づいてテーマカラーを定義し、デフォルトでは印刷スタイルを模した白黒グレーの配色を採用しています。
個性的なニーズに応えるため、テーマ用にいくつかの配色スキームを作成しました。[src/config.ts](https://github.com/radishzzz/astro-theme-retypeset/blob/master/src/config.ts) でデフォルトの配色を置き換え、**開発サーバーを再起動**して新しい配色をプレビューできます。

View file

@ -10,7 +10,7 @@ lang: ja
abbrlink: theme-guide
---
Retypesetは、日本語では「再組版」と呼ばれる、[Astro](https://astro.build/) フレームワークをベースにした静的ブログテーマです。本ガイドではテーマの設定変更方法と新しい記事の作成方法を紹介し、個人ブログを素早く構築できるよう支援します。
Retypeset は、日本語では「再組版」と呼ばれる、[Astro](https://astro.build/) フレームワークをベースにした静的ブログテーマです。本ガイドではテーマの設定変更方法と新しい記事の作成方法を紹介し、個人ブログを素早く構築できるよう支援します。
## テーマ設定
@ -30,10 +30,10 @@ site: {
i18nTitle: true // true, false
// 著者名
author: 'radishzz'
// サイトURL
// サイト URL
url: 'https://retypeset.radishzz.cc'
// ファビコンURL
// 推奨フォーマット: svg, png, ico
// ファビコン URL
// 推奨フォーマットsvg, png, ico
favicon: '/icons/favicon.svg' // または https://example.com/favicon.svg
}
```
@ -86,7 +86,7 @@ global: {
dateFormat: 'YYYY-MM-DD'
// デフォルトですべての記事に目次を表示
toc: true // true, false
// 数式表示のためのKaTeXを有効化
// 数式表示のための KaTeX を有効化
katex: true // true, false
// アニメーションと遷移効果を減らしてパフォーマンスを向上させる
reduceMotion: false // true, false
@ -119,7 +119,7 @@ comment: {
emoji: [
'https://unpkg.com/@waline/emojis@1.2.0/tw-emoji'
// 'https://unpkg.com/@waline/emojis@1.2.0/bmoji'
// その他の絵文字: https://waline.js.org/en/guide/features/emoji.html
// その他の絵文字https://waline.js.org/en/guide/features/emoji.html
]
// gif 検索
search: false // true, false
@ -152,14 +152,14 @@ seo: {
umamiAnalyticsID: '520af332-bfb7-4e7c-9386-5f273ee3d697'
// フォロー認証
follow: {
// フィードID
// フィード ID
feedID: ''
// ユーザーID
userID: ''
}
// APIFlash アクセスキー
// OpenGraph 用のウェブサイトスクリーンショットを自動生成
// アクセスキーの取得: https://apiflash.com/
// アクセスキーの取得https://apiflash.com/
apiflashKey: ''
}
```
@ -199,13 +199,13 @@ preload: {
// リンクプリフェッチ戦略
linkPrefetch: 'viewport' // hover, tap, viewport, load
// 画像ホスティング URL
// Markdownファイル内のリモート画像を最適化してレイアウトシフトを防止
// Markdown ファイル内のリモート画像を最適化してレイアウトシフトを防止
imageHostURL: 'https://image.radishzz.cc'
// カスタム Google Analytics JS
// アナリティクス JavaScript をカスタムドメインにルーティングするユーザー向け
customGoogleAnalyticsJS: ''
// カスタム Umami Analytics JS
// Umamiを自己デプロイしたり、アナリティクス JavaScript をカスタムドメインにルーティングするユーザー向け
// Umami を自己デプロイしたり、アナリティクス JavaScript をカスタムドメインにルーティングするユーザー向け
customUmamiAnalyticsJS: 'https://js.radishzz.cc/jquery.min.js'
}
```
@ -222,7 +222,7 @@ preload: {
// astro.config.ts
shikiConfig: {
// 利用可能なテーマ: https://shiki.style/themes
// 利用可能なテーマhttps://shiki.style/themes
// 背景色はデフォルトでシンタックスハイライトテーマではなく、ブログテーマに従います
themes: {
light: 'github-light' // ライトテーマ
@ -243,22 +243,22 @@ const EXCERPT_LENGTHS: Record<ExcerptScene, {
other: number // その他の言語
}> = {
list: { // ホームページ記事リスト
cjk: 120, // 先頭から120文字を自動抜粋
other: 240, // 先頭から240文字を自動抜粋
cjk: 120, // 先頭から 120 文字を自動抜粋
other: 240, // 先頭から 240 文字を自動抜粋
},
}
```
### Open Graph
[Open Graphソーシャルカード](https://orcascan.com/tools/open-graph-validator?url=https%3A%2F%2Fretypeset.radishzz.cc%2Fja%2Fposts%2Ftheme-guide%2F)スタイル。
[Open Graph ソーシャルカード](https://orcascan.com/tools/open-graph-validator?url=https%3A%2F%2Fretypeset.radishzz.cc%2Fja%2Fposts%2Ftheme-guide%2F) スタイル。
```ts
// src/pages/og/[...image].ts
getImageOptions: (_path, page) => ({
logo: {
path: './public/icons/og-logo.png', // ローカルパスのPNG形式が必要
path: './public/icons/og-logo.png', // ローカルパスの PNG 形式が必要
size: [250], // ロゴの幅
},
font: {
@ -274,13 +274,13 @@ getImageOptions: (_path, page) => ({
'https://cdn.jsdelivr.net/gh/notofonts/noto-cjk@main/Sans/SubsetOTF/SC/NotoSansSC-Regular.otf',
],
bgGradient: [[242, 241, 245]], // 背景色
// その他の設定: https://github.com/delucis/astro-og-canvas/tree/latest/packages/astro-og-canvas
// その他の設定https://github.com/delucis/astro-og-canvas/tree/latest/packages/astro-og-canvas
})
```
### RSSフィード
### RSS フィード
[RSSフィードページ](https://retypeset.radishzz.cc/ja/rss.xml)スタイル。
[RSS フィードページ](https://retypeset.radishzz.cc/ja/rss.xml) スタイル。
```html
<!-- public/feeds/xxx-style.xsl -->
@ -314,7 +314,7 @@ title: テーマ使用ガイド
published: 2025-01-26
# 任意
description: 記事の最初の120文字が自動的に要約として選択されます。
description: 記事の最初の 120 文字が自動的に要約として選択されます。
updated: 2025-03-26
tags:
- ブログテーマ
@ -341,7 +341,7 @@ abbrlink: theme-guide
#### toc
目次を生成するかどうか。h2からh4までの見出しを表示します。デフォルトではグローバル設定項目 `global.toc` によって決定されますが、記事ごとに個別に設定して上書きすることもできます。
目次を生成するかどうか。h2 から h4 までの見出しを表示します。デフォルトではグローバル設定項目 `global.toc` によって決定されますが、記事ごとに個別に設定して上書きすることもできます。
#### lang
@ -366,7 +366,7 @@ src/content/posts/apple.md -> example.com/ru/posts/apple/
#### abbrlink
記事のURLをカスタマイズします。小文字、数字、ハイフン `-` のみ使用できます。
記事の URL をカスタマイズします。小文字、数字、ハイフン `-` のみ使用できます。
```md
# src/config.ts

View file

@ -33,7 +33,7 @@ site: {
// 站點地址
url: 'https://retypeset.radishzz.cc'
// 站點圖標
// 推薦格式: svg, png, ico
// 推薦格式svg, png, ico
favicon: '/icons/favicon.svg' // 或 https://example.com/favicon.svg
}
```
@ -119,7 +119,7 @@ comment: {
emoji: [
'https://unpkg.com/@waline/emojis@1.2.0/tw-emoji'
// 'https://unpkg.com/@waline/emojis@1.2.0/bmoji'
// 更多表情: https://waline.js.org/en/guide/features/emoji.html
// 更多表情https://waline.js.org/en/guide/features/emoji.html
]
// gif 搜索
search: false // true, false
@ -159,7 +159,7 @@ seo: {
}
// apiflash access key 訪問密鑰
// 自動生成網站截圖用於 open graph
// 獲取訪問密鑰: https://apiflash.com/
// 獲取訪問密鑰https://apiflash.com/
apiflashKey: ''
}
```

View file

@ -33,7 +33,7 @@ site: {
// 站点地址
url: 'https://retypeset.radishzz.cc'
// 站点图标
// 推荐格式: svg, png, ico
// 推荐格式svg, png, ico
favicon: '/icons/favicon.svg' // 或 https://example.com/favicon.svg
}
```
@ -119,7 +119,7 @@ comment: {
emoji: [
'https://unpkg.com/@waline/emojis@1.2.0/tw-emoji'
// 'https://unpkg.com/@waline/emojis@1.2.0/bmoji'
// 更多表情: https://waline.js.org/en/guide/features/emoji.html
// 更多表情https://waline.js.org/en/guide/features/emoji.html
]
// gif 搜索
search: false // true, false
@ -159,7 +159,7 @@ seo: {
}
// apiflash access key 访问密钥
// 自动生成网站截图用于 open graph
// 获取访问密钥: https://apiflash.com/
// 获取访问密钥https://apiflash.com/
apiflashKey: ''
}
```