从标记文档生成('tangles')源代码

md-tangle的Python项目详细描述


app-badgeVersionLicenseFormatPyVerDownloads

md-tangle

此项目是希望配置和安装文件成为文档的一部分的结果 解释我的设置我最初使用Org-modeorg-babel-tangleEmacs来实现这一点。我真的很喜欢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-tangledocumentation是用标记写的,与源代码纠缠在一起 代码。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在运行Eclipse导出的jar时出现“找不到主类”错误   java GPS位置之间距离和方位的精度   java ClassLoader()与java之间的区别是什么。getResourceAsStream(“./path”)和类加载器()。getResourceAsStream(“路径”)   jdbc url中的java Set用户变量   java我不能在框架中拖放   如何在java中添加控制台输出窗口?   java如何以水平方式加载JList?   java基于Maven结果构建不同的Docker映像(与Jenkins一起)   java正在遍历一个文件   java在Eclipse中添加外部库   java Eclipse在未关闭ServletOutputStream时抱怨资源泄漏   java如何在安卓应用程序中读取弹出窗口中的文本?   java<s:if>标记不起作用   使用java中的云存储JSON API在Google云中恢复上传文本文件,面临403错误代码禁止访问的问题   java迭代快速排序步骤?   java如何使用时区ID获得GMT等效值   java如何使用junit测试@RestController的@RequestBody?   java如何在安卓中使用smack库在xmpp传入消息中获取时间戳