Вопрос
Я следую инструкциям Здесь
Я создаю проект HESOD и визуализировать виджет с defaultLayout
:
You've just posted
<p>#{postedText}#{T.reverse postedText}
<hr>
<p><a href=@{MirrorR}>Get back
.
А вот по умолчанию-макет. Hamlet:
$maybe msg <- mmsg
<div #message>#{msg}
^{widget}
<footer>
#{extraCopyright $ appExtra $ settings master}
.
Проблема в том, что я ожидаю, что только одна ссылка на MIRRORR, но я получил два, один - генеракодицетагкод, другой - авторское право в Get back
.
Решение
Когда вы пишете:
<p><a ...>...
.
Затем Гамлет видит бесплатный тег <p>
и создает соответствующую тему </p>
вокруг следующего контента.Содержание, которое следует, является , предположительно, должно быть действительным html .Таким образом, оказывается:
.
<p><a ...>...</p>
Что вы вместо этого хотите писать (обратите внимание, что отступ создает новый бесплатный тег):
.
<p>
<a ...>...
... или:
.
<p><a ...>...</a>
Ваш браузер делает это как две ссылки, потому что элемент <a>
не закрыт (и браузеры переходят в режим CUIRKS и включают в себя материал совместимости HTML1 в этом случае):
.
<p><a href="foo">link1</p>
<p>link2</p>
<!-- implicit </a> at the end of the closest block level element -->
Отказ от ответственности: у меня нет доступа к Yesod и не может подтвердить это поведение;Я только предполагаю, что это похоже на это на основе наблюдений в вопросе.