Phug PHP - 变量打印两次
Phug PHP - Variable is printing twice
创建基于 mediawiki APIs 和 运行 的 wiki 遇到一些问题。
我的代码有三个变量:
- 编辑(link 编辑)
- title(维基页面的标题)
- 内容(wiki 的原始 HTML)
我在服务器上渲染这些变量已经看到这里:
$wikipage = $pug->render('views/wiki.pug', array(
'title' => htmlspecialchars($wiki),
'content' => $output,
'edit' => $edit
));
echo $wikipage;
$输出是:
<h3> Riverside Rocks API Documentation </h3>
<p>Welcome to the Riverside Rocks API docs!</p>
<p>Base URL: https://riverside.rocks</p>
<p>(HTTPS is required)</p>
<h5> Getting your API key </h5>
<p><a href="https://riverside.rocks/account/login?_ref=wiki" class="external">Sign in to Riverside Rocks</a>. Open your browser's developer tools and run console.log(key);</p>
<p><b>Chat API</b></p>
<p>Endpoint: /v1/new Type: GET</p>
<p>Parameters:</p>
<ul>
<li> key</li>
<li> m (message)</li>
<li> c_id (channel name)</li>
</ul>
<p>Example:</p>
<p>https://example.com/v1/new?m=Hello!&c_id=general&key=12345</p>
$标题是:
API
$edit 是:
https://example.com/index.php?title=API&action=edit
我的哈巴狗模板文件像这样打印这些变量:
include head.pug
h1 #{title} - Wiki
#{content}
br
a(href=edit target="_blank") Edit this page
一切正常,除了内容变量被打印两次的页面。我进行了一些调试,发现这是 Pug 的问题,因为当我在 PHP 服务器文件中打印变量时,它返回了打印一次的预期值。关于我可以做些什么来解决这个问题的任何想法?我用来将 PugJs 移植到 PHP 的包是 "Phug"
你看到的是#{content}
,这是一个动态标签:
- content = 'div'
#{content} Foo
(在 Phug 或 Pug.js 中相同)
呈现:
<div>Foo</div>
要将变量作为原始 HTML 内容插入,您只需要:
!=content
或者先是一个文本节点:
| !{content}
请注意,如果您已经在模板中转义,则不应使用 htmlspecialchars
:| #{content}
已转义,| !{content}
显示为原始格式,=content
已转义, !=content
是原始的。
创建基于 mediawiki APIs 和 运行 的 wiki 遇到一些问题。
我的代码有三个变量:
- 编辑(link 编辑)
- title(维基页面的标题)
- 内容(wiki 的原始 HTML)
我在服务器上渲染这些变量已经看到这里:
$wikipage = $pug->render('views/wiki.pug', array(
'title' => htmlspecialchars($wiki),
'content' => $output,
'edit' => $edit
));
echo $wikipage;
$输出是:
<h3> Riverside Rocks API Documentation </h3>
<p>Welcome to the Riverside Rocks API docs!</p>
<p>Base URL: https://riverside.rocks</p>
<p>(HTTPS is required)</p>
<h5> Getting your API key </h5>
<p><a href="https://riverside.rocks/account/login?_ref=wiki" class="external">Sign in to Riverside Rocks</a>. Open your browser's developer tools and run console.log(key);</p>
<p><b>Chat API</b></p>
<p>Endpoint: /v1/new Type: GET</p>
<p>Parameters:</p>
<ul>
<li> key</li>
<li> m (message)</li>
<li> c_id (channel name)</li>
</ul>
<p>Example:</p>
<p>https://example.com/v1/new?m=Hello!&c_id=general&key=12345</p>
$标题是:
API
$edit 是:
https://example.com/index.php?title=API&action=edit
我的哈巴狗模板文件像这样打印这些变量:
include head.pug
h1 #{title} - Wiki
#{content}
br
a(href=edit target="_blank") Edit this page
一切正常,除了内容变量被打印两次的页面。我进行了一些调试,发现这是 Pug 的问题,因为当我在 PHP 服务器文件中打印变量时,它返回了打印一次的预期值。关于我可以做些什么来解决这个问题的任何想法?我用来将 PugJs 移植到 PHP 的包是 "Phug"
你看到的是#{content}
,这是一个动态标签:
- content = 'div'
#{content} Foo
(在 Phug 或 Pug.js 中相同)
呈现:
<div>Foo</div>
要将变量作为原始 HTML 内容插入,您只需要:
!=content
或者先是一个文本节点:
| !{content}
请注意,如果您已经在模板中转义,则不应使用 htmlspecialchars
:| #{content}
已转义,| !{content}
显示为原始格式,=content
已转义, !=content
是原始的。