CodeSky 代码之空

随手记录自己的学习过程

MWeb 发布到任意系统的研究

2021-02-13 17:52分类: Other评论: 0

最新的 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

之后你就会发现你的命令会自动执行而不是你人工去复制粘贴了,当然,仅仅是这样是不够的,我们还需要的是:

  1. 标题信息
  2. 文章创建时间
  3. 文章分类
  4. 文章 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)