Date Tags 教程

前言

网上也有好多关于在windows下用Pelican创建Blog的文章,但好多文章一个流程走下去,不说为什么那么做,那个命令是用来干嘛的,所以如果在那个流程中遇到什么问题就很难解决。

目录

搭建需求

Python pip Pelican Markdown Git Markdown编辑器 make

Python安装

可以直接到官网下载Python安装包,也可以安装Anaconda。 Anaconda集成了Python很多常用的工具和库,如pip。

pip安装

pip是Python的一个包管理器,非常方便。如果安装Python的时候通过Anaconda安装就自带pip,否则须自行安装pip,网上搜吧。

Pelican Markdown安装

这是一个python库,用来将Markdown文件转换为Html文件需要的工具。安装方法如下:

pip install pelican
pip install markdown

Git安装

可以通过官网上的Github Desktop去安装,不过这样安装的话下载速度会比较慢。可以搜索Github for windows离线版之类的关键词搜到离线包,下载安装即可。

Markdown编辑器

Markdown编辑器有好多。windows下有Markdown Pad,MdCharm等等吧。Markdown pad我下载后无法安装,所以我就用MdCharm。我想编辑器应该都差不多了吧,反正一边写,另一边能看就可以了。

开始搭建博客

好了现在环境是配好了,开始搭建我们的博客吧。

mkdir blog
cd blog
pelican-quickstart

mkdir,cd这两个就不用说了吧。 pelican-quickstart 是用pelican库去创建一个项目。根据提示一步步输入相应的配置项,不知道如何设置的接受默认即可,后续可以通过编辑pelicanconf.py文件更改配置) 一下是生成的目录结构

blog/
├── content              # 存放输入的源文件
│   └── (pages)          # 存放手工创建的静态页面
├── output               # 生成的输出文件
├── develop_server.sh    # 方便开启测试服务器
├── Makefile             # 方便管理博客的Makefile
├── pelicanconf.py       # 主配置文件
└── publishconf.py       # 主发布文件,可删除

写博文

在content目录下用Markdown语法来写一篇文章。 文章的开头一定要有虾米那这些关键字,make publish的时候会报错。

Date: xxxx-xx-xx
Title: xxxx
Tags: xxxxx
Category: xxxxx
Slug: xxxxxx

写完博文之后就可以通过下面的命令生成网页了。

make publish

运行完这个命令后会在output文件夹里生成好多网页和文件夹,就是这个网站的css,image还有各种其他东西。要注意的是,这个命令会将原来的东西删除了再重新生成的。下面会讲到如何配置才能不全部删除再生成。 如果想通过网页看看博客的效果可以用下面这个命令

make serve

执行上面那条命令就会建一个服务器吧。可在本机http://127.0.0.1:8000 看到效果。有些浏览器可能说没有证书没法打开。我用Opera无法打开,用Chrome正常打开。

到此为止,在本地的工作就完成了。需要将本地的项目上传到github上了。 进入到output文件夹。 用下面这条命令生成一个.git文件,记录这个项目是否修改之类的信息。

git init

将这个文件夹与github上的仓库绑定。就是说之后push的时候知道往哪push

git remote add origin https://github.com/username/username.github.io.git

将修改的文件信息添加到.git中

git add .
git commit -m "update"

将文件上传到github上

git push origin master

就这样,github上的文件就跟你本地上的一样了。可以通过访问site_username.github.io来访问你的内容了。

为了开发方便,你也可以用它的makefile文件去发布你的网页。 makefile文件有两个地方需要修改的。

publish:
    $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)

github: publish
    cd $(OUTPUTDIR) && git add .
    cd $(OUTPUTDIR) && git commit -am 'commit' 
    cd $(OUTPUTDIR) && git push  origin $(GITHUB_PAGES_BRANCH)

原来文件是这样的

publish:
    $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)

github: publish
    ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
    git push origin $(GITHUB_PAGES_BRANCH)

原来的publish中的$(PUBLISHCONF)指向的脚本会清楚原来文件夹里的东西再生成html文件的,而$(CONFFILE)指向的脚本只是更新。我们.git仓库的东西不希望被删除,所以一定要修改成上面的那个形式。 github那一栏原来的内容我不太懂,但是主要就是想执行我们之前通过命令行进行上传的3条命令。所以我就改为上面所示,之所以每条命令前面都要加"cd $(OUTPUTDIR) &&"是因为执行完一条命令后它的当前目录就变为了执行make命令的目录,不相信的朋友可以在github那一栏中加一句命令dir看看。


Comments

comments powered by Disqus