Pages

Thursday, 20 March 2014

在linux vps上搭建基于java(clojure)的静态博客程序-nakkaya static

首先下载一个脚本lein(https://raw.github.com/technomancy/leiningen/stable/bin/lein)并把它放到你的环境变量里,我直接把它丢到了/usr/local/bin下面.

wget  https://raw.github.com/technomancy/leiningen/stable/bin/lein
cp lein /usr/local/bin/
chmod 755 /usr/local/bin/lein
lein deps
lein uberjar
git clone https://github.com/nakkaya/static
cd static

as3:~/static# ls ~/static/
project.clj  readme.org  src test
as3:~/static# cd src/static/
as3:~/static/src/static# ls
config.clj  core.clj  io.clj
as3:~/static/src/static# git clone https://github.com/nakkaya/nakkaya.com nakkaya.com-site
as3:~/static/src/static# cd nakkaya.com-site
as3:~/static/src/static/nakkaya.com-site# ls       
config.clj deploy.sh  resources      
as3:~/static/src/static/nakkaya.com-site# wget http://dropbox.nakkaya.com/builds/static-app.jar
as3:~/static/src/static/nakkaya.com-site# ls       
config.clj deploy.sh  resources static-app.jar
as3:~/static/src/static/nakkaya.com-site# java -jar static-app.jar --build
(这个就是生成/更新静态网站的命令)
as3:~/static/src/static/nakkaya.com-site# ls
config.clj deploy.sh html resources static-app.jar
(新出现了html目录)
as3:~/static/src/static/nakkaya.com-site# cd html
as3:~/static/src/static/nakkaya.com-site/html# ls
2009              code                         net-eval.html
2010              contact.html                 projects.html
2011              default.css                  robots.txt
2012              dotfiles                     rss-feed
2013              easy-dns.html                sitemap.xml
2014              googlefd0478405f199051.html  static.html
alter-ego.html    images                       status-404.html
archives.html     inbox-feed.html              tags
BingSiteAuth.xml  index.html                   video
clodiuno.html     makeWay.html                 vision.html
CNAME             mocha.html                   y_key_990b3e6c7d54f368.html
as3:~/static/src/static/nakkaya.com-site/html#
可见~/static/src/static/nakkaya.com-site/html/就是静态网站的根目录。
as3:~/static/src/static/nakkaya.com-site/html# nohup Rwebserver 43216 > /dev/null &
访问http://as3.brite.biz:43216/即可看到网站效果。

发贴方法:
as3:~/static/src/static/nakkaya.com-site/html# cd ../resources
as3:~/static/src/static/nakkaya.com-site/resources# ls
posts  public  site  templates
as3:~/static/src/static/nakkaya.com-site/resources# cd posts
as3:~/static/src/static/nakkaya.com-site/resources/posts# nano 2014-03-16-test2.markdown
按~/static/src/static/nakkaya.com-site/resources/posts/里面的2009-05-05-installing-debian-on-eeepc.markdown的格式,新建帖子2014-03-16-test2.markdown,格式如下:
---
title: 测试2
tags: misc1 misc2
---

这是测试2.

给源帖命名时,最好如下命名(加上蓝色部分
2014-03-20_1701-super-talk.markdown
2014-03-20_1709-chinese-economy.markdown
2014-03-20_1713-cheating.markdown
2014-03-20_1725-smiling-face.markdown
这样发表后,帖子绝对是按发布的时间顺序排列的,否则是杂乱排列的。
然后,
as3:~/static/src/static/nakkaya.com-site/resources/posts# cd ~/static/src/static/nakkaya.com-site
as3:~/static/src/static/nakkaya.com-site# java -jar static-app.jar --build

 注意:~/static/src/static/nakkaya.com-site/resources/posts/里面有很多.org文件,这些org文件发表后,(即转化为.html文件后),转化而成的html的内容是空的。如果一个个的把这些org文件的格式改为markdown的格式,工作量太大了。事实上,可把这些org文件移动到基于emacs mode的静态博客程序的源贴目录里,(比如http://briteming.blogspot.co.uk/2014/03/linux-vpsemacsorgmode-bastibe.html里的~/Projects/blog/posts/),然后再用那个基于emacs mode的静态博客程序把这些org文件转化为html文件,因为所有的org文件的格式是通用的:
mv  ~/static/src/static/nakkaya.com-site/resources/posts/*.org ~/Projects/blog/posts/
cd  ~/Projects/blog/posts/
emacs index.org
你在网上找到的任何org文件都可这样做(比如这里https://github.com/kelvinh/kelvinh.github.com/tree/source/下的blog目录和wiki目录里的org文件。可下载其压缩包文件-https://github.com/kelvinh/kelvinh.github.com/archive/source.zip;又比如这里https://github.com/tuhaihe/blog/tree/master/emacs-blog/www/里的org文件,不要复制它的css目录和index.org),这样你就轻易把别人的文章据为己有了。

这是基于java的程序,所以当然你需先安装java/jdk环境。建议安装java7/jdk7环境。

演示站点:http://as3.brite.biz:43216/,http://nky.brite.biz.st
项目地址:https://github.com/nakkaya/static
https://github.com/nakkaya/nakkaya.com
教程:http://nakkaya.com/static.html

别人的fork版:https://github.com/terhechte/static
以及用它所建的网站的源码:https://github.com/terhechte/appventure-blog