# Xu-Jian.github.io
**Repository Path**: king019/Xu-Jian.github.io
## Basic Information
- **Project Name**: Xu-Jian.github.io
- **Description**: Web开发 个人项目(Jekyll Theme)
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-04-30
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 浏览器要求:
浏览器推荐: Chrome >> Firefox >> Safari;
不支持 IE8-; IE9+ 未测试.
> 主题核心过滤功能使用 HTML5 的 data属性.
# CMS-Jekyll:
> 大类: 不能有英文的.; (可以有:-)不然不能过滤出对应标签&文章.
> 标签: 不能有下划线_; 不能有斜杆/;不能有空格(有空格是多标签.本主题不支持)
## CMS-Jkeyll-Theme Demo
## CMS-Jkeyll-Theme Preview:
## Done (主要功能)
* [x] 三级标签过滤 & 统一时间排序: Categories → Tags → fileName
* [x] 拖动条 + 滚动条 + Nprogress进度条 + PJAX
* [x] 自动高亮: 点击文件名自动高亮并过滤出对应 Tags & Categories.
* [x] 文件结构栏: 文章滚动自动高亮标题(h2-h5), 并实现锚点跳转.
* [x] Service Worker 缓存 (废弃 manifest缓存 )
* [x] Webpack (SASS & ES6 & CSS内联)
* [x] 启用 Lazyload
## Done (次要功能)
* [x] Git: Github + Coding 双线部署; Github Star数集成
* [x] 谷歌网站统计分析 + SSL/HTTPS
* [x] 所有平台 icon 图标适配
* [x] 文章可添加meta标签来优化SEO
* [x] 阿里iconfont 代替 fontawesone
* [x] 发布主题到 Rubygems
* [x] 顶栏前后篇 pjax按钮 ( 绑定contentDiv链接实现 )
* [x] 移动端界面适配
* [x] 404页面.
## ToDo
* [ ] 首页文件列表模块化主题+预览(card-theme)
* [ ] gzip压缩
* [ ] JS 上下键 控制高亮光标.
* [ ] 多主题切换/多布局切换
* [ ] 搜索功能(谷歌CES搜索)
* [ ] 左右抽屉显隐效果 留白问题...
* [ ] 在线编辑功能??
* [ ] 开放UGC???
* [ ] 最爱文章?
* [ ] 移动端左右滑动
* [ ] URL 自动链接
* [ ] 前后篇 高亮设置.
* [ ] 文章分享功能
* [ ] 白噪声功能.
* [ ] require.js 按需加载..
* [ ] 文章阅读进度条.
* [ ] 三级导航条
## 待定功能
* [ ] 侧边栏: 首次点击文章显示. 然后隐藏掉... 手动开启
* [ ] 文章浏览时间, 浏览量, 字数统计
* [ ] 文章分享功能.
## GiveUP
* [ ] 七牛CDN加速 (域名必须备案! HTTPS 还要上传证书信息.... )
* [ ] CDN 请求合并 (CDNJS.com 需年费..)
* [ ] Firebase 数据库(聊天功能. 被墙.实在慢.寻找国内替代)
## issues
- 左右拖动 会选中文字.....
## 项目架构
.
├─ webpack/ # Webpack 目录
├─ _site/ # jekyll build 默认生成的所有文件都在这里.也就是我们看到的网页文章(每篇文章一个html)
├─ node_modules/ # 就是因为这个文件夹才 必须新建个 src 文件夹. 不然jekyll build.就会处理这个文件夹. 耗时30+秒. 不能忍!!!
├─ src/ # jekyll build 所需要的文件都在这个. 这个文件夹非常重要.
│ ├─ assets/ # 放置需要经由 Webpack 处理的静态文件
│ ├─ components/ # 组件(COMPONENT)
│ ├─ redux/ # Redux 一箩筐
│ │ ├─ actions/ # (ACTION)
│ │ ├─ reducers/ # (REDUCER)
│ │ ├─ store/ # (STORE)
│ ├── routes/ # 路由(ROUTE)
│ ├── services/ # 服务(SERVICE,用于统一管理 XHR 请求,这是从 Vue Demo 中直接复制过来的)
│ ├── utils/ # 工具库(UTIL)
│ │ ├─ HoC/ # 高阶组件(HOC,全称 Higher Order Component)
│ │ ├─ mixins/ # 混合(MIXIN)
│ ├── views/ # 路由视图基页(VIEW)
│ │ ├─ layout/ # 全局布局
│ ├── app.js # 启动文件
│ ├── index.html # 静态基页
├── _config.yml # jekyll 的配置文件
├── CNAME # 博客自定义域名设置
├── entry.js # webpack 入口文件
├── Gemfile # jekyll build 需要
├── Gemfile.lock # jekyll build 需要
├── jekyll-theme-CMS-2.2.2.gem # 主题发布到 Gemruby 需要文件
├── jekyll-theme-CMS.gemspec # 主题发布到 Gemruby 需要文件
├── package.json # npm 配置文件
├── README.md # 项目的 readme 文件
├── webpack.config.js # webpack 配置
## 排序实例:(主题重点)
- 所有排序都是按照_Posts里文件名的时间排序. 时间越旧拍越上面.
> 一个类下的 这个类下的所有文件名都是一个年份的有效.
|-- Cate1
| |-- Tag11
| |-- post111 → 2000-01-01-post111.md
| |-- post112 → 2000-01-02-post112.md
| |-- post113 → 2000-01-03-post113.md
| |-- Tag12
| |-- post121 → 2000-02-01-post121.md
| |-- post122 → 2000-02-02-post122.md
| |-- post123 → 2000-02-03-post123.md
| |-- Tag13
| |-- post131 → 2000-03-01-post131.md
| |-- post132 → 2000-03-02-post132.md
| |-- post133 → 2000-03-03-post133.md
|
|-- Cate2
| |-- Tag21
| |-- post211 → 2010-01-01-post211.md
| |-- post212 → 2010-01-02-post212.md
| |-- post213 → 2010-01-03-post213.md
| |-- Tag22
| |-- post221 → 2010-02-01-post221.md
| |-- post222 → 2010-02-02-post222.md
| |-- post223 → 2010-02-03-post223.md
| |-- Tag23
| |-- post231 → 2010-03-01-post231.md
| |-- post232 → 2010-03-02-post232.md
| |-- post233 → 2010-03-03-post233.md
|-- Cate3
| |-- Tag31
| |-- post311 → 2016-01-01-post311.md
| |-- post312 → 2016-01-02-post312.md
| |-- post313 → 2016-01-03-post313.md
| |-- Tag32
| |-- post321 → 2016-02-01-post321.md
| |-- post322 → 2016-02-02-post322.md
| |-- post323 → 2016-02-03-post323.md
| |-- Tag33
| |-- post331 → 2016-03-01-post331.md
| |-- post332 → 2016-03-02-post332.md
| |-- post333 → 2016-03-03-post333.md
## 排序结果:
Cate1 Tag11 post111
Cate2 Tag12 post112
Cate3 Tag13 post113
Tag21 post121
Tag22 post122
Tag23 post123
Tag31 post131
Tag32 post132
Tag33 post113
post211
post212
post213
post221
post222
post223
post231
......
## 建议排序方法:
* 每个大类一个年份.
* 每个标签一个月份.
* 每篇文章一个日期.
* 文章很多还可以用时分秒.
> 这个是最简单的自定义排序方法!!!
### Gitpages 主题安装方法 (Mac) :
1. fork 我的主题到你的github. 并重命名该项目.名字格式参考:Xu-Jian.github.io
不管什么办法. 新建一个github项目. 把我主题所有文件弄到你项目里面.然后把项目重命名 用户名..github.io 格式
2. 下载该项目到本地电脑(一般放桌面).
3. 电脑安装jekyll 环境(全局模式/不需要cd到特定文件夹);
\> 安装好全局环境: 系统可以认识jekyll命令. 但是文件夹还是不能进行jekyll命令操作,必须进行下一步.
一个电脑只需安装一次.(已经安装过就跳过这步).
- `sudo gem install jekyll bundler`
这里其实安装了两个: jekyll & Bundler
4. 终端cd到 下载的文件夹里面:
- `jekyll new . --force`
这个是不覆盖原来内容的命令.如果是空的文件夹 可以使用:`jekyll new .`
这里的 . 是当前文件夹的意思
- `bundle install`
这步会帮你安装各种依赖文件
- `bundle exec jekyll serve`
这步开启本地预览: 打开浏览器 http://localhost:4000 有内容就对了.
5. 将文档保存(修改)为「日期 + 标题」的模式,如:「2015-04-27-Like-Kissing.md」.
6. 将 md 文档放到 `_posts` 文件夹里. 再去刷新浏览器的本地预览 就能看到变化了.
7. GitHub for Mac 客户端 commit 和 sync,稍等片刻新添加的博文就会自动发布到博客里啦.
8. 浏览器输入 Xu-Jian.github.io (把xu-jian 改成你自己的github账户名) 能看博客效果.
## jekyll Tips ★★★★★
- 渲染所有文件
`bundle exec jekyll serve`
- 忽略文件更新
`bundle exec jekyll serve --unwatch`
默认文章一旦改变就重新生成的,当你1000+文章时候 生成一次得好久 还耗费电脑资源!!!
- 渲染指定数量文件
`bundle exec jekyll serve --limit_posts 15`
> 创建主题时.如果文件多 会很耗时.
- 指定端口预览
`bundle exec jekyll serve --port 3999`
> 开启多个本地预览时候用
- 批量修改文件名
> 如:每个大类都是一个年份.把某个大类的所有文章都改成一个年份.可以实现自定义排序
- 批量修改文件内容: 如改标签/大类
> 改大类名非常方便啊
coda2软件 → 查找功能 → 打开post文件夹 →查找 categories: Blog 替换成 categories: Blogs
- jekyll博客文件结构
只要看 `_layouts` 文件夹里面的 default.html.
再结合 `_includes` 文件夹里面的内容就可以知道了.
> default.html 会用 inclide 语法包含一些 `_includes`文件夹里面的文件.
## 主题个性化定制
### `_config.yml` 主要配置文件:
- 修改书签栏上显示的标题: title
- 修改博客顶栏的邮箱: email
- 修改博客顶栏 github 主页链接: githubHomeURL
- 修改博客顶栏 github readme链接: githubReadmeURL
- 修改博客顶栏 codePen 链接: `codePen_url`
### 增删博客顶部的图标(链接):
- 增加: 自己搜阿里的 iconfont
- 删除: `_includes` → topbar.html → 看注释就会了
- 链接: topbar.html 里直把href 改成你自己的也可以.
### 大类/标签/文件 默认宽度
main.css → #cateDiv / #tagDiv / #fileNameDiv → 修改 flex-basis: ???px;
### 改大类/标签/文件 背景颜色
main.cs
这里要注意下 拖动条的颜色.
拖动条有点宽(容易拖动啊)由是左右两部分组成的.
修改背景颜色 记得这里也一起改掉.
总的 3条拖动条:
- 标签拖动条: lineLeft-left, lineLeft-right
- 文章拖动条: lineRight-left, lineRight-right
- 文章结构条: lineSide-left, lineSide-right
### 右下角的三个小图标
default.html → arrowNav div下 → 绝对定位
### favicon 书签图标
自己放一个 png到博客根目录就可以了.
### 自定义域名
根目录CNAME 文件(注意文件没有后缀的).
如果有独立域名请修改该文件;
如果没有,则删掉该文件;
### Github Star数图标
topbar.html → 找ID= githubstar → 按照注释改.
由于国内网络环境.这个严重影响加载.不建议开启.
### service worker 缓存
默认开启所有除了 CDN 的文件. 包括 main.css man.js
如果你修改了 css 文件.要查看修改后效果. 最简单的就是清空浏览器缓存.再重新加载.
## 版权 MIT