Skip to content
Snippets Groups Projects
sites.mdwn 4.26 KiB
Newer Older
  • Learn to ignore specific revisions
  • rhatto's avatar
    rhatto committed
    [[!meta title="We are the static site generation!"]]
    
    rhatto's avatar
    rhatto committed
    
    
    rhatto's avatar
    rhatto committed
    # Current practice
    
    Currently [ikiwiki](http://ikiwiki.info) is adopted by the following reasons:
    
    
    rhatto's avatar
    rhatto committed
    1. There is a [Debian package](https://packages.debian.org/stable/ikiwiki).
    
    rhatto's avatar
    rhatto committed
    2. It's flexible enough to support both local or remote side static compilation:
    
    rhatto's avatar
    rhatto committed
       * Local compilation by calling the `ikiwiki` command directly.
       * Remotelly by using a [git hook](http://ikiwiki.info/rcs/git/).
    
    rhatto's avatar
    rhatto committed
    
    When it's said **both** it means that you don't need to choose either of the two options: you can choose or both simultaneously.
    
    ## Static site example
    
    Here comes the mandadoty "Hello world" example from the statically generated site realm:
    
        mkdir blog && cd blog
        echo "Hello world..." > index.mdwn
    
        ikiwiki --rebuild --exclude www . www
    
    rhatto's avatar
    rhatto committed
    
    That's it! You have a generated site sitting at your `www` subfolder which can be copied remotelly using `rsync`.
    
    ## Version control
    
    It's a good pratice to keep your work under version control:
    
        git init
        echo "/.ikiwiki"       > .gitignore
        echo "/recentchanges" >> .gitignore
        echo "/www"           >> .gitignore
        git add .
        git commit -m "Initial import"
    
    ## Add a bit of sofistication
    
    
    rhatto's avatar
    rhatto committed
    * Use [this Makefile](/Makefile) as an starting point to refresh and publish your wiki by simply running `make web`.
    
    rhatto's avatar
    rhatto committed
    * Use a [complete ikiwiki template](https://git.fluxo.info/?p=templates.git;a=tree;f=ikiwiki;h=HEAD) and change to your needs.
    * If you're a automation junkie, try the [puppet-ikiwiki](https://git.fluxo.info/puppet-ikiwiki.git) module.
    
    rhatto's avatar
    rhatto committed
    
    ## Theming
    
    Currently using [Ikiwiki](http://ikiwiki.info) with [Bootstrap](http://twitter.github.io/bootstrap/):
    
    * [Templates](https://github.com/tgpfeiffer/ikiwiki-bootstrap-template).
    * [Bootswatch](http://bootswatch.com) themes.
    
    
    rhatto's avatar
    rhatto committed
    ## Deployment
    
    You can create passwordless SSH keys and use [rrsync](http://www.guyrutenberg.com/2014/01/14/restricting-ssh-access-to-rsync/) ([2](http://wiki.hands.com/howto/passphraseless-ssh/)) to restrict access. Then add an entry into your `~/.ssh/config`:
    
        Host blog.example.org blog
          HostName blog.example.org
          User blog
          IdentityFile ~/.ssh/blog@blog.example.org
    
    Now simply run `make web_deploy` with the above mentioned `Makefile` do sync your static site!
    
    
    rhatto's avatar
    rhatto committed
    ## Ikiwiki references
    
    * [Ikiwiki](http://ikiwiki.info).
    * [Improving Ikiwiki style with Bootstrap](https://ceops.eu/posts/Improving%20Ikiwiki%20style%20with%20Bootstrap/).
    * [How to have a nice design for ikiwiki](http://www2.tblein.eu/posts/How_to_have_a_nice_design_for_ikiwiki/).
    
    rhatto's avatar
    rhatto committed
    * [gsliepen/ikistrap: Bootstrap 4 theme for ikiwiki](https://github.com/gsliepen/ikistrap/).
    
    rhatto's avatar
    rhatto committed
    
    # Alternatives
    
    
    rhatto's avatar
    rhatto committed
    * [The updated big list of static website generators for your site, blog or wiki](https://iwantmyname.com/blog/2014/05/the-updated-big-list-of-static-website-generators-for-your-site-blog-or-wiki).
    * [Top Open-Source Static Site Generators - StaticGen](https://www.staticgen.com/).
    
    rhatto's avatar
    rhatto committed
    * [Static Site Generators](https://staticsitegenerators.net/).
    * [Static Site Generators at GitHub](https://github.com/skx/static-site-generators).
    
    rhatto's avatar
    rhatto committed
    * [Replacing Jekyll with Pandoc and a Makefile](https://tylercipriani.com/2014/05/13/replace-jekyll-with-pandoc-makefile.html).
    * [Brane Dump: Static Comments in Jekyll](http://www.hezmatt.org/~mpalmer/blog/2011/07/19/static-comments-in-jekyll.html).
    * [Hyde](https://github.com/lakshmivyas/hyde/) ([package](https://packages.debian.org/stable/hyde)).
    * [Gollum](https://github.com/gollum/gollum).
    * [Hugo](https://gohugo.io/).
    * [Amber](https://github.com/leapcode/amber).
    * [Grav](http://getgrav.org/).
    * [Hakyll](http://jaspervdj.be/hakyll/) ([package](https://packages.debian.org/sid/libghc-hakyll-dev)).
    * [Jekyll](http://jekyllrb.com/) ([package](https://packages.debian.org/stable/jekyll)).
    * [Static site generators for building web sites](https://lwn.net/Articles/541299/).
    
    rhatto's avatar
    rhatto committed
    * [Pelican Static Site Generator, Powered by Python](http://blog.getpelican.com/) ([package](https://packages.debian.org/sid/python-pelican)).
    
    rhatto's avatar
    rhatto committed
    * [Middleman: Hand-crafted frontend development](https://middlemanapp.com/).
    
    rhatto's avatar
    rhatto committed
    * [Juvia: a commenting server similar to Disqus and IntenseDebate](https://github.com/phusion/juvia).
    
    rhatto's avatar
    rhatto committed
    * [gitit](https://github.com/jgm/gitit/tree/master/).
    
    rhatto's avatar
    rhatto committed
    * [Sphinx](http://sphinx-doc.org/) ([package](https://packages.debian.org/stable/python-sphinx)).