在ipython/jupyter notebooks支持Jinja2和Yaml

jinja-yaml-magic的Python项目详细描述


Jupyter的Jinja2和Yaml

请看the full HTML version

这个文件的其余部分只是标记中的nbconvert;很难读取。见the HTML version


人们一起使用yaml和jinja2;它们是ansible的核心。有时候你需要一个游乐场来了解它们是如何工作的。这个魔法提供了两者。

输入:

%load_extjinja_yaml_magic%reload_extjinja_yaml_magic

(忽略%load_ext/%reload_ext的警告。)

山药

%%yaml variable将细胞中的yaml解析为名为variable的变量。 如果省略variable,yaml将被解析为变量jinja_env;它还 然后通过历史机制:Out[3]_3

输入:

%%yamlnames:-Jay-Chris-Pat

输出:

{'names': ['Jay', 'Chris', 'Pat']}

输入:

%%jinja{{names}}

输出:

['Jay', 'Chris', 'Pat']

Jinja2

如果您只想试用一个快速模板,请在单元格顶部编写%%jinjajinja_env和笔记本变量的内容都可用。下面,我们使用上面的%%yaml中的names,以及笔记本中的separator

输入:

separator=", "

输入:

%%jinja{{names|sort|join(separator)}}

输出:

Chris, Jay, Pat

命名模板

您可能希望将jinja2代码存储为模板。

  • 您可以稍后在笔记本中重复使用模板;
  • 您可以使用jinja2强大的extendsimportinclude机制。

下面的模板名为fancy_names当前目录中的文件也可用作模板。

输入:

%%jinja_templatefancy_names{%fornameinnames%}<b>{{name}}</b><br>{%-endfor%}

输入:

%jinja--templatefancy_names

输出:

<b>Jay</b><br>
<b>Chris</b><br>
<b>Pat</b><br>

格式化

默认情况下,运行%jinja模板的结果格式化为“漂亮”文本。 您可以选择其他格式。

Type...displays as
^{}A string, without quotes
^{}Python string literal
^{}HTML
^{}SVG
^{}LaTeX
^{}Markdown
^{}Syntax-highlighted code

--latex需要加载mathjax;默认情况下是这样。--code需要 最新版本的ipython。

输入:

%jinja--templatefancy_names--html

输出:

杰伊 克里斯 拍拍

svg示例

来自https://medium.com/@heyoka/scratch-made-svg-donut-pie-charts-in-html5-2c587e935d72。此模板进行数学运算,因此您可能不希望遵循其示例。

输入:

# Percent of circle to be filledfull=60# Percent distance from top to startoffset=12.5

输入:

%%jinja_templatesvg_example<svgwidth="25%"height="25%"viewBox="0 0 42 42"class="donut"><circleclass="donut-hole"cx="21"cy="21"r="15.91549430918954"fill="#fff"></circle><circleclass="donut-ring"cx="21"cy="21"r="15.91549430918954"fill="transparent"stroke="#d2d3d4"stroke-width="3"></circle><circleclass="donut-segment"cx="21"cy="21"r="15.91549430918954"fill="transparent"stroke="#ce4b99"stroke-width="3"stroke-dasharray="{{ full }} {{ 100-full }}"stroke-dashoffset="{{ 25 - offset }}"></circle></svg>

输入:

%jinja--templatesvg_example--svg

(实际笔记本中有一个svg图像。)

svg

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

推荐PyPI第三方库


热门话题
java结合两个Date实例使用Joda创建datetime   带有POI和FileOutputStream的java Swing应用程序性能问题   Java中是否存在类似于Python的异常?   Java中有界通配符的泛型   使用字符和子字符串的java不同输出   在Java中获取LDAP模式   java自定义类在自身上生成ClassNotFoundException   java连接到从internet到通过LAN连接到internet的系统的serversocket   java如何通过maven在jaxws中使用jaxb插件?   java Kerberos如何获取主体或客户端名称?   java应用服务器中是否有JDBC的单点登录解决方案?   java是存储矩阵值以便以后访问的更好方法   Java等级计算器。开始这门课我需要一些帮助   未找到Android“libc++\u shared.so”中的java OpenCV实现   当我使用web配置部署描述符时使用java。xml。它显示了错误   java为什么我的ArrayList的add方法冲突,如何编辑我的自定义add方法   java创建一个以集合为键的映射?   java如何将用户输入到数字三角形中   为什么Java在读取LinkedHashMap时会自动从字符串转换为整数   类动态创建和读取java类