前一段时间我看见一个问答,大概意思就是程序员都是怎么用自己的专业技能逗女朋友或表白的。

看了很多,有写定时关机脚本恶搞的,也有简单写个html展示的,其中最著名的就是几年前有个人写了个网页记录他们在一起时间的。

我决定也做一件类似的事情,但是写一个关机脚本恶搞这种事情简直太直男了,灵光乍现,我想是不是可以在github博客上做一些文章呢。

Bing了一下发现这件事情是可行的,github是可以展示图片的,以此原理实现一个相册应该是可以的。

知识点

  • github git
  • node npm
  • hexo
  • python
  • windows(我用的是windows系统)

这几个东西除了github之外我基本上都可以说是不认识,一点点来吧。

github的ssh key早在上古时代我就已经添加完了,所以这个就不用管了。剩下的所有软件我下载的统统是最新版,node已经包含了npm(个人感觉npm应该是一个很好用的包管理工具,如果没有npm想要安装的话,应该也不难)

看了很多博客,hexo是搭建博客的主要工具类似于jeyll,但是好像又不能直接克隆hexo-theme使用。所以hexo和hexo-theme应该区分概念。

hexo环境准备

安装node就比较简单了,一直下一步就好了。

安装hexo需要用命令行执行如下命令:

npm install -g hexo

安装了hexo后,创建一个项目文件夹,然后在项目文件夹中打开命令行。

  • 初始化
hexo init

如果不出意外的话,执行完次命令之后文件夹内会多了很多文件。

  • 生成
hexo g

这个命令就是单纯的生成项目,没有什么需要注意的。

  • 启动服务
hexo s

执行这个服务之后应该会有如下提示:

INFO  Start processing
INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

访问localhost:4000应该就可以在本地浏览初始化后的博客了。

hexo-theme

在网上看了一下,使用率很高的是一款叫做hexo-theme-yilia的主题,于是我也就顺应潮流选择了这个。其实用这个主题有一个小小的私心,就是如果遇到问题的话,bing一下应该很快就能解决。

还是在之前的项目文件夹中执行:

git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia

执行此命令后在themes文件夹下应该多出了对应的主题。

绑定这个主题需要修改项目文件夹内的_config.yml里的theme属性为yilia:

theme: yilia

修改了这个配置之后重新真实性hexo ghexo s应该可以在本地看到新的主题了。

同步到github

其实这个功能很方便,但是我感觉并不是很实用。

同样修改项目文件夹下的_config.yml

deploy:
type: git
repository: git@github.com:hoyuhub/hoyuhub.github.io.git
branch: master

然后在项目文件夹下执行如下命令,才可以同步到github。

npm install hexo-deployer-git --save

接着就可以执行同步命令了:

hexo d

执行完次命令后就可以在自己的github上浏览了。

添加相册功能

现在说一下这个功能的大概思路:其实很简单,就是把照片传到github上然后通过网络路径访问这些照片。

其实在网上早已有大神实现了这个功能,我也是拜读他的博客才得以实现的。

首先要做的任务就是fork一下Blog-Back-Up

这个项目的主要工作就是图片的切割和存储,fork好了之后把项目克隆下来,然后在Blog-Back-Up的同级目录克隆一下自己的博客项目,这样做的目的是让后面的操作更加方便。

  1. 在hexo项目文件夹source下创建一个photos文件夹。

  2. 把Blog-Back-Up项目blog_photos_copy文件夹里的文件复制到上面创建好的photos里面。

  3. 打开ins.js文件修改里面的render方法,把里面github的地址改成自己的。

    var minSrc = 'https://github.com/hoyuhub/Blog-Back-Up/tree/master/min_photos/'
    var src = 'https://github.com/hoyuhub/Blog-Back-Up/tree/master/photos/'
  4. 把照片放到Blog-Back-Up项目的photos文件夹里,命名方式为:2018-05-28_名字.jpg

  5. 打开tool.py文件,修改里面大概131行的路径

        with open("../hoyuhub.github.io/photos/data.json","w") as fp:
  6. 安装python,记得勾选将python添加到环境变量的选项。

  7. 在Blog-Back-Up目录下用命令行执行python:

    python tool.py
  8. 如果上面执行的都没有问题的话,此时在本地github博客项目的photos文件夹下应该会多了一个data.json文件,或者原来的data.json被更新。(可以用git status查看一下)将内容push到github就行了。


遇到问题

1. 执行python文件的时候有可能会报错,原因是没有导入对应的库,python还不是太懂,可能需要按照对应的报错搜索一下了。

2. 图片不显示,看一下ins.js里的路径是不是配置争取,F12看一下img的src是否可以访问到。

3. 可能会出现缩略图不展示的情况,F12浏览器调试一下,看看是不是缺少一个叫empy.png的图片。如果是的话,可以去我的项目里找一个然后创建对应的文件夹,推送到github就行了。

4. 如果检查检查了路径配置正确,empty.png也添加正确,可还是有缩略图不展示的问题,恭喜,你已经完成了,ctrl+f5你会豁然开朗。

Github相册博客搭建的更多相关文章

  1. GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置

    GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置 前言 此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客.poem_of_ ...

  2. Hexo+Github个人博客搭建 | 实战经验分享

    概述 第一次尝试搭建属于自己的博客,并且成功了,非常开心. 很久之前就想搭建一个博客,可是也一直没有行动,最近在逛B站的时候发现一个up主(CodeSheep)的一个视频 <手把手教你从0开始搭 ...

  3. github文件上传及github pages博客搭建教程

    一.与github建立连接 1.安装node.js和git 2.桌面新建文件夹[github],右键“git bash here” 3.注册github账号,新建仓库“new repository”, ...

  4. Github pages博客搭建与域名绑定

    Github Page github page是由用户编写的托管在github上的静态网页,为了搭建一个个人博客,我们可以租用一个云服务器然后部署我们的博客项目,常见的比如wordpress,像wp这 ...

  5. 使用hexo搭建github.io博客(一)

    使用github.io可以搭建一个自己的博客,把静态文件项目托管到github上,可以写博客,可以使用markdown语法,也可以展示作品.灵活性高.但是有较大的难度. node,git版本变化日新月 ...

  6. 象写程序一样写博客:搭建基于github的博客

    象写程序一样写博客:搭建基于github的博客   前言 github 真是无所不能.其 Pages 功能 支持上传 html,并且在页面中显示.于是有好事者做了一个基于 github 的博客管理工具 ...

  7. 基于Github&Hexo的个人博客搭建过程

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  8. 使用Hexo搭建Github静态博客

    1. 环境环境 1.1 安装Git 默认配置就好 1.2 安装node.js 下载:http://nodejs.org/download/ 安装时直接保持默认配置即可. 2. 配置Github 1.1 ...

  9. 一站式搭建 GitHub Pages 博客 (一)

    本文将详细讲解如何快速搭建 GitHub Pages 博客页面 关于博客主题,博客信息更改,上传文章等将会在 一站式搭建 GitHub Pages 博客 (二) 中进行详细讲解 准备阶段 注册 Git ...

随机推荐

  1. Linux load average负载量分析与解决思路

    一.load average top命令中load average显示的是最近1分钟.5分钟和15分钟的系统平均负载.系统平均负载表示 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或 ...

  2. PHP类继承、接口继承关系概述

    PHP类继承: PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承,比如: class frist{ public function __construct(){ echo &quo ...

  3. 用LinkedList

      >用LinkedList模拟栈集合MyStack >MyStack测试类   用LinkedList模拟栈集合MyStack import java.util.LinkedList; ...

  4. UI中新增一个右击按钮的过程

    1.首先给出增加之后的成品 点击后的界面 3.需要增加的部分 新增一个类:DiglogAddUser  用于操作用户填写的数据,写入数据库等操作 3.1首先在资源文件中定义窗口代号 3.2 枚举出该代 ...

  5. JQUERY方法给TABLE动态增加行

    比如设置table的id为tabvar trHTML = "<tr><td>...</td></tr>"$("#tab&q ...

  6. python第二十九课——文件读写(readline()和readlines()的使用)

    演示readline()和readlines()的使用: #1.打开文件 f3=open(r'a.txt','r',encoding='gbk') #2.读取数据 content3=f3.readli ...

  7. Android APP的字体设置

    Android系统自带有对字体的设置,这些设置是对字体的显示方式的设置,比如加粗,倾斜,下划线,字号等,但是对于字体本身,比如设置为楷体,隶书等貌似没有.Android系统只有一种默认的,如果需要修改 ...

  8. json 压缩中文不转码

    $testJSON=array('name'=>'中文字符串','value'=>'test'); echo json_encode($testJSON, JSON_UNESCAPED_U ...

  9. C#启动另一个应用程序并传参数

    第一个程序: try { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "Windows ...

  10. web.xml配置遇到的问题

    web.xml<listener>            <listener-class>org.springframework.web.context.ContextLoad ...