ink
ink copied to clipboard
An elegant static blog generator
Introduction
InkPaper is a static blog generator developed in Golang. No dependencies, cross platform, easy to use, fast building times and an elegant theme.
Quick Start
-
Download & Extract Ink and run
ink preview
Tip:Linux/macOS, use
./ink preview
-
Open
http://localhost:8000
in your browser to preview
Website Configuration
Edit config.yml
, use this format:
site:
title: Website Title
subtitle: Website Subtitle
limit: Max Article Count Per Page
theme: Website Theme Directory
comment: Comment Plugin Variable (Default is disqus username)
root: Website Root Path #Optional
lang: Website Language #Support en, zh, ru, ja, de, Configurable in theme/lang.yml
url: Website URL #For RSS Generating
link: Article Link Scheme #Default Is {title}.html,Support {year},{month},{day},{hour},{minute},{second},{title} Variables
authors:
AuthorID:
name: Author Name
intro: Author Motto
avatar: Author Avatar Path
build:
output: Build Output Directory #Optional, Default is "public"
port: Preview Port
copy:
- Copied Files When Build
publish: |
Excuted command when 'ink publish' is used
Blog Writing
Create a .md
file in the source
directory (Supports subdirectories). Use this format:
title: Article Title
date: Year-Month-Day Hour:Minute:Second #Created Time,Support TimeZone, such as " +0800"
update: Year-Month-Day Hour:Minute:Second #Updated Time,Optional,Support TimeZone, such as " +0800"
author: AuthorID
cover: Article Cover Path #Optional
draft: false #If Draft,Optional
top: false #Place article to top, Optional
preview: Article Preview,Also use <!--more--> to split in body #Optional
tags: #Optional
- Tag1
- Tag2
type: post #Specify type is post or page, Optional
hide: false #Hide article,can be accessed via URL, Optional
---
Markdown Format's Body
Publish
- Run
ink publish
in the blog directory to automatically build and publish - Or run
ink build
to manually deploy generatedpublic
directory
Tips: When
source
directory changed,ink preview
will automatically rebuild the blog. Refresh browser to update
Customization
Modifying The Theme
The default theme is placed in the theme
folder, run npm install
and npm run build
to rebuild in this folder.
page page.html
(article list) and article.html
(article), use variable with Golang Template syntax.
New Page
Created any .html
file will be copied to source
directory, could use all variables on site
field in config.yml
.
Blog Migration (Beta)
Supports simple Jeklly/Hexo post convertions. Usage:
ink convert /path/_posts
Building from source
Local Build
- Install Golang environment
- Run
go get github.com/InkProject/ink
, compile and get ink - Run
ink preview $GOPATH/src/github.com/InkProject/ink/template
, preview blog
Docker Build (Example)
- Clone code
git clone [email protected]:InkProject/ink.git
- Build image
docker build -t ink .
in source directory - Run container
docker run -p 8888:80 ink
Theme
- Dark (Official Theme): https://github.com/InkProject/ink-theme-dark
- Simple: https://github.com/myiq/ink-simple
Related Tutorials
License
CC Attribution-NonCommercial License 4.0
Reporting An Issue
https://github.com/InkProject/ink/issues
Change Log
- [2018-07-27] Adds ink new command
- [2017-02-25] Fix bugs and merge some PRs
- [2016-07-11] Fix bugs and merge many PRs
- [2015-08-15] Bug fix, support RSS feed, improve theme
- [2015-07-04] Bug fix, improve theme, support top, i18n, subtemplate
- [2015-06-04] Build more platform, add archive and tag page
- [2015-03-01] Release first beta version
Development Roadmap
- Improve Theme
- InkPaper Editor