【问题标题】:How to hide all pages [published: false] by default如何默认隐藏所有页面[已发布:false]
【发布时间】:2019-01-12 04:05:47
【问题描述】:

我想默认隐藏我的 Jekyll 存储库中的所有页面。我将我的 repo 分发到两个位置,一个是私有的,一个是有授权的,另一个是公共的。对于公众,我使用具有以下 sn-p 的 _config.public.yaml 构建。这个想法是,如果我在特定页面上放置 published: true 的前端字段,它将优先并被发布。而其余的页面将永远不会被构建。

这是我用来构建公共站点的 _config.public.yaml 文件。

yaml
include: 
    - .htaccess
    - _pages
defaults:
    - scope:
        path: "_pages"
      values:
        permalink: /:path/:basename:output_ext
        published: false

【问题讨论】:

  • @nick 的编辑解决了你的问题吗?
  • @DavidJacquel 我所做的只是让帖子更易于阅读。这个问题仍然需要答案。
  • 您确定路径:'_pages' 正确吗?
  • 是的,创建为首页,并在包含部分。

标签: jekyll


【解决方案1】:

使用“published: false”,只能在 DOCUMENT 的前台使用。

如果您不希望集合为集合中的每个文档输出一个页面,请为您的集合设置“输出:false”。 (默认为真)

collections:
  pages:
    output: false

【讨论】:

  • 感谢您的反馈。我正在处理页面而不是帖子,因此 _drafts 和未来选项不适用于我的问题。但是,我尝试了bundle exec jekyll server --unpublished 命令,它似乎没有任何效果。前面有published: true 的页面以及没有指定published: frontmatter var 的页面都已发布。默认设置为published: false 的预期结果是什么?
  • 您是否尝试在页面的frontmatter 中放置“published: false”?我看了一下here,似乎它应该适用于自定义集合。
  • 在每页基础上更改前面的内容肯定会奏效。但在 600 页上,这变得站不住脚。特别是因为我在提交时发布到公共和私人网站。如前所述,公共站点有自己的 _config.yml ,我试图在没有明确 published: true 的情况下不发布页面。毫无疑问,我必须做一个预构建函数遍历所有页面并设置published: false(如果它不存在)。但希望配置会有所帮助。
  • 至于收藏,是的,您可以默认取消发布收藏,但是,整个结构仍然存在_pages 并复制到/collection_name,它只生成published: true 页面。我还将每个页面的图形保持为内联,这些集合不能很好地配合。例如 PageOne.md 有一个 PageOne.img/ 同级文件夹。而 Collections 则希望所有内容都存放在 /assets 或类似的目录中。不过感谢您的建议。
  • 好的,所以我从中得到的是,您保留了两个单独的文件夹,其中包含“相同”文件,但您不想发布,而另一个您想要发布。一个选项是尝试“排除”,排除:[DIR, FILE, ...] 您可以阅读更多 here。如果这不起作用,请尝试“输出:false”,如 here 所示
猜你喜欢
  • 2021-08-07
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多