MWeb 发布到任意系统的研究
最新的 MWeb 已经可以支持一个叫 PanDoc & Run Script 的选项了,排除 PanDoc 的部分,他本质就是可以自定义 Shell 的一个功能,最近正好在研究 Typecho 要不要切成某些静态的博客系统的问题,但是苦于静态博客系统不能很好地结合 MWeb,所以还在纠结中,利用这个 Shell 就可以自定义命令,很好的执行我们需要的操作。
配置完 Script,你就能在原本的发布文章的位置看到他:
点击会提示你需要手动复制执行,所以这里我们需要一段官网也有的 shell 代码(根据官网的改了,因为官网的我没法执行),存在你的 .bashrc
或者 .zshrc
中:
1if (pbpaste | grep '^sh ".*/site_publish_logs/sh_.*\.sh"')
2then
3 echo "========== MWEB AUTO PUBLISH START =========="
4 echo "Runing command:"
5 pbpaste | sh
6
7 echo "Success!"
8 echo "Clean pasteboard..."
9 echo -n "" | pbcopy
10 echo "========== MWEB AUTO PUBLISH END =========="
11 echo "Close terminal 5s later..."
12 sleep 5
13 exit
14fi
15
之后你就会发现你的命令会自动执行而不是你人工去复制粘贴了,当然,仅仅是这样是不够的,我们还需要的是:
- 标题信息
- 文章创建时间
- 文章分类
- 文章 Tags
在内部资源库内,这些虽然可以设置,但自定义 shell 与他没有强关联,但是通过我们资源库的设置地址,我们找到了 main.lib
这个 DB,articles
中的 uuid 就是我们的文件名,本身为 {{uuid}}
.md。从中我们就可以拿到关联的 categories 和 tags,在对其中的文本进行处理,拼接上我们想要的部分就可以了。
当然,现实问题还是有的,这部分脚本如果要用 sh 去做的话还是很麻烦的,所以推荐和一些语言结合去跑,会方便很多。
通过对文本的处理,我们就可以实现诸如 hexo 中的效果了:
1---
2title: 111
3category:
4 - Other
5tags:
6 - 代码
7---
8
9当然,目前还没有实践,仅作为纸上谈兵阶段的研究。
评论 (0)