从标记文档生成('tangles')源代码
md-tangle的Python项目详细描述
md-tangle
此项目是希望配置和安装文件成为文档的一部分的结果 解释我的设置我最初使用Org-mode和org-babel-tangle在 Emacs来实现这一点。我真的很喜欢org模式和emacs,但是我不喜欢 依赖于一个编辑。这就是我想要一个CLI和更多 广泛使用的文档markup language。
这种编程方法称为literate programming。这种编程模式 是唐纳德·克努特介绍的。我们的想法是编写一个程序来解释 自然语言中的程序逻辑,中间穿插着传统源代码的片段。 然后,可以使用一些工具生成源代码(“tangled”)。
由于大多数程序员都使用Markdown,我看到这种语言适合这项任务。 Markdown是一种受程序员欢迎的纯文本格式很简单,很容易 已经支持使用``或~~~~嵌入代码块,主要是 为了在文档中突出显示语法。
安装
通过将md-tangle
添加到PATH
或使用pip
安装包,可以很容易地使用此CLI工具
请参阅pypi.org上的包,或者使用pip install md-tangle
安装。
命令
通过添加关键字tangle:<path/filename>
,此工具将使标记的代码混乱
块到给定文件。支持主目录的~
。
通过使用选定的分隔符分隔文件(默认值为,
),可以将代码块与多个文件纠缠在一起。
如果文件已经存在,将提示用户使用重写选项,
除非添加-f
/--force
标志。
标志
- {< CD10> }/^ {CD11}}:显示帮助消息并退出
--version
:显示已安装的版本- {CD8}}/^ {CD9}}:如果文件已经存在 强制重写文件
-v
/--verbose
:显示输出-d
/--destination
:覆盖输出目标-s
/--separator
:纠结目的地的分隔符(默认值为',')
用法
举个例子:
HelloWorld.md
# Some title Describing the following code... bla bla. ~~~~javascript tangle:helloWorld.js console.log("Hello, "); console.log("world"); ~~~~ ## Styling Adding header for my css files: ~~~~css tangle:styles/button.css,styles/input.css /* Styling for mye awesome app */ ~~~~ By adding some css ... ~~~~css tangle:styles/button.css #button1 { border: none; } ~~~~ ~~~~css tangle:styles/input.css #button1 { border: none; } ~~~~
通过使用pip
安装md-tangle
,可以通过执行以下命令从该文件生成文件:
$ md-tangle -v HelloWorld.md helloWorld.js 2 lines styles/button.css 4 lines styles/input.css 4 lines $ ls helloWorld.js HelloWorld.md styles
文件
当然,md-tangle
的documentation是用标记写的,与源代码纠缠在一起
代码。