0

MWeb 发布到任意系统的研究

 2 years ago
source link: https://www.codesky.me/archives/mweb-to-blog-publish.wind
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

MWeb 发布到任意系统的研究

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

-w742

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

-w272

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

  1. if (pbpaste | grep '^sh ".*/site_publish_logs/sh_.*\.sh"')
  2. then
  3. echo "========== MWEB AUTO PUBLISH START =========="
  4. echo "Runing command:"
  5. pbpaste | sh
  6. echo "Success!"
  7. echo "Clean pasteboard..."
  8. echo -n "" | pbcopy
  9. echo "========== MWEB AUTO PUBLISH END =========="
  10. echo "Close terminal 5s later..."
  11. sleep 5
  12. exit
  13. fi

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

  1. 文章创建时间
  2. 文章 Tags

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

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

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

  1. ---
  2. title: 111
  3. category:
  4. - Other
  5. tags:
  6. - 代码
  7. ---

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

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

标签: 知识


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK