我按照here
的说明操作我创建了一个yesod项目,并使用defaultLayout
呈现小部件:
You've just posted
<p>#{postedText}#{T.reverse postedText}
<hr>
<p><a href=@{MirrorR}>Get back
这是default-layout.hamlet:
$maybe msg <- mmsg
<div #message>#{msg}
^{widget}
<footer>
#{extraCopyright $ appExtra $ settings master}
问题是我希望只有一个链接到MirrorR,但我有两个,一个是Get back
,另一个是<footer>
的版权。
答案 0 :(得分:3)
当你写:
<p><a ...>...
然后,Hamlet会看到一个免费的<p>
代码,并围绕以下内容创建匹配的</p>
代码。后面的内容是假定为有效的HTML 。因此呈现的是:
<p><a ...>...</p>
你想要写的是(注意缩进创建一个新的免费标签):
<p>
<a ...>...
...或:
<p><a ...>...</a>
您的浏览器会将此呈现为两个链接,因为<a>
元素未关闭(并且浏览器进入怪异模式并在此情况下启用HTML1兼容性内容):
<p><a href="foo">link1</p>
<p>link2</p>
<!-- implicit </a> at the end of the closest block level element -->
免责声明:我无法访问Yesod,无法验证此行为;我只假设它是基于问题中的观察结果。