hexo页面优化和音乐的心得(代码片段)

luisyang luisyang     2022-12-16     274

关键词:

灵感

  这两天在添加“留言”以及“关于”页面,准备先简单设计一下自已的页面。留言页面可以放置一些自已比较感兴趣的音乐、以及一些JS特效,再集成一个第三方的留言功能。关于页面可以放置一些简单的联系方式、以及基础信息的存放,还有自已帅照。嘿嘿嘿嘿。。。。。 
  音乐插件的集成不在这里过多复述,请参考:hexo添加音乐 
  关于页面帅照采用NexT的扩展标签fullimage。嘿嘿嘿嘿。。。。 
   
  在官方的常见方案中关于NexT的优化,看到一篇帖子,是关于gulp插件的介绍,自动化构建工具,通过一系列的Task,完成引用的优化。主要思想就是通过压缩HTML,CSS,JavaSCript减少加载内容的大小,提升网站响应效率。 
   
  关于Gulp的优化,可以参照“使用gulp精简hexo博客代码”,也可以参考我写一篇博客“Next 调优”。

从1000到1

  通过hexo g命令生成静态页面,随便打开一个index.html都可以发现有几百行到上千行的代码,其中大部分都是空白片段。关于大片的空白片段可以通过gulp插件进行压缩,下面方法主要是要讲怎么压缩HTML中的JavaScript代码。 
  插件对于HTML页面进行压缩时,不会对HTML中包含的JavaScript代码进行压缩,参考浏览器--》反键查看源码,还是有一些小段的JavaScript代码,对于存在有代码洁癖的程序猿,肯定会去想方设法去优化掉。

 
  技术分享图片

定位该段JavaScript

   
  由于站点是部署在Linux系统下,切换到站点主题目录(/blog/themes/next)。执行find . -type f | xargs grep -F "code标识"。定位该段代码在何配置文件中。

    [[email protected] next]# find . -type f | xargs grep -F "var NexT=window.NexT||;"
./layout/_partials/head.swig:<script type="text/javascript" id="hexo.configurations">var NexT=window.NexT||;var CONFIG=root: theme.root ‘,scheme:‘ theme.scheme ‘,sidebar:theme.sidebar|json_encode,fancybox:theme.fancybox,motion:theme.use_motion,duoshuo:userId:‘ theme.duoshuo_info.user_id | default() ‘,author:‘ theme.duoshuo_info.admin_nickname | default(__(‘author‘))‘,algolia:applicationID:‘ theme.algolia.applicationID ‘,apiKey:‘ theme.algolia.apiKey ‘,indexName:‘ theme.algolia.indexName ‘,hits:theme.algolia_search.hits|json_encode,labels:theme.algolia_search.labels|json_encode;</script>

  可以发现该段代码存在./layout/_partials/head.swig中。特别注意: xxx 标识模板会引用页面变量中的某个属性,这段代码是不能单独抽取成一个JS文件。

JS压缩

   
  常见的JavaScript压缩工具: 
    站长工具-JS压缩 
    在线JS压缩 
   
  点击“普通压缩” 
  

    var NexT=window.NexT||;var CONFIG=root:‘ theme.root ‘,scheme:‘ theme.scheme ‘,sidebar:theme.sidebar|json_encode,fancybox:theme.fancybox,motion:theme.use_motion,duoshuo:userId:‘ theme.duoshuo_info.user_id | default() ‘,author:‘ theme.duoshuo_info.admin_nickname | default(__(‘author‘))‘,algolia:applicationID:‘ theme.algolia.applicationID ‘,apiKey:‘ theme.algolia.apiKey ‘,indexName:‘ theme.algolia.indexName ‘,hits:theme.algolia_search.hits|json_encode,labels:theme.algolia_search.labels|json_encode;
修改模板

   
  再次打开模板文件。

    <script type="text/javascript" id="hexo.configurations">
var NexT = window.NexT || ;
var CONFIG =
root: ‘ theme.root ‘,
scheme: ‘ theme.scheme ‘,
sidebar: theme.sidebar | json_encode ,
fancybox: theme.fancybox ,
motion: theme.use_motion ,
duoshuo:
userId: ‘ theme.duoshuo_info.user_id | default() ‘,
author: ‘ theme.duoshuo_info.admin_nickname | default(__(‘author‘))‘
,
algolia:
applicationID: ‘ theme.algolia.applicationID ‘,
apiKey: ‘ theme.algolia.apiKey ‘,
indexName: ‘ theme.algolia.indexName ‘,
hits: theme.algolia_search.hits | json_encode ,
labels: theme.algolia_search.labels | json_encode

;
</script>

  替换为

  <script type="text/javascript" id="hexo.configurations">var NexT=window.NexT||;var CONFIG=root: theme.root ‘,scheme:‘ theme.scheme ‘,sidebar:theme.sidebar|json_encode,fancybox:theme.fancybox,motion:theme.use_motion,duoshuo:userId:‘ theme.duoshuo_info.user_id | default() ‘,author:‘ theme.duoshuo_info.admin_nickname | default(__(‘author‘))‘,algolia:applicationID:‘ theme.algolia.applicationID ‘,apiKey:‘ theme.algolia.apiKey ‘,indexName:‘ theme.algolia.indexName ‘,hits:theme.algolia_search.hits|json_encode,labels:theme.algolia_search.labels|json_encode;</script>
注意点

  JavaScript的压缩原理就是将多行代码转成一行代码,代码换行的地方记得要用“”隔开,不然浏览器解析的时候会报错。 
   
  这里只介绍一段JavaScript的优化,其余的地方类似。

添加音乐

  音乐采用的是hexo-tag-aplayer插件。声明歌单的时候我们会使用如下数据字符串。

  % aplayerlist %"narrow": false,"autoplay": true,"showlrc": 3,"mode": "random","music": ["title": "平凡之路","author": "朴树","url": "http://xxx.com/%E5%B9%B3%E5%87%A1%E4%B9%8B%E8%B7%AF.mp3","pic": "https://xxx.com/1.jpg","lrc": "http://og9ocpmwk.bkt.clouddn.com/%E5%B9%B3%E5%87%A1%E4%B9%8B%E8%B7%AF.txt","title": "野子","author": "苏运莹","url": "http://xxx.com/01%20%E9%87%8E%E5%AD%90.m4a","pic": "http://xxxx.com/%E9%87%8E%E5%AD%90.jpg","lrc":"https://xxx.com/%E9%87%8E%E5%AD%90.txt"]% endaplayerlist %

  其中url表示音乐的地址(mp3,mp4),lrc表示歌词文件的地址,pic表示歌曲的封面图片。

音乐的下载

  可以下载“网易云音乐”客户端,选择喜欢的音乐,点击下载。比较简单。

歌词的下载

  歌词下载网站 
   
  通过网易云音乐下载会自动下载歌词,不过会保存在%USERPROFILE%AppDataLocalNeteaseCloudMusicwebdatalyric路径下。 
   
  反键编辑找到自已喜欢歌曲的歌词,如成都-赵雷

  "sgc":false,"sfy":false,"qfy":false,"lrc":"version":4,"lyric":"[00:00.00] 作曲 : 赵雷
[00:01.00] 作词 : 赵雷
[00:16.75]让我掉下眼泪的 不止昨夜的酒
[00:25.91]让我依依不舍的 不止你的温柔
[00:33.91]余路还要走多久 你攥着我的手
[00:41.70]让我感到为难的 是挣扎的自由
[00:52.10]分别总是在九月 回忆是思念的愁
[00:59.63]深秋嫩绿的垂柳 亲吻着我额头
[01:07.53]在那座阴雨的小城里 我从未忘记你
[01:15.41]成都 带不走的 只有你
[01:23.69]和我在成都的街头走一走
[01:31.08]直到所有的灯都熄灭了也不停留
[01:39.69]你会挽着我的衣袖 我会把手揣进裤兜
[01:47.08]走到玉林路的尽头 坐在(走过)小酒馆的门口
[02:30.37]分别总是在九月 回忆是思念的愁
[02:38.10]深秋嫩绿的垂柳 亲吻着我额头
[02:46.13]在那座阴雨的小城里 我从未忘记你
[02:54.02]成都 带不走的 只有你
[03:02.34]和我在成都的街头走一走
[03:10.41]直到所有的灯都熄灭了也不停留
[03:18.34]你会挽着我的衣袖 我会把手揣进裤兜
[03:25.51]走到玉林路的尽头 坐在(走过)小酒馆的门口
[04:35.96][03:35.40]和我在成都的街头走一走
[04:42.76][03:45.39]直到所有的灯都熄灭了也不停留
[03:53.62]和我在成都的街头走一走
[04:01.35]直到所有的灯都熄灭了也不停留
[04:08.95]你会挽着我的衣袖 我会把手揣进裤兜
[04:17.27]走到玉林路的尽头 坐在(走过)小酒馆的门口
","klyric":"version":0,"tlyric":"version":0,"lyric":null,"code":200

  格式排版存在问题,需要优化成如下方式:

    [ti:成都]
[ar:赵雷]
[al:成都]
[by:赵雷]
[00:00.00] 作曲 : 赵雷
[00:01.00] 作词 : 赵雷
[00:16.75]让我掉下眼泪的 不止昨夜的酒
[00:25.91]让我依依不舍的 不止你的温柔
[00:33.91]余路还要走多久 你攥着我的手
[00:41.70]让我感到为难的 是挣扎的自由
[00:52.10]分别总是在九月 回忆是思念的愁
[00:59.63]深秋嫩绿的垂柳 亲吻着我额头
[01:07.53]在那座阴雨的小城里 我从未忘记你
[01:15.41]成都 带不走的 只有你
[01:23.69]和我在成都的街头走一走
[01:31.08]直到所有的灯都熄灭了也不停留
[01:39.69]你会挽着我的衣袖 我会把手揣进裤兜
[01:47.08]走到玉林路的尽头 坐在(走过)小酒馆的门口
[02:30.37]分别总是在九月 回忆是思念的愁
[02:38.10]深秋嫩绿的垂柳 亲吻着我额头
[02:46.13]在那座阴雨的小城里 我从未忘记你
[02:54.02]成都 带不走的 只有你
[03:02.34]和我在成都的街头走一走
[03:10.41]直到所有的灯都熄灭了也不停留
[03:18.34]你会挽着我的衣袖 我会把手揣进裤兜
[03:25.51]走到玉林路的尽头 坐在(走过)小酒馆的门口
[04:35.96][03:35.40]和我在成都的街头走一走
[04:42.76][03:45.39]直到所有的灯都熄灭了也不停留
[03:53.62]和我在成都的街头走一走
[04:01.35]直到所有的灯都熄灭了也不停留
[04:08.95]你会挽着我的衣袖 我会把手揣进裤兜
[04:17.27]走到玉林路的尽头 坐在(走过)小酒馆的门口aba

  保存为txt文本,保存编码格式一定要是UNIX / UTF-8w/o BOM的方式,而且命名最好不是中文。

封面图片下载

   
  打开网页版的网易云音乐,搜索“成都-赵雷”,回车。打开控制台,下载歌词封面图片。 
   
  技术分享图片

 

hexo+github搭建博客心得篇(代码片段)

...f0c;开启了Hexo+Github搭建博客,这里跟大家分享一些心得。想了解更多可以进入个人博客安装和配置Node.jsNode.js官网安装成功之后,打开cmd,运行以下两个命令node-vnpm-v出现对应的版本即表示安装 查看详情

hexo+github搭建博客心得篇(代码片段)

...f0c;开启了Hexo+Github搭建博客,这里跟大家分享一些心得。想了解更多可以进入个人博客安装和配置Node.jsNode.js官网安装成功之后,打开cmd,运行以下两个命令node-vnpm-v出现对应的版本即表示安装 查看详情

使用hexo+github搭建个人博客的心得(含教程)(代码片段)

...一个地方写博客,记录一些编程、配置环境、阅读论文的心得体会是一个很常见的习惯。当然想搭建个人博客,就需要找个靠谱的平台,主要就是以下的两种方式:使用网站提供的博客平台,例如国内的CSDN、博客园;国外的Blogg... 查看详情

关于自己搭建hexo博客的心得体会(代码片段)

给大家分享一下我这几天搭博客的经验方法(不喜勿喷哈)1.下载node.js与git。2.注册git账号。3.安装Hexo.4.部署到Github。5.写文章,发表文章。**首先先把node.js与Git下载并安装好。这是node.js的下载地址,下载稳定版... 查看详情

hexo瞎折腾系列-使用hexo-neat插件压缩页面静态资源(代码片段)

为什么要压缩页面静态资源对于个人博客来说,优化页面的访问速度是很有必要的,如果打开你的个人站点,加载个首页就要十几秒,页面长时间处于空白状态,想必没什么人能够忍受得了吧。我个人觉得,如果能把页面的加载... 查看详情

配置hexo(代码片段)

...,并保存【github会有安装步骤】hexos本地预览更换主题和优化Hexo更换next主题和优化添加多个标签tags:[tag1,tag2,...] 查看详情

hexo站点优化更换主题添加多说评论增加百度统计(代码片段)

前三篇的博客中我们介绍了Hexo的站点配置及与GitHub的关联操作,这篇主要是介绍Hexo博客的主题更换及添加多说评论,至于其他功能,就有待小伙伴自己去开发了~~更换主题目前大家用的比较好看的主题主要有yilia和pacman,两种样式分... 查看详情

如何创建hexo站点的tags和categories默认页面(代码片段)

...内容:1大专栏 如何创建Hexo站点的Tags和Categories默认页面ivclass="line">23456---title:categoriesdate:2015-12-0714:34:04type:"categories"comments:false#关闭评论widget---生成tagspage1hexonewpagetags编辑tagspage打开sourcetagsindex.md编辑成如下内容:123456... 查看详情

gulp优化hexo方法(代码片段)

gulp通过对站点使用的静态资源进行压缩,来优化网站的访问速度。 首先安装gulp以及所需要的模块:npminstallgulp-g npminstallgulp-htmlcleangulp-htmlmingulp-minify-cssgulp-uglifygulp-imagemin--save 然后在博客的根目录下创建gulpfile.js文件... 查看详情

使用hexo和github搭建个人博客网站(代码片段)

...git自身的功能可以很便捷地管理博客。使用github部署静态页面在了解hexo之前,我们先看看如何使用github部署静态页面。注册github账号访问github官网注册一个账号,该流程和一般网站注册账号一样,在此不赘述。创建一个git仓库... 查看详情

搭建hexo博客—换电脑继续写hexo博客(代码片段)

...ub搭建博客的原理是:Hexo将source下的md文件生成静态的html页面,存放到public目录中,这一步是由命令:hexo-g完成。接下来执行hexo-d命令,就将public目录下的文件推送到了github上。github上显示的就是这些静态页面。  本地hexo目... 查看详情

python提高效率(优化)的心得总结(代码片段)

转载自:python提高效率(优化)的心得总结作者:Capricorn.python用python也有小两年了,不是开发,所以代码应该没那么精湛。但是经常会写测试脚本和小工具。在积累了大量的库以后,开始把重点放在提高python效... 查看详情

[教程]使用hexo和githubpages搭建属于自己的博客-helloworld篇(代码片段)

...prosp1x86前提:一个Github账号1.开通GithubPage登陆Github,点击页面右上角的"+"号,再点击Newrepository创建一个新的仓库:在新的页面中,将Repositoryname(仓库的名称)设置为 username.github.io,其中userna 查看详情

将hexo博客同时部署发布托管到github和coding(代码片段)

...github和codingdate:2018-08-3000:12:11tags:-博客-git-coding-hexo-博客优化categories:搭建博客---前言之前我们把hexo托管在github,但是毕竟github是国外的,访问速度上还是有点慢,所以想也部署一套在国内的托管平台,之前查资料听说gitcafe,但是... 查看详情

hexo创建的tags和categories页面为空的解决办法(代码片段)

title:hexo创建的tags和categories页面为空的解决办法toc:falsedate:2018-04-1602:26:10主题:landscape添加type以及menu后仍然显示空白的解决办法:打开landscape/_partial/article.ejs,在<divclass="article-entry"itemprop="articleBody">的div内添加代码:<%if(... 查看详情

hexo创建新文章的正确方法(代码片段)

...将文章写完之后,准备进行预览,输入hexos命令。在预览页面却没有显示出新的文章,还是和之前的页面是一样的分析我是这样分析的:1.没有hexoclean清楚缓存2.没有生成新的静态文档3.文章生成错误大专栏 hexo创建新文章的正... 查看详情

hexo瞎折腾系列-添加github彩带和githubcorner(代码片段)

页面右上角添加GitHub彩带你可以在这里找到一共12种样式的GitHub彩带,复制其中的超链代码。在themesextlayout\_layout.swig目录下找到头部彩带相关的代码:<divclass="headband"></div>在这里的div标签内部添加我们刚刚复制的超链代... 查看详情

hexo使用(代码片段)

...onew"postName"#新建文章hexonewpage"pageName"#新建页面hexogenerate#生成静态页面至public目录hexoserver#开启预览访问端口(默认端口4000,'ctrl+c'关闭server)hexodeploy#部署到GitHubhexohelp#查看帮助hexoversion#查看Hexo的版本缩写h... 查看详情