语法参考
Pymaidol 模板文件的创建与结构
使用命令行创建模板文件(推荐)
使用以下命令创建模板文件:
python -m pymaidol -n <类名> [-d <目录>]
会在当前目录下生成 <类名>.pymd
和 <类名>.py
两个文件。
Pymaidol 模板文件的组成
模板文件由模板设计文件 .pymd
和模板后台文件 .py
组成。
模板设计文件 .pymd
:包含了模板的设计内容,如字符串和使用 Pymaidol 语法嵌入的 Python 代码/呈现表达式。
模板后台文件 .py
:包含了模板的后台逻辑,如模板类的定义。
可以在设计文件中访问在后台文件中定义的变量和方法,但不能在后台文件中访问在设计文件中定义的元素。此外,两者的 import
语句是独立的。
若手动创建 Pymaidol 模板文件,模板设计文件
.pymd
和模板后台文件.py
的文件名必须相同,且位于同一个文件夹下;模板后台文件的文件名必须与模板类的类名相同。
Pymaidol 语法
Pymaidol 使用 @
作为标记符,用于标记 Pymaidol 表达式、关键字和代码块。若要在文本中使用 @
,请使用 @@
代替。
Pymaidol 表达式
Pymaidol 表达式用于向模板中嵌入/呈现数据。Pymaidol 表达式的格式为 @(<表达式>)
,如:
@("Hello World!")
渲染后的文本为:
Hello World!
Pymaidol 关键字
关键字的格式为 @<关键字>;
,如:
@break; # 跳出当前循环
@continue; # 跳过当前循环
Pymaidol 代码块
Pymaidol 代码块用于在模板渲染时执行一些 python 代码。格式为 @{<代码块>}
,如:
@{answer = 42}
The answer of this universe is @(answer)
渲染后的文本为:
The answer of this universe is 42
因为渲染 Pymaidol 代码块是按照由上至下、由左至右的顺序进行的,所以可以使用 Pymaidol 代码块来定义一些变量、函数等,在之后的表达式或代码块中使用。
if, elif, else 代码块
使用方式为 @if (<条件表达式>){<模板设计语句>}
,如:
@{answer = 42}
@if (answer > 0) {answer == @(answer), and it is positive.}
@elif (answer < 0) {answer == @(answer), and it is negative.}
@else {answer == @(answer), and it is zero.}
渲染后的文本为:
answer == 42, and it is positive.
while 代码块
使用方式为 @while (<条件表达式>){<模板设计语句>}
,如:
@{i = 0}
@while (i < 5){
i = @(i)
@{i += 1}
}
渲染后的文本为:
i = 0
i = 1
i = 2
i = 3
i = 4
for 代码块
使用方式为 @for (<变量> in <可迭代对象>){<模板设计语句>}
,如:
@for (i in range(5)){
i = @(i)
@if (i == 3) {@break;}
}
渲染后的文本为:
i = 0
i = 1
i = 2
i = 3