MWeb 发布到任意系统的研究

最新的 MWeb 已经可以支持一个叫 PanDoc & Run Script 的选项了,排除 PanDoc 的部分,他本质就是可以自定义 Shell 的一个功能,最近正好在研究 Typecho 要不要切成某些静态的博客系统的问题,但是苦于静态博客系统不能很好地结合 MWeb,所以还在纠结中,利用这个 Shell 就可以自定义命令,很好的执行我们需要的操作。

-w742

配置完 Script,你就能在原本的发布文章的位置看到他:

-w272

点击会提示你需要手动复制执行,所以这里我们需要一段官网也有的 shell 代码(根据官网的改了,因为官网的我没法执行),存在你的 .bashrc 或者 .zshrc 中:

if (pbpaste | grep '^sh ".*/site_publish_logs/sh_.*\.sh"')
then
    echo "========== MWEB AUTO PUBLISH START =========="
    echo "Runing command:"
    pbpaste | sh

    echo "Success!"
    echo "Clean pasteboard..."
    echo -n "" | pbcopy
    echo "==========  MWEB AUTO PUBLISH END  =========="
    echo "Close terminal 5s later..."
    sleep 5
    exit
fi

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

  1. 标题信息
  2. 文章创建时间
  3. 文章分类
  4. 文章 Tags

在内部资源库内,这些虽然可以设置,但自定义 shell 与他没有强关联,但是通过我们资源库的设置地址,我们找到了 main.lib 这个 DB,articles 中的 uuid 就是我们的文件名,本身为 {{uuid}}.md。从中我们就可以拿到关联的 categories 和 tags,在对其中的文本进行处理,拼接上我们想要的部分就可以了。

当然,现实问题还是有的,这部分脚本如果要用 sh 去做的话还是很麻烦的,所以推荐和一些语言结合去跑,会方便很多。

通过对文本的处理,我们就可以实现诸如 hexo 中的效果了:

---
title: 111
category:
  - Other
tags:
  - 代码
---

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: 知识

添加新评论