Git Product home page Git Product logo

coleslaw's Introduction

coleslaw

Build Status Quicklisp

coleslaw logo

Czeslaw Milosz was the writer-in-residence at UNC c. 1992. I used to see him all the time at the Hardback Cafe, always sitting at a two-top drinking coffee, reading, writing, eating chips and salsa. I remember a gentleness behind the enormous bushy eyebrows and that we called him Coleslaw. - anon

Coleslaw is Flexible Lisp Blogware similar to Frog, Jekyll, or Hakyll.

Have questions? Come talk to us on IRC in #coleslaw on Freenode!

Features

  • Git for storage

  • RSS and Atom feeds

  • Markdown Support with Code Highlighting provided by colorize

    • Currently supports: Common Lisp, Emacs Lisp, Scheme, C, C++, Java, Python, Erlang, Haskell, Obj-C, Diff.
  • A Plugin API and plugins for...

Example Sites

See the wiki for a list of coleslaw-powered blogs.

Hacking

A core goal of coleslaw is to be both pleasant to read and easy to hack on and extend. If you want to understand the internals and bend coleslaw to do new and interesting things, I strongly encourage you to read the Hacker's Guide to Coleslaw. You'll find some current TODO items towards the bottom.

Installation

Coleslaw should run on any conforming Common Lisp implementation but testing is primarily done on SBCL and CCL.

Coleslaw can either be run manually on a local machine or triggered automatically on git push to a server. If you want a server install, run these commands on your server after setting up a git bare repo. Otherwise, run the commands on your local machine.

  1. Install a Common Lisp implementation (we recommend SBCL) and Quicklisp.
  2. Place a config file for coleslaw in your $HOME directory. If you want to run multiple blogs with coleslaw, you can keep each blog's config file in that blog's repo. Feel free to copy and edit the example config or consult the config docs to create one from scratch.
  3. This step depends on whether you're setting up a local or server install.
    • Server Install: Copy and chmod +x the example post-receive hook to your blog's bare repo.
    • Local Install: Just run the following commands in the REPL whenever you're ready to regenerate your blog:
      (ql:quickload :coleslaw)
      (coleslaw:main "/path/to/my/blog/")
      
  4. Optionally, point the web server of your liking at your config-specified :deploy-dir. Or "deploy-dir/.curr" if the versioned plugin is enabled.

Now just write posts, git commit and build by hand or by push.

The Content Format

Coleslaw expects content to have a file extension matching the class of the content. (I.e. .post for blog posts, .page for static pages, etc.)

There should also be a metadata header on all files starting and ending with the config-specified :separator, ";;;;;" by default. Example:

;;;;;
title: foo
tags: bar, baz
date: yyyy-mm-dd hh:mm:ss
format: html (for raw html) or md (for markdown)
;;;;;
your post

Posts require the title: and format: fields. Pages require the title: and url: fields.

To omit a field, simply do not have the line present, empty lines and fields (e.g. "tags:" followed by whitespace) will be ignored.

Theming

Two themes are provided: hyde, the default, and readable (based on bootswatch readable).

A guide to creating themes for coleslaw lives here.

coleslaw's People

Contributors

abeaumont avatar cl-ment avatar cmstrickland avatar danieldickison avatar dertuxmalwieder avatar dkochmanski avatar douglarek avatar ferada avatar herdigiorgi avatar jsjolen avatar jsmpereira avatar juszczakn avatar kingcons avatar ljanyst avatar mawis avatar puercopop avatar sternenseemann avatar svetlyak40wt avatar tychoish avatar vilmibm avatar woudshoo avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.