Вопрос

Я следую инструкциям Здесь

Я создаю проект 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 и не может подтвердить это поведение;Я только предполагаю, что это похоже на это на основе наблюдений в вопросе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top