新建相册页面
首先新建相册页面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仓库中,单个照片的链接居然跟外层的链接不一样。我还以为是其他地方出了问题,一直在改其他地方。
参考链接博主给了我很大帮助,在此表示感谢。