热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Hugo框架搭建博客的过程主题配置

前言博客部署完成后,恭喜你可以发表第一篇:Helloworld!但是LoveIt这么好用的主题,不配置一番可惜了。基本功能配置主题配置最好参考已有的配置,比如LoveIt作者写的介

前言

博客部署完成后,恭喜你可以发表第一篇:Hello world!但是LoveIt这么好用的主题,不配置一番可惜了。

基本功能配置

主题配置最好参考已有的配置,比如LoveIt作者写的介绍,还有主题目录下的配置文件\themes\LoveIt\exampleSite\config.toml文件。

笔者认为一些配置项解释的不够清楚,所以将网站的源码放在了Github上,仅供参考。

下面介绍其中一些配置。

双语言配置

配置后需要每篇文章存在多个语言的文件,否则会报错。

例如:content\about\index.en.mdcontent\about\index.zh-cn.md

Gravatar头像

gravatar头像注册,需要使用wordpress帐号,注册帐号时,有些邮箱的邮件会被过滤,使用163邮箱等了1个多小时方才收到注册的邮件。

图片画廊功能

在配置文件config.toml中开启lightgallery

# 是否使用 lightgallery
lightgallery = true

或者在文章的头部参数中设置lightgallery: true
最后文章中的图片引用格式为:![weichat](/images/weichat-logo_500px.png "公众号"),注意路径后面要加"内容"。

搜索配置

使用algolia作为搜索引擎,因为lunr的加载速度会让你等到花都谢了。虽然algolia需要上传index.json,但是可以使用Algolia Atomic简化操作。

评论系统设置

国内不能用disqus,不过还有Valine评论系统。留言可以设置邮件提醒功能,但是LeanCloud的云引擎域名需要使用自己的域名并配置DNS解析。

社交信息设置

首页的社交信息,不同语言的界面,可分别设置。

社交信息拓展

以微信公众号为例。
config.toml的社交信息中添加

# 作者的社交信息设置
[social]
    ...
    Wechat = "https://img.xiaodejiyi.com/img/wechat%20logo_500px.png"
    ...

配置themes\LoveIt\assets\data\social.yml:

# 064: wechat
wechat:
  # weight值排序
  Weight: 2
  Title: 公众号
  Newtab: true
  Icon:
    Simpleicons: wechat

其中图标可参考其他形式,如:

# Src形式
cnblog:
  Weight: 1
  Prefix: https://www.cnblogs.com/
  Title: 博客园
  Icon:
  # themes\LoveIt\assets\svg\icons\cnblog.svg
    Src: svg/icons/cnblog.svg
# fontawesome class形式
mastodon:
  Weight: 56
  Prefix: https://mastodon.social/
  Title: Mastodon
  Icon:
    Class: fab fa-mastodon fa-fw
# Simpleicons
googlescholar:
  Weight: 54
  Template: https://scholar.google.com/citations?%v
  Title: Google Scholar
  Icon:
  # themes\LoveIt\assets\lib\simple-icons
    Simpleicons: googlescholar

使用站长工具,向搜索引擎提交网站地图

让搜索引擎收录网站内容。

  • 百度搜索资源平台
    https://ziyuan.baidu.com/site/index#/

  • Google search console
    https://search.google.com/search-console/about?hl=zh-CN

# 网站验证代码,用于 Google/Bing/Yandex/Pinterest/Baidu
[verification]
	google = "xxxxxxxxxxxxxxxx"
	bing = ""
	yandex = ""
	pinterest = ""
	baidu = "code-xxxxxxx"

网站统计与分析

网站流量分析

分析网站点击流量,访客IP等数据。

  1. Google Analytics
  2. 百度统计

注册后,需要先添加DNS解析,验证域名所有权,可能会与其他解析记录存在冲突。

解决方法,暂停其他解析,验证所有权通过后,在网站分析中配置ID,最后删除验证的DNS解析,重新开启其他冲突的解析记录。

#  Google网站分析配置
[analytics]
	enable = true
	# Google Analytics
	[analytics.google]
		id = "G-xxxxxxx"
		# 是否匿名化用户 IP
		anOnymizeIP= true

百度统计需要在网站代码中加入百度的统计代码,可以在themes\LoveIt\layouts\partials\plugin\analytics.html中添加以下代码。

{{- /* baidu Analytics */ -}}

# 下面网站访问数量统计中,友盟+和51LA也可以加在这里。
{{- /* 51la Analytics */ -}}

网站访问数量统计

对比样式之后,选择了51LA统计。也可以用JS修改统计的样式。

这三个访问统计都需要在网站代码中加入统计的JS代码。注册后,获取JS统计代码,可以和网站流量分析中百度分析一样加到themes\LoveIt\layouts\partials\plugin\analytics.html中。

  1. 不算子
    样式:
    本文总阅读量929966次
    本站总访问量3152598次
    本站总访客数672421人

  2. 友盟+
    互联网数据服务平台缔元信和CNZZ合并成为友盟+。
    样式:
    站长统计 | 今日IP[43] | 今日PV[191] | 昨日IP[31] | 昨日PV[133] | 当前在线[5]

  3. 51LA
    样式:
    总访问量 21,195,本月访问量 2,820,昨日访问量 93,今日访问量 103,当前在线 4

分类页文章总数

themes\LoveIt\layouts\_default\section.html中添加以下代码:



    {{- len ( where .Site.RegularPages "Section" "posts" ) | dict "Nums" | T "totalPageNums" -}}

Ti18n函数是翻译函数,按照不同的语言,使用对应语言的字符串。参考i18n

i18n配置为:

# themes\LoveIt\i18n\zh-CN.toml
[totalPageNums]
other = "共 {{ .Nums }} 篇文章"

# themes\LoveIt\i18n\en.toml
[totalPageNums]
other = " {{ .Nums }} articles"

网站总字数统计

参考Hugo 总文章数和总字数。

底部链接设计

关于知识共享许可协议

可以看这篇“知识共享”(CC协议)简单介绍,笔者最终决定采用:知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议。

网站运行时间

themes\LoveIt\layouts\partials\footer.html中加入以下代码。

{{- /* Hugo and LoveIt */ -}}
{{- if ne .Site.Params.footer.hugo false -}}
    
{{- end -}}

i18n配置为:

# themes\LoveIt\i18n\zh-CN.toml
[worktime]
other = "运行 time 天"

# themes\LoveIt\i18n\en.toml
[worktime]
other = "Almost time days."

小徽章

使用Hugo框架搭建博客的过程 - 主题配置

如果你喜欢这样的小徽章,前往shield进行DIY吧!参考动态小牌子制作

第三方库配置

使用jsdelivr加速第三方库文件的加载。

LoveIt主题对cdn文件的加载过程是这样的。

  1. 配置文件中补充cdn文件名称,可以直接复制主题的cdn文件到blog的assets/data/cdn/目录下。
[params.cdn]
    # CDN 数据文件名称, 默认不启用
    # ("jsdelivr.yml")
    # 位于 "themes/LoveIt/assets/data/cdn/" 目录
    # 可以在你的项目下相同路径存放你自己的数据文件:
    # "assets/data/cdn/"
    data = ""
  1. themes\LoveIt\layouts\partials\init.html中读取cdn文件中的数据,.Scratch.Set "cdn" $cdn设置全局变量,之后在其他文件中使用.Scratch.Get "cdn"获取cdn数据。
  2. themes\LoveIt\layouts\partials\assets.html将cdn中的第三方库渲染后,追加在页面结尾部分。

调用JS的三种方法

  1. 查找jsdelivr已有的第三方库,加入jsdelivr.yml中。
  2. themes\LoveIt\layouts\partials\assets.html中添加jquery.min.js,需要jquery文件位于assets\js\jquery.min.js
{{- /* custom jquery */ -}}
{{- $source := $cdn.jqueryJS | default ( resources.Get "js/jquery.min.js" ) -}}
{{- dict "Source" $source "Fingerprint" $fingerprint | dict "Scratch" .Scratch "Data" | partial "scratch/script.html" -}}
  1. 配置文件中添加第三方库配置
#  第三方库配置
[page.library]
    [page.library.css]
    # someCSS = "some.css"
    # 位于 "assets/"
    # 或者
    # someCSS = "https://cdn.example.com/some.css"
    # css路径:assets\css\custom.css
    customCSS = "css/custom.css"

    [page.library.js]
    # someJavascript = "some.js"
    # 位于 "assets/"
    # 或者
    # someJavascript = "https://cdn.example.com/some.js"

    customJS = "js/custom.js"

完成以上配置后,可满足很多功能需求。但如果要拓展主题功能,像分类,列表页面,则需要学习Hugo语法。

参考

  • LoveIt主题文档
  • LoveIt-extend
  • Hugo帮助文档

推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了在使用Visual Studio 2015进行项目开发时,遇到类向导弹出“异常来自 HRESULT:0x8CE0000B”错误的解决方案。通过具体步骤和实践经验,帮助开发者快速排查并解决问题。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 如何查找和管理计算机中的C盘临时文件
    本文详细介绍了如何在计算机中找到和管理C盘的临时文件,包括其具体路径、环境变量设置方法以及清理这些文件对系统性能的影响。对于希望优化系统性能和释放磁盘空间的用户来说,这是一篇非常有价值的参考。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
author-avatar
你看我的泪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有