This is a Hexo blog theme with 'Material Design' and responsive design.
- Simple and beautiful, and post is Beautiful and readable.
- Material Design.
- Responsive design,which can be displayed well on desktop, tablet, mobile phone, etc.
- Changing 'banner' picture dynamically everday.
- Blog posts list with waterflow(There will be 24 images if the articl dosn't have featured pictures).
- Archive page with timeline.
- Tags page of the word cloud and categories page of the radar chart
- Rich 'About' page (including about me, posts charts, my projects, my skills, gallery etc.)
- Friendly link page for customizable data
- Support post topping and rewards
- Support
MathJax
- TOC
- Can be set append the copyright information when copying the content of the post
- Can be set to do password verification when reading a post
- Comment module of Gitalk, Gitment, Valine and Disqus.(Gitalk is recommended)
- Integrated Busuanzi Statistics,
Google Analytics
and post word count statistics. - Support music playback and video playback on the homepage
You should have a Hexo blog when you see it here.If not,try to use the hexo and Markdown to write your blog and post.
Click here to download master branch of the last stable version of the code.After decompressing,copy the hexo-theme-matery
folder
to your themes
folder of your Hexo.Of course,you can uer Git clone
to download in your themes
folder.
git clone https://github.com/blinkfox/hexo-theme-matery.git
Modify the value of theme
in _config.yml
of Hexo's root folder: theme: hexo-theme-matery
.
- Please modify the value of
url
of_config.yml
to your website's mainURL
(eghttp://xxx.github.io
). - Recommended modify the value of the two 'per_page
to be a multiple of
6, such as:
12,
18`, etc. so that the posts list can be displayed well under each screen. - If you are a Chinese user, it is recommended to change the value of
language
tozh-CN
.
categories
page is to show all of categories. If the source
directory of your blog doesn't have categories/index.md
file, you need to new one like this:
hexo new page "categories"
to edit your new page files/source/categories/index.md
, you need somethings as follows:
---
title: categories
date: 2018-09-30 17:25:30
type: "categories"
layout: "categories"
---
tags
page is to show all of tags. If the source
directory of your blog doesn't have tags/index.md
file,you need to new one like this:
hexo new page "tags"
to edit your new page files/source/tags/index.md
, you need somethings as follows:
---
title: tags
date: 2018-09-10 18:23:38
type: "tags"
layout: "tags"
---
about
page is to show my blog and myself information. If the source
directory of your blog doesn't have about/index.md
file, you need to new one like this:
hexo new page "about"
to edit your new page files/source/about/index.md
, you need somethings as follows:
---
title: about
date: 2018-09-30 17:25:30
type: "about"
layout: "about"
---
The friends
page is a page for displaying Friendly Links information. If you don't have a friends/index.md
file in your blog's source
directory, then you need to create a new one. The command is as follows:
hexo new page "friends"
Edit the file /source/friends/index.md
you just created, at least you need the following:
---
title: friends
date: 2018-12-12 21:25:30
type: "friends"
layout: "friends"
---
Also, create a new _data
directory in your blog's source
directory and a new friends.json
file in the _data
directory. The contents of the file are as follows:
[{
"avatar": "http://image.luokangyuan.com/1_qq_27922023.jpg",
"name": "MaJang",
"introduction": "I am not a master, just looking for the master's footsteps.",
"url": "http://luokangyuan.com/",
"title": "Read More"
}, {
"avatar": "http://image.luokangyuan.com/4027734.jpeg",
"name": "Blinkfox",
"introduction": "Hello, I'm blinkfox, I like programming.",
"url": "https://blinkfox.github.io/",
"title": "Visit Blog"
}, {
"avatar": "http://image.luokangyuan.com/avatar.jpg",
"name": "ja_rome",
"introduction": "Ordinary steps can also go out of the great journey.",
"url": "ttps://me.csdn.net/jlh912008548",
"title": "Read More"
}]
Hexo theme uses Hexo's pluginhexo-prism-plugin to show the code highlight instead of its own theme.The Installation commands are as follows:
npm i -S hexo-prism-plugin
Then,modify the value of highlight.enable
to false
in _config.yml
file of Hexo root folder,and add the configuration of prism
plugin as follows:
highlight:
enable: false
prism_plugin:
mode: 'preprocess' # realtime/preprocess
theme: 'tomorrow'
line_number: false # default false
custom_css:
The theme uses the Hexo pluginhexo-generator-search to search the content,and the Installation commands are as follows:
npm install hexo-generator-search --save
Add configuration of _config.yml
file in Hexo root folder as follows:
search:
path: search.xml
field: post
Defualt permalinks of Hexo will include Chinese if your atrticle's title is Chinese.But it's adverse to SEO
,and gitment
comments don't suport Chinese Link as well.We can use the hexo-permalink-pinyin of Hexo plugin to generate permalinks of Chinese Pinyin when generating posts.
Installation commands are as follows:
npm i hexo-permalink-pinyin --save
Add such configurations in _config.yml
file of Hexo:
permalink_pinyin:
enable: true
separator: '-' # default: '-'
*Note:hexo-abbrlink can genarate non-Chinese link in addtion to this plugin.
If you want to display the post word count and reading time information in the post detail page, you can install the hexo-wordcount plugin.
Installation commands are as follows:
npm i --save hexo-wordcount
Then just activate the following configuration items in the theme _config.yml
file:
wordCount:
enable: false # Set this value to true.
postWordCount: true
min2read: true
totalCount: true
The theme uses the Hexo pluginhexo-generator-feed to support RSS
feed , and the Installation commands are as follows:
npm install hexo-generator-feed --save
Add configuration of _config.yml
file in Hexo root folder as follows:
feed:
type: atom
path: atom.xml
limit: 20
hub:
content:
content_limit: 140
content_limit_delim: ' '
order_by: -date
Execute hexo clean && hexo g
to regenerate the blog file, and then you can see the atom.xml
file in the public
folder, indicating that you have successfully installed.
Website footer may need to be customized, and it is not convenient to make configuration information, So need to modify and process it by yourself. The changes are in the /layout/_partial/footer.ejs
file, including the site, the theme used, the amount of traffic, and so on.
In the theme _config.yml
file, the configuration of QQ
, GitHub
and mailbox is supported by default. In the /layout/_partial/social-link.ejs
file of the theme, you can add or modify the social link address as you need. To add a link, please refer to the following code:
<a href="https://github.com/blinkfox" class="tooltipped" target="_blank" data-tooltip="访问我的GitHub" data-position="top" data-delay="50">
<i class="fa fa-github"></i>
</a>
You can search social icon such as fa-github
in Font Awesome.There are common social icons you can reference:
- Facebook:
fa-facebook
- Twitter:
fa-twitter
- Google-plus:
fa-google-plus
- Linkedin:
fa-linkedin
- Tumblr:
fa-tumblr
- Medium:
fa-medium
- Slack:
fa-slack
- Sina Weibo:
fa-weibo
- Wechat:
fa-wechat
- QQ:
fa-qq
Note: The version of
Font Awesome
is4.7.0
.
To support music playing, you must activate the file of music playing configuration and music data.
First, create a new musics.json
file in the _data
directory (new if you don't have one) of your blog's source
directory. The contents of the file are as follows:
[{
"name": "五月雨变奏电音",
"artist": "AnimeVibe",
"url": "http://xxx.com/music1.mp3",
"cover": "http://xxx.com/music-cover1.png"
}, {
"name": "Take me hand",
"artist": "DAISHI DANCE,Cecile Corbel",
"url": "/medias/music/music2.mp3",
"cover": "/medias/music/cover2.png"
}, {
"name": "Shape of You",
"artist": "J.Fla",
"url": "http://xxx.com/music3.mp3",
"cover": "http://xxx.com/music-cover3.png"
}]
Note: The properties in the above JSON:
name
,artist
,url
,cover
indicate the name of the music, the author, the music file address, and the music cover, respectively.
Then, activate the configuration in the theme's _config.yml
configuration file:
# Whether to display the musics.
music:
enable: true
showTitle: false
title: Listen to music
fixed: false # enable fixed mode
autoplay: false # audio autoplay
theme: '#42b983'
loop: 'all' # player loop play, values: 'all', 'one', 'none'
order: 'list' # player play order, values: 'list', 'random'
preload: 'auto' # values: 'none', 'metadata', 'auto'
volume: 0.7 # default volume, notice that player will remember user setting, default volume will not work after user set volume themselves
listFolded: false # indicate whether list should folded at first
listMaxHeight: # list max height
The following is an example and description of the article Front-matter
, and all content is not required.But we still suggest you write the value of title
and date
.
---
title: typora-vue-theme Theme introduction
date: 2018-09-07 09:25:00
author: Qi Zhao
# or: http://xxx.com/xxx.jpg
img: /source/images/xxx.jpg
# If top value is true, it will be the homepage recommendation post
top: true
# If you want to set the reading verification password for the post,
# you can set the password value, which must be encrypted with SHA256 to prevent others from seeing it.
password: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
# Does this post open mathjax, Need to be activated in the theme's _config.yml.
mathjax: false
summary: This is the content of your custom post summary. If there is a value for this attribute, the post card summary will display the text, otherwise the program will automatically intercept part of the post content as a summary.
categories: Markdown
tags:
- Typora
- Markdown
---
Note:
- post's featured piature will take remainder if not writing the
img
property,and chose the featured picture of theme to let all of post's picture have their own characteristics.- The value of
date
should try to ensure that each article is unique, becauseGitalk
andGitment
recognizeid
in this topic are uniquely identified by the value ofdate
.- If you want to set the ability to read the verification password for the article, you should not only set the value of the password with SHA256 encryption in Front-matter, but also activate the configuration in the theme
_config.yml
.
You can modify some custom modification in _config.yml
as follows:
- Menu
- My dream
- Home music player and video player configuration
- Whether to display the title of the recommended posts
favicon
andLogo
- profiles
- TOC
- post rewards
- Append copyright information when copying article content
- MathJax
- Post word count, reading times
- the 'love' effect of clicking on the page
- My Projects
- My Skills
- My Gallery
- Gitalk, Gitment, Valine and Disqus
- Busuanzi Statistics And Google Analytics
- The map of default featured pictures. The theme will take remainde according to
hashcode
of post title if the post dose not set featured piactures.
I think everyone should have their own style and feature of blog。if you are not satisfiled with functions and theme color,you can modify by yourself,and more free functions and deatil need to be modified by modify source code when it is hard to be finished in _config.yml
.
Search .bg-color
to modify background color in /source/css/matery.css
in theme file:
/* The overall background color, including navigation, mobile navigation, footer, tab, etc.. */
.bg-color {
background-image: linear-gradient(to right, #4cbf30 0%, #0f9d58 100%);
}
/* The color of the text with the same background color is only used in one place on the front page. You can also apply it to other places.*/
.text-color {
color: #0f9d58 !important;
}
@-webkit-keyframes rainbow {
/* Dynamically switch background colors. */
}
@keyframes rainbow {
/* Dynamically switch background colors. */
}
You can change banner
pictures in /source/medias/banner
as you like .Theme code can switch dynamically every day and just need 7 pictures.If you master JavaScript
,you can change it to your favorite swithing logic,such as Random switching.The code of switching banner
is in <script></script>
of /layout/_partial/bg-cover.ejs
file.
$('.bg-cover').css('background-image', 'url(/medias/banner/' + new Date().getDay() + '.jpg)');
There are 24 featured pictures in /source/medias/featureimages
,you can add or delete,and modify it in _config.yml
at the sametime.