摘要: 本文主要介绍在NexT
下的几种优化显示的方式,本文写的时候使用的是v7.8.0
,后续更新可能有些地方不再适用,但是都大同小异。
1.浏览器网页标题
1 vim ~/02MyBlog/hexofiles/themes/next/source/js/funnytitle.js
添加以下代码(我这里没有设置网页标题图标):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var OriginTitle = document .title;var titleTime;document .addEventListener('visibilitychange' , function ( ) { if (document .hidden) { document .title = '╭(°A°`)╮ 页面崩溃啦 ~' ; clearTimeout (titleTime); } else { document .title = '(ฅ>ω<*ฅ) 噫又好啦 ~' + OriginTitle; titleTime = setTimeout (function ( ) { document .title = OriginTitle; }, 2000 ); } });
1 vim ~/02MyBlog/hexofiles/themes/next/layout/_layout.swig
在<body></body>
内添加以下代码:
1 2 <script type ="text/javascript" src ="/js/funnytitle.js" > </script >
2.添加页面卡通人物 2.1基础live2d模型
项目地址:hexo-helper-live2d
1 npm install --save hexo-helper-live2d
模型地址:live2d-widget-models
1 2 # 用以下命令下载,我使用的是live2d-widget-model-shizuku npm install packagename
1 vim ~/02MyBlog/hexofiles/_config.yml
添加以下代码:
1 2 3 4 5 6 7 8 9 10 11 live2d: enable: true scriptFrom: local model: use: live2d-widget-model-shizuku #模型选择 display: position: right #模型位置 width: 150 #模型宽度 height: 300 #模型高度 mobile: show: false #是否在手机端显示
2.2升级版live2d
1 npm uninstall hexo-helper-live2d
删除之前的模型live2d-widget-model-shizuku
及配置
删除node_modules
下的模型文件。
1 rm -r ~/02MyBlog/hexofiles/node_modules/live2d-widget-model-shizuku/
编辑站点配置文件,将2.1
节中在站点配置文件中添加的数据删除。
1 vim ~/02MyBlog/hexofiles/_config.yml
加强版live2d
项目地址:live2d-widget
可以folk
该项目到自己的仓库中,以便于寻找,folk
完毕后就可以从自己的仓库中下载该代码了。
1 2 3 4 # 进入站点根目录 cd ~/02MyBlog/hexofiles/ # 下载文件 git clone https://github.com/qidaink/live2d-widget.git themes/next/source/mylive2d
打开相应的文件_layout.swig
。
1 vim ~/02MyBlog/hexofiles/themes/next/layout/_layout.swig
在<body><body>
添加jquery.min.js
依赖(我在樱花特效的时候已经添加过了)
1 2 <script type ="text/javascript" src ="/js/jquery.min.js" > </script >
在<head></head>
添加font-awesome.min.css
图标支持。
1 2 <link rel ="stylesheet" href ="https://cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css" >
1 2 # 打开相应的文件 vim ~/02MyBlog/hexofiles/themes/next/layout/_layout.swig
在<body></body>
内添加以下代码。
1 2 3 4 <script src ="https://cdn.jsdelivr.net/gh/username/live2d-widget@latest/autoload.js" > </script > <script src ="/mylive2d/autoload.js" > </script >
修改mylive2d
文件下的autoloads.js
打开autoloads.js
文件。
1 vim ~/02MyBlog/hexofiles/themes/next/source/mylive2d/autoload.js
修改开头的路径为以下情况:
1 2 3 4 // 注意:live2d_path 参数应使用绝对路径 //const live2d_path = "https://cdn.jsdelivr.net/gh/steve njoezhang/live2d-widget@latest/"; //const live2d_path = "/live2d-widget/"; const live2d_path = "/mylive2d/";
3.压缩静态页面
可以从以下入手:
(1)将js文件尽可能放到body的闭合标签之前,因为在加载或者引入js文件时是阻塞式的,如果在页面的最开始就引入这些js文件,而这些文件又比较大,会造成页面在渲染时长时间处于白屏状态。 (2)尽量避免去引用访问速度非常低下的cdn或者图片,可改用访问速度更快的cdn,或将难以迅速加载的图片保存到自己的站点目录下,以免在加载图片时耗费大量时间。 (3)对页面的静态资源进行压缩,包括css、js和html等文件。
1 2 3 4 # 安装gulp npm install gulp -g # 插件安装 npm install gulp-minify-html gulp-minify-css gulp-uglify gulp-imagemin --save
1 vim ~/02MyBlog/hexofiles/gulpfile.js
添加以下代码:
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 var gulp = require ('gulp' );var minifycss = require ('gulp-minify-css' );var uglify = require ('gulp-uglify' );var minifyhtml = require ('gulp-minify-html' );gulp.task('minify-css' , function ( ) { return gulp.src('./public/css/*.css' ) .pipe(minifycss()) .pipe(gulp.dest('./public' )); }); gulp.task('minify-html' , function ( ) { return gulp.src('./public/*.html' ) .pipe(minifyhtml()) .pipe(gulp.dest('./public' )) }); gulp.task('minify-js' , function ( ) { return gulp.src(['./public/js/*.js' , '!./public/lib/blog-encrypt.js' ]) .pipe(uglify()) .pipe(gulp.dest('./public' )) }); gulp.task('default' , gulp.parallel('minify-css' , 'minify-html' , 'minify-js' ));
4.分页显示
1 2 # 打开站点配置文件 vim ~/02MyBlog/hexofiles/_config.yml
找到以下代码:
1 2 3 4 per_page: 5 pagination_dir: page
在站点配置文件的以下代码中:
1 2 3 4 5 6 7 8 index_generator: path: '' per_page: 3 order_by: page
5.文章超链接显示为蓝色 在部署完成后会发现文章中的超链接都是没有颜色的,并不能明显区分,所以可以进行以下优化。
1 2 # 打开相应文件 vim ~/02MyBlog/hexofiles/themes/next/source/css/_common/components/post/post.styl
添加以下内容:
1 2 3 4 5 6 7 8 .post-body p a{ color : #0593d3 ; border-bottom : none; &:hover { color : #0477ab ; text-decoration : underline; } }
6.新建一个菜单选项 这里新建了一个留言板菜单,后边会增加相应的功能,目前是熟悉以下在NexT中新增菜单的方法。
1 vim ~/02MyBlog/hexofiles/source/guestbook/index.md
添加以下内容:
1 <div class ="ds-recent-visitors" data-num-items ="28" data-avatar-size ="42" id ="ds-recent-visitors" > </div >
1 vim ~/02MyBlog/hexofiles/themes/next/_config.yml
在menu
中添加以下内容,fas fa-edit
为菜单图标,来源于Font Awesome 。
1 guestbook: /guestbook || fas fa-edit
1 vim ~/02MyBlog/hexofiles/themes/next/languages/zh-CN.yml
在menu
中添加以下内容:
7.添加评论系统 Hexo的评论系统有很多,常见的有以下几个:
畅言
、来必力(LiveRe)
、Disqus
、Hypercomments
和valine
,畅言
需要备案,Disqus
,Hypercomments
和LiveRe
都是国外的,加载速度贼慢,而NexT主题中直接含有valine
的相关配置选项,所以我便采用了valine
和来必力两种,由于不是专业写博客,所以评论不是很重要,这一章就略微简写。
项目地址:Valine
说明文档:Valine说明文档
7.1开启valine
Leancloud
官网:leancloud官网,点击访问
1 https://www.leancloud.cn/
随便创建一个应用即可,然后记录下图中的两个值。
1 vim ~/02MyBlog/hexofiles/themes/next/_config.yml
找到以下代码,修改相应位置即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 valine: enable: true appid: AppId appkey: AppKey notify: false verify: false placeholder: 欢迎评论呀! avatar: identicon guest_info: nick,mail pageSize: 5 language: zh-CN visitor: false comment_count: true recordIP: false serverURLs:
7.2来必力评论系统
官网地址:来必力
进入官网之后正常注册即可,注册完毕后来到控制台后点击代码管理,会得到以下代码,记录下data-uid
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <div id ="lv-container" data-id ="city" data-uid ="**************************" > <script type ="text/javascript" > (function (d, s ) { var j, e = d.getElementsByTagName(s)[0 ]; if (typeof LivereTower === 'function' ) { return ; } j = d.createElement(s); j.src = 'https://cdn-city.livere.com/js/embed.dist.js' ; j.async = true ; e.parentNode.insertBefore(j, e); })(document , 'script' ); </script > <noscript > 为正常使用来必力评论功能请激活JavaScript</noscript > </div >
在NexT中,已经集成了该评论系统,只需要打开即可。
1 2 # 打开主题配置文件 vim ~/02MyBlog/hexofiles/themes/next/_config.yml
找到以下代码,并添加自己的data-uid
即可开启该评论系统。
8.添加标签云
1 2 3 4 # 进入站点根目录 cd cd ~/02MyBlog/hexofiles/ # 安装插件 npm install hexo-tag-cloud@^2.0.* --save
1 2 # 打开相应文件 vim ~/02MyBlog/hexofiles/themes/next/layout/_macro/sidebar.swig
找到以下代码:
1 2 3 4 5 6 {%- if theme.back2top.enable and theme.back2top.sidebar %} <div class ="back-to-top motion-element" > <i class ="fa fa-arrow-up" > </i > <span > 0%</span > </div > {%- endif %}
在后边添加以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 {% if site.tags.length > 1 %} <script type ="text/javascript" charset ="utf-8" src ="/js/tagcloud.js" > </script > <script type ="text/javascript" charset ="utf-8" src ="/js/tagcanvas.js" > </script > <div class ="widget-wrap" > <h3 class ="widget-title" > 我的标签云</h3 > <div id ="myCanvasContainer" class ="widget tagcloud" > <canvas width ="100" height ="100" id ="resCanvas" style ="width=100%" > {{ list_tags() }} </canvas > </div > </div > {% endif %}
1 2 # 打开主题配置文件 vim ~/02MyBlog/hexofiles/themes/next/_config.yml
添加以下代码:
1 2 3 4 5 6 7 tag_cloud: textFont: Trebuchet MS, Helvetica textColor: '#333' textHeight: 30 outlineColor: '#E2E1D1' maxSpeed: 0.1
9.修改文章内链接鼠标悬停效果 打开相应文件
1 vim themes/next/source/css/_common/components/post/post.styl
添加以下代码
1 2 3 4 5 6 7 8 9 10 .post-body p a{ color : #0593d3 ; border-bottom : none; border-bottom : 1px solid #0593d3 ; &:hover { color : #fc6423 ; border-bottom : none; border-bottom : 1px solid #fc6423 ; } }