使用Nikola建立个人网站

本文最近更新于: 2016-11-30

  • Jupyter notebook是一款非常好用的编辑器。它最大的优点在于可以在浏览器中编辑代码并即时显示出图表。
  • Nikola是一款基于Python的静态网页生成器
  • GitHub是托管代码网站。此外,GtiHub还可用于发布Nikola生成的网站。

安装 Jupyter Notebook

首先确定你的操作系统,并下载相应的 Miniconda 并安装。

安装完成后,在终端输入 conda --version 将会显示conda的版本。

现在,可以使用 conda 安装相应组件,例如ipython-notebook。

In [ ]:
conda install ipython-notebook

使用Jupyter Notebook,在终端输入:

In [ ]:
jupyter notebook

安装 Nikola

建议使用conda 创建一个虚拟的环境,以方便管理:

(此处YOUR_ENV_NAME是自己指定的名字)

In [ ]:
conda create --name YOUR_ENV_NAME python=3

激活刚刚创建的conda环境,在终端中输入:

In [ ]:
source activate YOUR_ENV_NAME

使用pip安装:

(miniconda 中自带了pip,无需重新安装)

In [ ]:
pip install nikola

初始化站点

首先使用cd, mkdir新建一个文件夹用于存放站点资源。

假设我们目前已经在站点文件夹的目录下,初始化:

(注意代码最后有一个点,代表当前目录)

In [ ]:
nikola init .

初始化后,将会在目录中看到一个conf.py的文件。

使用文本编辑器打开conf.py,并在如下两处编辑:(文字很多,建议使用搜索)

In [ ]:
POSTS = (
    ("posts/*.ipynb", "blog", "post.tmpl"),
    ("posts/*.md", "blog", "post.tmpl"),
    ("posts/*.rst", "blog", "post.tmpl"),
    ("posts/*.txt", "blog", "post.tmpl"),
)
PAGES = (
    ("pages/*.md", "", "story.tmpl"),
    ("pages/*.ipynb", "", "story.tmpl"),
    ("pages/*.rst", "", "story.tmpl"),
    ("pages/*.txt", "", "story.tmpl"),
)

这样做的目的是让你以默认jupyter notebook的格式发布新博文

初始化Git

还是在站点的目录下,初始化git:

In [ ]:
git init
git add *
git commit -am "Initial commit"

你还需要在GitHub上注册一个账号,然后创建一个项目库(repository).

将站点目录和内容推送到GitHub的服务器上:

In [ ]:
git remote add origin https://github.com/USERNAME/PROJECTNAME.git
git push origin

USERNAME和PROJECTNAME依然需要你自己定义,例如,这个博客,我的GitHub的username就是yafei777, projectname就是Yafei-blog

写文章

我们可以先写一个jupyter notebook格式的博文:

In [ ]:
nikola new_post -f ipynb

启动一个jupyter notebook来编辑刚刚创建的空文章:

In [ ]:
jupyter notebook posts

写好保存后,让nikola生成静态页面,并显示到浏览器上:

In [ ]:
nikola auto

注意! 如果遇到提示什么有某个python包没有安装,只需 pip install PACKAGE 就可以了, 此处的PACKAGE是提示缺少的包名。

发布到GitHub Pages上

GitHub pages服务是免费的,此时也先不需要另外购买域名。当然你也可以发布到其它服务器上,没有问题。

打开文本编辑器编辑conf.py:

In [ ]:
GITHUB_SOURCE_BRANCH = 'master'
GITHUB_DEPLOY_BRANCH = 'gh-pages'
GITHUB_REMOTE_NAME = 'origin'

好了,现在可以让nikola自动发布到GitHub上去了,只需在终端中输入:

In [ ]:
nikola github_deploy

完成之后应该就可以在 https://USERNAME.github.io/PROJECTNAME 中看到了创建的网站和第一篇文章了!

以后发布文章的操作流程

以发布Markdown文件为例

  1. 打开终端(Terminal),激活环境:source activate nikola,如果是win系统:activate nikola。此处,nikola是我conda环境的名字,参考上文。
  2. 转到网站目录,新建博文:nikola new_post -f markdown
  3. ./posts/目录下打开上一步创建的文件并修改。
  4. 编译:nikola build
  5. 发布到GitHub:nikola github_deploy

发布ipython notebook文件,可以在Notebook里插入Metadata:

Edit -> Edit Notebook Metadata

"nikola": { "date": "2016-11-21 12:27:12 UTC+08:00", "title": "使用Nikola建立个人网站", "description": "", "link": "", "type": "text", "category": "", "slug": "jupyter-nikola-and-github", "tags": "" },

注释