Git Product home page Git Product logo

jekyll-theme-h2o's Introduction

jekyll-theme-H2O

基于Jekyll的博客主题模板,简洁轻量。

另外,还有此主题的Ghost版本 by eastpiger

Preview

如果你喜欢这个博客模板,请在右上角star一下,非常感谢~

If you like this theme or using it, please give a ⭐️ for motivation ;)

如果想体验手机浏览效果,可以扫一下二维码:

Using your smartphone to scan the QR Code

Features 特性

CN

  • 代码高亮
  • 夜间模式
  • Disqus评论系统
  • 粉蓝两种主题色
  • 头图个性化底纹
  • 响应式设计
  • 社交图标
  • SEO标题优化
  • 文章标签索引
  • 博客文章搜索
  • 复制文章内容自动添加版权

EN

  • Code highlight
  • Night mode
  • Disqus Comment System
  • Theme color: Blue & Pink
  • Hero Patterns
  • Responsive design
  • SNS Icon
  • Title SEO
  • Tags system
  • Search
  • Copyright text on copy event

Usage 快速开始

首先你需要安装Jekyll,请查看文档: 快速指南

如果你已经安装了Jekyll,请检查版本是否为3.0.x,你可以使用 gem update jekyll 命令进行升级。

使用 gem install jekyll-paginatesudo gem install jekyll-paginate 安装Jekyll的分页插件。

H2O主题基于Jekyll 3.2.1版本,不同版本之间可能存在部分差异,具体请参考官方更新文档

点击右上角Fork按钮在你的Github上创建分支,或者clone到本地。

git clone https://github.com/kaeyleo/jekyll-theme-H2O.git

最后,在命令行输入 jekyll server 开启服务,就能在本地预览主题了。

如果需要部署到线上环境,请参照配置文档的 开始 章节进行操作。

Document 配置文档

CN

EN

You can easily get started by modifying _config.yml

站点信息

你可以通用修改 _config.yml 文件来轻松的开始搭建自己的博客

# Site settings
title: '廖柯宇的独立博客' # 你的博客网站标题
description: '很高兴能在这里与你分享我对技术和生活的思考。' # 站点描述
keyword: '廖柯宇, 廖柯宇的独立博客, 前端, 设计' # 网站关键词
url: 'http://liaokeyu.com' # 站点url
baseurl: ''

# Build settings
paginate: 6 # 一页放几篇文章
paginate_path: 'page:num'

其实大部分参数已经默认配置好了,你只需要通过文档了解它们,然后根据自己的需求去_config.yml文件里修改即可。

写一篇文章

文章一般都放在_posts文件夹里,每篇文章的开头都需要设置一些头信息:

---
layout: post
title: 'H2O theme for Jekyll'
subtitle: '或许是最漂亮的Jekyll主题'
date: 2017-04-18
categories: 技术
cover: 'http://on2171g4d.bkt.clouddn.com/jekyll-theme-h2o-postcover.jpg'
tags: jekyll 前端开发 设计
---

导航

博客顶部的导航栏信息需要以下面的格式进行配置:

# Navigation links
nav:
  home: '/'
  tags: '/tags.html'

导航链接需要写上完整的html文件名,它们都是放于根目录下的,如果自建文件夹,请务必在exclude 参数中增加自建文件夹的文件名:

# Build settings
exclude: ['node_modules', 'dev', 'package.json', '自定义的文件夹名字']

这样做是为了在Jekyll运行时排除某些文件被复制到运行文件_site里去。

侧边栏

侧边栏分为两个部分:【个人简介】和【推荐标签】。当屏幕宽度小于960px时,侧边栏会被隐藏。

社交图标

使用阿里的图标管理平台Iconfont整理了一套常用的社交图标用于博客的个人简介上,包括微博、知乎、掘金、简书、Github等十三个网站,并且对鼠标悬停时的样式颜色进行了优化。

配置格式如下:

# SNS settings 配置社交网站url
sns:
  weibo: '//weibo.com/lovecolcol'
  juejin: '//juejin.im/user/57a6f434165abd006159b4cc'
  instagram: '//www.instagram.com/steveliaocn'
  github: '//github.com/kaeyleo'

sns属性可选参数:

社交网站 参数
微博 weibo
推特 twitter
Github github
知乎 zhihu
掘金 juejin
豆瓣 douban
简书 jianshu
UI** uicn
领英 linkedin
Facebook facebook
Youtube youtube
Instagram instagram
Dribbble dribbble
Behance behance
Medium medium
VK vk

个人简介

首页侧边栏和文章页面底部都会显示你的个人简介

# Author 配置博主信息
author: 'Jack'
nickname: 'xx'
bio: '程序员'
avatar: 'assets/img/avatar.jpg'

标签

对侧边栏的标签模块进行相应配置:

# Tags
recommend-tags: true
recommend-condition-size: 12

Tags配置说明:

属性 参数 描述
recommend-tags true, false 是否显示推荐标签
recommend-condition-size 12 或其他数字 推荐标签个数限制

文章搜索

基于Jekyll服务器生成文章索引文件 search.json 为博客提供搜索服务。输入文章标题或与文章标签相关的关键字即可。

搜索功能默认是开启的,以卡片的样式显示在侧边栏底部。如需关闭请将配置文件 _config.ymlsearch 属性的值改为 false

# Search
search: true
说明 参数
开启搜索功能 true
关闭搜索功能 false

代码高亮

模板引入了Prism.js,一款轻量、可扩展的代码语法高亮库。

很多知名网站如MDNcss-tricks也在用它,就连 JavaScript 之父 Brendan Eich 也在个人博客上使用。

代码高亮

遵循 HTML5 标准,Prism 使用语义化的 <pre> 元素和 <code> 元素来标记代码区块:

<pre><code class="language-css">p { color: red }</code></pre>

在Markdown中你可以这样写:

 ```css
	p { color: red }
 ```

支持语言:

  • HTML
  • CSS
  • Sass
  • JavaScript
  • CoffeeScript
  • Java
  • C-like
  • Swift
  • PHP
  • Go
  • Python

夜间模式

晚11点至次日凌晨6点自动开启夜间模式。如果不需要,则将配置文件 _config.ymlnightMode 属性的值改为 false 即可。

# Night mode
nightMode: true
说明 参数
开启夜间模式 true
关闭夜间模式 false

主题皮肤

支持两种主题颜色蓝色(默认)和粉色

主要效果体现在首页博客封面、顶部导航栏的logo以及鼠标悬停时文字显示的颜色效果。

# theme color
theme-color: 'default' # pink or default
颜色 参数
蓝色 default
粉色 pink

如果你希望在博客封面显示图片,需要去index.html文件中的头信息中添加 header-img 配置:

---
layout: default
home-title: Steven的博客
description: 开发者,创造者
header-img: assets/img/banner.jpg
---

头图底纹

在没有图片的情况下单纯显示颜色会不会太无趣了点?于是想到了加入底纹元素,底纹素材是SVG格式的(保存在css样式里),加载比图片快很多。六种底纹(电路、食物、云海、钻石等等)供你选择,配置如下:

# Hero background patterns
postPatterns: 'circuitBoard'

postPatterns 属性参数配置:

底纹描述 参数
电路 circuitBoard
圆环 overlappingCircles
吃货日常:啃打鸡 food
土豪必备:钻石 glamorous
圈圈叉叉 ticTacToe
**风:云海 seaOfClouds

自定义

主题开发使用的技术栈也比较简单:引入jQuery类库、使用Sass代替CSS编写样式,使用Gulp完成Sass的编译、CSS和JavaScript的代码合并压缩等任务。

如果你喜欢折腾,想对模板的代码进行修改,需要使用命令 npm install 安装 package.json 中的依赖,然后 gulp 一下即可开始你的自定义之旅。

在了解H2O主题的目录结构之前,确保你对Jekyll目录结构有所了解。

	.
	├── _config.yml # 配置文件
	├── _includes # 页面组件方便重用
	|   ├── footer.html # 页脚
	|   └── head.html # html文档的头部内容
	|   └── header.html # 顶部菜单栏
	|   └── pageNav.html # 文章列表分页组件
	├── _layouts # 布局模板
	|   ├── default.html # 默认模板
	|   └── post.html # 文章页面模板
	├── _posts # 这里放文章
	|   ├── 2017-05-03-elements-of-javascript-style.md # 命名格式:年-月-日-文章标题.md
	|   └── 2007-02-21-life-on-mars.md
	├── _site # Jekyll将源码处理后生成的站点文件,里面的内容可直接发布
	├── assets # 存放用于线上环境的静态资源,如需修改css和js文件请到dev文件夹
	|   ├── css # dev文件夹中sass编译后的样式文件
	|   └── fonts # 字体文件
	|   └── icons # 图标文件
	|   └── img #  图片文件
	|   └── js # dev文件夹中处理后的脚本文件
	├── dev # 开发文件
	|   ├── js # 存放脚本源码
	|   └── sass # 样式源码
	|       └── app.scss # 整合下面的所有样式文件
	|       └── base.scss # 引入字体、Reset部分样式
	|       └── common.scss # 模板的主要样式
	|       └── helper.scss # 工具样式
	|       └── layouts.scss # 响应式布局
	└── gulpfile.js # 自动化任务脚本
	└── index.html # 模板首页
	└── tags.html # 标签页面
	└── 404.html # 404页面
	└── package.json # 管理项目的依赖项

值得注意的是,css及js的源码都在 dev 文件夹中,每一次保存 gulp 都会对它们进行处理并保存到 assets 文件夹以供 _site 上线环境使用。

Disqus

Disqus是一个第三方社交评论插件,体验相当不错。

在配置文件 _config.yml 中找到comments的相关配置,设置 disqus 参数为 true 打开评论功能( false 为关闭),并且设置 disqus_url

# Comments
comments:
	disqus: true
	disqus_url: 'https://your-disqus-username.disqus.com/embed.js'

注:disqus 默认值为 false

Share.js

为了让文章更方便地分享,使用了第三方分享插件Share.js,支持一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点等社交网站。

# Share
social-share: true # 开启或者关闭分享功能
social-share-items: ['wechat', 'weibo', 'douban','twitter']

Contribution 贡献

Any types of contribution are welcome. Thanks.

接受各种形式的贡献,包括不限于提交问题与需求,修复代码。等待您的 Pull Request

感谢参与代码贡献的伙伴

License 许可证

Jekyll-Theme-H2O is licensed under MIT.

jekyll-theme-h2o's People

Contributors

bananaappletw avatar bobby285271 avatar cometeme avatar dyzsoft avatar grahamplace avatar gyje avatar kaeyleo avatar miaite avatar nathandai avatar ray-eldath avatar sctop avatar urain39 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jekyll-theme-h2o's Issues

当前版本直接clone后jekyll server 文章内页不能成功加载 css 提示路径错误

直接使用 demo 进行 jekyll serve 报错如下

[2017-10-13 08:33:01] ERROR /技术/2017/04/18/assets/js/prism.js' not found. [2017-10-13 08:33:01] ERROR /技术/2017/04/18/assets/js/index.min.js' not found.
[2017-10-13 08:33:01] ERROR /技术/2017/04/uploads/test_cover.png' not found. [2017-10-13 08:33:01] ERROR /技术/2017/04/18/assets/js/index.min.js' not found.

gems:[jekyll-paginate]

C:\Users\Administrator\Desktop\jekyll_demo\jekyll-theme-H2O>jekyll server
jekyll 3.5.2 | Error: (C:/Users/Administrator/Desktop/jekyll_demo/jekyll-theme-H2O/_config.yml): could not find expected ':' while scanning a simple key at line 64 column 1
line64 是 gems: [jekyll-paginate]

【参考】自己写了一个归档的页面

自己写了一个归档页面,供大家参考

---
title: Archives
layout: default
---

{% include header.html %}

<div class="g-banner tags-banner {{ site.postPatterns | prepend: 'post-pattern-' }} {{ site.theme-color | prepend: 'bgcolor-' }}" data-theme="{{ site.theme-color }}">
    <h2>ARCHIVES</h2>
</div>


<main class="tags-content" style="margin-top: 0px">
  <ul class="tags-list" style="padding:40px">
    {% for post in site.posts %}
      
        {% unless post.next %}
          <h3 style="margin-bottom: 8px">{{ post.date | date: "%b-%Y" }}</h3>
        {% else %}
        {% capture year %}{{ post.date | date: "%b, %Y" }}{% endcapture %}
        {% capture nyear %}{{ post.next.date | date: "%b, %Y" }}{% endcapture %}
        
        {% if year != nyear %}
           <h3 style="margin-bottom: 8px">{{ post.date | date: "%b-%Y" }}</h3>
        {% endif %}
        {% endunless %}
       
       <li> 
           <a href="{{ post.url }}" style="color: black">{{ post.date | date:"%b-%-d-%Y" }}  {{ post.title }}</a>
       </li>
       
    {% endfor %}
  </ul>
</main>
{% include footer.html %}

关于kramdown的问题

官方发来邮件说“You are currently using the 'kramdown`' Markdown engine, which is no longer supported by GitHub Pages and may cease working at any time”
要怎么解决?

首页显示不正常

直接clone到本地,简单修改了下_config.yml文件,运行jekyll server,截图中的描述信息没有显示在底部,尝试回退所有修改,还是一样。 @kaeyleo
image

主题做的真的很棒

在手机上查看 发现遇到代码块卡的厉害。。
iPhone手机在微信浏览器和safari里面都有点卡。

recommend tag 好像不工作

clone GitHub 上的 demo,然后设置

recommend-tags: true 
recommend-condition-size: 1

运行 server 后在 tag.html 和右侧个人信息处也没有展示对应的 tag。

页面上直接输出{{ site.recommend-tags }} {{ site.tags.size>0 }},第一个是 true,第二个是空白。

不太熟悉 jekyll,麻烦看下。

disqus加载出错

配置:
khq l d5 v_c of6pbv 6
disqus后台设置:
ct_t jd7itmvl d 6s2enz3
console控制台提示出错:

nlk7bb zb6axm6edy 9n7 k
出错代码具体位置:
m8y 7_v_rb yyr4powxs

搞不懂是哪里没有配置好,求指点

编码问题

clone到本地 运行jekyll serve 后出错,错误如下:

jekyll 3.5.1 | Error: incompatible character encodings: UTF-8 and GBK

關於 baseurl 部署的問題

你好
感謝樓主提供這個主題
最近有使用了一下
感覺相當美觀
後來發覺部署的時候會有個問題 (直接使用 github build from master branch)
就是 site.baseurl 的值會變成空的
導致一些頁面無法正常顯示
這個 issue 有關
也找到了一些修正方法
repo 如下: https://github.com/bamboofox/bamboofox.github.io
_config.yml 裡的 baseurl: '/' => ''
"{{site.baseurl}}" => "/{{site.baseurl}}"
如果有確認這問題
看要不要我發個 pull request 來改一下
這樣以後就不會有人遇到這問題
如有說錯請指正我
感謝你

社交分享的部分出现了奇怪的错误

不知怎么的...社交分享功能分享不了,只有微信的部分会出现奇奇怪怪的东西,在脚本里也会出现红色叉叉,不知道发生了什么QAQ,求旁友解答~

顺便自己改的半水墨风主页!求围观求Star!!!!原PO做的是真的屌,在巨人肩膀上又做了一些改动~
nimocat.github.io!!
pic
!!求解答

出现双重代码框/代码框无法显示,纯色背景 等的解决方案(专门开一个帖子)

这个问题我解决了
首先我们在prism的官网看到js占了一大半,所以我们可以肯定的是js是显示的主要部分
选中你要的部分,然后下载js和css,替换原来的
push上去或者直接127.0.0.1(建议push上去)
然后网页加载完毕之后(tips:看刷新键是否是刷新的样子),F12调出审查元素,点network(网络),然后点一下红点(有一个开始的红点的,按一下会变成灰色,同时下面会有“F5 xxxxx”),F5刷新。
网页加载再次成功后,检查一下prism.js是否有加载,如果有那么正常情况下是能显示正常的,如果只有css没有js的话,将layout里头的加载prism.js的片段扯出来放到和(include文件头里有两种head,两种都要加)里头(head头是一定会读取的)。再push上去,一般情况下就能解决了。

代码背景为纯白色背景,代码无法高亮,代码不能自己换行

如题,现象就是如 https://www.zhangqirun.cn/c%E8%AF%AD%E8%A8%80/2018/01/17/%E6%AD%A3%E7%A1%AE%E7%94%A8%E7%BC%96%E7%A8%8B%E8%A7%A3%E5%86%B3%E6%95%B0%E5%AD%A6%E9%A2%98%E7%9A%84%E5%A7%BF%E5%8A%BF.html 我的这个文章所表现的一样,显示的时候代码框没有了,字体勉强看的清楚。但手机端就会有黑色背景,不过就是代码不高亮,我用的是C语言。还有就是代码不能自动换行,这点困扰我很久了。

mathjax inlinemath设置之后不起作用

在 _layouts/post.html中加入下面这段代码,然后行内公式不能显示
http://pickou.cn/blog/2017/12/24/hierarchical-attention-networks.html

主题做得很简洁,很好看。试过了很多主题,这个主题做得很nice!

<!-- mathjax -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        text2jax: {
        inlineMath: [['$','$'], ['\\(', '\\)']],
        processEscape: true
        }
    });
</script>   
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

pager 支持8页以上的情况

现在看是硬编码了一个8页,能否动态调整一下?

{% for page in (1..paginator.total_pages) %}
    {% if page > 8 %}
        <span class="page-link page-num">...</span>
        {% break %}
    {% endif %}
    {% if page == paginator.page %}
        <span class="page-link page-num active">{{ page }}</span>
    {% elsif page == 1 %}
        <a href="{{ site.baseurl }}" class="page-link page-num">{{ page }}</a>
    {% else %}
        <a href="{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | replace: ':num', page }}" class="page-link page-num">{{ page }}</a>
    {% endif %}
{% endfor %}

谢谢。

文章页面的meta需要优化,搜索引擎结果页很不友好

发现文章页面的descriptionkeywords节点取的都是站点的(而不是文章本身),这样导致的结果是,从Google搜索出来的结果显示的全部都是网站的description,跟文章本身没有任何关系。

这个能修改一下吗?感恩!

修改了部分东西

修改了侧边栏显示最新文章 , 以及友情链接 , 集成了github的评论,并调整了css适应夜间模式. 不过没有弄你的连接 , 介意的话说一声.可加

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.