Total Pageviews

Sunday, 12 January 2014

在linux vps上搭建基于python的静态博客程序-wok

pip install virtualenv
virtualenv dev
cd ~/dev
source bin/activate (这样就启用了python的虚拟环境. 建议在python的虚拟环境里面安装wok,否则以后的操作容易遇错.参见此帖http://briteming.blogspot.com/2013/12/linux-vpspythonvirtualenvpython27-hyde.html的上部的蓝色文字)

cd ~/dev/src
git clone https://github.com/mythmon/wok
cd wok
python setup.py install (不要先运行pip install -r requirements.txt . 如果以后遇到缺乏什么包,比如xyz==1.2.3 ,就运行pip install xyz==1.2.3来安装它
(生成的可执行文件wok会出现在~/dev/bin/里面
wok --version
显示:
wok v1.1.1

然后看这里http://wok.mythmon.com/tutorial/,创建一些东西:
MySite/
  |-- content/
  |-- templates/
  |-- media/
   -- config (这是文件)
演示:http://as3.brite.biz:45394/,不过已发布的文章,比如http://as3.brite.biz:45394/test1.html并不会自动显示在首页。

不过为了省事,我们可以克隆他人的网站如下:
cd /usr/local
mkdir wok-site
cd wok-site
git clone https://github.com/mostawesomedude/website corbinsimpson.com
cd corbinsimpson.com
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com# ls
config  content  media  passenger_wsgi.py  templates
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com# wok
WARNING:root:Textile not enabled.
WARNING:root:You didn't specify a title in content/index.rst. Using the file name as a title.
(wok就是生成/更新静态网站的根目录的命令)
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com#
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com# ls
config  content  media  output  passenger_wsgi.py  templates
(生成了output目录)
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com# cd output
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com/output# ls
cst.html          index2.html  index6.html  index.html       styles.css
entries           index3.html  index7.html  matrix-keys.png
highlighting.css  index4.html  index8.html  resume.html
images            index5.html  index9.html  rss.xml
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com/output#
(有index.html,可见/usr/local/wok-site/corbinsimpson.com/output就是静态网站的根目录)

新建源帖:
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com/output# cd ../content
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com/content# 
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com/content# cd entries
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com/content/entries# nano test-1.rst
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com/content/entries# cat test-1.rst
title: 测试1
type: entry
category: entries
datetime: 2017-04-07 16:22:12
---

这是测试1.

看看如何?

(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com/content/entries# cd ../..
(dev) root@localhost:/usr/local/wok-site/corbinsimpson.com# wok

演示网站:http://cbss.bright.biz.st/,http://corbinsimpson.com(原站)
项目地址:https://github.com/mythmon/wok
https://github.com/mostawesomedude/website


再克隆第2人的网站如下:
cd /usr/local/wok-site
hg clone https://bitbucket.org/sourcemage/website sourcemage.org
cd sourcemage.org

(dev) root@localhost:/usr/local/wok-site/sourcemage.org# ls
hat.gzip.py  hat.py  mage.py  news  pages  static  templates
(dev) root@localhost:/usr/local/wok-site/sourcemage.org# cd news
(dev) root@localhost:/usr/local/wok-site/sourcemage.org/news# ls
config  content  hooks  templates  wok.sh
(dev) root@localhost:/usr/local/wok-site/sourcemage.org/news# wok
(dev) root@localhost:/usr/local/wok-site/sourcemage.org/news# pip install lxml


再克隆第3人的网站如下:

 再克隆第4人的网站如下:
cd /usr/local/wok-site
git clone https://github.com/mythmon/mythmon.com
cd mythmon.com

(dev) root@localhost:/usr/local/wok-site/mythmon.com# ls
bin     content  media   README.md         tasks.py
config  LICENSE  output  requirements.txt  templates
(dev) root@localhost:/usr/local/wok-site/mythmon.com# wok
(dev) root@localhost:/usr/local/wok-site/mythmon.com# ls
bin     content  media   README.md         tasks.py
config  LICENSE  output  requirements.txt  templates
(生成了output目录)
(dev) root@localhost:/usr/local/wok-site/mythmon.com# cd output
(dev) root@localhost:/usr/local/wok-site/mythmon.com/output# ls
CNAME  favicon.ico  feed.xml  img  index.html  keybase.txt  posts  spectral.sh  styles
(dev) root@localhost:/usr/local/wok-site/mythmon.com/output#
(可见/usr/local/wok-site/mythmon.com/output就是静态网站的根目录)

新建源帖:
(dev) root@localhost:/usr/local/wok-site/mythmon.com/output# cd ../content
(dev) root@localhost:/usr/local/wok-site/mythmon.com/content# ls
footer.mkd  posts  posts.mkd  rss.txt
(dev) root@localhost:/usr/local/wok-site/mythmon.com/content# cd posts
(dev) root@localhost:/usr/local/wok-site/mythmon.com/content/posts# nano 2017-04-09-test-1.md
(dev) root@localhost:/usr/local/wok-site/mythmon.com/content/posts# cat 2017-04-09-test-1.md
title: 测试1
date: 2017-04-09
category: posts
tags: [misc1, misc2, misc3]
---

这是测试1。

看看如何?

(dev) root@localhost:/usr/local/wok-site/mythmon.com/content/posts#  cd ../..
(dev) root@localhost:/usr/local/wok-site/mythmon.com# wok

演示网站:http://mmc.bright.biz.st
项目地址:https://github.com/mythmon/wok
https://github.com/mythmon/mythmon.com
同一天内,所发表的帖子不是按发表的时间顺序排列的。


 再克隆第5人的网站如下:
cd  /usr/local/wok-site
git clone https://github.com/OSULUG/OSULUG-Website lug.oregonstate.edu
cd lug.oregonstate.edu

(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu# ls
build.sh  content              hooks     requirements.txt
config    event_template.dist  media  README.md  templates
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu# wok
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu# ls
build.sh  content              hooks  output     requirements.txt
config    event_template.dist  media  README.md  templates
(生成了output目录)
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu# cd output
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu/output# ls
aaroncohen     blog        connorchristensen  css           guide       js
about          book-club   constitution       danielgrocki  img         mindmelt
andrewekstedt  chriskeltz  contact            events        index.html
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu/output#
(可见/usr/local/wok-site/lug.oregonstate.edu/output就是静态网站的根目录)

新建源帖:
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu/output# cd ../content
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu/content#
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu/content# cd blog
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu/content/blog# nano test-1.mkd
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu/content/blog# cat test-1.mkd
title: "测试1"
category: blog
author: brite fisherman
datetime: 2017-04-09 14:17:00
---

这是测试1.

看看如何?

(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu/content/blog# cd ../..
(dev) root@localhost:/usr/local/wok-site/lug.oregonstate.edu# wok

演示网站:http://loe.bright.biz.st,http://loe.bright.biz.st/blog
项目地址:https://github.com/mythmon//wok
https://github.com/OSULUG/OSULUG-Website
这个OSULUG-Website程序有点怪,其源帖支持“datetime: 2017-04-09 14:17:00” 这样的精确到几点几分几秒的时间格式,但是所发表的帖子竟然不是按发表的时间顺序排列的!


再克隆第6人的网站如下:
cd /usr/local/wok-site
git clone https://github.com/philipbjorge/philipbjorge.com
cd philipbjorge.com

root@localhost:/usr/local/wok-site/philipbjorge.com# ls
config  content  media  README.mkd  templates
root@localhost:/usr/local/wok-site/philipbjorge.com#  nano config
(把base_url的值改为你要绑定的根目录的域名地址,我的是http://pbc.bright.biz.st)
root@localhost:/usr/local/wok-site/philipbjorge.com# wok
root@localhost:/usr/local/wok-site/philipbjorge.com# ls
config content  media  output  README.mkd  templates
(生成了output目录)
root@localhost:/usr/local/wok-site/philipbjorge.com#  cd output
root@localhost:/usr/local/wok-site/philipbjorge.com/output# ls
archived_wp_blog  css          get_stream.php  index.php  portfolio
blog              favicon.ico  helpers.php     js         robots.txt
contact           feed.rss     images          lib        update_stream.php
root@localhost:/usr/local/wok-site/philipbjorge.com/output# mv index.php  index.html
( 这样,/usr/local/wok-site/philipbjorge.com/output目录含有index.html,可见/usr/local/wok-site/philipbjorge.com/output就是静态网站的根目录。你需绑定你的域名到此目录)

新建源帖:
root@localhost:/usr/local/wok-site/philipbjorge.com/output# cd ../content
root@localhost:/usr/local/wok-site/philipbjorge.com/content# cd blog-entries
root@localhost:/usr/local/wok-site/philipbjorge.com/content/blog-entries# nano test-1.markdown
root@localhost:/usr/local/wok-site/philipbjorge.com/content/blog-entries# cat test-1.markdown
---
title: 测试1
datetime: 2017-04-09 17:40:11
type: entry
category: blog
snippet: 点击标题,看全文
---

这是测试1.

看看如何?

root@localhost:/usr/local/wok-site/philipbjorge.com/content/blog-entries# cd ../..
root@localhost:/usr/local/wok-site/philipbjorge.com# wok
root@localhost:/usr/local/wok-site/philipbjorge.com# cd output
root@localhost:/usr/local/wok-site/philipbjorge.com/output# mv index.php index.html

演示网站:http://pbc.bright.biz.st,http://pbc.bright.biz.st/blog/
项目地址:https://github.com/mythmon//wok
https://github.com/philipbjorge/philipbjorge.com

相关帖子:

终于解决在一些基于python的静态博客程序里,不能成功发表中文文章的问题

附录:今天2016-08-02日,重新安装wok,发现wok能支持发表中文贴了。
打开/usr/local/lib/python2.7/dist-packages/目录,一看,发现里面有一个unidecode。估计就是这个unidecode包起了作用。应该可以用pip install unidecode来安装它。