Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Kamber

Kamber

Kamber is a blog server based on Kemal.

Join the chat at https://gitter.im/f/kamber

This is not a static blog generator, it's a static blog server. It doesn't require any other HTTP servers. It uses Crystal and Kemal to generate HTML and also serve it.

Quickstart

Deploy on Heroku and start blogging in a minute!

Deploy

View an Heroku example

Features

  • Supports many post types:
    • Markdown Posts
    • GitHub Gist
    • Tweet Embeds
    • Video Embeds
    • Disqus Comments
  • Very fast, ~15x faster than other static site generators/servers, since it's based on Kemal. See Benchmarks
  • Easy to develop. Just add contents to posts.yml file.
  • Custom themes.

Getting Started

1. Install Crystal and Kamber

brew install crystal-lang
git clone https://github.com/f/kamber myblog
cd myblog
shards install

2. Add Contents

  • Edit kamber/config.cr and set your title.
  • Edit posts/posts.yml file and add some content.

3. Build and Run

crystal build --release src/kamber.cr
./kamber

To run in production, add -e production flag.

./kamber -e production

Themes

Kamber has theme support.

Theme GitHub
Kamber Default Theme f/kamber-theme-default
Kamber Dark Theme f/kamber-theme-dark

How to install themes

Writing Custom Themes

Kamber has a simple API to build your own themes. To start quickly, just fork the kamber-theme-default and start hacking it.

We are waiting for your themes!

Configuration

You can set your blog title from config.cr

$BLOG_TITLE = "My Awesome Blog"
$BLOG_DESC = "programming journal"
$GOOGLE_ANALYTICS = "UA-XXXXX-X"

# Activate Theme
require "kamber-theme-default"

Post Types

posts/posts.yml has multiple YAML documents, each represents a blog item (aka post type).

Post (Markdown)

type: post
title: Example Post
abstract: Lorem ipsum dolor sit amet, consectetur adipisicing elit
file: posts/example-post.md
disqus: true

Link

type: link
title: Example Link
url: "http://crystal-lang.org"

Video

Kamber supports Youtube and Vimeo videos. The main pattern of video is [video provider]/[video id]

type: video
title: Example Video
abstract:
video: youtube/YE3GkCB3t_0

If you will use Vimeo, change video key to

video: vimeo/147842467

Tweet

This type embeds Tweets to the index. The pattern is [username]/[tweet id]

type: tweet
title: Example Tweet
tweet: fkadev/673506301415194625

Gist

This type embeds GitHub Gists to the index. The pattern is [username]/[gist id]

type: gist
title: Example Gist
gist: f/c12af6b9e7d53bd9224d

Deploy to Heroku

Kamber uses custom buildpack to run in Heroku.

heroku create myblog --buildpack https://github.com/f/heroku-buildpack-kamber
git push heroku master

Screenshots

Screen 1

Screen 2

Contributing

  1. Fork it ( https://github.com/f/kamber/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Roadmap

  • Add base post types and make it run
  • Add page support

Contributors

  • f Fatih Kadir Akın - creator, maintainer

Kambersiz düğün olmaz.

About

Static site server (basically blogs) with Crystal Language

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.