hexo-theme-cactus-metaio v3.0.0
Cactus
A responsive, clean and simple Hexo theme for a personal website.
:cactus: Demo
Summary
General
- Version : 3.0
- Compatibility : Hexo 3 or later
Features
- Fully responsive
- Multiple color schemes
- Pick your own code highlighting scheme
- Configurable navigation menu
- Support for local search
- Projects list
- I18n support
- Disqus integration
- Google analytics / Baidu Tongji / Umami Analytics
- Font Awesome icons
- Simplicity
- SPA support
Install
In the
rootdirectory:$ git clone https://github.com/probberechts/hexo-theme-cactus.git themes/cactusChange the
themeproperty in theconfig.ymlfile.# theme: landscape theme: cactusSee below for more information on how to customize this theme.
Create pages and articles with the
hexo new [layout] <title>command. For example, to create an "about me" page, run:$ hexo new page aboutThis will create a new file in
source/about/index.mdSimilary, you can create a new article with$ hexo new post "hello world"and add some interesting content in
source/_posts/hello-world.md.Run:
hexo generateandhexo server
Configuration
You can (and should) modify a couple of settings. An overview of all settings can be found in _config.yml. The most important ones are discussed below.
There are two possible methods to override the defaults. As a first option,
you could fork the theme and maintain a custom branch with your settings.
Alternatively, you can configure it from your site's primary configuration
file. Therefore, define your custom settings under the theme_config variable.
For example:
# _config.yml
theme_config:
colorscheme: white# themes/cactus/_config.yml
colorscheme: darkThis will override the default black colorscheme in themes/cactus/_config.yml.
Color scheme
Currently, this theme is delivered with four color schemes:
colorscheme: lightAlternatively, you can easily create your own color scheme by creating a new
file in source/css/_colors.
Navigation
Setup the navigation menu in the _config.yml:
nav:
home: /
about: /about/
articles: /archives/
projects: http://github.com/probberechts
LINK_NAME: URLBlog posts list on home page
You have two options for the list of blog posts on the home page:
Show only the 5 most recent posts (default)
posts_overview: show_all_posts: false post_count: 5Show all posts
posts_overview: show_all_posts: true
Projects list
Create a projects file source/_data/projects.json to show a list of your projects on the index page.
[
{
"name": "Hexo",
"url": "https://hexo.io/",
"desc": "A fast, simple & powerful blog framework"
},
{
"name": "Font Awesome",
"url": "http://fontawesome.io/",
"desc": "The iconic font and CSS toolkit"
}
]Social media links
Cactus can automatically add links to your social media accounts.
Therefore, update the theme's _config.yml:
social_links:
github: your-github-url
twitter: your-twitter-url
NAME: your-NAME-urlwhere NAME is the name of a Font Awesome icon.
Copyright years
By default, Cactus will use current year in your copyright year information.
If there is a need to customize, please update _config.yml:
copyright:
start_year: 2016
end_year:Language configuration
If you are new to Hexo and internationalization (i18n), please read Hexo documentation - internationalization (i18n) section
Currently, the theme is delivered with support for:
- English (en), default
- Brazilian Portuguese (pt-br)
- Catalan (ca)
- Chinese (Simplified, PRC) (zh-CN)
- Dutch (nl)
- French (fr)
- Italian (it)
- Persian (fa)
- Russian (ru)
- Spanish (es)
- German (de)
If you would like to use one the languages listed above, simply set language
to the desired language (e.g., fr) in _config.yml.
Otherwise, you can follow the steps below (E.g., to add a Japanese (ja) translation):
- Set
languagetojain Hexo configuration file_config.yml - Create a
ja.ymlfile in thethemes/cactus/languages/folder - Copy the content of
themes/cactus/languages/default.ymland paste it it into theja.ymlfile - Replace all English strings by their Japanese translation
Note: Cactus does not support multi-language sites.
RTL support
This theme support RTL languages for Persian and Arabic language.
If you would like to use RTL layout, change direction attribute in _config.yml to rtl.
Note that this also will change the font to Vazir, which is a Persian font.
direction: rtlRSS
Set the rss field in the _config.yml to one of the following values:
rss: falsewill totally disable rss (default).rss: atom.xmlsets a specific feed link.rss:leave empty to use the hexo-generator-feed plugin.
Analytics
Add you Google, Baidu, Cloudflare or Umami Analytics tracking_id to the _config.yml.
google_analytics:
enabled: true
id: "UA-49627206-1"
baidu_analytics:
enabled: true
id: 2e6da3c375c8a87f5b664cea6d4cb29c
cloudflare_analytics:
enabled: true
id: 0dabb6e21848405483a237e6a7b6ed04
umami_analytics:
enabled: false
id: e77e68be-f6e4-4br3-9365-2b76b57cd571
host: https://analytics.domain.comCDN
Load Javascript and CSS resources from a CDN. Enabled by default, loads all resources from cdnjs.
cdn:
enable: true
jquery: "url"
clipboard: "url"
font_awesome: "url"
justified_gallery_css: "url"
justified_gallery_js: "url"Set enable: false to completely disable CDN and load all resources from your domain. If you want to disable it only for specific resource(s) then just remove the corresponding entry(s).
cdn:
enable: true
jquery: "url"Only JQuery will be loaded from the specified CDN.
Comments
First, create a site on Disqus: https://disqus.com/admin/create/.
Next, update the _config.yml file:
disqus:
enabled: true
shortname: SITENAMEwhere SITENAME is the name you gave your site on Disqus.
Code Highlighting
Pick one of the available colorschemes and add it to the _config.yml:
highlight: COLORSCHEME_NAMETags and categories
Tags and categories can be included in the front-matter of your posts. For example:
title: Tags and Categories
date: 2017-12-24 23:29:53
tags:
- Foo
- Bar
categories:
- Baz
---
This post contains 2 tags and 1 category.You can create a page with a tag cloud by running:
$ hexo new page tagsNext, add type: tags to the front-matter of source/tags/index.md. You can also
add a tag cloud to the home page by setting the tags_overview option to true.
Similarly, you can create a page with an overview of all categories by running:
$ hexo new page categoriesand adding type: categories to the front-matter of source/categories/index.md.
Finally, don't forget to create a link to these pages, for example in the navigation menu:
nav:
tag: /tags/
category: /categories/Local search
First, install the hexo-generate-search plugin, which will generate a search index file.
$ npm install hexo-generator-search --saveNext, create a page to display the search engine:
$ hexo new page searchand put type: search in the front-matter.
title: Search
type: search
---Finally, edit the _config.yml and add a link to the navigation menu.
nav:
search: /search/License
MIT
4 years ago