PyroCMS 主题自定义导航结构

PyroCMS theme custom navigation structure

我到处搜索,但似乎无法在文档或其他任何地方找到任何内容。我创建了自己的自定义主题,从 PyroCMS 附带的 Starter 主题复制粘贴内容。在我的导航部分中有这个树枝指令:

{{ structure()
            .linkAttributesDropdown({'data-toggle': 'dropdown'})
            .listClass('nav navbar-nav navbar-right')
            .childListClass('dropdown-menu')
            .render()|raw }}

这在使用 Bootstrap 框架时有效。我正在使用 Purecss.io 并且我想分配不同的 类 并将 类 分配给更多元素。我的导航应如下所示:

<ul class="pure-menu-list">
    <li class="pure-menu-item pure-menu-selected">
        <a href="http://local.dev" class="pure-menu-link" >Home</a>
    </li>
    <li class="pure-menu-item pure-menu-has-children pure-menu-allow-hover">
        <a href="http://local.dev/products" class="pure-menu-link">Item with children</a>
    <ul class="pure-menu-children">
        <li class="pure-menu-item">
            <a href="http://local.dev/products/child1" class="pure-menu-link">Child 1</a>
        </li>
        <li class="pure-menu-item">
            <a href="http://local.dev/products/chil2" class="pure-menu-link">Child 2</a>
        </li>
    </ul>
    </li>
 </ul>

我已经在我的部分中尝试了以下内容:

{{ structure()
            .linkAttributesDropdown({'class': 'pure-menu-item pure-menu-has-children pure-menu-allow-hover'})
            .listClass('pure-menu-list')
            .elementClass('pure-menu-item')
            .childListClass('pure-menu-children')
            .render() }}

但这并不能解决问题。

我将如何做到这一点?在哪里可以找到所用函数 structure()、listClass() 等的文档?

提前致谢!

这里有一些信息:

最基本的默认设置如下所示,将创建一个包含所有现有页面的无序列表。如果您 set/toggled 一个页面 启用,则它不会显示。

{{ structure()|raw }}

更改列表元素class
{{ structure().list_class('navigation')|raw }}

将列表标签更改为无序列表以外的其他内容: {{ structure().list_tag('dl')|raw }}

更改列表元素

{{ structure().link_tag('dt')|raw }}

仅显示 children 特定页面

{{ structure().root('/my-page')|raw }} 或 page-id {{ structure().root('9')|raw }}

为 children

的元素设置 class

{{ structure().dropdown_class('has-children')|raw }}

为每个 li 项设置一个 class:

{{ structure().item_class('has-children')|raw }}

设置一个class到link

{{ structure().link_class('my-class')|raw }}

向 link

添加标题属性

{{ structure().link_attributes({'title':'Title attribute'})|raw }}

不幸的是,这部分系统仍在开发中,但我可以向您展示宏以及如何与之交互:

https://github.com/anomalylabs/pages-module/blob/master/resources/views/macro.twig

您看到的链接是您设置选项的方式,因此 structure().fooBar(value) 在选项 集合 中将 foo_bar 选项设置为 value .

对于 elementClass,您可能正在寻找 linkClass。也不要忘记使用 |raw!

进行转义

看起来这会给你想要的标记:

{{ structure()
        .currentClass('pure-menu-selected')
        .dropdownClass('pure-menu-has-children pure-menu-allow-hover')
        .linkAttributesDropdown({'class': 'pure-menu-item pure-menu-has-children pure-menu-allow-hover'})
        .listClass('pure-menu-list')
        .itemClass('pure-menu-item')
        .linkClass('pure-menu-link')
        .childListClass('pure-menu-children')
        .render()|raw }}