使用Nikola建立个人网站
本文最近更新于: 2016-11-30
- Jupyter notebook是一款非常好用的编辑器。它最大的优点在于可以在浏览器中编辑代码并即时显示出图表。
- Nikola是一款基于Python的静态网页生成器
- GitHub是托管代码网站。此外,GtiHub还可用于发布Nikola生成的网站。
conda install ipython-notebook
使用Jupyter Notebook,在终端输入:
jupyter notebook
conda create --name YOUR_ENV_NAME python=3
激活刚刚创建的conda环境,在终端中输入:
source activate YOUR_ENV_NAME
使用pip安装:
(miniconda 中自带了pip,无需重新安装)
pip install nikola
nikola init .
初始化后,将会在目录中看到一个conf.py的文件。
使用文本编辑器打开conf.py,并在如下两处编辑:(文字很多,建议使用搜索)
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:
git init
git add *
git commit -am "Initial commit"
你还需要在GitHub上注册一个账号,然后创建一个项目库(repository).
将站点目录和内容推送到GitHub的服务器上:
git remote add origin https://github.com/USERNAME/PROJECTNAME.git
git push origin
USERNAME和PROJECTNAME依然需要你自己定义,例如,这个博客,我的GitHub的username就是yafei777, projectname就是Yafei-blog
写文章¶
我们可以先写一个jupyter notebook格式的博文:
nikola new_post -f ipynb
启动一个jupyter notebook来编辑刚刚创建的空文章:
jupyter notebook posts
写好保存后,让nikola生成静态页面,并显示到浏览器上:
nikola auto
注意! 如果遇到提示什么有某个python包没有安装,只需 pip install PACKAGE
就可以了, 此处的PACKAGE是提示缺少的包名。
GITHUB_SOURCE_BRANCH = 'master'
GITHUB_DEPLOY_BRANCH = 'gh-pages'
GITHUB_REMOTE_NAME = 'origin'
好了,现在可以让nikola自动发布到GitHub上去了,只需在终端中输入:
nikola github_deploy
完成之后应该就可以在 https://USERNAME.github.io/PROJECTNAME 中看到了创建的网站和第一篇文章了!
以后发布文章的操作流程¶
以发布Markdown文件为例
- 打开终端(Terminal),激活环境:
source activate nikola
,如果是win系统:activate nikola
。此处,nikola是我conda环境的名字,参考上文。 - 转到网站目录,新建博文:
nikola new_post -f markdown
- 在
./posts/
目录下打开上一步创建的文件并修改。 - 编译:
nikola build
- 发布到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": ""
},
注释