Bi Sheng
Bi Sheng was the Chinese inventor of the first known movable type technology.
bisheng
is designed to transform Markdown into static websites and blogs using React.
Features
- Support
browserHistory
, even in GitHub Pages. - Lazy load for Markdown data.
Usage
bisheng
in a new project
Use git clone git@github.com:benjycui/bisheng-theme-one.git myblog && cd myblogrm -rf .git && npm i && npm startopen http://127.0.0.1:8000/
bisheng
in current project
Use Installation:
npm install --save-dev bisheng
Then, add start
to npm scripts:
Create bisheng.config.js
, otherwise bisheng
will use the default config:
moduleexports = source: './posts' output: './_site' lazyLoad: false theme: './_theme' port: 8000;
Note: please make sure that source
and theme
exists, and theme
should not be an empty directory. Just copy bisheng-theme-one to theme
, if you don't know how to develop a theme.
Now, just run npm start
.
Documentation
CLI
We can install bisheng
as a cli command and explore what it can do by bisheng -h
. However, the recommended way to use bisheng
is to install it as devDependencies
.
$ npm install -g bisheng$ bisheng -h Usage: bisheng [command] [options] Commands: start [options] to start a server build [options] to build and write static files to `config.output` gh-pages [options] to deploy website to gh-pages help [cmd] display help
Configuration
bisheng
will read bisheng.config.js
as its config file, but we can set the config file name by --config
, something like this bisheng --config another.config.js
.
The content of bisheng.config.js
looks like this:
moduleexports = source: './posts' output: './_site' theme: './_theme' port: 8000 root: '/' plugins: ;
source: String|Array[String]
To set directory/directories where we place Markdown files.
output: String
To set directory where bisheng
will generate (HTML & CSS & JavaScript) files to.
lazyLoad: Boolean
Whether to load Markdown data lazily.
Note: when lazyLoad
is true
, each page data will be a function which will return a promise.
theme: String
To set directory where we put the theme of website.
port: Number
To set the port which will be used when we start a local server.
root: String
If the website will be deployed under a sub-directory of a domain (something like http://benjycui.github.io/bisheng-theme-one/
), we must set it (such as /bisheng-theme-one/
).
plugins: Array[String]
A list of plugins.
moduleexports = plugins: 'pluginName?config1=value1&config2=value2' 'anotherPluginName' ;
Sites built with BiSheng
License
MIT