距离上次写博客已经四个多月了。四个多月以来我好像做了很多事情,又好像什么都没做。总之,是时候做一点改变了。

任何之前在网络上的身份都被我我一一扔掉了。我不再是 Truestlesst532,或是 Yumiko R 了。

同时,我也为本博客更换了样式。受杰出的 Tesla Ice Zhang(https://ice1000.org)与 Belleve Invis(https://typeof.net)的影响(抱歉在此处唐突提到名字),我也附庸风雅,换为了简单的风格。具体变更如下:

  • 更简单的排版
  • 更换了字体
    • 西文更换为了 Source Serif Pro
    • 中文更换为了宋体。
  • 分割线改为『* * *』
  • 页宽改为最大 750px
  • 表格扩展到 100% 页宽并更改为更加简单的风格
  • 图片居中并应用恰当的缩放
  • 更换了 About Me 的内容
  • 去掉了部分无用的 Categories
  • CI 迁移到 GitHub Actions
  • 的标识符 $...$$$...$$ 实行转义。例如,前面这句话中的就没有被解析。

祝阅读愉快。


# Heading 1 标题一

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 这是一段测试文字。这是一段测试文字。

# Heading 2 标题二

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 这是一段测试文字。这是一段测试文字。

# Heading 3 标题三

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 这是一段测试文字。这是一段测试文字。

# Heading 4 标题四

data HinaError
  = HEParse (Report T.Text [Token])
  | HEResolve ResolveError
  | HETyck TyckError
  deriving (Show)

type HinaEff m = (Members '[Error HinaError, State CoreMapping] m, FreshEff m)

hina :: HinaEff m => T.Text -> Eff m [Core.Def]
hina txt = do
  let tokens = tokenize (T.unpack txt)
  ast <- case fullParses (parser prog) tokens of
    ([x], _) -> pure x
    (_, r)   -> throwError $ HEParse r
  resolved <- runError $ evalState (ResolveContext Map.empty Map.empty) $ resolveAll ast
  resolved' <- case resolved of
    Left e  -> throwError (HEResolve e)
    Right x -> pure x
  headChecked <- runError $ evalState (LocalCtx IntMap.empty) $ traverse checkHead resolved'
  case headChecked of
    Left e  -> throwError (HETyck e)
    Right _ -> pure ()
  bodyChecked <- runError $ evalState (LocalCtx IntMap.empty) $ traverse checkBody resolved'
  case bodyChecked of
    Left e  -> throwError (HETyck e)
    Right x -> pure x

runHina :: T.Text -> Either HinaError [Core.Def]
runHina = run . runError . evalState (CoreMapping IntMap.empty) . evalFresh 0 . hina
# Heading 5 标题五
This Is A Table
Row1 - - -
Row2 2 - -
Row3 3 3 -
Row4 4 4 4
# Heading 6 标题六

BERRYMAN-LANGFORD

copy: Feather fractal, Kevin Dooley, CC-BY 2.0, src.