如果你想在 python 项目中使用 stylus

Stylus 是用 node.js 写的,所以在 nodejs 项目中集成 Stylus 是一件很方便的事情,特别是 expressjs 这样的 web framework 直接配置下就可以用了。在 expressjs 中一旦你修改了 .styl 文件,立马就会被转换成同名的 .css 文件。

如果你想在 Python 项目中获得这样的特性,不妨来试试我写的一个 python package 吧: live-stylus

由于这个 package 依赖 python stylus ,python stylus 最终是要依赖 nodejs 和 stylus node package 的,所以你还是需要安装 nodejs 和 stylus node package 的。

如果你没有使用过 nodejs ,请在 nodejs 官网查看安装方法,然后:

npm install -g stylus

即可完成 stylus node package 的安装。然后:

pip install live-stylus

即可安装 live-stylus 。使用方法非常简单,比如在一个 Flask 项目中:

from flask import Flask
from live_stylus import ConvStylus

app = Flask(__name__)

from views import *

if __name__ == "__main__":
    app.debug = True
    ConvStylus()
    app.run()

这样就可以监控你项目中的所有 .styl 文件的变化,从而实时的转换成 .css 文件了。更多的说明和使用方式请参考此项目的github 主页

BASE64 编码规则

Base64 编码是一种可以把二进制文件编码成文本的编码规则。在很多地方地方都有用到,比如我们可以把图像转成 Base64 编码,然后内联到 HTML 或者 CSS 中。

Base64 编码用一些很常见的 ASCII 字符来表示 0-63 ,构成 6 个 bit 。用 A-Z 表示 0-25 ,a-z 表示 26-51 , 0-9 表示 52-61 , + 表示 62, / 表示 63 。那怎么把一个 byte(8bit) 用这种只能表示 6 bit 的字符表示呢?转换规则如下:

很简单吧,就是用4个 Base64 编码来表示 3 个 byte 的内容。

如果到末尾,凑不齐 3 byte 怎么办呢?如果只有一个 byte ,就在后面补4个 0 bit ,构成 2 个 Base64 编码,如果余下 2 byte ,就补 2 个 0bit ,构成 3 个 Base64 编码。理论上,这样做就足够判断最后还剩下几个 byte ,但是有些系统需要明确指明最后剩下的 byte ,需要用 = 号来把 Base64 编码的个数补全到 4 的倍数。也就是如果最后余下了一个 byte , 就在编码后的字符补上 == ,如果余下了 2 byte ,就补上 = .

有了这些知识就知道Base64的基本规则,想了解更多的请阅读:http://en.wikipedia.org/wiki/Base64