将内容内联到Deckset标记文件中的工具

deckset-inline的Python项目详细描述


直列式甲板组

将其他文件中的内容包括在您的幻灯片中。在

好吧怎么办?在

首先安装工具:

pip install deckset-inliner

然后准备一个要从中包含一些内容的文件。这是a_file.py

^{pr2}$

然后将一个开头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),它删除打开和关闭指令之间的所有内容,同时保留指令本身的完整性。在

有什么注意事项吗?在

  • 内联操作不是递归的,如果包含包含其他指令的文件,该工具将无法很好地处理。在
  • 解析非常简单,而且是基于行的,因此指令不能跨越多行。在

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

推荐PyPI第三方库


热门话题
与ReentrantLock相比,java ReentrantReadWriteLock的性能非常差   java如何使用Maven Android Studio正确导入?   安卓将ADB添加到我的Java PC应用程序   反射Java getDeclaredConstructor失败,来自JUnit的NoSuchMethodException   JSP上siteedit标记库的java替代   JavaSpring环境概要文件和JPA   java中是否有一个类似于StringBuilder的类,唯一的区别是它具有固定的长度?   JavaMathContext。小数点32 vs MathContext。小数点64,使用哪一个,为什么?   java使用spring在Ibm Websphere MQ中实现重试逻辑   java调用SpriteBatch。开始()和结束()   java有一种从文本中读取文本的方法。文件,并将其设置为pom中的maven属性。xml专家?   java让sitemesh使用struts2   Java Swing:在现有窗口上定位对话框   使用带有MemSql的JPA本机查询的java Select json列