logo
Square Fong
@squarefong

生于忧患,咸鱼安乐


Github   Twitter


Powered by  Square Fong 


简单博客发布工具
2018/02/05    tag:  Play Linux

前言

你现在看到的这个网页,就是我一行行代码手动在文本编辑器里面敲出来的,还用python3写了个自动更新的工具。这里简要记录一下整个搭建以及使用过程,以备忘。

使用条件

本工具需要一个git服务器,当然,我是挂在github上。最好做到面密登录,故需要ssh生成密钥,然后添加到Deploy Key里面去。博客的生成会从markdown转换,而且只能支持和我一样的目录结构。更新管理依赖于mysql,会读取库以判断哪些需要更新。本文以Ubuntu 16.04为例(别问我为啥是ubuntu,aliyun自带的Linux是centOS和Ubuntu,我又不熟悉红帽系的,只能Ubuntu)

服务器端准备

安装Python及需要的Lib

# apt install python3 python3-pymysql

安装mysql

# apt install mysql-server

安装会要求设置密码,这个密码记好,等会有用

安装完了最好不要创建库,先更改默认编码,用文本编辑器打开/etc/mysql/mysql.conf.d/mysqld.cnf,更改两处地方。一处在20多行处,添加如下代码:

[mysqld]
character-set-server=utf8

添加后效果如下:

另一处在90行左右,添加:

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

添加后截图如下:

保存并退出后,重启mysql服务:

# systemctl restart mysql.service

然后可以登录mysql确认一下,服务器的编码:

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 46
Server version: 5.7.21-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>  show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

如果表格中的内容和我的一样则修改成功(默认的latin真的会导致乱码,一句mmp不知当讲不当讲),然后就可以创建数据库了,库的名字待会也要用,当然,我不介意跟我用一样的。

# mysqladmin -u root -p creat squareBlog

安装markdown转换工具pandoc

# apt install pandoc

这工具可以把markdown转html,不仅支持表格和代码,还支持简单的tex,除了标准比较严格,没啥不好。具体建议可以看看这个: Pandoc Markdown写作规范

生成ssh key

# ssh-keygen

然后一路按回车就行了,没事别找麻烦

默认生成的公钥在 ~/.ssh/id_rsa.pub 中,将其内容复制出来,到 GayHub GitHub上的你的markdown项目上添加一下即可

安装Nginx

# apt install nginx

安装好之后默认的网页根目录是/var/www/html,所以我的工具里面默认的博客根目录就在此,改地方也行,甚至不用nginx也行,等会记得改配置就行

Github准备

那个用来更新markdown项目的,有没有别的东西不重要,但是这几样一定得有:一个名为articles的文件夹,一个名为media的文件夹,一个名为tag.json的文件。articles为博客的更新的文章的来源,media为博客中插入的图片的存放位置,tag.json为每篇博文的分类,如果没有写进去,默认分类为Default。

以及刚才说的公钥就是添加到这个项目里面。

博客安装

登录到VPS,首先找个方便的地方,把整个工具clone下来

# git clone https://github.com/SquareFong/squareBlogTool.git
# cd squareBlogTool

squareBlogTool下面有一个Templates文件夹,该文件夹下InitBlog中,有几处需要修改,不是因为别的,是因为自动工具不会更新他们,毕竟很少改动的东西。frieds.html就是友链,是好友博客的链接,About下的index.html是关于,自己用html写点关于自己的介绍进去。resources下的logo.jpg是网站头像,会出现在网页右侧和标签栏,自己替换一下。如果想改配色,需要自己改CSS。Templates文件夹下,Info.html即右侧信息栏,需要改成自己的哦,刚才的说的那俩的html别忘了把右侧信息栏的那块也一起改了。

squareBlogTool目录下的Generate.py就是更新工具了。其中gitAddress和blogRootPath和mysql开有的四项都写成自己的,不然会报错的。

改好上面的信息后执行它,参数-i表示初始化,-u表示更新,没啥可用的了。。。

# ./Generate.py -i
# ./Generate.py -u

个人博客最后效果如下


Home
Posts
Friends
About