连续点亮的椅子
slit的Python项目详细描述
关于
slit或sequential lit是一个用于创建 令人信服的,准确的软件教程,用最少的努力。
Slit借鉴了文学编程学院的课程 由他们自己的文档生成。但是,在其他工具集中的地方 关于程序是什么,slit关注如何编写程序,以及 提供更丰富的语法来表示程序的sequence 从头到尾的创作。
通过这样做,slit将识字编程变成了一个不可阻挡的工具。 为创建引人注目的,可证明准确的编程教程。
功能
- 及时全面控制代码和文档结构
- 仔细记录每一步,包括错误的转弯, 回溯,扩展现有代码
- 生成工作,复杂,多文件,多语言程序 单个教程中的示例
- 将shell命令直接输出到文档中,以显示 程序的进展
谁用slit?
- 狭缝是LameStation programming tutorials的核心 (发展中)
- 您正在阅读的自述文件是用 ./slit -s README.lit。
安装
slit是一个python脚本,已经用python 2.7进行了测试。
用法
在尽量减少新语法的同时,slit添加了一些 很难找到的有用功能。
基础知识
slit使用markdown作为文档格式,但是可以与任何 编程语言。
slit文件应该用.lit扩展名标记,附加到 常规文件扩展名。
hello_world.c.lit
slit的工作原理是允许您将代码组装到单独的容器中,然后 从他们那里建立你的文件
代码容器在 一个人排队。它们必须缩进才能被接受为代码宏
Here is our hello world example! << main >= int main (void) { printf("hello world!\n"); }
当缩进级别返回到0时,代码块将结束。
printf("hello world!\n"); } The code block is over!
基本宏
slit语法包含三个核心元素。
- 宏赋值-<< NAME >>=
- 宏追加-<< NAME >>+=
- 宏值-<< NAME >>
追加宏
append宏(<< NAME >>+=)允许您将代码添加到 一个新的或现有的容器,其中{TT9}$是容器名称。
赋值宏
赋值宏(<< NAME >>=)将向新的或 现有容器,覆盖已经存在的容器,在那里 是容器名称。
容器名称
包含名称可以是下列之一
- 命名容器,包含字母数字字符和下划线, 比如codeblock1,main_function。
- 文件容器,包含扩展名为的单个单词文件名, 类似于filename.txt(带有空格或位于 当前不支持不同的路径)
- *容器,它将创建一个以 删除了扩展名为.lit的顶级slit文件。所以为了 hello_world.c.lit,容器*将生成 hello_world.c代码文件
顶级文档文件总是在源文件中生成 具有.md扩展名的名称,因此hello_world.c.lit将生成 hello_world.c.md
包含指令
使用#include指令将单个教程组织到 多个文件
#include "part1.spin" #include "part1.diagram" #include "part2.spin" #include "part2.diagram" #include "gfx_cave.lit" #include "conclusion.md"
shell命令
警告:这将允许教程直接在 你的系统。小心使用。
使用shell宏(<<#! command >>)转储shell的输出 在教程中输入命令。
观察的输出<<#! tree test/ >>命令。
$ tree test/ test/ ├── bacon ├── chicken └── turkey 0 directories, 3 files
这个特性本质上依赖于平台和构建环境,并且 将使您的教程构建更不可移植。明智地使用!
默认情况下禁用此功能。使用-s启用
更多信息
有关slit参数的完整列表,请使用--help:
$ ./slit --help usage: slit [-h] [-s] [-c] PATH [PATH ...] A sequential literate processor. positional arguments: PATH path to lit file to process (dir or file) optional arguments: -h, --help show this help message and exit -s, --shell enable shell code execution -c, --convert create lit file from source
错误报告
请向slit issue tracker报告所有错误。