回答編集履歴

2

追記

2017/08/18 05:19

投稿

quickquip
quickquip

スコア11202

test CHANGED
@@ -41,3 +41,151 @@
41
41
  (追記)
42
42
 
43
43
  jinja2で`{%- -%}`は、テンプレート用のデリミタではなくて、制御構造を記述するデリミタですよ。
44
+
45
+
46
+
47
+
48
+
49
+ ----
50
+
51
+ (追記)
52
+
53
+ 動機がまったく理解できないのですが、どうしてもというなら、私ならjinja2のraw stringを使って固定部分を記述してレンダリングさせますね。`%`演算子や`format`関数にはそういったデリミタはないので、`%%`や`{{`などと全部エスケープしてやらないといけないので。
54
+
55
+ 以下はtitleだけ差し挟んだ場合です。
56
+
57
+ ```Python
58
+
59
+ from jinja2 import Template
60
+
61
+
62
+
63
+ template = Template(u"""{% raw %}{%- set title="[main_title]" %}
64
+
65
+ {%- set description="[description]" -%}
66
+
67
+
68
+
69
+ {%- extends "outer.jinja2" -%}
70
+
71
+
72
+
73
+ {% block breadcrumb %}
74
+
75
+
76
+
77
+ <nav class="BreadCrumb" data-element="foundation">
78
+
79
+ <div class="bread-crumb-container" data-element="container">
80
+
81
+ <ol class="bread-crumb" data-grid="12" data-element="component" itemscope itemtype="http://schema.org/breadcrumblist">
82
+
83
+
84
+
85
+ <li class="crumb" itemprop="itemlistelement" itemscope itemtype="http://schema.org/listitem">
86
+
87
+ <a class="link" href="/" itemprop="item">
88
+
89
+ <span itemprop="name">top</span>
90
+
91
+ </a>
92
+
93
+ </li>
94
+
95
+
96
+
97
+ <li class="crumb" itemprop="itemlistelement" itemscope itemtype="http://schema.org/listitem">
98
+
99
+ <a class="link" href="[parent_link]" itemprop="item">
100
+
101
+ <span itemprop="name">[parent]</span>
102
+
103
+ </a>
104
+
105
+ </li>
106
+
107
+
108
+
109
+ <li class="crumb" itemprop="itemlistelement" itemscope itemtype="http://schema.org/listitem">
110
+
111
+ <a class="link" href="[link]" itemprop="item">
112
+
113
+ <span itemprop="name">{% endraw %}{{ title }}{% raw %}</span>
114
+
115
+ </a>
116
+
117
+ </li>
118
+
119
+
120
+
121
+ </ol>
122
+
123
+ </div>
124
+
125
+ </nav>
126
+
127
+
128
+
129
+ {% endblock %}
130
+
131
+
132
+
133
+ {% block article %}
134
+
135
+ <article class="main-contents" data-grid="9" data-element="component">
136
+
137
+ <header class="content-header" data-element="component">
138
+
139
+ <h3 class="entypo-chart-pie title">{% endraw %}{{ title }}{% raw %}</h3>
140
+
141
+ </header>
142
+
143
+
144
+
145
+ <section class="content-toc" data-element="component">
146
+
147
+ <h4 class="heading">目次</h4>
148
+
149
+ <p class="title">{% endraw %}{{ title }}{% raw %}</p>
150
+
151
+ <ul class="toc">
152
+
153
+ <li class="item"><a class="link" href="#"></a></li>
154
+
155
+ </ul>
156
+
157
+ </section>
158
+
159
+
160
+
161
+ <section id="" class="content-article" data-element="component">
162
+
163
+ <h4 class="heading"></h4>
164
+
165
+ <p class="sentence"></p>
166
+
167
+ </section>
168
+
169
+
170
+
171
+ <footer class="content-footer" data-element="component">
172
+
173
+ </footer>
174
+
175
+ </article>
176
+
177
+
178
+
179
+ </div>
180
+
181
+ </main>
182
+
183
+ {% endblock %}{% endraw %}
184
+
185
+ """)
186
+
187
+ print template.render(title=u'タイトル')
188
+
189
+ ```
190
+
191
+

1

追記

2017/08/18 05:19

投稿

quickquip
quickquip

スコア11202

test CHANGED
@@ -33,3 +33,11 @@
33
33
  ```
34
34
 
35
35
  と出力する(出力させる)と思うのですが。
36
+
37
+
38
+
39
+ ----
40
+
41
+ (追記)
42
+
43
+ jinja2で`{%- -%}`は、テンプレート用のデリミタではなくて、制御構造を記述するデリミタですよ。