Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改Jekyll中的默认订单页面?_Jekyll_Github Pages - Fatal编程技术网

如何更改Jekyll中的默认订单页面?

如何更改Jekyll中的默认订单页面?,jekyll,github-pages,Jekyll,Github Pages,是在Github上用Jekyll构建的。在导航栏中,默认顺序为页面、消息、关于、存档。我想将列表更改为页面、存档、关于、消息。我该怎么办 我认为这与下面的代码有关 {% assign pages_list = site.pages %} 我认为站点。页面是我应该更改的,但我不知道如何更改。导航栏菜单的顺序由\u布局中的HTML模板决定(可能从\u包含中提取HTML片段) 听起来您的导航栏是通过编程从site.pages中提供的页面列表生成的,使用的是液态代码 {% assign pages_l

是在Github上用Jekyll构建的。在导航栏中,默认顺序为页面、消息、关于、存档。我想将列表更改为页面、存档、关于、消息。我该怎么办

我认为这与下面的代码有关

{% assign pages_list = site.pages %}

我认为
站点。页面
是我应该更改的,但我不知道如何更改。

导航栏菜单的顺序由
\u布局
中的HTML模板决定(可能从
\u包含
中提取HTML片段)

听起来您的导航栏是通过编程从site.pages中提供的页面列表生成的,使用的是液态代码

{% assign pages_list = site.pages %}
如果您只有少量页面,您可能更愿意手动写出列表。
site.pages
是Jekyll按字母顺序列出的所有页面。没有任何东西可以阻止您只对其进行硬编码:

 <div class="navbar" id="page-top">
      <div class="navbar-inner">
        <div class="container">
          <a class="brand" href="/">EverCoding.net</a>
          <ul class="nav">
            <li><a href="/pages.html">Pages</a></li>        
        <li><a href="/archive.html">Archive</a></li>
        <li><a href="/about.html">About</a></li>
        <li><a href="/messages.html">Messages</a></li>

然而,我猜目前您已经通过编程方式生成了该列表,可能是按照Jekyll bootstrap处理液态代码的方式:

<div class="navbar">
      <div class="navbar-inner">
        <div class="container">
          <a class="brand" href="{{ HOME_PATH }}">{{ site.title }}</a>
          <ul class="nav">
            {% assign pages_list = site.pages %}
            {% assign group = 'navigation' %}
            {% include JB/pages_list %}
          </ul>
        </div>
      </div>
    </div>

    {%assign pages\u list=site.pages%} {%assign group='导航'%} {%include JB/pages\u list%}
如果您真的想每次确定菜单,那么第二个示例中的液体代码是很方便的,但是如果您有一个静态顺序的静态菜单,那么您可能最好像我的第一个示例中那样手动对其进行编码,而不是修改液体代码进行排序


如果您可以链接到Jekyll源代码,而不是已发布的博客,我们可以更具体一些。

更新:一些订购功能似乎已添加到Jekyll中:

更新:查看下面安迪·杰克逊的评论——“名称”可能需要更改为“路径”

这似乎对我有用:

{% assign sorted_pages = site.pages | sort:"name" %}
{% for node in sorted_pages %}
  <li><a href="{{node.url}}">{{node.title}}</a></li>
{% endfor %}
遗憾的是,这不适用于自定义属性,因为它们不能作为Page类上的方法访问:

{% assign sorted_pages = site.pages | sort:"weight" %} #bummer
模板要求您在Jekyll标题中包含
组导航
。基于@Wojtek的答案,您可以修改以使用此
字段进行筛选和排序

调用页面列表之前,请按组排序:

{%assign sorted_pages=site.pages | sort:“group”%}

然后,只需更改页面列表中的一行:

{%if group==null或group==node.group%}
->{%if group==null或node.group包含group%}


现在,您可以将组指定为
navigation-00
navigation-01
,而无需重命名文件或设置任何永久链接,您就可以免费进行排序。

我在_data目录中创建了pages.yml文件,它看起来类似于:

- url: pages/test.html
  title: Pages
  group: navigation
- url: pages/front.html
  title: Front
  group: navigation
我将default.html(从site.pages更改为site.data.pages):

    {%assign pages\u list=site.data.pages%} {%assign group='导航'%} {%include JB/pages\u list%}

现在,我可以使用这个yml文件作为菜单。

我使用的是Jekyll v2.5.3,您还可以对实际的降价文件进行编号(按这种方式排序),因为您使用的是Front Matter块,所以您仍然可以按需保留标题和永久链接

解析器将以这种方式对页面链接进行排序。
即:


您可以创建菜单项的自定义顺序,如下所示:

  • 在首页添加订单字段(您可以根据自己的喜好命名)
    ---
    layout: default
    published: true
    title: Page title
    order: 1
    ---
    
  • 获取页面时,应用“排序”过滤器
    {% assign sorted_pages = site.pages | sort:"order" %}
    {% for node in sorted_pages %}
      <li><a href="{{node.url}}">{{node.title}}</a></li>
    {% endfor %}
    
    {%assign sorted_pages=site.pages | sort:“order”%}
    {已排序的_页%中的节点的百分比}
    
  • {%endfor%}
  • 根据添加到每页的“顺序”字段值,您将得到一个页面的有序(ASC)列表。

    我不久前做了一个尝试,根据
    页面顺序对页面进行排序。
    数组您可以定义
    \u config.yml

    pages_order: ['index', 'summary', 'overview', 'part1', 'part2', 'conclusion', 'notes']
    
      - about.md
      - portfolio.md
    
    它在模板中公开
    page.prev
    page.next
    以允许导航:

    {% if page.prev %}
     <a id="previous-page" href="{{page.prev}}.html">Previous</a>
    {% endif %}
    
    {% if page.next %}
     <a id="next-page" href="{{page.next}}.html">Next</a>
    {% endif %} 
    
    {%if page.prev%}
    {%endif%}
    {%if page.next%}
    {%endif%}
    

    注意:在Github页面上不起作用。

    您的路径正确。您可以通过名为“order”的自定义变量进行排序

    在header.html中插入和附加行:

    {% assign pages_list = (site.pages | sort: 'order') %}
    
    然后在for语句中将site.pages替换为pages\u列表:

    {% for my_page in pages_list %}
       {% if my_page.title %}
          <a class="page-link" href="{{ my_page.url | relative_url }}">{{ my_page.title | escape }}</a>
       {% endif %}
    {% endfor %}
    

    您可以查看以下文档:

    有一些很好的例子和解释是关于导航\u权重的

    ---
    layout: page
    title: About
    permalink: /about/
    navigation_weight: 10
    ---
    
    最低限度:

    <div>
         {% assign navigation_pages = site.pages | sort: 'navigation_weight' %}
            {% for p in navigation_pages %}
              {% if p.navigation_weight %}
                {% if p.title %}
                <a class="page-link" href="{{ p.url | relative_url }}">{{ p.title | escape }}</a>
                {% endif %}
              {% endif %}
            {% endfor %}
          </div>
    
    
    {%assign navigation_pages=site.pages | sort:'navigation_weight%}
    {p在导航_页面%}
    {%if p.navigation_weight%}
    {%if p.title%}
    {%endif%}
    {%endif%}
    {%endfor%}
    
    最小值主题 付诸表决:

    \u config.yml
    中覆盖默认顺序。仅此而已

    最小自述:

    自定义导航链接 这允许您设置要在中显示的页面 导航区域并配置链接的顺序

    例如,要仅链接到
    关于
    投资组合
    页面, 将以下内容添加到您的
    \u config.yml

    pages_order: ['index', 'summary', 'overview', 'part1', 'part2', 'conclusion', 'notes']
    
      - about.md
      - portfolio.md
    

    你可以在minima-includes的文件中看到它是如何工作的。

    谢谢。我已经看过aboue about site.pages。看起来它无法处理site.pages Arrai。恐怕我不同意你的评论。你使用的是jekyll引导模板吗?它可以访问site.pages。按照我上面的建议,我不明白你为什么需要访问site.pages.pages,如果您打算使用您指定的四个静态页面选项。谢谢。我已经用您的第一种方法更改了我的博客。我给出上面的评论是为了学习。我只是想知道为什么我不能在jekyll中处理数组。@您是否真的可以在jekyll中处理数组
    <div>
         {% assign navigation_pages = site.pages | sort: 'navigation_weight' %}
            {% for p in navigation_pages %}
              {% if p.navigation_weight %}
                {% if p.title %}
                <a class="page-link" href="{{ p.url | relative_url }}">{{ p.title | escape }}</a>
                {% endif %}
              {% endif %}
            {% endfor %}
          </div>
    
    header_pages:
     - pages.md
     - archive.md
     - about.md
     - messages.md
    
      - about.md
      - portfolio.md