Add mako cheatsheet (#1687)
* Add mako cheatsheet * Update mako.md Co-authored-by: Rico Sta. Cruz <rstacruz@users.noreply.github.com>
This commit is contained in:
parent
154c4af2d6
commit
ec1223800f
|
@ -0,0 +1,114 @@
|
||||||
|
---
|
||||||
|
title: mako
|
||||||
|
category: python
|
||||||
|
layout: 2017/sheet
|
||||||
|
---
|
||||||
|
|
||||||
|
### Basic usage
|
||||||
|
|
||||||
|
```
|
||||||
|
Variable x has content: ${x}
|
||||||
|
Expression: ${x + 1}
|
||||||
|
Escaped for HTML: ${x | h}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Control structures
|
||||||
|
|
||||||
|
```html
|
||||||
|
% for x in range(5):
|
||||||
|
% if x % 2 == 0:
|
||||||
|
${x} is even!
|
||||||
|
% else:
|
||||||
|
${x} is odd!
|
||||||
|
% endif
|
||||||
|
% endfor
|
||||||
|
```
|
||||||
|
|
||||||
|
### Including Python code
|
||||||
|
|
||||||
|
```python
|
||||||
|
<%
|
||||||
|
greeting = "Hello world!"
|
||||||
|
# arbitrary python code
|
||||||
|
%>
|
||||||
|
|
||||||
|
<%!
|
||||||
|
# arbitrary python code run at toplevel
|
||||||
|
# cannot access variables!
|
||||||
|
|
||||||
|
def sign_string(number):
|
||||||
|
if number > 0:
|
||||||
|
return "positive"
|
||||||
|
elif number < 0:
|
||||||
|
return "negative"
|
||||||
|
else:
|
||||||
|
return "zero"
|
||||||
|
%>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Special blocks
|
||||||
|
|
||||||
|
```html
|
||||||
|
<%text filter="h">
|
||||||
|
This is a raw block where ${nothing is evaluated}
|
||||||
|
<%
|
||||||
|
not even this
|
||||||
|
%>
|
||||||
|
and <html is escaped> too with "h" filter
|
||||||
|
</%text>
|
||||||
|
|
||||||
|
<%def name="myfunc(x)">
|
||||||
|
this is a reusable macro, with arguments: ${x}
|
||||||
|
</%def>
|
||||||
|
|
||||||
|
${myfunc(42)}
|
||||||
|
|
||||||
|
<%doc>
|
||||||
|
this is a comment
|
||||||
|
</%doc>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Inheritance
|
||||||
|
|
||||||
|
#### shared.html
|
||||||
|
|
||||||
|
```html
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title><%block name="title" /></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header><h1><%block name="title" /></h1></header>
|
||||||
|
<main>${self.body()}</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### home.html
|
||||||
|
|
||||||
|
```html
|
||||||
|
<%inherit file="shared.html" />
|
||||||
|
<%block name="title">Welcome to my site</%block>
|
||||||
|
|
||||||
|
This is the body
|
||||||
|
```
|
||||||
|
|
||||||
|
#### article.html
|
||||||
|
|
||||||
|
```html
|
||||||
|
<%inherit file="shared.html" />
|
||||||
|
<%block name="title">${post.title}</%block>
|
||||||
|
|
||||||
|
${post.content}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Library
|
||||||
|
|
||||||
|
### Basic usage
|
||||||
|
|
||||||
|
```python
|
||||||
|
from mako.template import Template
|
||||||
|
|
||||||
|
mytemplate = Template("hello, ${name}!")
|
||||||
|
print(mytemplate.render(name="jack"))
|
||||||
|
```
|
Loading…
Reference in New Issue