Skip to content

district10/blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b13d8e6 · Nov 15, 2022
Feb 15, 2020
Nov 15, 2022
Feb 4, 2020
Jan 29, 2020
May 14, 2017
Jan 10, 2020
Jan 10, 2020
Feb 15, 2020
Jan 10, 2020
Feb 15, 2020
Nov 5, 2015
Feb 15, 2020
Jan 8, 2020
Nov 15, 2022
Mar 22, 2016
Dec 23, 2016
Mar 23, 2016
Jan 1, 2020
Dec 10, 2016
Mar 23, 2016

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