Created: 2012-03-25 14:10
Updated: 2017-10-25 17:48
License: mit



What's this ?

This is the tool for the CSS that decompiling/compiling to the ".cinnamonroll"/".css" type, wrinte in the haskell use with the Parsec library.


  • The cinnamonroll is the tool for writing/managing CSS to easy for a human like me. :)
  • It's not a validator.
    • very loose allowance for a CSS syntax.
    • parsing follow the "cinnamonroll rule".
      • the top level of a CSS has cinnamonroll blocks.
      • the second level of a CSS has selector blocks.
      • the third level of a CSS has property blocks.
      • the character of '@' called "cinnamonroll". :)

How to Run it

In the directory: src/cinnamonroll.lhs

It's the command line tool writen in literate haskell.

Usage for an instant

Decompile to .cinnamonroll from .css

% ./cinnamonroll.lhs -d source.css

Compile to .css from .cinnamonroll

% ./cinnamonroll.lhs -c source.cinnamonroll

Build and Install

% cabal clean
% cabal configure
% cabal build
% cabal sdist
% cd dist
% cabal install cinnamonroll-A.B.C.tar.gz

Note: A.B.C is the version number in "cinnamonroll-A.B.C.tar.gz" packaged file.

% ghc cinnamonroll.lhs
% ln -s `pwd`/cinnamonroll /usr/local/bin/cinnamonroll

Note: you can install to the other path as you like.


  • GHC (>=7.4.1)

Use the backend library

In the directory: src/WRP/CSS.hs

This is the library of the "WRP.CSS". The command line tool require it. This is the entity of the software. You can use it if you need for a your haskell programs.



  • available implements

    • write with space indent match to a level of nest
    • omit comment blocks
  • planed feature

    • optimization options
  • no plan

    • no-omit comment blocks option


(Now Preparing)


for Software


for Document



Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more