Skip to content

uestc-msc/uestc-msc.github.io

Repository files navigation

uestc-msc.github.io

TODO

  • 谷歌认证
  • hexo-admin-ehc
  • 评论系统
  • 修改网页的配色,使其更加“微软”


💡 因为hexo是安装在当前文件夹, 因此不会在路径里, 无法通过 hexo 命令直接调用,
hexo位于 node_modules/hexo/bin/hexo (相对于根目录)
注:我们编写了 /h/hexo.sh,现在 Linux 下可以在根目录调用 h <argument> 实现 node_modules/hexo/bin/hexo <argument> 的效果。

写作语法

next中比较炫酷的用法

🔗 note

🔗 tab

🔗 首页摘要图片

文章分类

hexo支持多分类和多级分类, 但要注意别用错了

多级分类

如下写法会将文章放至a/b分类

categories:
  - a
  - b
categories: [a, b]

多分类

如下写法将文章放到ab分类

categories:
  - [a]
  - [b]

而像下面这样的写法会将文章放到ab/c分类

categories:
- [a]
- [b, c]

troubleshoot

首页图片地址错误

由于hexo的懒惰, 用md语法插入的 图片在首页无法显示, 用它提供的标签插件倒是可以兼顾, 但不够优雅. 目前没去解决, 不 过可以尝试关注 asset_img 附近代码来自己实现.

配置记录

📖 hexo官方文档

📖 NexT官方文档

hexo插件

更多

文章管理

快速转载微信文章

因为微信的防盗链机制, 直接复制粘贴微信推送到md文件渲染出来一个问题是一部分图片不 允许转载, 而另一部分图片会遇到跨域权限问题. 虽然跨域问题能轻松解决, 但我没有找到 破解微信的防盗链的办法. 因此直接将所有图片搬运到本地来解决这个问题.

首先将微信推送的最上一层sectionHTML元素格式化后复制到md文件中, 然后使用根目录的 wechatcopyer.py脚本一键搬运微信推送中的图片. 使用方法如下:

./wechatcopyer.py  source/_posts/2019/09/软件自由日活动.md
更改静态文件中asset文件夹地址

这样插入图片不再一定要用hexo提供的语法, 就用markdown语法就可以

🔗 更改方 式

💡 和链接里不一样的是因为这里的文章链接是:year/:month/:title.md所以语句稍有不同, 是:

    return join(post.path.replace(/\.html?$/, ''), (post.path.replace(/\.html?$/, '')).substr((post.path.replace(/\.html?$/, '')).lastIndexOf(RegExp("\\d\\d\\d\\d/\\d\\d/\\d\\d")) + 11), this.slug);
将文章md文件按年, 月分类

这样能便于管理文章, 更改 new_post_name 的值就可以了

🔗 参考

集成Travis服务

上传写作文件自动生成并部署. 后续考虑采用merge要更新文章的文件到Root分支, 由 travis自动部署的方式进一步减少需要下载到本地的文件数量

🔗 参考一 🔗 参考二

❗️ 在 travis-ci.com 管理, 而不是 travis-ci.org

站点内容

自定义博客背景图片

因为没找到合适的图片暂时没改. 老网站的背景图是 themes/uestc-msc/source/images/microsoft-building-logo2-1920.jpg

🔗 参考操作

生成about和categories页面

🔗 参考

简约而不硬核的友链页面

next主题的样式会覆盖文章markdown文件中的样式, 需要在 source/_data/styles.styl 中设置需要的样 式 (因为友链的元素是在post-body里)

🔗 参考方案

彩色字体图标

font awesome似乎只提供单色字体图标, 也不够丰富, 而 Iconfont就很 牛皮了, 有丰富的图标, 有多色图标, 也能很容易的集成到网页.

此处采用symbol引用

❗️ 在这几个改动了的.swig文件头尾加了如果有对应自定义.swig文件就不渲染的条件语句, 不然会有重复渲染的bug, 已提PR

  1. 首先图省事直接把项目生成的symbol代码添加到整个站点的head, 即

themes/uestc-msc/layout/_partials/head/head.swig (目前在line54) (改后放到 source/_data/head.swig ):

   {%- if theme.iconfont.source %}
   <script src = "https:{{ theme.iconfont.source }}"></script>
   {%- endif%}
  1. 更改sidebar中的社交链接使用iconfont

themes/uestc-msc/layout/_partials/sidebar/site-overview.swig line 101 (改好后放到 source/_data/sidebar.swig ):

❗️只注释掉原本的font awesome语句, 万一以后还用呢 🤷 ‍

        {#%- set sidebarIcon = '<i class="fa fa-fw fa-' + link.split('||')[1] | trim | default('globe') + '"></i>' %#}
        {% set sidebarIcon = '<svg class="icon" aria-hidden="true"><use xlink:href="#' + link.split('||')[1] | trim + '"></use></svg>' %}
  1. 更改footer中的用户图标使用iconfont

themes/uestc-msc/layout/_partials/footer.swig line13 (改好后放到 source/_data/footer.swig ):

       <!-- <i class="fa fa-{{ theme.footer.icon.name }}"></i> -->
       <svg class="icon" aria-hidden="true"><use xlink:href="#{{ theme.footer.icon.name }}"></use></svg>
  1. 将彩色字体图标的样式添加到 source/_data/styles.styl :
   //------------------------------------------------------------------------------
   //colorful icons
   //------------------------------------------------------------------------------
   svg.icon {
       width: 1.5em !important;
       height: 1.5em !important;
       vertical-align: -0.4em;
       fill: currentColor;
       overflow: hidden
   }

🔗 参考操作

实现每篇文章显示作者

🔗 参考操作

❗️因为实现得比较简陋, 作者链接处是直接到作者名tag的链接, 如果有两个作者会出现链 接错误问题, 因此目前每篇文章只能有一个作者. 当然这很好改.

目前直接将themes/uestc-msc/languages/zh-CN.yml中tag页面的翻译全部替换为作者页 面的翻译来将tag页面伪装为作者页面.

更改文章底部tag的#

修改 themes/uestc-msc/layout/_macro/post.swig line271为:

            {%- set tag_indicate = '<i class="fa fa-tag"></i>' %}
指定图片大小

虽然实际指定的是width但因为长宽比是固定的所以可以实现指定图片大小的功能

themes/uestc-msc/layout/_layout.swig的body结束tag前加了一句加载设定图片宽度 脚本的语句.

  <script src="/js/hexo_resize_image.js"></script>

将指定图片大小的脚本放到了themes/uestc-msc/source/js/hexo_resize_image.js, 这 个文件夹的会被放到站点资源.

💡 使用很简单, 只是拓展了一下Markdown的语法. 👇例子:

![img](example.png?10)

在图片链接后加问号, 问号后是图片宽度和屏幕宽度的比例.