博客样式迭代

Posted by 渐行渐远 on Saturday, February 20, 2021 共644字

那些看到别人代码有点瑕疵就一顿乱骂,或者花尽心思去构思一个完美设计的人,往往都是因为没有树立正确的代码质量观,没有持续的重构意识

虽然博客是静态的,但博客的样式完全可控。我自己是做后端开发的,对前端几乎没有涉猎,对博客的样式改动就有些力不从心。但追求美观的心人人都有,我也在不断的对博客的样式做调整。

引言

比如说引言,我习惯在每一篇文章的开头引用在别的地方看到的一段话,内容多偏向于心灵鸡汤类的。我特别想把引言部分明确区分出来,前期是加了边框,后期调整成了背景色,但其实并没有让我满意,甚至在有多个引言的文章中,还存在一些预料之外的样式(我只希望文章开头的引言有样式调整)。

article .content > blockquote {
    color: #c07814;
    background-color: aliceblue;
}

这便是设置引言的样式,> 标识紧跟 .content 类出现的第一个 blockquote 标签。文章中如果存在多个引言,其实会触发这种样式多次。

_index.md

每个文件夹下的 _index.md是有特殊用途的,它作为整个文件夹第一个文件被加载,在列表页中,读取的就是这个文件。我们可以把一些内容写在 _index.md 文件中,在列表页进行展示。

{{ if .Page.File }}
	{{ with .Site.GetPage (string .Page.File) }}
		{{ .Content }}
	{{ end }}
{{ end }}

.Content用来获取该文件中的内容。.Site.GetPage 的参数是文件路径,而 .Page.File 表示的是文件对象,通过 string 方法转换为路径字符串。其中,if 是逻辑函数,判断 .Page.File 是否是一个零值。

配置文件

项目的配置文件是根目录下的 config.toml,可以通过全局对象 .Site.Param 读取。其中,Param 作为 toml 配置中的一个对象。

{{ if isset .Site.Params "postsonhomepage" }}
	{{ .Scratch.Set "count" .Site.Params.postsOnHomePage }}
{{ end }}

代码中 .Scratch 是作为一个类似 Context 的作用存在,用来设置和读取数据。