新建相册页面
首先新建相册页面hexo new page photos,将会在source/下创建photos/index.md,在其中添加type: photos。
_config.yml
在主题_config.yml文件中对应位置menu里添加Photos: /photos/,这样生成后就能在页面的菜单栏中出现相册选项。
json
在博客根目录下新建uploadPhotos文件夹,里面将会存放照片以及相关js文件。
新建uploadPhotos/Images/文件夹,然后在其中存放需要在页面中展示的照片集(在GitHub中新建相册库,并上传图片)。
新建uploadPhotos/tool.js文件,里面内容如下,主要功能是访问照片文件夹,获取每张照片的size和name,并生成对应的json文件:
命令:Git Bash中键入 node tool.js生成json。
注:若出现Error: Cannot find module 'image-size'问题,请在Git Bash中键入对应命令npm install image-size进行安装。
json文件样例如下(图片宽度.图片高度+空格+图片名.图片格式):
photo.js
新建themes/next/source/photos/photo.js文件,其中photos文件夹是自己创建的.
photos.js内容如下,主要功能是访问json文件内容,遍历每行数据,并在页面对应位置上放置代码,展示图片(其中图片链接为自个GitHub相册库中图片的链接):
photos.swig
新建themes/next/layout/photos.swig文件,其内容模仿tag.swig中内容(直接复制粘贴),然后将其中的tag全部替换为photos。
photos.css
新建themes/next/source/photos/photos.css样式文件,内容如下:
page.swig
修改themes/next/layout/page.swig文件,添加下面代码中中间page.type === “photos”那两行。
_layout.swig
在主题_layout.swig文件末尾,添加内容:
整个过程结束,查看图片是否以瀑布流的方式呈现。
总结
在花了两天的时间来实现相册模块,网上查阅了很多博文,期间碰到很多问题都一一解决了。期间花费时间最长的一个问题是图片无法加载,后来发现是图片链接地址写错,真的是坑。将照片存放在一个新的github仓库中,单个照片的链接居然跟外层的链接不一样。我还以为是其他地方出了问题,一直在改其他地方。
参考链接博主给了我很大帮助,在此表示感谢。

