All Projects → laoqiren → Yohe

laoqiren / Yohe

Licence: mit
😈 powerful static blog generator

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Yohe

Verless
A simple and lightweight Static Site Generator.
Stars: ✭ 276 (+305.88%)
Mutual labels:  blog, static-site-generator
Hexo Theme Clean Blog
Hexo implementation of Clean Blog http://blackrockdigital.github.io/startbootstrap-clean-blog/index.html
Stars: ✭ 362 (+432.35%)
Mutual labels:  blog, static-site-generator
Middleman Blog
Middleman : Blog Engine Extension
Stars: ✭ 317 (+366.18%)
Mutual labels:  blog, static-site-generator
Junglejs
The Jamstack static site framework for Svelte
Stars: ✭ 246 (+261.76%)
Mutual labels:  blog, static-site-generator
Gatsby Material Starter
A high performance blog starter with Material design in mind for GatsbyJS.
Stars: ✭ 456 (+570.59%)
Mutual labels:  blog, static-site-generator
Gatsby
Build blazing fast, modern apps and websites with React
Stars: ✭ 51,925 (+76260.29%)
Mutual labels:  blog, static-site-generator
Beautiful Jekyll
✨ Build a beautiful and simple website in literally minutes. Demo at https://beautifuljekyll.com
Stars: ✭ 3,778 (+5455.88%)
Mutual labels:  blog, static-site-generator
Bael Template
Brutalist Blog theme for Netlify CMS
Stars: ✭ 187 (+175%)
Mutual labels:  blog, static-site-generator
Orchid
Build and deploy beautiful documentation sites that grow with you
Stars: ✭ 418 (+514.71%)
Mutual labels:  blog, static-site-generator
Gatsby Starter Prismic
A typography-heavy & light-themed Gatsby Starter which uses the Headless CMS Prismic.
Stars: ✭ 381 (+460.29%)
Mutual labels:  blog, static-site-generator
Emacs Easy Hugo
Emacs major mode for managing hugo
Stars: ✭ 235 (+245.59%)
Mutual labels:  blog, static-site-generator
Solo
🎸 B3log 分布式社区的 Java 博客端节点系统,欢迎加入下一代社区网络。B3log distributed community blog-end node system, welcome to join the next generation community network.
Stars: ✭ 780 (+1047.06%)
Mutual labels:  blog, static-site-generator
Peco
nothing here, move on..
Stars: ✭ 213 (+213.24%)
Mutual labels:  blog, static-site-generator
Next.js
The React Framework
Stars: ✭ 78,384 (+115170.59%)
Mutual labels:  blog, static-site-generator
Vuepress Blog Boilerplate
An ever-evolving and opinionated dev environment for people who want to use VuePress to power their blogs.
Stars: ✭ 212 (+211.76%)
Mutual labels:  blog, static-site-generator
Easy Hexo
🤘 Build your own website with Hexo, the easy way. | 轻松使用 Hexo 建站。
Stars: ✭ 314 (+361.76%)
Mutual labels:  blog, static-site-generator
Fornax
Scriptable static site generator using type safe F# DSL to define page templates.
Stars: ✭ 175 (+157.35%)
Mutual labels:  blog, static-site-generator
Notablog
Generate a minimalistic blog from a Notion table. [WIP]
Stars: ✭ 177 (+160.29%)
Mutual labels:  blog, static-site-generator
Elm Pages
A statically typed site generator for Elm.
Stars: ✭ 363 (+433.82%)
Mutual labels:  blog, static-site-generator
Ox Hugo
A carefully crafted Org exporter back-end for Hugo
Stars: ✭ 591 (+769.12%)
Mutual labels:  blog, static-site-generator

Yohe

logo

npm npm npm

a static blog generator, powered by Node.js. Yohe means that you will say "Wow, so cute" after you tried it.

online demo: http://luoxia.me/yohe_site/

中文文档

Features

  • simple and fast static blog generator.
  • local server to preview the blog.
  • Customizable information and themes.
  • create new custom pages, CuSTomizable navigation menu.
  • tags,categories,pages,archives,etc.
  • github comment(powered by gitment).
  • filter specially categories to not be shown on the posts list

Installation

$ npm install yohe -g

Quick Start

Get help

$ yohe --help

Setup your blog

$ yohe init myblog
$ cd myblog

the command will init the blog dir, include initial theme,posts,custom pages dir,and initial config fle.

Create a new post

$ yohe new <postName>

the command will create <postName>.md file in source/_posts,edit it to start writting.

Generate static files

$ yohe build

the command will generate your blog to dir public

Preview the blog

$ yohe server

the command will start a local static server to serve the public files. The port and subdir information can be edited at config.json.

new custom pages

$ yohe page <pageName>

the command will create <pageName>.md file in source/_extra dir, the initial layout of the new page is about.

config.json

{
    "basic": {
        "title": "My Blog", // the title of your blog
        "author": "laoqiren", // the author of the blog
        "description": "I Love Coding",
        "root": "" // the root of the site ,e.g. set root to be "/yohe_site" if your blog is at "http://luoxia.me/yohe_site"
    },
    "theme": {
        "themeName": "default",  // name of the theme.
        "highlightTheme": "railscasts", // code highlight syle, all available styles refer to "https://github.com/isagalaev/highlight.js/tree/master/src/styles"
        "per_page": 6,// number of posts per page
        "filter": ["Life","Secret"],  // filter some special categories to not be shown
        "navPages": [     // custom pages
            {
                "title": "Tags",
                "url": "/tags"
            },
            {
                "title": "About Me",
                "url": "/about"
            },
            {
                "title": "Life",
                "url": "/categories/life/"
            }
        ],
        "reward": {  // config about reward
            "enabled": true,
            "imgName": "alipay.jpg",  // reward QR Code images e.g. alipay.jpg
            "words": "support me"   // custom reward words
        }
    },
    "server": {
        "port": 3000 // the port of local static server
    },
    "gitment": {   // gitment config, refer to ”https://github.com/imsun/gitment“
        "owner": "",
        "repo": "",
        "oauth": {
            "client_id": "",
            "client_secret": ""
        }
    }
}

post pattern

follow the example below:

---
title: Cluster
date: 2016-11-27
tags: [Cluster,process]
layout: post
comment: true
categories: Nodejs
---

tips: initial layout is post, and initial comment is true.

How to publish

Yohe will generate your blog to dir public, you can use different ways to serve public dir.

How to develop themes

layouts:

├── about.html    // layout of about page(required)
├── index.html    // layout of index page(required)
├── list.html     // posts list page of specially categories&tags(required)
├── post.html     // layout of post's detail page(Can rename)
└── tags.html     // layout of tags cloud(required)
└── ...           // custom layouts

Variables:

basic variables:

Variable Content
config configs Object, refer to config.json
tags Array of tags. For each: tag.name,tag.posts(Array),tag.url
categories Array of categories. For each: category.name, category.posts,category.url
archives Array of archives' posts(to show posts list of particular date). For each: archive.name,archive.posts
archivesList Array of archives' informations. For each: archive.archiveTag,archive.arrOfDate,archive.url

special variables:

Page Variables
post.html post: post.title, post.date, post.categories, post.tags, post.content
list.html title(the title of concrete tag or category or archive),posts(Array of posts after filtered),pageNumber(Number of page),sumpages(Sum of pages), flag("tags" or "categories" or archives")
about.html content: the content of about.md or other extra pages' .md file.

assets:

the static resources like .js,.css should be in dir assets

Other tips

  • To setup your own logo, replace assets/images/logo.png with your own(name should also be logo.png)
  • About page is source/_about/about.md
  • To implement blog in blog, filter some special categories
  • To avoid errors, replace space with - of post name and category name.

TODOs

  • beautify default theme
  • analysis,etc
  • complex config

LICENSE

MIT.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].