Hugo添加搜索相关问题及一些设置记录
在hexo时就使用的even主题,切换到hugo后还是使用该主题,挺喜欢这主题的,前两天想查找一下之前的笔记,由于部分文章设置了摘要,在搜索的时候,发现摘要部分可以搜索到,摘要以外的内容却搜不到,想着明明是写过那篇文章的,怎么搜不到,存档里面有,就是搜不到,这两天百度,还有请教博友老麦,其实只要添加一个rss.xml文件就行,没有就自己键一个,放在这个位置\themes\even\layouts\\_default,具体内容如下,保存,hugo生成静态文件然后上传就行,完美解决!
{{- /* Generate RSS v2 with full page content. */ -}}
{{- /* Upstream Hugo bug - RSS dates can be in future: https://github.com/gohugoio/hugo/issues/3918 */ -}}
{{- $page_context := cond .IsHome site . -}}
{{- $pages := $page_context.RegularPages -}}
{{- $limit := site.Config.Services.RSS.Limit -}}
{{- if ge $limit 1 -}}
{{- $pages = $pages | first $limit -}}
{{- end -}}
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }}
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ if ne .Title site.Title }}{{ with .Title }}{{.}} | {{ end }}{{end}}{{ site.Title }}</title>
<link>{{ .Permalink }}</link>
{{- with .OutputFormats.Get "RSS" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{ end -}}
<description>{{ .Title | default site.Title }}</description>
<generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator>
{{- with site.LanguageCode }}<language>{{.}}</language>{{end -}}
{{- with site.Copyright }}<copyright>{{ replace (replace . "{year}" now.Year) "©" "©" | plainify }}</copyright>{{end -}}
{{- if not .Date.IsZero }}<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end -}}
{{- if .Scratch.Get "og_image" }}
<image>
<url>{{ .Scratch.Get "og_image" }}</url>
<title>{{ .Title | default site.Title }}</title>
<link>{{ .Permalink }}</link>
</image>
{{end -}}
{{ range $pages }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
<guid>{{ .Permalink }}</guid>
<description>{{ .Content | html }}</description>
</item>
{{ end }}
</channel>
</rss>
记录一下我的config.toml设置:
baseURL = "https://www.illl.xyz/"
languageCode = "zh-cn"
defaultContentLanguage = "zh-cn" # en / zh-cn / ... (This field determines which i18n file to use)
title = "大峰笔记 - 简单记录生活"
preserveTaxonomyNames = true
enableRobotsTXT = true
enableEmoji = true
theme = "even"
enableGitInfo = false # use git commit log to generate lastmod record # 可根据 Git 中的提交生成最近更新记录。
# Syntax highlighting by Chroma. NOTE: Don't enable `highlightInClient` and `chroma` at the same time!
pygmentsOptions = "linenos=table"
pygmentsCodefences = true
pygmentsUseClasses = true
pygmentsCodefencesGuessSyntax = true
hasCJKLanguage = true # has chinese/japanese/korean ? # 自动检测是否包含 中文\日文\韩文
## 摘要长度
summaryLength = 200
paginate = 5 # 首页每页显示的文章数
disqusShortname = "" # disqus_shortname
googleAnalytics = "" # UA-XXXXXXXX-X
copyright = "" # default: author.name ↓ # 默认为下面配置的author.name ↓
[author] # essential # 必需
name = "大峰"
[sitemap] # essential # 必需
changefreq = "weekly"
priority = 0.5
filename = "sitemap.xml"
[[menu.main]] # config your menu # 配置目录
name = " "
weight = 5
identifier = "home"
url = "/"
[[menu.main]]
name = "Archives"
weight = 10
identifier = "archives"
url = "/post/"
[[menu.main]]
name = " "
weight = 20
identifier = "categories"
url = "/categories/"
[params]
version = "4.x" # Used to give a friendly message when you have an incompatible update
debug = false # If true, load `eruda.min.js`. See https://github.com/liriliri/eruda
enable_site_search = true # default: false
since = "2010" # Site creation time # 站点建立时间
# use public git repo url to link lastmod git commit, enableGitInfo should be true.
# 指定 git 仓库地址,可以生成指向最近更新的 git commit 的链接,需要将 enableGitInfo 设置成 true.
gitRepo = ""
# site info (optional) # 站点信息(可选,不需要的可以直接注释掉)
logoTitle = "大峰笔记" # default: the title value # 默认值: 上面设置的title值
keywords = ["Hugo", "theme","even"]
description = "大峰笔记"
# paginate of archives, tags and categories # 归档、标签、分类每页显示的文章数目,建议修改为一个较大的值
archivePaginate = 50
# show 'xx Posts In Total' in archive page ? # 是否在归档页显示文章的总数
showArchiveCount = true
# The date format to use; for a list of valid formats, see https://gohugo.io/functions/format/
dateFormatToUse = "2006-01-02"
# show word count and read time ? # 是否显示字数统计与阅读时间
moreMeta = false
# Syntax highlighting by highlight.js
highlightInClient = false
# 一些全局开关,你也可以在每一篇内容的 front matter 中针对单篇内容关闭或开启某些功能,在 archetypes/default.md 查看更多信息。
# Some global options, you can also close or open something in front matter for a single post, see more information from `archetypes/default.md`.
toc = false # 是否开启目录autoCollapseToc = false # Auto expand and collapse toc # 目录自动展开/折叠
fancybox = true # see https://github.com/fancyapps/fancybox # 是否启用fancybox(图片可点击)
# mathjax
mathjax = false # see https://www.mathjax.org/ # 是否使用mathjax(数学公式)
mathjaxEnableSingleDollar = false # 是否使用 $...$ 即可進行inline latex渲染
mathjaxEnableAutoNumber = false # 是否使用公式自动编号
mathjaxUseLocalFiles = false # You should install mathjax in `your-site/static/lib/mathjax`
postMetaInFooter = true # contain author, lastMod, markdown link, license # 包含作者,上次修改时间,markdown链接,许可信息
linkToMarkDown = false # Only effective when hugo will output .md files. # 链接到markdown原始文件(仅当允许hugo生成markdown文件时有效)
contentCopyright = '' # e.g. '<a rel="license noopener" href="https://creativecommons.org/licenses/by-nc-nd/4.0/" target="_blank">CC BY-NC-ND 4.0</a>'
changyanAppid = "" # Changyan app id # 畅言
changyanAppkey = "" # Changyan app key
livereUID = "" # LiveRe UID # 来必力
baiduPush = false # baidu push # 百度
baiduAnalytics = "" # Baidu Analytics
baiduVerification = "" # Baidu Verification
googleVerification = "" # Google Verification # 谷歌
# Link custom CSS and JS assets
# (relative to /static/css and /static/js respectively)
customCSS = []
customJS = []
uglyURLs = false # please keep same with uglyurls setting
# Show language selector for multilingual site.
showLanguageSelector = false
# Display a message at the beginning of an article to warn the readers that it's content may be outdated.
# 在文章开头显示提示信息,提醒读者文章内容可能过时。
[params.outdatedInfoWarning]
enable = false
hint = 30 # Display hint if the last modified time is more than these days ago. # 如果文章最后更新于这天数之前,显示提醒
warn = 180 # Display warning if the last modified time is more than these days ago. # 如果文章最后更新于这天数之前,显示警告
[params.gitment] # Gitment is a comment system based on GitHub issues. see https://github.com/imsun/gitment
owner = "" # Your GitHub ID
repo = "" # The repo to store comments
clientId = "" # Your client ID
clientSecret = "" # Your client secret
[params.utterances] # https://utteranc.es/
owner = "" # Your GitHub ID
repo = "" # The repo to store comments
[params.gitalk] # Gitalk is a comment system based on GitHub issues. see https://github.com/gitalk/gitalk
owner = "" # Your GitHub ID
repo = "" # The repo to store comments
clientId = "" # Your client ID
clientSecret = "" # Your client secret
# Valine.
# You can get your appid and appkey from https://leancloud.cn
# more info please open https://valine.js.org
[params.valine]
enable = false
appId = '你的appId'
appKey = '你的appKey'
notify = false # mail notifier , https://github.com/xCss/Valine/wiki
verify = false # Verification code
avatar = 'mm'
placeholder = '说点什么吧...'
visitor = false
[params.flowchartDiagrams]# see https://blog.olowolo.com/example-site/post/js-flowchart-diagrams/
enable = false
options = ""
[params.sequenceDiagrams] # see https://blog.olowolo.com/example-site/post/js-sequence-diagrams/
enable = false
options = "" # default: "{theme: 'simple'}"
[params.busuanzi] # count web traffic by busuanzi # 是否使用不蒜子统计站点访问量
enable = false
siteUV = true
sitePV = true
pagePV = true
[params.reward] # 文章打赏
enable = false
wechat = "/path/to/your/wechat-qr-code.png" # 微信二维码
alipay = "/path/to/your/alipay-qr-code.png" # 支付宝二维码
[params.social] # 社交链接
a-email = ""
b-stack-overflow = ""
c-twitter = ""
d-facebook = ""
e-linkedin = ""
f-google = ""
g-github = ""
h-weibo = ""
i-zhihu = ""
j-douban = ""
k-pocket = ""
l-tumblr = ""
m-instagram = ""
n-gitlab = ""
o-bilibili = ""
# See https://gohugo.io/about/hugo-and-gdpr/
[privacy]
[privacy.googleAnalytics]
anonymizeIP = true # 12.214.31.144 -> 12.214.31.0
[privacy.youtube]
privacyEnhanced = true
# see https://gohugo.io/getting-started/configuration-markup
[markup]
[markup.tableOfContents]
startLevel = 1
[markup.goldmark.renderer]
unsafe = true
# 将下面这段配置取消注释可以使 hugo 生成 .md 文件
# Uncomment these options to make hugo output .md files.
#[mediaTypes]
# [mediaTypes."text/plain"]
# suffixes = ["md"]
#
#[outputFormats.MarkDown]
# mediaType = "text/plain"
# isPlainText = true
# isHTML = false
#
#[outputs]
# home = ["HTML", "RSS"]
# page = ["HTML", "MarkDown"]
# section = ["HTML", "RSS"]
# taxonomy = ["HTML", "RSS"]
# taxonomyTerm = ["HTML"]
[permalinks]
post = "/:year/:month/:day/:title/"
下面是even主题修改的一些地方,记录一下
body:after {position:fixed;right:-155px;bottom:260px;content:"\人生除了生死,其它都是擦伤,睡前原谅一切,醒来不谈过往。";font-family: Comic Sans MS, Microsoft Yahei,Courier New, "Verdana";font-size: 80%;transform: rotate(-90deg);}
.header .logo-wrapper {margin: 5px 0 0;}
body {line-height: 1.725;color: #646d78;border-top: 2px solid transparent;border-image: linear-gradient(to right, yellow,violet);border-image-slice: 100%;border-image-slice: 10;}
.post .post-header .post-title {font-size: 25px;}html {font-size: 17px;}
.header .site-navbar .menu {padding-right: 0;}
.footer .copyright {margin: 0;padding: 10px 0 30px;}
.post .post-content img {border-radius: 5px; -webkit-box-shadow: 0 0 10px #696863;}
.header .site-navbar .menu .menu-item + .menu-item {margin-left: 18px;}
.posts {border-bottom: 0px solid;}.post + .post {border-top: 0px solid;}
.header .logo-wrapper .logo {
background-size: 100% 20px;
background-repeat: repeat-x;
background-position: left 0 bottom 0;
background-image: linear-gradient(#fada5c,#fada5c 40%);
-webkit-transform: rotate(0deg);
display: inline-block;}
.post .post-content blockquote {
border-bottom-left-radius: 30px 255px;
border-bottom-right-radius: 255px 25px;
border-top-left-radius: 255px 25px;
border-top-right-radius: 30px 225px;}
鼠标跟屁虫设置的代码,两步骤,一,以下代码放入css中(感谢博友[Jdeal](https://www.jdeal.cn/)的分享)
#cursor {
position:fixed;
width:16px;
height:16px;
background:#000;
border-radius:8px;
opacity:0.25;
z-index:10086;
pointer-events:none;
transition:0.2s ease-in-out;
transition-property:background,opacity,transform
}
#cursor.hidden {
opacity:0
}
#cursor.hover {
opacity:0.1;
transform:scale(2.5)
}
#cursor.active {
opacity:0.5;
transform:scale(0.5)
}
@media print,screen and (max-width:960px) {
#cursor {display:none}
}
```
鼠标跟屁虫设置的代码,两步骤,二,鼠标js,放入\themes\even\assets\js\even
```
var CURSOR;
Math.lerp = (a, b, n) => (1 - n) * a + n * b;
const getStyle = (el, attr) => {
try {
return window.getComputedStyle ? window.getComputedStyle(el)[attr] : el.currentStyle[attr]
} catch (e) {}
return ""
};
class Cursor {
constructor() {
this.pos = {
curr: null,
prev: null
};
this.pt = [];
this.create();
this.init();
this.render()
}
move(left, top) {
this.cursor.style["left"] = `${left}px`;
this.cursor.style["top"] = `${top}px`
}
create() {
if (!this.cursor) {
this.cursor = document.createElement("div");
this.cursor.id = "cursor";
this.cursor.classList.add("hidden");
document.body.append(this.cursor)
}
var el = document.getElementsByTagName('*');
for (let i = 0; i < el.length; i++)
if (getStyle(el[i], "cursor") == "pointer") this.pt.push(el[i].outerHTML);
document.body.appendChild((this.scr = document.createElement("style")));
this.scr.innerHTML = `*{cursor:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' width='8px' height='8px'><circle cx='4' cy='4' r='4' opacity='.5'/></svg>")4 4,auto}`
}
refresh() {
this.scr.remove();
this.cursor.classList.remove("hover");
this.cursor.classList.remove("active");
this.pos = {
curr: null,
prev: null
};
this.pt = [];
this.create();
this.init();
this.render()
}
init() {
document.onmouseover = e => this.pt.includes(e.target.outerHTML) && this.cursor.classList.add("hover");
document.onmouseout = e => this.pt.includes(e.target.outerHTML) && this.cursor.classList.remove("hover");
document.onmousemove = e => {
(this.pos.curr == null) && this.move(e.clientX - 8, e.clientY - 8);
this.pos.curr = {
x: e.clientX - 8,
y: e.clientY - 8
};
this.cursor.classList.remove("hidden")
};
document.onmouseenter = e => this.cursor.classList.remove("hidden");
document.onmouseleave = e => this.cursor.classList.add("hidden");
document.onmousedown = e => this.cursor.classList.add("active");
document.onmouseup = e => this.cursor.classList.remove("active")
}
render() {
if (this.pos.prev) {
this.pos.prev.x = Math.lerp(this.pos.prev.x, this.pos.curr.x, 0.15);
this.pos.prev.y = Math.lerp(this.pos.prev.y, this.pos.curr.y, 0.15);
this.move(this.pos.prev.x, this.pos.prev.y)
} else {
this.pos.prev = this.pos.curr
}
requestAnimationFrame(() => this.render())
}
}(() => {
CURSOR = new Cursor()
})();
```
关闭某个文章或页面的留言功能,如果已经在配置中写明,或者默认值已设定的,仍然对单独文章特殊化,例如如果配置文件里comment值为true或者没写出但默认为true的,可以在页面头部进行特殊化。
`comment: false`
生成静态网站时压缩需要用hugo –minify,不要以为config.yml里面写了minifyOutput: true就会自动输出压缩好的文件。