k0nnyaku @ k0nnyaku.me

Init

Apr 29

这是一篇初始化博客文章,用于测试 Markdown 渲染及数学公式支持。

数学公式测试

行内公式

质能方程 E=mc2E = mc^2,勾股定理 a2+b2=c2a^2 + b^2 = c^2,欧拉恒等式 eiπ+1=0e^{i\pi} + 1 = 0。

行间公式

Maxwell 方程组 — 高斯电场定律:

∮∂ΩE⋅dS=1ϵ0∭ΩρdV\oint_{\partial \Omega} \mathbf{E} \cdot d\mathbf{S} = \frac{1}{\epsilon_0} \iiint_\Omega \rho \, dV

高斯磁场定律:

∮∂ΩB⋅dS=0\oint_{\partial \Omega} \mathbf{B} \cdot d\mathbf{S} = 0

法拉第电磁感应定律:

∮∂ΣE⋅dℓ=−ddt∬ΣB⋅dS\oint_{\partial \Sigma} \mathbf{E} \cdot d\ell = -\frac{d}{dt} \iint_\Sigma \mathbf{B} \cdot d\mathbf{S}

安培-麦克斯韦定律:

∮∂ΣB⋅dℓ=μ0∬ΣJ⋅dS+μ0ϵ0ddt∬ΣE⋅dS\oint_{\partial \Sigma} \mathbf{B} \cdot d\ell = \mu_0 \iint_\Sigma \mathbf{J} \cdot d\mathbf{S} + \mu_0 \epsilon_0 \frac{d}{dt} \iint_\Sigma \mathbf{E} \cdot d\mathbf{S}

信息熵:

H(X)=−∑i=1nP(xi)logbP(xi)H(X) = -\sum_{i=1}^{n} P(x_i) \log_b P(x_i)

傅里叶变换:

f^(ξ)=∫−∞∞f(x)e−2πixξdx\hat{f}(\xi) = \int_{-\infty}^{\infty} f(x) \, e^{-2\pi i x \xi} \, dx

贝叶斯定理:

P(A∣B)=P(B∣A)P(A)P(B)P(A \mid B) = \frac{P(B \mid A) \, P(A)}{P(B)}

矩阵

(a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn)\begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix}

代码测试

// TypeScript 类型体操
type DeepReadonly<T> = {
  readonly [K in keyof T]: T[K] extends object
    ? T[K] extends Function ? T[K] : DeepReadonly<T[K]>
    : T[K]
}

interface User {
  name: string
  profile: {
    avatar: string
    bio: string
  }
}

type ReadonlyUser = DeepReadonly<User>
//   ^? { readonly name: string; readonly profile: { readonly avatar: string; readonly bio: string } }
// Rust: 斐波那契
fn fibonacci(n: u64) -> u64 {
    match n {
        0 => 0,
        1 => 1,
        _ => fibonacci(n - 1) + fibonacci(n - 2),
    }
}

表格测试

方法时间复杂度空间复杂度稳定
冒泡排序O(n2)O(n^2)O(1)O(1)是
快速排序O(nlogn)O(n \log n)O(logn)O(\log n)否
归并排序O(nlogn)O(n \log n)O(n)O(n)是
堆排序O(nlogn)O(n \log n)O(1)O(1)否

持续优化

后续可按需添加渲染插件,例如 markdown-it-katex:

pnpm add -D markdown-it-katex katex

然后在 vite.config.ts 的 markdownItSetup 中添加:

import mk from 'markdown-it-katex'
md.use(mk)

>