- 这几天逛了很多博客,找到了十年之约 (foreverblog.cn)、博客广场 - 博友圈 · 博客人的朋友圈! (boyouquan.com)等博客交流圈子,等我慢慢写博客,然后域名备案下来了,提交申请吧~
一、新增博客背景虚化图片
这个很简单,在assets\scss\custom.scss中对body选择器声明块中增加,背景图片即可。
如果要点击暗色模式的时候,切换背景虚化的颜色。那么需要在为暗色模式的click事件中增加背景虚化的类。
-
\主题文件夹\public\ts\main.ts中
-
首先在CSS: 使用
.dark-mode
类在暗色模式下应用黑色毛玻璃效果。
body { background-image: url('/page/nav-img/background4.jpg'); background-size: cover; background-attachment: fixed; position: relative; transition: background-color 0.3s ease; } body::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; /* 白色模式下的样式 */ background: rgba(176, 176, 176, 0.595); /* 黑色半透明 */ backdrop-filter: blur(10px); /* 毛玻璃效果 */ z-index: -1; // transition: background 0.3s ease, backdrop-filter 0.3s ease; /* 平滑过渡效果 */ } /* 暗色模式下的样式 */ body.dark-mode::after { background: rgba(158, 157, 157, 0.5); /* 更强的黑色半透明毛玻璃效果 */
复制
其次main.ts的JS中: 切换 dark-mode
类以应用新的样式。
- main.ts
// 初始化颜色方案切换器 const colorSchemeToggler = new colorScheme_default(document.getElementById("dark-mode-toggle")); // 为暗色模式切换按钮添加事件监听器 const darkModeToggleButton = document.getElementById("dark-mode-toggle"); if (darkModeToggleButton) { darkModeToggleButton.addEventListener("click", () => { // 切换 body 上的 'dark-mode' 类,切换到暗色模式 document.body.classList.toggle("dark-mode"); }); } } };
复制
实现效果。
二、新增导航栏及Home、关于我、走走停停板块
(1)导航栏
1.创建导航栏的html
layouts/partials
文件夹中创建一个新的部分文件
我创建在了\hugo-theme-stack-3.26.0\layouts\partials\navbar目录下的navbar.html
<!-- layouts/partials/navbar.html --> <nav class="navbar--fixed-top"> <div class="container"> <a href="/" class="navbar-brand">Logo</a> <ul class="navbar-nav"> <li class="nav-item"><a href="/" class="nav-link">Home</a></li> <li class="nav-item"><a href="/about" class="nav-link">About</a></li> <li class="nav-item"><a href="/contact" class="nav-link">Contact</a></li> </ul> </div> </nav>
复制
2.在Hugo主模板中包含导航栏
修改_default目录下的baseof.html,这个文件是Hugo主题的模板文件,可以用go自己设计模板。
要包含navbar.html即可
\hugo-theme-stack-3.26.0\layouts\_default\baseof.html <!DOCTYPE html> <html lang="{{ .Site.LanguageCode }}" dir="{{ default `ltr` .Language.LanguageDirection }}"> <head> {{- partial "head/head.html" . -}} {{- block "head" . -}}{{ end }} </head> <body class="{{ block `body-class` . }}{{ end }}"> {{- partial "head/colorScheme" . -}} <!-- 导航栏的html文件包含 --> {{ partial "navbar/navbar.html" . }} <!-- 包含导航栏 --> {{/* The container is wider when there's any activated widget */}} {{- $hasWidget := false -}} {{- range .Site.Params.widgets -}} {{- if gt (len .) 0 -}} {{- $hasWidget = true -}} {{- end -}} {{- end -}} <div class="container main-container flex on-phone--column {{ if $hasWidget }}extended{{ else }}compact{{ end }}"> {{- block "left-sidebar" . -}} {{ partial "sidebar/left.html" . }} {{- end -}} {{- block "right-sidebar" . -}}{{ end }} <main class="main full-width"> {{- block "main" . }}{{- end }} </main> </div> {{ partial "footer/include.html" . }} </body> </html>
复制
3.为导航栏的html增加css样式
我放在了\hugo-theme-stack-3.26.0\assets\scss\partials的navbar.scss中
/* assets/css/styles.css */ .navbar--fixed-top { position: sticky; top: 0; z-index: var(--ifm-z-index-fixed); background-color: white; /* 你可以根据需要添加其他样式 */ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); padding: 10px 0; } .navbar-nav { list-style: none; display: flex; gap: 20px; } .nav-item { display: inline; } .nav-link { text-decoration: none; color: black; } .navbar-brand { font-size: 1.5em; font-weight: bold; }
复制
4.在head.html文件下确保css被正确引用
-
theme-stack-3.26.0\layouts\partials\head\head.html中
复制<meta charset='utf-8'> <meta name='viewport' content='width=device-width, initial-scale=1'> {{- $description := partialCached "data/description" . .RelPermalink -}} <meta name='description' {{ printf "content=%q" $description | safeHTMLAttr }}> {{ with .Params.Keywords }}<meta name="keywords" content="{{ delimit . ", " }}">{{ end }} {{- $title := partial "data/title" . -}} <title>{{ $title }}</title> <link rel='canonical' href='{{ .Permalink }}'> <!-- navbar的css引用 --> <link rel="stylesheet" href="{{ "/scss/partials/navbar.scss" | relURL }}"> <!-- 添加CSS文件引用 --> {{- partial "head/style.html" . -}} {{- partial "head/script.html" . -}} {{- partial "head/opengraph/include.html" . -}} {{- range .AlternativeOutputFormats -}} <link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}"> {{- end -}} {{ with .Site.Params.favicon }} <link rel="shortcut icon" href="{{ . | relURL }}" /> {{ end }} {{- template "_internal/google_analytics.html" . -}} {{- partial "head/custom.html" . -}} <!-- busuanzi --> {{- if .Site.Params.busuanzi.enable -}} <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> <meta name="referrer" content="no-referrer-when-downgrade"> {{- end -}} 5.然后在style.scss中增加scss引用
/*! * Hugo Theme Stack * * @author: Jimmy Cai * @website: https://jimmycai.com * @link: https://github.com/CaiJimmy/hugo-theme-stack 这个 SCSS 文件作为一个主文件,起到将所有相关样式文件引入到一个地方的作用。 它确保项目中的样式文件能够被组织和管理,使得最终生成的 CSS 文件包含了所有必要的样式定义。 这种结构化的样式管理方式有助于保持代码的清晰和模块化。 */ @import "breakpoints.scss"; @import "variables.scss"; @import "grid.scss"; @import "external/normalize.scss"; @import "partials/menu.scss"; @import "partials/article.scss"; @import "partials/widgets.scss"; @import "partials/footer.scss"; @import "partials/pagination.scss"; @import "partials/sidebar.scss"; @import "partials/base.scss"; @import "partials/layout/article.scss"; @import "partials/layout/list.scss"; @import "partials/layout/404.scss"; @import "partials/layout/search.scss"; @import "general.scss"; @import "custom.scss"; // narbar @import "partials/navbar.scss"
复制
这就可以增加导航栏了。
(2)关于我
- 定位到acrchives的.md文件。navbar的html中设置a标签href跳转即可。
- md文件的layout设置为已经存在的layout文件,我使用的是archives的layout文件。
(3)走走停停
1.使用Apache ECharts创建地图
一个基于 JavaScript 的开源可视化图表库Apache ECharts
三、走走停停板块的设置
-
pb主题\content\page\daily_info中的index.md
-
layout自定义了daily_info的Hugo模块
-
\hugo-theme-stack-3.26.0\layouts\partials\map中创建了index4.html设置了地图及时间轴
-
\hugo-theme-stack-3.26.0\layouts_default中创建了daily_info.html自定义了模板,引入了index4.index(archives.html也默认再此设置的)