这一期咱们接着来说自定义Yilia主题的事。
本文涉及到的修改稍微有一点点复杂,可以参考我的 GitHub仓库 。
修改webpack打包路径
为了方便管理代码,也是为了看起来干净一点,我简单修改了一下主题文档结构,把资源文件放在了 assets 目录下
修改 webpack.config.js 的 output 模块
output: {
path: __dirname+"/source/assets/",
publicPath: "./",
filename: "[name].[chunkhash:6].js"
}
删除文章中那一堆无用的代码
使用yilia主题,每篇文章中都会出现一坨js代码,至今为止我也不知道是什么作用,删掉貌似也没有什么影响,每个页面能精简七八十K吧。
删掉 source-src\scrept.ejs 中的
= 0) { %>
Js后加载
新建模板 layout\_partial\load-scrept.ejs
上面的代码是已经压缩的,直接放进页面就可以
降新建的模板放入head部分,在 layout\_partial\head.ejs 后面加入
有了这段代码,我们就可以使用 loadScript 加载各种Js文件了。
首先是主题本身的Js文件,也就是 slider.js ,先分离 scrept.ejs ,创建一个 main.ejs
main.ejs
' %>
script.ejs
' %>
(function() {
= 0) { %>loadScript("config.rootassets/")
})();
webpack.config.js ,修改 plugins ,增加main部分
new HtmlWebpackPlugin({
inject: false,
cache: false,
minify: minifyHTML,
template: './source-src/script.ejs',
filename: '../../layout/_partial/script.ejs'
}),
new HtmlWebpackPlugin({
inject: false,
cache: false,
minify: minifyHTML,
template: './source-src/main.ejs',
filename: '../../layout/_partial/main.ejs'
})
在 layout\_partial\head.ejs 中再加入
为了优化其他js文件的加载速度,将不必要的js放在页面尾部,也就是 after-footer.ejs ,具体修改可以参考我的GitHub仓库
优化中英文混排
优化中英文混排,可以引入 pangu.js ,创建模板 layout\_partial\pangu.ejs
loadScript('https://cdn.jsdelivr.net/npm/pangu/dist/browser/pangu.min.js',function(){pangu.spacingPage();});
在 after-footer.ejs 中引入
在主题的配置文件 _config.yml 中添加
#pangu.js,中英文混排优化
pangu: true
更优雅的方式引入valine
上一篇文章写了引入valine,但是这样做并不是最佳方式,修改模板 layout\_partial\post\valine.ejs (需要用到上面提到的js后加载方式)
var notify = == true ? true : false;
var verify = == true ? true : false;
var visitor = == true ? true : false;
loadScript('https://cdn.jsdelivr.net/npm/valine/dist/Valine.min.js',function(){
loadScript('https://cdn.jsdelivr.net/npm/leancloud-storage/dist/av-min.js',function(){
new Valine({
av: AV,
el: '#vcomment',
notify: notify,
verify: verify,
app_id: '',
app_key: '',
placeholder: '',
avatar: '',
avatar_cdn: '',
pageSize: ,
path: '',
visitor: visitor
});
});
});
上篇文章里的主题样式,我放到了 comment.scss 中(这里为了方便管理,并没有把移动端代码放到 mobile.scss 中)
#vcomment{margin:30px;padding:10px;background:#fff}
@media screen and (max-width:800px){#vcomment{margin:auto;padding:10px;background:#fff}}
更多骚操作
更多骚操作请看我 GitHub仓库 中的修改。
赏
请作者吃辣条
微信