2

我已经用Grav进行了几天的试验,发现它对于只使用过 WordPress 的人来说是一股真正的新鲜空气。然而,有一件事情让我很困扰。Grav 使用的文件夹结构驱动的平面文件页面层次结构很容易得到如下所示的文件夹结构

01.home
 |
 --- default.en.md
     |
     01.sub-page-1
                 |
                  --- default.en.md
     |
     02.sub-page-2
                 |
                  --- default.en.md

问题就在于此。我更喜欢通过 SFTP 在 Visual Studio Code 中编辑我的 markdown,而不是在 Grav 管理面板中。但是,这意味着我最终可能会同时打开多个 default.en.md 文件,这是一场等待发生的灾难。是否可以将降价文件重命名为更合乎逻辑的名称?

4

2 回答 2

3

你实际上可以。

默认情况下,grav 从 markdown 文件的名称中提取模板类型。template但是,您可以通过在页面的 YAML 标头中设置变量来覆盖此行为。所以我们可以很容易地得到类似的东西:

01.home
 |
 --- homepage.en.md
     |
     01.sub-page-1
                 |
                  --- home.subpage1.en.md

如果我们只是有一个标题

---
title: blah
template: default
...
---
于 2017-11-17T22:59:05.610 回答
1

降价文件的名称指定要使用的模板。因此,在您的示例中,每个子文件夹中的所有页面都将使用default.html.twig位于templates/THEME_IN_USE/文件夹中。

我想你已经从 Grav 的官方页面下载了基本模板。在这种情况下,默认模板是 Antimatter。您可以看到在主题/anitmatter中有一个名为default.html.twig的文件,因此应用了此模板。但是,如果您将user/config/system.yaml中的主题设置为 my-theme(而不是 Antimatter),您可以定义自己的 default.html.twig(您自己的模板)。

因此,要回答您的问题,您可以为每个页面创建自己的模板,或者更好地为类似页面(如博客文章)创建模板。那时你可能会得到这样的结果。

pages
  01.home
   |
   --- default.en.md
       |
       01.blog-post
                   |
                    --- blog.en.md
       |
       02.contact
                   |
                    --- contact.en.md
themes
  my-theme
   |
    ...

    templates
        --- default.html.twig
        --- blog.html.twig
        --- contact.html.twig
于 2018-01-04T08:20:31.913 回答