3 个稳定版本
1.0.2 | 2019年4月25日 |
---|---|
1.0.1 | 2019年2月25日 |
0.9.9 |
|
0.0.1 |
|
964 在 文本处理 中排名
每月 25 下载
20KB
435 行
CSI
CSI — 客户端包含 - 是处理文本文件目录的工具。它允许您定义包含其他文件的文件,并替换变量。
主要用例是使构建纯 HTML 网站变得更容易。
功能
- 处理文件目录
- 在文件中包含其他文件
- 将变量设置为任意值
- 在文件中包含环境和作用域变量值
安装
您可以在 Github 发布 页上找到 Linux 和 macOS 的静态二进制文件。
或者,您可以使用 cargo
在 Rust 支持的任何平台上安装此工具。
cargo install csi
用法
csi <input-directory> <output-directory> [--ext <extension>]...
例如,给定以下命令
csi src target/dist --ext .html --ext .css
CSI 将遍历输入目录并处理所有文件。
- 如果文件以
_
开头,它将被跳过。 - 如果文件以
.html
或.css
结尾,它将被处理并写入输出目录。 - 如果没有,它将被逐字复制到输出目录。
请注意,目录结构被保留。
指令
CSI 的功能通过 指令 提供,这些是文件中的简单语句。指令用 []
括起来 -- 例如 [include raw my-file.html]
。指令是空格分隔的参数列表。
为了简化其行为,CSI 不删除空白。如果指令无法解析,程序将失败退出。
变量替换
您可以使用 var
或 opt
指令将环境变量替换到文件中。 var
表示变量是必需的,而 opt
表示它是可选的。
如果变量未定义,并且使用了 opt
,则指令将评估为空字符串。
格式
var <format> <variable>
opt <format> <variable>
格式可以是 html
或 raw
。如果为 html
,它将被转义以在 HTML 文档中使用。如果为 raw
,它将被直接替换。
使用 raw
时,请确保您不会受到 XSS 攻击的威胁。
<p>Hello [var html MY_VAR]</p>
设置
您可以为当前文件或包含的文件设置变量。
格式
set <name> <value>
示例
[set name John]
[include raw _template.html]
存储
存储将所有当前评估内容放入指定的变量中。存储指令之后的内容将被排除。这有助于在文件中定义一些内容,然后在渲染变量的模板上下文中评估它。也称为装饰器模式。
格式
stash <variable>
示例
<p>This is my content</p>
[stash content][require _layout.html]
包含
您可以在其他文件中包含文件。如果一个文件包含一个包含自己的文件,该包含将被忽略以打破循环。
文件路径相对于正在处理的文件。
如果文件不存在,则指令将评估为空字符串。
格式
include <format> [path]
格式可以是 html
或 raw
。如果为 html
,它将被转义以在 HTML 文档中使用。如果为 raw
,它将被直接替换。
使用 raw
时,请确保您不会受到 XSS 攻击的威胁。
示例
<pre>[include raw /etc/passwd]</pre>
需要
您可以在其他文件中需要文件。如果一个文件包含一个包含自己的文件,程序将以失败退出。
文件路径相对于正在处理的文件。
如果文件不存在,程序将以失败退出。
格式
require <format> [path]
格式可以是 html
或 raw
。如果为 html
,它将被转义以在 HTML 文档中使用。如果为 raw
,它将被直接替换。
使用 raw
时,请确保您不会受到 XSS 攻击的威胁。
示例
<pre>[require raw /etc/passwd]</pre>
变更日志
1.0.2 - 2019-04-25
- 修复破坏
[var html <name>]
使用的错误
1.0.1 - 2019-02-24
- 没有功能更改。
- 使用 TravisCI 的自动化管道构建和发布。
1.0.0 - 2019-02-24
- 初始发布。