关于我使用Trae优化Stack这件事

现在的博客真是越来越顺眼了😝

昨天下午,在公司闲来无事,想着自己的博客主题 Stack 有很多小细节都不满意,最近用 Trae 这个 MCP Tools 也越来越顺手,于是我想着要不就微微的优化一下自己的主题?

说干就干,优化的功能如下:

首先要优化的就是图片的灯窗,由于之前有个灯窗,但是那个功能我是不需要的,而且主题渲染文章中的图片,由于进行了一层编码,所以会影响到图片的颜色,直接就不是原图了😂

评论、以及分类的图片预览,每篇文末的“推荐文章”功能都进行删除,添加友情提示文章时限、文章总字数统计、参考链接。

RSS模版进行优化,只取首页文章,截取 150 字节字符到 item,使得更加轻便,订阅更方便(欢迎大哥们订阅)

添加友链自动渲染功能,之前我是直接使用的 markdown 语法的表格来置放大佬们的友链,新建了一个data/friends.yaml其中放信息,格式如下

1
2
3
4
5
6
7
8
9
Team:
    - name: su-team
      url: https://su-team.cn/
    - name: cdusec
      url: https://cdusec.com/

Links:
    - name: "sun.empty"
      url: https://sun1028.top/

在博客根目录放了一个layouts/page/links.html来进行渲染,代码如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
{{ define "body-class" }}
  article-page
  {{- $hasWidgetNotTOC := false -}}
  {{- $tocEnabled := false -}}
  {{- range .Site.Params.widgets.page -}}
    {{- if ne .type "toc" }}{{ $hasWidgetNotTOC = true }}{{ else }}{{ $tocEnabled = true }}{{ end -}}
  {{- end -}}
  {{- $tocOff := eq .Params.toc false -}}
  {{- $toc := and (not $tocOff) $tocEnabled -}}
  {{- $hasTOC := ge (len .TableOfContents) 100 -}}
  {{- .Scratch.Set "TOCEnabled" (and $toc $hasTOC) -}}
  {{- .Scratch.Set "hasWidget" (or $hasWidgetNotTOC (and $toc $hasTOC)) -}}
{{ end }}

{{ define "main" }}
<article class="main-article">
  {{ partial "article/components/header" . }}
  <section class="article-content">
    <div class="table-wrapper">
      <table>
        <thead><tr><th>Group</th><th>Name</th><th>Link</th></tr></thead>
        <tbody>
          {{ $friends := .Site.Data.friends }}
          {{ range $group := slice "Team" "Links" }}
            {{ $list := index $friends $group }}
            {{ if $list }}
              {{ $han := slice }}{{ $alpha := slice }}{{ $num := slice }}{{ $other := slice }}
              {{ range $list }}
                {{ $f := substr .name 0 1 }}
                {{ $lf := lower $f }}
                {{ if (findRE "^[\\p{Han}]" $f) }}
                  {{ $han = $han | append (dict "name" .name "url" .url "key" (default (lower .name) .key)) }}
                {{ else if (findRE "^[a-z]" $lf) }}
                  {{ $alpha = $alpha | append (dict "name" .name "url" .url "key" (default (lower .name) .key)) }}
                {{ else if (findRE "^[0-9]" $f) }}
                  {{ $num = $num | append (dict "name" .name "url" .url "key" (default (lower .name) .key)) }}
                {{ else }}
                  {{ $other = $other | append (dict "name" .name "url" .url "key" (default (lower .name) .key)) }}
                {{ end }}
              {{ end }}

              {{ $rows := slice }}
              {{ range sort $han "key" }}  {{ $rows = $rows | append . }}{{ end }}
              {{ range sort $alpha "key" }}{{ $rows = $rows | append . }}{{ end }}
              {{ range sort $num "key" }}  {{ $rows = $rows | append . }}{{ end }}
              {{ range sort $other "key" }}{{ $rows = $rows | append . }}{{ end }}

              {{ $count := len $rows }}
              {{ range $i, $it := $rows }}
                <tr>
                  {{ if eq $i 0 }}<td rowspan="{{ $count }}">{{ $group }}</td>{{ end }}
                  <td>{{ $it.name }}</td>
                  <td><a href="{{ $it.url }}" target="_blank" rel="noopener">{{ $it.url }}</a></td>
                </tr>
              {{ end }}
            {{ end }}
          {{ end }}
        </tbody>
      </table>
    </div>

    {{ if .Content }}<div class="mt-4">{{ .Content }}</div>{{ end }}
  </section>
  {{ partial "article/components/footer" . }}
</article>
{{ end }}

{{ define "right-sidebar" }}
  {{ if .Scratch.Get "hasWidget" }}{{ partial "sidebar/right.html" (dict "Context" . "Scope" "page") }}{{ end }}
{{ end }}

后续应该不太可能会有更新了,但是我个人认为是个改的不错的主题🤓

Licensed under CC BY-NC-SA 4.0