用 webpack 搭了一个写博客园皮肤的架子

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

用 webpack 搭了一个写博客园皮肤的架子

DIV狂魔   2020-03-13 我要评论
## 简介 干巴巴写一个博客园皮肤不是一件容易的事. 因为你无法像用前端框架写代码那样在本地调试你的 js, 所以我用空闲时间写了这个小项目. 1. 你可以使用它创建自己的博客园皮肤.最后打包生成的的 js 文件,供你自己使用. 2. 你可以安装这个项目中的皮肤在你的博客园.这不是一个简单的博客园皮肤,而是一个合集.安装之后,你可以快速切换其他皮肤. 3. 你可以使用它创建一个博客园皮肤.并将它贡献给项目,园友就能够切换到你的皮肤了. ![](https://img2020.cnblogs.com/blog/1501373/202003/1501373-20200313211504146-1257938297.gif) ## 目录 这里只简单的罗列基本的项目目录,让你清楚它是怎么运行的.如果你有问题或建议欢迎交流. ``` ├─config webpack配置 └─src │ main.js 项目入口 ├─assets 静态文件 ├─constants 常量 │ default.js 默认配置 │ elements.js 博客园常用标签class\id │ env.js 环境变量 │ ├─plugins 公共插件 │ ├─templates 博客园的html │ └─themes ├─awescnb 其他皮肤继承的 class │ │ index.js │ └─reacg 新增的皮肤 │ index.js ``` ## 创建新的皮肤 首先你需要将[项目](https://gitee.com/guangzan/awescnb2.0) clone 到本地 `git clone https://gitee.com/guangzan/awescnb2.0.git`. 1.在 `themes` 文件夹下创建一个新文件夹,例如 `demo`. 2.在 `demo` 文件夹中创建 `index.js`. 3.在 `demo` 文件夹中创建 `index.css`. 皮肤样式 4.在 `demo/index.js` 中粘贴以下代码. ```js import "./index.css"; // 引入创建好的 样式文件 import AwesCnb from "@/themes/awescnb"; // 引入公共的类 class Demo extends AwesCnb { constructor() { super(); super.init(); // 初始化父类的插件 this.init(); } init() { this.hideLoading(); } // to do something } new Demo(); ```   用它来创建一个博客园主题,只需要继承 class(awescnb). 就可以继承包括但不限于下面这些插件.或者不继承单独使用你需要的插件.即使你继承了所有插件, 它们也能在博客园设置页面快速开启和关闭. - 头部进度条 - 看板娘(3D 模型) - 音乐播放器 - 主题色 - 自定义背景图片或颜色 - 华丽的点击特效 - 自定义网站图标和标题 - ... 5.打开`config / webpack.base.js`并进行以下更改: ```js entry:{ index: './src/main.js', reacg: './src/themes/reacg/index.js', + demo: './src/themes/reacghttps://img.qb5200.com/download-x/demo.js', }, ``` 6.运行命令 - `npm i` 安装项目依赖 - `npm start` 进行本地开发 `templates` 文件夹用于存储博客园的 HTML,使用 `HtmlWebpackPlugin` 将指定的 html 注入 index.html。 运行`npm start`将在本地启动博客园首页。如果您想启动其他页面,请更改 `config/webpack.dev.js`. ```js new HtmlWebpackPlugin({ filename: 'index.html', - template: 'src/templates/index.html', + template: 'src/templates/post.html', // Or other pages inject: 'body', }), ``` - `npm run build` 打包 项目打包会生成两个 js 文件在 dist 文件夹下. - theme.js 主题js. - index.js 加载主题js和提供配置文件. ## 在博客园安装这个皮肤 在使用 webpack 构建这个项目之前, 上个版本使用 gulp 构建. 因为这个版本的皮肤正在从上个版本迁移. 所以如果你想安装皮肤, 请先使用上个版本的.[跳转](https://gitee.com/guangzan/awescnb)以安装. 上个版本的皮肤提供了大量的可选配置,安装后你可以在博客园->设置页面自定义你的博客. ```js { theme: { name: 'reacg', color: '#FFB3CC', qrcode: '', title: '', favicon: 'https://guangzan.gitee.io/awescnb/assets/images/favicon.png', avatar: '//pic.cnblogs.com/avatar/1501373/20200119190802.png', headerBackground: 'https://guangzan.gitee.io/awescnb/assets/images/acg/22.jpg', }, bodyBackground: { enable: false, type: 'color', value: '#ffb3cc', opacity: 1, repeat: false, }, imagebox: { enable: false, }, barrage: { enable: false, opacity: 0.5, colors: [ '#FE0302', '#FF7204', '#FFAA02', '#FFD302', '#FFFF00', '#A0EE00', '#00CD00', '#019899', '#4266BE', '#89D5FF', '#CC0273', '#CC0273', ], barrages: [], indexBarrages: [], postPageBarrages: [], }, back2top: { enable: true, }, live2d: { enable: true, page: 'all', agent: 'pc', model: 'random', width: 150, height: 200, position: 'right', }, github: { enable: true, color: '#ffb3cc', url: 'https://gitee.com/guangzan/awescnb', }, click: { enable: true, page: 'all', agent: 'pc', auto: false, colors: ['#FF1461', '#18FF92', '#5A87FF', '#FBF38C'], }, lineNumbers: { enable: true, }, catalog: { enable: true, position: 'left', }, musicPlayer: { enable: false, page: 'all', agent: 'pc', autoplay: false, audio: [ { name: '红色高跟鞋', artist: '李瑨瑶', url: `https://guangzan.gitee.io/awescnb/assets/music/红色高跟鞋.mp3`, cover: '//p2.music.126.net/ww7gcJ_erzPa8jgZesmTOA==/109951163271403502.jpg?param=90y90', }, ], }, topProgress: { enable: false, page: 'all', agent: 'pc', background: '#FFB3CC', height: '5px', }, postSignature: { enable: false, content: ['转载请附上原文链接,谢谢!'], }, highLight: { type: 'atomOneDark', }, links: [ { name: 'awesCnb', link: 'https://gitee.com/guangzan/awescnb', }, ], } ``` 具体可以参考[文档](https://guangzan.gitee.io/awescnb-docs/guide/use/options.html) ## 贡献 如果你像我一样是一个前端小白, 不妨拿它来练练手, 又可以美化你的博客, 一举两得. 1. fork 这个[仓库](https://gitee.com/guangzan/awescnb2.0). 2. `git checkout -b your-new-feature` 创建您的功能分支. 3. `git commit -m 'Add some featureCommit` 提交您的代码. 4. `git push origin your-new-feature` 推送到分支. 5. 提交一个 `pull request`. ## To do **调整** - merge.js √ - 在入口引入 merge √ - themejs 从 mergejs 导入用户选项 x - 调整目录 √ - Window.useroptions √ - 调整 plugins 位置 √ - 根据 env 加载 http 文件 x - eslint √ - prettier √ - stylelint x - babel √ - autoprefixer √ - postcss-import √ - cssnano √ **class awescnb** - NProgress √ - 组织常用 css √ - live2d √ - 点击特效 √ - 背景包括颜色和图像 √ - 主题颜色 √ - favicon 和网站标题 √ - 音乐播放器 √ - 隐藏 loading √ - 在开发环境中导入 cnblog.common.css √ - 图片灯箱 ... ## 联系 - QQ:923665892 - QQ 群:541802647 (活跃) - 微信:wx923665892 请优先加群. ## 项目地址 [点我跳转到 1.0](https://gitee.com/guangzan/awescnb) [点我跳转到 2.0](https://gitee.com/guangzan/awescnb2.0)

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们