kamber
Version, currently master branch1 version
- master branchlatestJun 13, 2019
github.com/f/kamber
Static site server (basically blogs) with Crystal Language
174 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
kamber:
github: f/kamber
branch: mastermaster is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
- no constraint declared
- License
- MIT
- Author
- Fatih Kadir Akın <fatihkadirakin@gmail.com>
Dependencies
Runtime Dependencies
- kemal0.18.3github: sdogruyol/kemal
- kamber-theme-default*github: f/kamber-theme-default, branch: master
README
# Kamber  Kamber is a blog server based on [Kemal](http://github.com/sdogruyol/kemal). [](https://gitter.im/f/kamber?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) > 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**! [](https://heroku.com/deploy?template=https://github.com/f/kamber) [View an Heroku example](https://kamber-test.herokuapp.com/) ## 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](http://github.com/sdogruyol/kemal). [See Benchmarks](https://github.com/sdogruyol/kemal#super-fast-3) - 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`](http://github.com/f/kamber-theme-default) | | Kamber Dark Theme | [`f/kamber-theme-dark`](http://github.com/f/kamber-theme-dark) | [How to install themes](https://github.com/f/kamber-theme-default/tree/master#1-add-as-a-dependency) ### Writing Custom Themes Kamber has a simple API to build your own themes. To start quickly, just [fork the `kamber-theme-default`](https://github.com/f/kamber-theme-default/fork) and start hacking it. **We are waiting for your themes!** ## Configuration You can set your blog title from `config.cr` ```crystal $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) ```yml type: post title: Example Post abstract: Lorem ipsum dolor sit amet, consectetur adipisicing elit file: posts/example-post.md disqus: true ``` ### Link ```yml 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]` ```yml type: video title: Example Video abstract: video: youtube/YE3GkCB3t_0 ``` If you will use **Vimeo**, change `video` key to ```yml video: vimeo/147842467 ``` ### Tweet This type embeds Tweets to the index. The pattern is `[username]/[tweet id]` ```yml type: tweet title: Example Tweet tweet: fkadev/673506301415194625 ``` ### Gist This type embeds GitHub Gists to the index. The pattern is `[username]/[gist id]` ```yml 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   ## 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 - [x] Add base post types and make it run - [ ] Add page support ## Contributors - [f](https://github.com/f) Fatih Kadir Akın - creator, maintainer > Kambersiz düğün olmaz.
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
master- Seen
- Jun 13, 2019
- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/f/kamber
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 1