干巴巴写一个博客园皮肤不是一件容易的事. 因为你无法像用前端框架写代码那样在本地调试你的 js, 所以我用空闲时间写了这个小项目.

  1. 你可以使用它创建自己的博客园皮肤.最后打包生成的的 js 文件,供你自己使用.

  2. 你可以安装这个项目中的皮肤在你的博客园.这不是一个简单的博客园皮肤,而是一个合集.安装之后,你可以快速切换其他皮肤.

  3. 你可以使用它创建一个博客园皮肤.并将它贡献给项目,园友就能够切换到你的皮肤了.

这里只简单的罗列基本的项目目录,让你清楚它是怎么运行的.如果你有问题或建议欢迎交流.

  1. ├─config webpack配置
  2. └─src
  3. main.js 项目入口
  4. ├─assets 静态文件
  5. ├─constants 常量
  6. default.js 默认配置
  7. elements.js 博客园常用标签class\id
  8. env.js 环境变量
  9. ├─plugins 公共插件
  10. ├─templates 博客园的html
  11. └─themes
  12. ├─awescnb 其他皮肤继承的 class
  13. index.js
  14. └─reacg 新增的皮肤
  15. index.js

首先你需要将项目 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 中粘贴以下代码.

  1. import "./index.css"; // 引入创建好的 样式文件
  2. import AwesCnb from "@/themes/awescnb"; // 引入公共的类
  3. class Demo extends AwesCnb {
  4. constructor() {
  5. super();
  6. super.init(); // 初始化父类的插件
  7. this.init();
  8. }
  9. init() {
  10. this.hideLoading();
  11. }
  12. // to do something
  13. }
  14. new Demo();

  用它来创建一个博客园主题,只需要继承 class(awescnb). 就可以继承包括但不限于下面这些插件.或者不继承单独使用你需要的插件.即使你继承了所有插件, 它们也能在博客园设置页面快速开启和关闭.

  • 头部进度条
  • 看板娘(3D 模型)
  • 音乐播放器
  • 主题色
  • 自定义背景图片或颜色
  • 华丽的点击特效
  • 自定义网站图标和标题

5.打开config / webpack.base.js并进行以下更改:

  1. entry:{
  2. index: './src/main.js',
  3. reacg: './src/themes/reacg/index.js',
  4. + demo: './src/themes/reacg/demo.js',
  5. },

6.运行命令

  • npm i 安装项目依赖
  • npm start 进行本地开发

templates 文件夹用于存储博客园的 HTML,使用 HtmlWebpackPlugin 将指定的 html 注入 index.html。
运行npm start将在本地启动博客园首页。如果您想启动其他页面,请更改 config/webpack.dev.js.

  1. new HtmlWebpackPlugin({
  2. filename: 'index.html',
  3. - template: 'src/templates/index.html',
  4. + template: 'src/templates/post.html', // Or other pages
  5. inject: 'body',
  6. }),
  • npm run build 打包

项目打包会生成两个 js 文件在 dist 文件夹下.

  • theme.js 主题js.
  • index.js 加载主题js和提供配置文件.

在使用 webpack 构建这个项目之前, 上个版本使用 gulp 构建. 因为这个版本的皮肤正在从上个版本迁移.
所以如果你想安装皮肤, 请先使用上个版本的.跳转以安装.

上个版本的皮肤提供了大量的可选配置,安装后你可以在博客园->设置页面自定义你的博客.

  1. {
  2. theme: {
  3. name: 'reacg',
  4. color: '#FFB3CC',
  5. qrcode: '',
  6. title: '',
  7. favicon: 'https://guangzan.gitee.io/awescnb/assets/images/favicon.png',
  8. avatar: '//pic.cnblogs.com/avatar/1501373/20200119190802.png',
  9. headerBackground: 'https://guangzan.gitee.io/awescnb/assets/images/acg/22.jpg',
  10. },
  11. bodyBackground: {
  12. enable: false,
  13. type: 'color',
  14. value: '#ffb3cc',
  15. opacity: 1,
  16. repeat: false,
  17. },
  18. imagebox: {
  19. enable: false,
  20. },
  21. barrage: {
  22. enable: false,
  23. opacity: 0.5,
  24. colors: [
  25. '#FE0302',
  26. '#FF7204',
  27. '#FFAA02',
  28. '#FFD302',
  29. '#FFFF00',
  30. '#A0EE00',
  31. '#00CD00',
  32. '#019899',
  33. '#4266BE',
  34. '#89D5FF',
  35. '#CC0273',
  36. '#CC0273',
  37. ],
  38. barrages: [],
  39. indexBarrages: [],
  40. postPageBarrages: [],
  41. },
  42. back2top: {
  43. enable: true,
  44. },
  45. live2d: {
  46. enable: true,
  47. page: 'all',
  48. agent: 'pc',
  49. model: 'random',
  50. width: 150,
  51. height: 200,
  52. position: 'right',
  53. },
  54. github: {
  55. enable: true,
  56. color: '#ffb3cc',
  57. url: 'https://gitee.com/guangzan/awescnb',
  58. },
  59. click: {
  60. enable: true,
  61. page: 'all',
  62. agent: 'pc',
  63. auto: false,
  64. colors: ['#FF1461', '#18FF92', '#5A87FF', '#FBF38C'],
  65. },
  66. lineNumbers: {
  67. enable: true,
  68. },
  69. catalog: {
  70. enable: true,
  71. position: 'left',
  72. },
  73. musicPlayer: {
  74. enable: false,
  75. page: 'all',
  76. agent: 'pc',
  77. autoplay: false,
  78. audio: [
  79. {
  80. name: '红色高跟鞋',
  81. artist: '李瑨瑶',
  82. url: `https://guangzan.gitee.io/awescnb/assets/music/红色高跟鞋.mp3`,
  83. cover:
  84. '//p2.music.126.net/ww7gcJ_erzPa8jgZesmTOA==/109951163271403502.jpg?param=90y90',
  85. },
  86. ],
  87. },
  88. topProgress: {
  89. enable: false,
  90. page: 'all',
  91. agent: 'pc',
  92. background: '#FFB3CC',
  93. height: '5px',
  94. },
  95. postSignature: {
  96. enable: false,
  97. content: ['转载请附上原文链接,谢谢!'],
  98. },
  99. highLight: {
  100. type: 'atomOneDark',
  101. },
  102. links: [
  103. {
  104. name: 'awesCnb',
  105. link: 'https://gitee.com/guangzan/awescnb',
  106. },
  107. ],
  108. }

具体可以参考文档

如果你像我一样是一个前端小白, 不妨拿它来练练手, 又可以美化你的博客, 一举两得.

  1. fork 这个仓库.
  2. git checkout -b your-new-feature 创建您的功能分支.
  3. git commit -m 'Add some featureCommit 提交您的代码.
  4. git push origin your-new-feature 推送到分支.
  5. 提交一个 pull request.

调整

  • 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
点我跳转到 2.0

版权声明:本文为guangzan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/guangzan/p/12489147.html