写blog确实是一种消化和深入理解知识的方式,但往往要整理一个完整的主题相当的耗时间。

平时我也想记一记一些有用然而散乱的tips,慢慢积累起来。

作为一位Vim忠实粉,我理所当然找到了大名鼎鼎的Vim插件Vimwiki,

并开始借此搭建我的个人wiki。

用pathogen这个管理Vim插件的插件把Vimwiki安装上后,需要在.vimrc中加入一些设置,其中最重要的是指定你所写的wiki源文件的路径和要发布的html文件的路径:

let g:vimwiki_list = [{'path': '~/my_site/', 'path_html': '~/public_html/'}]

接下来就可以在你所指定的'path'下创建.wiki文件,编辑完后是用以下Vim命令

:Vimwiki2HTML

Vimwiki插件就会自动将该.wiki文件转化为同名的html页面(例如topic.wiki生成的是topic.html)并把html放到你所指定的'path_html'下。

如果要转化所有条目可以用以下的Vim命令:

:VimwikiAll2HTML

有了html页面,自然想发布到某网站上。我选择了提供pages服务的业界良心Github,创建一个名为wiki的新repo(https://github.com/yszheda/wiki),把'path_html'上的html文件托管到上面,并通过gh-pages分支发布我的Project pages(http://yszheda.github.io/wiki/)。

页面的样式我偷懒直接使用了Github官方提供的Architect主题,为了让该主题应用到所有Vimwiki生成的html页面上,需要修改Vimwiki插件目录下的autoload/vimwiki/default.tpl模板文件:

%title%

Wiki

by yszheda

View project onGitHub

%content%

Wiki maintained by yszheda

This page was generated by GitHub Pages using the Architect theme by Jason Long.

接下来要折腾的就是自动发布Vimwiki生成的html页面了。

我写了一个简单的auto-deploy.sh脚本:

#!/bin/bash

path_html= # set your vimwiki html path

cd $path_html

git checkout gh-pages

git add *.html

git commit -m"syn at `date`"

git push origin gh-pages

再把它设置为定时作业,可以用经典的crontab,例如crontab -e后加入:

* 20 * * * //auto-deploy.sh

设置每日晚上八点自动发布。

不过作为一名Arch user,很早之间就当小白鼠从sysvinit迁移到了systemd,自然要试试这个高大上的systemd。

systemd也支持定时作业,以我的例子来讲,我希望每日定时发布,可以从创建一般的daily event开始。

编辑/etc/systemd/system/timer-daily.timer文件:

[Unit]

Description=Daily Timer

[Timer]

OnBootSec=10min

OnUnitActiveSec=1d

Unit=timer-daily.target

[Install]

WantedBy=basic.target

编辑/etc/systemd/system/timer-daily.target文件:

[Unit]

Description=Daily Timer Target

StopWhenUnneeded=yes

创建以下目录,作为接下来要被执行的具体的定时作业的服务设置文件的路径:

mkdir /etc/systemd/system/timer-daily.target.wants

在该目录下添加具体要被执行的定时作业的服务设置文件/etc/systemd/system/timer-daily.target.wants/syn-vimwiki.service:

[Unit]

Description=syn vimwiki

[Service]

Nice=19

IOSchedulingClass=2

IOSchedulingPriority=7

ExecStart= //auto-deploy.sh

最后执行

systemctl enable timer-daily.timer && systemctl start timer-daily.timer

即可。

设置按小时或按星期定时发布也是可以的,

万能的Arch wiki上都有详细的说明。

===我是分隔线===

后来我又改主意了,想频繁更新,同时也不想像wiki那样搞得那么麻烦。于是我把syn-wiki单独出来,syn-vimwiki.service文件移到它的父目录(/etc/systemd/system/),同时给它设个独立的timer。以下是/etc/systemd/system/syn-vimwiki.timer文件的内容:

[Timer]

OnUnitActiveSec=10s

OnBootSec=10s

[Install]

WantedBy=basic.target

最后执行

systemctl enable syn-vimwiki.timer && systemctl start syn-vimwiki.timer

systemctl restart syn-vimwiki.service

===我是分隔线===

关于systemd再多啰嗦几句,迁移到systemd后自然还是可以用原来的cron服务的,如果某一天你打了鸡血,突然变激进了,想把cron撤掉换成纯systemd(Arch发行版就经常干这种事XD),在执行

systemctl stop cronie && systemctl disable cronie

之前,别忘了加入logrotate、man-db-update、mlocate-update、verify-shadow这些服务的配置文件。

至于具体的内容,万能的Arch wiki也早为不折腾不死的你准备好了XD

wiki服务器网页地址,搭建个人wiki站点相关推荐

  1. 苍蓝誓约wiki 服务器维护,苍蓝誓约wiki

    苍蓝誓约wiki是一款精品二次元游戏,苍蓝誓约wiki当中拥有全新的舰娘形象,为玩家带来更多趣味内容体验,还有各种不同的角色可以尽情的搜集.各种不同的互动玩法,在游戏当中,拥有独家故事剧情,各种主线任 ...

  2. Dreamweaver (DW)结合 Tomcat 服务器 搭建动态jsp 站点

    目录 一.Dreamweaver (DW)结合 Tomcat 服务器 搭建动态jsp站点所需软件: 二.站点搭建过程: 1).Tomcat 服务器的安装: 2).Tomcat的测试 3).Tomcat ...

  3. 浏览器打开网页但找不到服务器ip地址 DNS错误 解决办法

    文章目录 一. 问题: 二.解决办法: 一. 问题: 电脑连网了,浏览器打开网页找不到服务器ip地址,DNS错误. 二.解决办法: 打开设置–>点击"网络和Internet" ...

  4. wifi有网可以连接,但打不开网页了,找不到 服务器 dns 地址

    wifi有网可以连接,但打不开网页了,找不到 服务器 dns 地址 问题背景 解决方案 总结 Lyric: 我知道你的痛 问题背景 网上着上着就断了,找不到 服务器 dns 地址 解决方案 1 打开网 ...

  5. win10网页找不到服务器dns,教你win10打开网页提示无法解析服务器dns地址的解决教程。...

    最近有win10系统用户反馈,在win10系统中遇到了网页无法打开,提示无法解析服务器DNS,想必有很多用户都遇到过这样的问题吧,该怎么解决呢,下面小编教你win10打开网页提示无法解析服务器dns地 ...

  6. Wiki Windows环境下搭建Wiki.js

    叙述 官网:https://wiki.js.org/ Github:https://github.com/requarks/wiki 文档地址:https://docs.requarks.io/ins ...

  7. 搭建与配置网站公网服务器地址,搭建自己的dns域名解析服务器地址

    搭建自己的dns域名解析服务器地址 内容精选 换一换 当您想在Internet上通过域名访问您的网站时,可以通过本操作将域名托管至华为云的云解析服务,并为域名添加解析记录.例如,搭建一个网站服务器,采 ...

  8. 服务器上登录网页ip地址,服务器ip作为网页地址

    服务器ip作为网页地址 内容精选 换一换 虚拟IP地址用于为网卡提供第二个IP地址,同时支持与多个弹性云服务器的网卡绑定,从而实现多个弹性云服务器之间的高可用性.登录管理控制台.选择"计算 ...

  9. ad域服务器站点,如何变更站点 AD 域服务器IP地址

    在 winserver 2012  单森林单域,多站点环境中,想把某一个站点AD 域服务器IP地址更改,要如何操作,才能保证客户端正常运行,不影响客户端的运行.有些朋友也经常提出类似问题. 想在不影响 ...

最新文章

  1. linux删除U盘分区、创建分区和格式化
  2. 数据类型长度、原反补码及移位
  3. hana::detail::variadic::reverse_apply用法的测试程序
  4. 反射机制----Method,Field,Constructor
  5. 配置IntelliJ IDEA
  6. java语言实现一个长度为n_Java语言实现求解一元n次多项式的方法示例[Java代码]...
  7. 【设计模式 06】原型模式(克隆??)
  8. 铺砖问题JAVA_java彩色瓷砖编程题分析
  9. 完整解决方案:让你的IIS 支持PHP方法
  10. css框模型、定位、浮动
  11. c语言的一些字符串库函数的自己实现
  12. JDBC09 CLOB文本大对象
  13. 计算机专业人才需求大吗,对计算机专业人才需求现状
  14. Python任意输入若干数求和
  15. VirtualBox安装及网络配置
  16. 杀人游戏规则总结(转自龙的天空)
  17. System.Data.SqlClient.SqlError: Exclusive access could not be obtained because the database is in us
  18. java设计计算器_Java复数计算器的设计
  19. 先有鸡还是先有蛋的争论
  20. 计算机文字输入程序,电脑上怎么输入汉字

热门文章

  1. 英伟达RTX 2080/2080Ti发布及UltraLAB采用最新turing图灵架构深度学习硬件配置推荐
  2. AMiner论文推荐——Large-scale Localization Datasets in Crowded Indoor Spaces
  3. win ce车载系统_巨好用的飞利浦车载充电器
  4. ReactNative入门(一)——环境搭建及第一个RN项目—HelloWorld
  5. ios::exceptions()函数
  6. 树分治(挑战p360)
  7. 龙之谷2微信哪个服务器,龙之谷2微信区
  8. CMU 11-785 L16 Connectionist Temporal Classification
  9. Android--Telephony
  10. 由FlexBox算法强力驱动的Weex布局引擎