阿里云ubuntu14.04 python Image模块问题

0X1 说明

在使用阿里云的时候(ubuntu14.04 64位,python v2.7.6),Image模块提示找不到,使用pip安装也不行的问题

0X2 解决办法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 删除原有的PIL包
rm -rf /usr/local/lib/python2.7/dist-packages/PIL
apt-get install libjpeg-dev libfreetype6-dev zlib1g-dev libpng12-dev
wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
tar xzvf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
// 修改安装环境参数
vi setup.py
TCL_ROOT = '/usr/lib/x86_64-linux-gnu'
JPEG_ROOT = '/usr/lib/x86_64-linux-gnu'
ZLIB_ROOT = '/usr/lib/x86_64-linux-gnu'
TIFF_ROOT = '/usr/lib/x86_64-linux-gnu'
FREETYPE_ROOT = '/usr/lib/x86_64-linux-gnu'
LCMS_ROOT = '/usr/lib/x86_64-linux-gnu
// 创建freetype软连接
sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
python2.7 setup.py install

sitemesh使用

0X1 说明

sitemesh可以将不同的页面进行组合,通过过滤器来给页面填充header,footer

  • sitemesh2.x无法使用嵌套装饰;另外不能装饰jsp,velocity,freemark以外的页面(其实可以,需要自定义Filter,然后对模板进行解析)
  • sitemesh3.x有装饰器链,可以将一个页面通过多个装饰器进行装饰;不依赖JSP,velocity等框架,可以装饰任何页面

0X2 使用

2.x版本就不在这里说明了,新项目需求使用 jetbrick模板渲染,2.x中需要重写SitemeshFilter才行。

sitemesh3.0.0

  1. maven中使用,添加至pom

    1
    2
    3
    4
    5
    <dependency>
    <groupId>org.sitemesh</groupId>
    <artifactId>sitemesh</artifactId>
    <version>3.0.0</version>
    </dependency>
  2. 在WEB-INF下添加sitemesh3.xml文件
    这里的decorator可以是WEB-INF下的页面路径,也可以是URL,区别是指定路径时不会渲染模板,纯html输出,而指定URL时会编译渲染模板,但是这里有点需要注意,/admin/main输出页面中的模板变量是不能引用body.jetx中的。原因:sitemesh过滤的时候,先请求path,然后在请求decorator,最后合并内容输出至页面。

    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="UTF-8"?>
    <sitemesh>
    <mapping path="/admin/main" decorator="/WEB-INF/view/body.jetx"/>
    <mapping path="/admin/index" decorator="/admin/base"/>
    </sitemesh>
  3. body.jetx

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <html>
    <head>
    <title><sitemesh:write property="title"/></title>
    <sitemesh:write property="head"/>
    </head>
    <body>
    <sitemesh:write property="body"/>
    </body>
    </html>

搭建hexo + github pages

0X1 安装包

Git

Node.js

1
2
wget https://nodejs.org/dist/v0.12.6/x64/node-v0.12.6-x64.msi
// install

Hexo

1
npm install -g hexo-cli

0X2 初始化

创建hexo文件夹

1
hexo init <folder>

安装Hexo插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
npm install hexo --save
npm install hexo-generator-index --save
npm install hexo-generator-archive --save
npm install hexo-generator-category --save
npm install hexo-generator-tag --save
npm install hexo-server --save
npm install hexo-deployer-git --save
npm install hexo-deployer-heroku --save
npm install hexo-deployer-rsync --save
npm install hexo-deployer-openshift --save
npm install hexo-renderer-marked@0.2 --save
npm install hexo-renderer-stylus@0.2 --save
npm install hexo-generator-feed@1 --save
npm install hexo-generator-sitemap@1 --save

安装主题

1
2
git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia
npm install hexo-renderer-ejs --save

使用主题需要修改_config.yml中的theme参数,示例:

1
theme: carbon

0X3 使用和调试

启动本地服务器

1
hexo server

0X4 GitHub配置SSH keys

检查本机ssh keys

1
2
3
cd ~/.ssh
ls
// 查看

生成新的ssh keys

1
2
3
4
ssh-keygen -t rsa -C 'hyqiu.syen@gmail.com'
// 回车
// 输入加密串
// 生成成功

添加ssh keys至GitHub中

  • cat ~/.ssh/id_rsa.pub,复制输出内容
  • 打开连接GitHub ssh设置,添加SSH key
  • 复制内容至Key中即可

测试

1
2
3
ssh -T git@github.com
// yes
// 查看是否成功

0X5 Hexo自动部署

部署至Github

修改_config.yml文件

1
deploy:
  type: git
  repository: git@github.com:jacksyen/jacksyen.github.io.git
  branch: master

部署命令行文件

1
2
hexo clean
hexo deploy --generate

0X6 常见问题

  • livereload自动监控文件修改,无需F5,这里不建议使用,在安装过程中,遇到必须安装.net framework sdk 2.0,才能使用,但是安装后还是不行,sdk 2.0中并不包含VCBuild.exe文件,估计还得装VC等等,测试平台:win7 x64,nodejs-2.11.2