37468


Node.js + Express + Pugでサイトを構築しています。

サーバ側のNode.jsで次のようにプログラムを書いて

[code]

    const nico="<a href=\"http://www.nicovideo.jp/\">test</a>";
    
    res.render('index', {
            nico:nico
    });
    
[/code]

pugで次のように受け取ると

[code]

    p(style="white-space:pre;") #{nico}
    
[/code]

htmlで以下のようになってしまいます。

[code]

    <p style="white-space:pre;">&lt;a href=&quot;http://www.nicovideo.jp/&quot;&gt;test&lt;/a&gt;</p>
    
[/code]

実際にはhtmlを以下のように生成したいです。

[code]

    <p style="white-space:pre;"><a href="http://www.nicovideo.jp/">test</a>></<a href="http://www.nicovideo.jp/">test</a></p>
    
[/code]

`p(style="white-space:pre;")`を使わなければ、HTMLタグがエスケープされず  
そのまま表示されるのですが、`p(style="white-
space:pre;")`を使わないと改行が反映されず、長い文を書く時に改行されてない表示になってしまうので、`p(style="white-
space:pre;")`は残したいと考えています。

どうしたら解決できますか？


CC BY-SA 4.0
2017-08-23T03:37:48.297
37427
2020-12-12T06:14:26.130
2020-12-12T06:14:26.130
32986
22541
question
html node.js html5 pug
HTMLタグをエスケープせずに表示したい


自己解決しました。

[code]

    p(style="white-space:pre;")!=nico
    
[/code]

とすれば良ようです。


CC BY-SA 3.0
2017-08-24T14:42:57.157
37468
2017-08-24T14:42:57.157
22541
37427
answer