第一步 码云搭建自己的博客项目
如果你想以根目录的形式访问自己的静态网站,只需要建立一个与自己个性地址同名的项目即可,如http://git.oschina.net/ipvb这个用户,想要创建一个自己的站点,但不想以子目录的方式访问,想以ipvb.oschina.io直接访问,那么他就可以创建一个名字为ipvb的项目http://git.oschina.net/ipvb/ipvb部署完成后,就可以以http://ipvb.oschina.io进行访问了。
参考文章 :http://www.sohu.com/a/80771021_381268
第二步 安装hexo
Hexo:是一个简单地、轻量地、基于Node的一个静态博客框架
hexo的相关配置
基本指令
|
|
配置Deployment
同样在_config.yml文件中,找到Deployment,然后按照如下修改:
1234
deploy: type: git repo: git@github.com:yourname/yourname.github.io.git branch: master
|
|
1 注意需要提前安装一个扩展:
如果没有执行者行命令,将会提醒
2 如果出现下面这样的错误
则是因为没有设置好public key所致。
参考文章:http://blog.csdn.net/gdutxiaoxu/article/details/53576018
小功能
1.网站访问量统计:[不蒜子-关于访问量统计工具] (http://ibruce.info/2015/04/04/busuanzi/)
2.相册搭建
- 参考网站 [hexo博客进阶-相册和独立域名](http://www.cnblogs.com/jarson-7426/p/5515870.html)
- 七牛网 把图片上传到[七牛网](https://developer.qiniu.com/kodo/sdk/1289/nodejs)
- 自动上传 js
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
const fs = require("fs");const path = "./";var qiniu = require("qiniu");var config = new qiniu.conf.Config();// 空间对应的机房config.zone = qiniu.zone.Zone_z0;//需要填写你的 Access Key 和 Secret Keyqiniu.conf.ACCESS_KEY = 'yourakey';qiniu.conf.SECRET_KEY = 'yourskey';var mac = new qiniu.auth.digest.Mac(qiniu.conf.ACCESS_KEY, qiniu.conf.SECRET_KEY);//要上传的空间bucket = 'yourspace';var options = { scope: bucket}//构建上传策略函数function uptoken(options) { var putPolicy = new qiniu.rs.PutPolicy(options); return putPolicy.uploadToken(mac);;}//构造上传函数function uploadFile(uptoken, key, localFile) { var formUploader = new qiniu.form_up.FormUploader(config); var extra = new qiniu.form_up.PutExtra(); formUploader.putFile(uptoken, key, localFile, extra, function(err, ret) { if(!err) { // 上传成功, 处理返回值 console.log('upload success : ',ret.hash, ret.key); } else { // 上传失败, 处理返回代码 console.log(err); } });}/** * 读取文件后缀名称,并转化成小写 * @param file_name * @returns */function getFilenameSuffix(file_name) { if(file_name=='.DS_Store'){ return '.DS_Store'; } if (file_name == null || file_name.length == 0) return null; var result = /\.[^\.]+/.exec(file_name); return result == null ? null : (result + "").toLowerCase();}fs.readdir(path, function (err, files) { if (err) { return; } var arr = []; (function iterator(index) { if (index == files.length) { fs.writeFile("./tibet.json", JSON.stringify(arr, null, "\t")); return; } fs.stat(path + "/" + files[index], function (err, stats) { if (err) { return; } if (stats.isFile()) { var suffix = getFilenameSuffix(files[index]); if(!(suffix=='.js'|| suffix == '.DS_Store'|| suffix == '.json')){ //要上传文件的本地路径 filePath = path+'/'+files[index]; console.log('抓取到文件: '+files[index]); //上传到七牛后保存的文件名 key = files[index]; //生成上传 Token token = uptoken(options); // 异步执行 uploadFile(token, key, filePath); arr.push(files[index]); } } iterator(index + 1); }) }(0));});
- 运行这个文件node *.js,运行之后,会在/source/photos/目录下创建一个data.json文件,每次修改photos文件夹里的照片,都得运行一下这个js文件,以更新生成的data.json文件。
- 图片预览 [fancybox](http://fancyapps.com/fancybox/3/)
- lazyload [lazyload](https://appelsiini.net/projects/lazyload/)
- 文件加密 hexo-encrypt