Yesod中的页面锚点

时间:2017-01-10 15:31:43

标签: html haskell yesod

通常,您可以在页面上指定锚点,例如" index.html"代码如:

<a href="#anchor">Link Text</a>

然后,您可以在显示页面时跳转到该锚点,方法是将其包含在路径中:

http://example.com/index.html#anchor

我正在开发一个使用Yesod Haskell框架的登录页面,并希望将此功能集成到我的目标网页中。

目前我的导航栏顶部有几个链接。导航栏使用hamlet指定为:

<div #navbar .collapse.navbar-collapse>
    <ul .nav.navbar-nav>
        <li :Just HomeR == mcurrentRoute:.active>
            <a href=@{HomeR}>_{MsgHome}

请注意,href是使用&#34; HomeR&#34;指定的。 &#34; HOMER&#34;在Yesode&#34; config / routes&#34;中定义列出该站点的所有路径的文件。 它看起来像:

/ HomeR GET
/settings SettingsR GET

这是我的问题。我可以将锚点添加到hamlet规范的一部分,然后修改标题栏上的href以跳转到该部分,例如:

<li :Just HomeR == mcurrentRoute:.active>
    <a href=@{HomeR}#section0>_{MsgHome}

然而,由于几个原因,这很烦人。首先,锚点在编译时不像其他路径那样检查有效性。

其次,当前页面在导航栏上突出显示,代码为:

<li :Just HomeR == mcurrentRoute:.active>

通过这种方法,我可以突出显示单个页面,但不能突出显示页面中的各个锚点。

有没有办法在Yesod config / routes文件中插入安全锚点。或者是否只能拥有包含实际页面的路线。这将允许跳转到导航栏中的页面部分,然后突出显示单击的部分。如果这不可能,有没有更好的方法来处理yesod中的页面锚点?

0 个答案:

没有答案