消解炼金术

08_多层文件夹引用bug

小岛建设

改bug时翻文件夹翻到麻木,layouts文件全部堆在default和partial底下,继上次整理css文件后再一次忍无可忍重新分类整理。

tree layouts /F
---整理前---
\LAYOUTS
│  ...
├─all-articles
├─partials
│      all-articles-cards.html
│      articles-range.html
│      comments.html
│      commentsForbl.html
│      copyright.html
│      get-title.html
│      header.html
│      indexright.html
│      posts-words.html
│      sectionnav.html
│      sidebar.html
│
└─_default
    │  03_01.html
    │  alchemy.html
    │  baseof.html
    │  bloglinks.html
    │  guestbook.html
    │  search.html
    │  section.html
    │  sidebarpage.html
    │  single.html
    │
    ├─06mumble
    │      06_00.html
    │
    └─all-articles
            all-articles-cards.html
            all-articles.html
---整理后---
\LAYOUTS
│  ...
├─partials
│  ├─article
│  │      all-articles-cards.html
│  │      articles-range.html
│  │      get-title.html
│  │
│  ├─baseof
│  │      copyright.html
│  │      header.html
│  │      posts-words.html
│  │      sidebar.html
│  │
│  └─page
│          comments.html
│          commentsForbl.html
│          indexright.html
│          sectionnav.html
│
└─_default
    │  baseof.html
    │  section.html
    │  single.html
    │
    ├─page
    │      alchemy.html
    │      bloglinks.html
    │      guestbook.html
    │      search.html
    │      sidebarpage.html
    │
    └─section
        ├─03
        │      03_01.html
        │
        ├─06
        │      06_00.html
        │
        └─07
                all-articles-cards.html
                all-articles.html

layouts下除了通用的三个模版,其他模版都归入不同文件夹下,在页面的引用里额外添加type类型输入文件夹命名,继承一样在cascade下面添加。partial部分则写用脚本一键修改所有引用,例如:

{{ partial "get-title.html" . }}
        ↓
{{ partial "article/get-title.html" . }}

因为懒+有一些写作界面强迫症,所以在搭建博客后新建的所有md文件里都没有用frontmatter写title,所以用了额外的文件名读取生成一个partial页,就是在这里出现了一个bug,search.html里的部分在修改引用部分前是:

{{ range .Site.RegularPages }}
<div data-uri="{{ .RelPermalink }}" data-title='{{partial "get-title" .}}' data-date="{{ .Date.Format " 2006-01-02" }}"
    data-content='{{ .Plain }}'>
</div>
{{ end }}

仅仅添加上级文件夹名后开始报错。

process: "..layouts\_default\baseof.html:14:1": apply base template failed unterminated quoted string

但把引用部分提前后再引入,则不会报错。

{{ range .Site.RegularPages }}{{$title:=partial "article/get-title" .}}
<div data-uri="{{ .RelPermalink }}" data-title='{{$title}}' data-date="{{ .Date.Format " 2006-01-02" }}"
    data-content='{{ .Plain }}'>
</div>
{{ end }}

跑起来了,但不知道怎么跑的,也不知道为什么刚刚没跑,陷入迷茫……

© 2026 消解炼金术 | 
Powered by Hugo and Cloudflare