Skip to content

district10/blog

Repository files navigation

Blog

Build Status

workflow:

make
make serve
make watch

Intro / 简介

这是我的博客源码,用 Markdown 写,用 Makefile 管理,用 travis 自动生成 HTML 并 同步到七牛(具体看我的 .travis.yml)。

使用了 git(版本控制,文档历史信息提取)、make(管理输出)、 perl(文本处理、从 git 提取文档历史信息)、pandoc(文档转化)。

Online / 在线访问

Get a Copy / 源码和打包输出

Build one / 从 Markdown 源码生成

如果你想自己从 markdown 生成 html,只需要简单几步。

Windows 操作系统:

Linux 操作系统(debian 系):

Live mode / 在线预览

$ java -jar watcher.jar

Koans / 吐槽

  • travis 的虚拟机下载国内的七牛云,速度居然有 40M/s!速度平均 20M/s+ 的样子。
  • 但是如果装一个 texlive-full,下载 2G 多的文件,还是有点捉急……
  • 所以啊,即便能够用 travis 帮我把所有 post 编译出 pdf 版本和 docx 版本,我也只弄过一次。
  • 一个是我提供这样的连接,自己的七牛流量就要爆!二是,太不节能。
  • 为了节能我现在已经把编译 md-> html 优化到只处理修改了的:见 filter.pl
  • 但后来我不怎么 filter 了,因为……反正是 travis 帮我编译……

Editor Configuration / 编辑器设置

  • For Windows
    • add gvim path to %PATH%
    • set %EDITOR% to gvim, like Configure EDITOR
    • in your .bashrc or .zshrc: export EDITOR="gvim -u ~/git/blog/vimrc.vim", be sure to use export
    • echo "source /path/to/_vimrc/file" > ~/.vimrc%HOME% on win: /c/Users/Administrator
  • For Linux
    • set $EDITOR to gvim (vim file.txt & 会出错,而我 Makefile 里都是$(EDITOR $< &),所以小心罗。)

TODO / 要做

  • script to tranlate vimrc to perl code highlight, etc.
  • 把 notes.md 分成多个文本,比如 note{001..999}.md,然后分别生成 html(非 standalone),然后用 ajax 来 load 各个 html 片段, 这样的好处是可以依旧在一个文本里编辑(反正 vim 编辑 100M+ 的文本都是无压力的),但会自动转化为多个片段,加载起来更快。 唯一的不好的地方在于,可能会和图片延迟加载冲突。

Plan / 计划

Customized Markdown

    - tags, indexes
    - anchoring via                                         `@`{.tzx-anchor #id}
    - tagging/anchoring via                                 `tag`{.tzx-tag}
    - tagging/anchoring via                                 <#>(@tag1 @tag2), <#id>(@tag1 @tag2)
    - including other file via                              <#>(%filename option1=value1) => format: dl{[dd, dt[ ,->dt]]}
    - checking
        + 首字母是中文标点
        + 但行长度过长
    - links
        + [title](#section)
        + [word](%meaning,`[pronunciation]`,url)

New Start / 新的方向?

「Koan | 吐槽」

发现自己在重复造轮子,而且造得不好!Pandoc 有 --filter--file-scope 的概 念,正好对应我的 filter.plmerger.pl,我……只能说英雄所见略同了…… 这些 Perl 脚本还在用,但计划以后用 Pandoc 的 filter。

「Refs | 参考文档」

「New Plan | 新的计划」

  • 不再用 Perl 的正则表达式转换 Markdown,而是用 Perl 或者 Haskell 直接修改 Pandoc 的 AST;
  • CSS 也不再大的调整,有了图片的延迟加载,差不多就够用了。用上 jQuery 后感觉自己原来用纯 JavaScript 实在太累太愚蠢。可能用 Less 或者 Sass
  • Dogfalo/materialize: Materialize, a CSS Framework based on Material Design