Utils to process my blog posts.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cat
lazyload
outputs
tests
.gitignore
.travis.yml
LICENSE
Makefile
README.md
conf.json.in
cp.pl
lazyload.in.txt
lazyload.pl
main.css
make.sh

README.md

Blog Utils

Build Status

用于处理我的 博客源码

虽然代码有点丑(我还是先把我想要的结果弄出来,Perl 的模块化我都没看……)但是功能基本有了。

cp.pl

用于提取 markdown 文件中的链接、tag。文件 tests/sample01.md 经由 cp.pl 会生成 outputs/sample01.md(去掉了标记)、 outputs/sample01.readinglistoutputs/sample01.tags。 生成的 readinglist 文件和 tags 文件会被整合成一个索引。

# cp md file, extract tags, patch anchors, etc
perl cp.pl \
        tests/sample01.md \
        outputs/sample01.readinglist \
        outputs/sample01.tags > \
        outputs/sample01.md

# cp 并不 encrypt 文件名 hash,由 merge 来处理合并时可能的冲突问题。
# cp 基本测试通过,现在到 blog 里面去实际应用。

merge.pl

这部分还没写好。被 cat.pl 替代了。

# TODO: merge all md files
perl merge.pl \
    ...

cat.pl

cat.pl 实现的是 include 其它 markdown 文件的功能。源码见 cat/cat.pl, 效果见 readme.txt

filter.pl

已经用在了 blog 里,见 https://github.com/district10/blog/blob/master/filter.pl。 filter 的目的是,使得 travis 只处理最新的 commit/push 更新了的文件,这样可以减少 生成 html 文件的时间,也可以减少七牛云盘的同步时间。

lazyload.pl

想让网页中的图片提前处理成 lazyload 的格式,而不是在线用 jQuery 处理。 不过用正则表达式似乎有点难(很多 corner cases,你不能直接匹配字符就修改,还应该 判断文档当前的状态,比如:当前行是在 <code> 标签内吗?)。

sitemap.pl

用来生成站点的 sitemap(xml 和 txt 格式),源码: blog/sitemap.pl at master · district10/blog

因为我的站点是扁平的(所有文件都在 root 目录),所以我用了 ls *.html, 或许你要用 find . -iname "*.html"

CuteWatchDog

用来监控目标文件夹下文本的变动。比进行相应的操作。源码见 district10/CuteWatchDog: Watch dir or file for changes, and run certain commands. Written in C++ (Qt4).


TODO

  • 好像用 Haskell 写 filter 更容易……:removeNotes.hs
  • 以后可以考虑用这重新实现这些功能,毕竟我测到的,我的 cp.pl 效率比 cp 慢好多: