I just posted a quite long and detailed post/tutorial on using Stasis for 
static web sites, including integration testing of all pages, link checker 
++

The post also shows off using Optimus for asset optimization, and Enlive 
and Hiccup for markup generation/manipulation.

http://cjohansen.no/building-static-sites-in-clojure-with-stasis

Christian

kl. 11:16:48 UTC+1 torsdag 23. januar 2014 skrev Magnar Sveen følgende:
>
> Stasis
>
> A Clojure library of tools for developing static web sites.
>
> <https://gist.github.com/magnars/32dbca91bdb0987ea4ba#another-static-site-framework-why>Another
>  
> static site framework? Why?
>
> Well, that's exactly it. I didn't want to use a framework. I don't like 
> the restrained feeling I get when using them. I prefer coding things over 
> messing around with configuration files.
>
> I want to
>
>    - code my own pages
>    - set up my own configuration
>    - choose my own templating library
>    - create my own damn stylesheets
>
> *Statis offers a few functions that are pretty useful when creating static 
> web sites.*
>
> No more. There are no batteries included.
>
> If you want a framework that makes it really quick and easy to create a 
> blog, you should take a look at these:
>
>    - misaki <https://github.com/liquidz/misaki> is a Jekyll inspired 
>    static site generator in Clojure.
>    - Madness <http://algernon.github.io/madness/> is a static site 
>    generator, based on Enlive and Bootstrap.
>    - Static <http://nakkaya.com/static.html> is a simple static site 
>    generator written in Clojure.
>    - Ecstatic <http://samrat.me/ecstatic/> creates static web pages and 
>    blog posts from Hiccup templates and Markdown.
>    - incise <https://github.com/RyanMcG/incise> is an extensible static 
>    site generator written in Clojure.
>
> They generally come with a folder where you put your blog posts in some 
> templating language, and a set of configuration options about how to set up 
> your blog. They often generate code for you to tweak.
> <https://gist.github.com/magnars/32dbca91bdb0987ea4ba#usage>Usage
>
> The core of Stasis is two functions: serve-pages and export-pages. Both 
> take a map from path to contents:
>
> (def pages {"/index.html" "<h1>Welcome!</h1>"})
>
> The basic use case is to serve these live on a local server while 
> developing - and then exporting them as static pages to deploy on some 
> server.
>
> <https://gist.github.com/magnars/32dbca91bdb0987ea4ba#serving-live-pages-locally>Serving
>  
> live pages locally
>
> Stasis can create a Ring handler to serve your pages.
>
> (ns example
>   (:require [stasis.core :as stasis]))
> (def app (stasis/serve-pages pages))
>
> Like with any Ring app, you point to your app in project.clj:
>
> :ring {:handler example/app}
>
> and start it with lein ring server-headless.
> <https://gist.github.com/magnars/32dbca91bdb0987ea4ba#exporting-the-pages>Exporting
>  
> the pages
>
> To export, just give Stasis some pages and a target directory:
>
> (defn export []
>   (stasis/export-pages pages target-dir))
>
> When you've got this function, you can create an alias for leiningen:
>
> :aliases {"build-site" ["run" "-m" "example/export"]}
>
> and run lein build-site on the command line. No need for a lein plugin.
> <https://gist.github.com/magnars/32dbca91bdb0987ea4ba#example-apps>Example 
> apps?
>
> The static page that prompted me to write Stasis is currently closed 
> source, but I'm in the process of turning my 4 other static sites over. The 
> simplest, and first to be done, is:
>
>    - 
>    
>    whattheemacsd.com (source) <https://github.com/magnars/what-the-emacsd>
>    
>    Uses Enlive <https://github.com/cgrand/enlive> for templating, and 
>    Optimus <https://github.com/magnars/optimus> for frontend optimization.
>    
> I'm also working on the Emacs Rocks! <http://emacsrocks.com/> webpage, 
> where I'll use hiccup instead of Enlive.
> <https://gist.github.com/magnars/32dbca91bdb0987ea4ba#is-it-stable>Is it 
> stable?
>
> It's still on a 0.x release, but I feel the API has jelled enough now to 
> open source it. I don't expect any major changes at this point. I'll likely 
> push it to 1.0 at the end of the month.
>
> <https://gist.github.com/magnars/32dbca91bdb0987ea4ba#again-why-not-use-one-of-the-existing-frameworks>Again,
>  
> why not use one of the existing frameworks?
>
> I think the existing frameworks are great if they fit your style. Stasis 
> imposes no styles. There are very few decisions made for you - no markdown 
> vs asciidoc, no enlive vs hiccup. No configuration options. You have to 
> make them.
>
> So, yeah ... I think Stasis would be a great starting point if you want to 
> create the 6th static site framework to go in that list at the top. :-)
>
>
> - Magnar
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to