将内容内联到Deckset标记文件中的工具
deckset-inline的Python项目详细描述
直列式甲板组
将其他文件中的内容包括在您的幻灯片中。在
好吧怎么办?在
首先安装工具:
pip install deckset-inliner
然后准备一个要从中包含一些内容的文件。这是a_file.py
:
然后将一个开头inline
指令和一个结束inline
指令添加到演示文稿标记文件中,您希望内容显示在该文件中:
<!-- <inline src="a_file.py" verbatim lang="python" start="2" end="3"> --> <!-- </inline> -->
然后使用演示文稿文件运行该工具:
deckset-inliner --in-place --backup-ext bak slides.md
查看文件是如何被修改的in place,现在在指令之间包含a_file.py
的第2到3行:
<!-- <inline src="a_file.py" verbatim lang="python" start="2" end="3"> --> ```python print("This second line, though, is vital for any presentation.") print("This third line should be included too.") ``` <!-- </inline> -->
看看指令是怎么回事?现在可以在更改源文件后再次运行该命令。在
我明白了,但为什么?在
我想测试放在幻灯片中的代码,所以我把它写在适当的代码文件中,然后运行和测试(是的,我有时会为幻灯片中的代码编写测试)。如果我发现代码有问题,我不想再复制粘贴代码到幻灯片中。这个工具帮我解决了这个问题。在
好吧,我想要这个,告诉我更多
欢迎光临!在
指令是一行HTML注释,其中有一个自制的标记。basic指令有标记名inline
,这些是可用的属性:
src
:唯一的强制属性,它指定要包含的文件的路径。在verbatim
:一个标志。当存在时(不接受值),包含的代码将被每行3个backtics包围```
lang
:暗示verbatim
。指定将显示在反撇号块顶部的语言。在start
:将出现在块中的源文件的first行(从1开始计数)。在end
:将出现在块中的源文件的last行(从1开始计数)。在
为了方便起见,我添加了第二个指令python
,这相当于在inline
指令上设置lang="python"
。在
默认情况下,该工具将其输出放在stdout上,就像sed
一样,只有当您传递-i
(--in-place
)标志时,它才会修改原始文件。我建议您也使用-b
(--backup-ext
)标志来强制创建文件的备份,如果您没有对幻灯片使用版本控制。在
还有一个选项(-c
或--clean
),它删除打开和关闭指令之间的所有内容,同时保留指令本身的完整性。在
有什么注意事项吗?在
- 内联操作不是递归的,如果包含包含其他指令的文件,该工具将无法很好地处理。在
- 解析非常简单,而且是基于行的,因此指令不能跨越多行。在
- 项目
标签: