URI: 
       Merge remote-tracking branch 'lambda/master' into doc - cl-yag - Common Lisp Yet Another website Generator
  HTML git clone git://bitreich.org/cl-yag/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/cl-yag/
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
   DIR LICENSE
       ---
   DIR commit cac6b1e0980f2284552f3bc13c7653b1db35e5a8
   DIR parent fd137db849f0b058408e668af45d3f74bb656779
  HTML Author: Solene Rapenne <solene@perso.pw>
       Date:   Tue,  5 Dec 2017 19:08:16 +0100
       
       Merge remote-tracking branch 'lambda/master' into doc
       
       Diffstat:
         M README.md                           |      32 ++++++++++++++++----------------
         M data/README.md                      |     176 +++++++++++++++----------------
         M data/articles.lisp                  |       9 ++++++---
         A data/css.md                         |     123 +++++++++++++++++++++++++++++++
         A static/css/clym.css                 |     214 +++++++++++++++++++++++++++++++
         A static/css/custom.css               |      16 ++++++++++++++++
         A static/css/pure_r1.0.0/LICENSE.md   |      52 +++++++++++++++++++++++++++++++
         A static/css/pure_r1.0.0/pure.css     |    1508 +++++++++++++++++++++++++++++++
         M static/css/style.css                |      17 +++++++++++++++++
         M templates/layout.tpl                |      14 +++++++-------
         A templates/layout.tpl_original       |      34 +++++++++++++++++++++++++++++++
       
       11 files changed, 2080 insertions(+), 115 deletions(-)
       ---
   DIR diff --git a/README.md b/README.md
       @@ -1,9 +1,9 @@
       -o# README
       +# README
        
        
        ## Introduction
        
       -cl-yag is a lightweight, static-site generator that produces **gopher** sites as well as **html** websites.  
       +cl-yag is a lightweight, static site generator that produces **gopher** sites as well as **html** websites.  
        The name 'cl-yag' stands for 'Common Lisp - Yet Another website Generator'.  
        It runs without Quicklisp.
        
       @@ -117,13 +117,13 @@ The *config* variable is used to assign the following values:
        - **:title**
            - The title of the webpage
        - **:description**
       -    - This text is used in the *description* field of the Atom RSS
       +    - This text is used in the *description* field of the atom/rss feed.
        - **:url**
            - This needs to be the full(!) URL of your website, including(!) a final slash.
       -        - MIND: If the url contains a tilde (~), it needs to get duplicated
       +        - MIND: If the url contains a tilde (~), it needs to get duplicated.
                - Example: ``https://mydomain/~~user/``
        - **:rss-item-number**
       -    - This holds the number of latest(!) RSS items you want to get published when you generate the files.
       +    - This holds the number of latest(!) RSS items you want to get published.
        - **html**
            - ``t`` to export html website. Set ``nil`` to disable.
        - **gopher**
       @@ -131,9 +131,9 @@ The *config* variable is used to assign the following values:
        - **gopher-path**
            - This is the full path of the directory to access your gopher hole.
        - **gopher-server**
       -    - Hostname of the gopher server. It needs to be included in every link.
       +    - Hostname of the gopher server. It needs to be included in each link.
        - **gopher-port**
       -    - tcp port of the gopher server. 70 is the default port. It needs to be included in every link.
       +    - tcp port of the gopher server. 70 is the default port. It needs to be included in each link.
        
        
        ### The *articles* Variable
       @@ -150,13 +150,13 @@ Of the following keywords, only ``:author`` and ``:short`` can be omitted.
            - The ``:id`` field holds the filename of your post/page.
                - Example: ``:id "2"`` will load file **data/2.md**. Use text instead of numbers, if you want to.
                - (See section: 'The **data/** Directory'.)
       -- **:short**
       -        - The ``:short`` field's value is used for displaying a really short description of the posts content on your homepage.
       -        - If ``:short`` doesn't get a value, the full article gets displayed.
       -        - Hint: Use ``:short "view the article for the full text"``, if you don't want to display the full text of an article on your index site.
        - **:tag**
            - ``:tag`` field is used to create a "view" containing all articles of the same tag.
                -  MIND: Whitespaces are used to separate tags and are not allowed in(!) tags.
       +- **:tiny**
       +        - The ``:tiny`` field's value is used for displaying a really short description of the posts content on your homepage.
       +        - If ``:tiny`` doesn't get a value, the full article gets displayed.
       +        - Hint: Use ``:tiny "Read the full article for more information."``, if you don't want to display the full text of an article on your index site.
        - **:title**
                - The ``:title`` field's value sets your post's title, its first headline, as well as its entry on the index.html.
        
       @@ -169,7 +169,7 @@ Edit **data/articles.lisp** and add a new list to the *articles* variable:
                          :id "2"
                          :date "29 April 2016" 
                          :author "Solène"
       -                  :short "I will explain how to use the generator" 
       +                  :tiny "Read more about how I use cl-yag." 
                          :tag "example help code")
        
        Then write a corresponding **data/2.md** file, using markdown.
       @@ -202,9 +202,9 @@ This will produce **output/html/somepage.html**.
        
        ### Howto Use Another Common Lisp Interpreter
        
       -cl-yags default Lisp interpreter is **sbcl**.  
       -If you want to use a different lisp interpreter you need to set the
       -variable *LISP* to the name of your binary, when calling ``make``:
       +cl-yags default Lisp interpreter is **sbcl**. If you want to use a
       +different interpreter you need to set the variable *LISP* to the name
       +of your binary, when calling ``make``:
        
            make LISP=ecl
        
       @@ -262,7 +262,7 @@ themed layouts.
        If you want some deeply refined, cross-browser compatible, responsive,
        webscale style sheets, you need to create them yourself.  However,
        cl-yag will work nicely with them and if you want to make your
       -stylesheets a part of cl-yag you're very welcome to contact me.
       +style sheets a part of cl-yag you're very welcome to contact me.
        
        
        # Hacking cl-yag
   DIR diff --git a/data/README.md b/data/README.md
       @@ -3,7 +3,7 @@
        
        ## Introduction
        
       -cl-yag is a very lightweight, 'static site'-generator that produces **gopher** sites as well as **html** websites.  
       +cl-yag is a lightweight, static site generator that produces **gopher** sites as well as **html** websites.  
        The name 'cl-yag' stands for 'Common Lisp - Yet Another website Generator'.  
        It runs without Quicklisp.
        
       @@ -21,20 +21,16 @@ gopher-space](gopher://dataswamp.org/1/~solene/).
        To use cl-yag you'll need:
        
        1. A Common Lisp Interpreter
       -    - cl-yag's current default is **Steel Bank Common Lisp (SBCL)**.
       -    - **Embeddable Common Lisp (ECL)** will do fine as well.
       +    - cl-yag's current default is [Steel Bank Common Lisp (SBCL)](http://www.sbcl.org/).
       +    - [Embeddable Common Lisp (ECL)](https://common-lisp.net/project/ecl/) will do fine as well.
        2. A Markdown-to-HTML Converter
       -    - cl-yag's current default is **multimarkdown**.
       -3. BSD Make
       -    - Linux-Users, cl-yag uses a BSD Makefile syntax, that isn't compatible with GNU make's.
       -    - You need to install a port of the NetBSD make tool, called **bmake**.
       +    - cl-yag's current default is [multimarkdown](http://fletcherpenney.net/multimarkdown/).
        
        
        ## Usage
        
       -Go into your project's directory and type ``make``. You'll find your new website/gopher page in 'output/'.  
       -If you want to get rid of everything in your 'output/' subdirectories,
       -type ``make clean``.  
       +Go into your project's directory and type ``make``. You'll find your new website/gopher page in **output/**.  
       +If you want to get rid of everything in your **output/** subdirectories, type ``make clean``.  
        For further commands: read the Makefile.  
        Read in the follwing section where to find it.
        
       @@ -73,25 +69,25 @@ least the following files and folders:
            - This is cl-yag's core library.
        - **static/**
            - This directory holds content, that needs to be published without being changed (e.g. stylesheets, js-scripts).
       -        - If you come from 'non-static CMS'-Country: 'static/' holds, what you would put in your 'assets/' directory.
       +        - If you come from 'non-static CMS'-Country: **static/** holds, what you would put in your **assets/** directory.
        - **templates/**
            - The templates in this directory provide the structural skeleton(s) of the webpages and feeds you want to create.
        - **output/**
            - cl-yag puts in this directory everything ready to get deployed.
       -        - Because cl-yag generates not only HTML, but gopher-compliant pages as well, output/ **holds two subdirectories**.
       -                - **gopher/** : contains the website for gopher,
       -                - **html/** : contains the website in HTML.
       +        - Because cl-yag generates not only HTML, but gopher-compliant pages as well, **output/** **holds two subdirectories**.
       +                - **gopher/** contains the website for gopher,
       +                - **html/** contains the website in HTML.
        
        And there is the **data/** directory, which is important enough to get a subsubsection of its own.
        
       -### The 'data/' Directory
       +### The data/ Directory
        
        This directory is crucial for the usage of cl-yag.
        
        **data/** contains
        
       -- the **articles.lisp configuration file**, which defines important metadata for posts and pages.
       -- It also holds **${id}.md**-files, which are holding your posts' and pages' content. You can use markdown to write them.
       +- the **articles.lisp** configuration file, which defines important metadata for posts and pages.
       +- It also holds **${id}.md** files, which are holding your posts' (or pages') content. You can use markdown to write them.
        
        For more information: Read section 'Configuration'.
        
       @@ -99,172 +95,174 @@ For more information: Read section 'Configuration'.
        ## Configuration
        
        cl-yag's main configuration file is **data/articles.lisp**.  
       -In order to have a reliably running implementation of cl-yag, you have
       +In order to have a running implementation of cl-yag, you have
        to set most of the values in this file.
        
        **data/articles.lisp** has two parts:
        
       -1. A variable called **config**. It defines global values, that define your webpage.
       -2. A variable called **articles**. It defines local values, that - in turn - define individual pages/posts.
       +1. A variable called *config*. Its values define your webpage.
       +2. A variable called *articles*. Its values define your posts.
        
       -Values are assigned by placing a string (e.g. "foo") or a boolean
       -(i.e. 't' or 'nil') behind a keyword (e.g. ':title').
       +Values are assigned by placing a string (e.g. ``"foo"``) or a boolean
       +(i.e. ``t`` or ``nil``) behind a keyword (e.g. ``:title``).
        
        
       -### The **config** Variable
       +### The *config* Variable
        
       -The **config** variable is used to assign the following values:
       +The *config* variable is used to assign the following values:
        
        - **:webmaster**
            - The name of the default(!) author. 
       -        - :webmaster gets used, if **:author** is omitted. (see below: 'The **articles** variable'.)
       +        - ``:webmaster`` gets used, if ``:author`` is omitted. (See below: 'The **articles** variable'.)
        - **:title**
            - The title of the webpage
        - **:description**
       -    - This text is used in the *description* field of the Atom RSS
       +    - This text is used in the *description* field of the atom/rss feed.
        - **:url**
            - This needs to be the full(!) URL of your website, including(!) a final slash.
       -        - MIND: If the url contains a tilde (~), it needs to get duplicated
       -        - Example: https://mydomain/~~user/ is a valid url.
       +        - MIND: If the url contains a tilde (~), it needs to get duplicated.
       +        - Example: ``https://mydomain/~~user/``
        - **:rss-item-number**
       -    - This holds the number of latest(!) RSS items you want to get published when you generate the files.
       +    - This holds the number of latest(!) RSS items you want to get published.
        - **html**
       -    - *t* to export html website. Set *nil* to disable.
       +    - ``t`` to export html website. Set ``nil`` to disable.
        - **gopher**
       -    - *t* to export gopher website. Set *nil* to disable.
       +    - ``t`` to export gopher website. Set ``nil`` to disable.
        - **gopher-path**
            - This is the full path of the directory to access your gopher hole.
        - **gopher-server**
       -    - Hostname of the gopher server. Because gopher doesn't allow relative links (like html), you need to know where you put your files.
       +    - Hostname of the gopher server. It needs to be included in each link.
        - **gopher-port**
       -    - tcp port of the gopher server. 70 is the default port. It need to be included in every link (see: **gopher-server**).
       +    - tcp port of the gopher server. 70 is the default port. It needs to be included in each link.
        
        
       -### The **articles** Variable
       +### The *articles* Variable
        
       -The **articles** variable holds per page/post-metadata.  
       -Of the following fields, only the *:author* and *:short* description could be omitted.
       +The *articles* variable holds post metadata.  
       +So you need to create an entry in the *articles* variable for each of your posts.
       +
       +Of the following keywords, only ``:author`` and ``:short`` can be omitted.
        
       -- **:short**
       -        - The _:short_ field's value is used for displaying a really short description of the posts content on your homepage.
       -        - If _:short_ doesn't get a value, the full article gets displayed.
       -        - Hint: Use ``:short "view the article for the full text"``, if you don't want to display the full text of an article on your index site.
       -- **:id_**
       -    - The _:id_ field holds the filename of your post/page. 
       -        - Example: ``:id "2"`` will load file ``data/2.md``. Use text instead of numbers, if you want to.
       -        - (See section: 'The **data/** Directory'.)
        - **:author**
       -    - The _:author_ field is used to display the article' author.
       -    -  If you omit it, the generator will take the name from the **:webmaster** field of the *config* variable.
       +    - The ``:author`` field is used to display the article's author.
       +    - If you omit it, the generator will take the name from the ``:webmaster`` field of the *config* variable.
       +- **:id**
       +    - The ``:id`` field holds the filename of your post/page.
       +        - Example: ``:id "2"`` will load file **data/2.md**. Use text instead of numbers, if you want to.
       +        - (See section: 'The **data/** Directory'.)
        - **:tag**
       -    - _:tag_ field is used to create a "view" containing all articles of the same tag.
       -        -  MIND: Whitespaces are not allowed in(!) tags.
       +    - ``:tag`` field is used to create a "view" containing all articles of the same tag.
       +        -  MIND: Whitespaces are used to separate tags and are not allowed in(!) tags.
       +- **:tiny**
       +        - The ``:tiny`` field's value is used for displaying a really short description of the posts content on your homepage.
       +        - If ``:tiny`` doesn't get a value, the full article gets displayed.
       +        - Hint: Use ``:tiny "Read the full article for more information."``, if you don't want to display the full text of an article on your index site.
       +- **:title**
       +        - The ``:title`` field's value sets your post's title, its first headline, as well as its entry on the index.html.
        
        
        ## Howto Create A New Post
         
       -Edit data/articles.lisp and add a new list to the *articles* variable:
       +Edit **data/articles.lisp** and add a new list to the *articles* variable:
        
            (list :title "How do I use cl-yag" 
                          :id "2"
                          :date "29 April 2016" 
                          :author "Solène"
       -                  :short "I will explain how to use the generator" 
       +                  :tiny "Read more about how I use cl-yag." 
                          :tag "example help code")
        
       -Then write a corresponding ``2.md`` file, using markdown.
       +Then write a corresponding **data/2.md** file, using markdown.
       +
        
        ## Howto Publish A Post
        
        I prepared a Makefile to facilitate the process of generating and
       -publishing your static sites.
       -
       +publishing your static sites.  
        All you need to do in order to publish is to go into your cl-yag
       -directory and type "make".
       +directory and type ``make``.
        
       -The 'make' command does create html and gopher files in the defined
       -**output/** location (which can be a symbolic link pointing to some
       -other directory, somewhere else on your machine).
       +The make command creates html and gopher files in the defined location.  
       +The default is the **output/** directory, but you can use a symbolic link
       +pointing to some other directory as well.
        
        
        ## Howto Add A New Page
        
        You may want to have some dedicated pages besides the index or a post.  
       -To create one, edit the **generate-site** function in cl-yag's
       -generator.lisp and add a function call, like this:
       +To create one, edit the *generate-site* function in cl-yag's
       +**generator.lisp** and add a function call, like this:
        
            (generate "somepage.html" (load-file "data/mypage.html"))
          
       -This will produce the file **somepage.html** in the output folder.
       +This will produce **output/html/somepage.html**.
        
        
        ## Further Customization
        
        ### Howto Use Another Common Lisp Interpreter
        
       -cl-yags default Lisp interpreter is **sbcl**.  
       -If you want to use a different lisp interpreter you need to set the
       -variable 'LISP' to the name of your binary, when calling ``make``.
       +cl-yags default Lisp interpreter is **sbcl**. If you want to use a
       +different interpreter you need to set the variable *LISP* to the name
       +of your binary, when calling ``make``:
        
       -        `make LISP=ecl`
       +    make LISP=ecl
        
        
        ### Using git Hooks For Publishing
        
        You may customize your publishing-process further, e.g. by using a git
       -hook to call 'make' after each change in the repo so your website gets
       -updated automatically.
       +hook to call the make program after each change in the repo so your
       +website gets updated automatically.
        
        
        ## Page-Includes
        
        Here is an example code, if you want to include another page in the template:
        
       -1. Create **template/panel.tpl** with the html you want to include.
       -2. Add a string in the target file, where the replacement should occur.  
       -   In this case, we choose **%%Panel%%** for a string, and, because we want the panel to be displayed on each page, we add this string to **template/layout.tpl**.
       +1. Create **templates/panel.tpl** containing the html you want to include.
       +2. Add a replacement-string in the target file, where the replacement should occur.  
       +   In this case, we choose **%%Panel%%** for a string, and, because we want the panel to be displayed on each page, we add this string to **templates/layout.tpl**.
        
        3. Modify the function *generate-layout* in cl-yag's **generator.lisp** accordingly.  
           This is done by adding the following template function call:
        
       -                "**(template "%%Panel%%" (load-file "template/panel.tpl"))**" 
       -
       -(Note: You can insert your text directly into the layout template file
       -as well.)
       +                (template "%%Panel%%" (load-file "templates/panel.tpl"))
        
       +Another valid approach is to writer your html directly into **templates/layout.tpl**.
        
        ## Known Limitations
        
        ### Use ~~ To Create ~
        
       -cl-yag crashes if you use a single "**~**" caracter inside one data
       -structure in **articles.lisp** files, because Common Lisp employs the
       -tilde as a prefix to indicate format specifiers in format strings.
       +cl-yag crashes if you use a single "~" character inside
       +**templates/articles.lisp**, because Common Lisp employs the tilde as a
       +prefix to indicate format specifiers in format strings.
        
       -In order to use a literal `~` - e.g. for creating a :title or :url
       -reference - you have to **escape** the tilde **by duplicating** it:
       -``~~``.  
       -(See _:url_ in section 'Configuration').
       +In order to use a literal `~` -- e.g. for creating a ``:title`` or
       +``:url`` reference -- you have to *escape* the tilde *by
       +duplicating* it: ``~~``.  (See ``:url`` in section 'Configuration').
        
        
        ### Posting Without Tagging
        
       -cl-yag allows posts to be 'untagged'- but with the default template
       -you'll get a line below your title that displays: "Tags: ".
       +cl-yag allows posts without tags, but, using the default
       +**templates/layout.tpl**, you'll get a line below your title that
       +displays: "Tags: ".
        
        (Note: If you are looking for a way to contribute this may be a task for you.)
        
        
        ### A Note On Themes
        
       -Although cl-yag **may** ship with a **minimalistic** template, cl-yag
       -focuses only on generating html- and gopher-compliant structural
       -markup - not themed layouts.
       +Although cl-yag may ship with a minimalistic template, cl-yag focuses
       +on generating html- and gopher-compliant structural markup - not
       +themed layouts.
        
        If you want some deeply refined, cross-browser compatible, responsive,
       -webscale style-sheet, you need to create it yourself.  
       -However, cl-yag will work nicely with it and if you want to make your
       -stylesheets a part of cl-yag you're very welcome to contact me.
       +webscale style sheets, you need to create them yourself.  However,
       +cl-yag will work nicely with them and if you want to make your
       +style sheets a part of cl-yag you're very welcome to contact me.
        
        
        # Hacking cl-yag
       @@ -275,4 +273,4 @@ If you want to contribute, feel free to contact me and/or to send in a patch.
        - If you are looking for a way to contribute:
            - You could find a way to "sanitize" cl-yag's behaviour regarding the tilde (see: above);
            - Also see: 'Note' in 'Posting Without Tagging';
       -        - Also see: 'A Note On Themes.
       +        - Also see: 'A Note On Themes'.
   DIR diff --git a/data/articles.lisp b/data/articles.lisp
       @@ -33,11 +33,14 @@
        
        (defvar *articles*
          (list
       +   ;; CSS
       +   (list :id "css"               :date "02.12.2017"  :tag "cl-yag"
       +         :title "CSS For cl-yag" :author "lambda"    :tiny "Read more")
           ;; README
       -   (list :id "README"    :date "23 November 2017"  :tag "cl-yag README"
       -         :title "README" :author "lambda"     :short "cl-yag's README got reworked." :tiny "Read cl-yag's README")
       +   (list :id "README"    :date "23.11.2017"  :tag "cl-yag"
       +         :title "README" :author "lambda"    :tiny "Read cl-yag's README")
           ;; 1
       -   (list :id "1"         :date "29 April 2016":tag "pony code"
       +   (list :id "1"                   :date "29.04.2016"                :tag "pony"
                 :title "My first message" :short "This is my first message" :author "Solène" :tiny "Read more")
           ))
        
   DIR diff --git a/data/css.md b/data/css.md
       @@ -0,0 +1,123 @@
       +# CSS For cl-yag
       +
       +cl-yag provides you with a default theme and a useful approach to
       +handle CSS style sheets as well as CSS frameworks.
       +
       +
       +## Where The Style Sheets Live
       +
       +All of cl-yag's style sheets are located in **static/css/**.  
       +Currently there are the following files:
       +
       +        css/
       +        |-- clym.css
       +        |-- custom.css
       +        |-- pure_r1.0.0/
       +        |   |-- LICENSE.md
       +        |   `-- pure.css
       +        `-- style.css
       +
       +
       +## style.css -- One Sheet To Rule Them All
       +
       +In order to keep it simple cl-yag uses **static/css/style.css** to
       +administrate all of its style sheets. Use the ``@import`` rule to
       +include your own, or comments to get rid of what is already there -
       +but mind the [cascade](https://www.w3.org/TR/css-cascade-3/ "W3C: CSS Cascading and Inheritance Level 3").
       +
       +Currently, **style.css** looks like this:
       +
       +        /* =================================================================== */
       +                           /* style.css for cl-yag */
       +        /* =================================================================== */
       +        @charset "utf-8";
       +
       +
       +        /* ~                             PURE                                ~ */
       +        @import url("pure_r1.0.0/pure.css");
       +
       +
       +        /* ~                             CLYM                                ~ */
       +        @import url("clym.css");
       +
       +
       +        /* ~                          LAST ENTRY                             ~ */
       +        /* ~             use custom.css for overriding rules                 ~ */
       +        @import url("custom.css");
       +
       +
       +
       +## Pure -- "A Set Of Small, Responsive CSS Modules"
       +
       +cl-yag uses a style sheet called **pure.css**, taken from
       +[Pure](https://purecss.io/ "purecss.io"), a minimal, BSD licensed CSS
       +framework, to provide a set of expected UI features, among which are
       +sane resets (such as
       +[normalize.css](https://necolas.github.io/normalize.css/
       +"Normalize.css - A modern, HTML5-ready alternative to CSS resets")'s
       +reset rules) and usable menus.
       +
       +To deactivate Pure, put the *PURE.CSS* ``@import`` rule in
       +**static/css/style.css** in comments and re-run ``make``.
       +
       +
       +## clym -- A Default Theme
       +
       +Additionally, cl-yag comes with its first theme: *clym*.
       +
       +*clym* stands for *cl-yag minimal*. It is a set of css rules designed to
       +work with cl-yag's html skeleton. It provides an unobtrusive color
       +scheme, basic typography, as well as basic responsiveness. You'll find
       +it in **static/css/clym.css**.
       +
       +**clym.css** doesn't provide neither css resets nor a menu layout. This
       +is handled by [Pure](https://purecss.io/ "purecss.io")'s
       +**pure.css**. Further, it doesn't need any JavaScript.
       +
       +If you don't like *clym*, put comments around the line ``@import
       +url("clym.css");`` in **static/css/style.css**, around all pure-rules
       +in **static/css/custom.css**, and re-run ``make``.
       +
       +
       +## **custom.css**
       +
       +For information about **custom.css** you need to read it, as well as
       +the following section "Working With Style Sheets".
       +
       +
       +## Working With Style Sheets
       +
       +### Current Styles And Minor Tweaks
       +
       +If you are already using a combination of style sheets and you need to
       +adjust some parts of the layout, use cl-yag's
       +**static/css/custom.css**. It is currently used to override Pure's
       +default layout for horizontal menus with *clym*'s colorscheme.
       +
       +#### MIND
       +
       +- In order to override rules located in all previous(!) style sheets
       +**custom.css** needs to get sourced in as the last(!)  file in
       +**static/css/style.css** (see section: "style.css – One Sheet To Rule Them
       +All").
       +- Respect the [cascade](https://www.w3.org/TR/css-cascade-3/ "W3C: CSS Cascading and Inheritance Level 3") :-).
       +
       +
       +### Frameworks
       +
       +CSS frameworks provide an easy way to create your own theme. To make use
       +of a framework's rulesets,
       +
       +- its style sheets need to get included via your **static/css/style.css**,
       +- their ids and classes need to get wired into cl-yag's template files and
       +- the template files need to get used by cl-yag's **generator.lisp**.
       +
       +So you need to edit cl-yag's template files in **templates/** and - in
       +case you've choosen to rename your templates - you need to adjust their
       +corresponding paths and filenames in **generator.lisp**.
       +
       +
       +
       +
       +
       +
   DIR diff --git a/static/css/clym.css b/static/css/clym.css
       @@ -0,0 +1,214 @@
       +/*
       + * OpenBSD License
       + *
       + * Copyright (c) 2017 lambda <lambda@fnord.one>
       + *
       + * Permission to use, copy, modify, and distribute this software for any
       + * purpose with or without fee is hereby granted, provided that the
       + * above copyright notice and this permission notice appear in all
       + * copies.
       + *
       + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
       + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
       + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
       + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
       + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
       + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
       + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
       + * PERFORMANCE OF THIS SOFTWARE.
       + */
       +
       +/* ====================================================== */
       +/* A basic style for                         wrapper main footer */
       +/* ====================================================== */
       +html{
       +    overflow-y:scroll;
       +}
       +html, body { 
       +    margin: 0em;
       +    padding: 0em;
       +    min-height:100%;
       +    height: 100%;
       +}
       +body {
       +    position: relative;
       +    margin: 0 auto;
       +    padding: 0em 1em;
       +}
       +#wrapper {
       +    position: relative;
       +    width:100%;
       +    min-height: 100%;
       +    margin: 0em auto;
       +}
       +main {
       +    padding-bottom: 3em;
       +    height:100%;
       +}
       +main:after {
       +    display: block;
       +    width: 100%;
       +    content:"";
       +    clear: both;
       +}
       +footer {
       +    position: absolute;
       +    width: 100%;
       +    height: 3em;
       +    bottom: 0em;
       +    text-align: center;
       +}
       +footer > p {
       +    display: block;
       +    text-align: center;
       +    font-size: 0.9em;
       +}
       +/* ====================================================== */
       +/* A basic style for                               header */
       +/* ====================================================== */
       +/* All Tags */
       +header > div {
       +    display: block;
       +    margin: 0.5em auto auto auto;
       +    padding: 1ex;
       +    float: right;
       +    border: 1px solid transparent;
       +    min-width: auto;
       +    max-width: 100%;
       +}
       +/* ====================================================== */
       +/* A basic responsive'ish ruleset                         */
       +/* ====================================================== */
       +@media only screen and (min-width: 360px) {
       +    #wrapper {
       +        font-size: 0.95em;
       +    }
       +}
       +@media only screen and (min-width: 800px) {
       +    #wrapper {
       +        max-width: 750px;
       +        font-size: 1em;
       +    }
       +}
       +@media only screen and (min-width: 1000px) {
       +    #wrapper {
       +        max-width: 800px;
       +    }
       +}
       +@media only screen and (min-width: 1025px) {
       +    #wrapper {
       +        max-width: 1000px;
       +    }
       +}
       +/* ====================================================== */
       +/* A basic theme                                          */
       +/* ====================================================== */
       +html, body { 
       +        font-family: Arial, sans;
       +        color: #1f1f1f ;
       +}
       +main {
       +    line-height: 1.3em;
       +}
       +h1,h2,h3 {
       +    font-weight: bold;
       +    line-height: 1.8;
       +    margin: 0em;
       +}
       +h1 {
       +    font-size: 175%;
       +}
       +h2 {
       +    font-size: 150%;
       +}
       +h3 {
       +    font-size: 125%;
       +}
       +p {
       +    text-align: justify;
       +}
       +a {
       +    color: #3b5487;
       +    text-decoration: none;
       +}
       +a:active, a:hover, a:focus {
       +    color: #203785;
       +    text-decoration: underline;
       +}
       +footer > p {
       +    display: block;
       +    text-align: center;
       +    font-size: 0.9em;
       +}
       +/* default style for 'information' */
       +article > header {
       +    font-weight: 900;
       +    font-size: 90%;
       +    text-align: center;
       +}
       +article > header > h1 > a {
       +    color: #1f1f1f ;
       +    text-decoration: none;
       +}
       +/* ====================================================== */
       +/* A basic style for                                       code */
       +/* ====================================================== */
       +code {
       +    display:inline-block;
       +    padding: 1px 5px;
       +    border-radius: 3px;
       +    background-color: #e3f0ff;
       +    font-weight: 700;
       +    font-size: 0.8em;
       +    color: #3c3f42;
       +}
       +pre > code {
       +    display: block;
       +    height: auto;
       +    padding: 1em;
       +}
       +/* ====================================================== */
       +/* A basic style for                                posts */
       +/* ====================================================== */
       +article {
       +    display: block;
       +    float: left;
       +    clear:both;
       +    width: 100%;
       +}
       +article:after {
       +    display:block;
       +    height: 1em;
       +    content:"";
       +    clear:both;
       +}
       +article > header {
       +    display:block;
       +    margin: 0em;
       +    padding: 1em;
       +    border: 1px solid transparent;
       +    border-radius: 3px;
       +    -webkit-box-shadow: 1px 1px 5px 1px #1f1f1f;
       +    box-shadow: 1px 1px 5px 1px #1f1f1f;
       +}
       +article > header:after {
       +    display:block;
       +    width:100%;
       +    height: auto;
       +    content:"";
       +    clear:both;
       +}
       +article > header > .information {
       +    font-size: 80%;
       +}
       +article > header > h1 {
       +    float: left;
       +    margin: auto 1em;
       +}
       +article > header > p {
       +    float: left;
       +    margin-top: 5px;
       +}
       +article > header + h1 {
       +    margin-top: 1em;
       +}
   DIR diff --git a/static/css/custom.css b/static/css/custom.css
       @@ -0,0 +1,16 @@
       +/* ==================================================================== */
       +                            /* custom.css */
       +/* ==================================================================== */
       +/*      use this file to tweak your styles by overriding  others        */
       +
       +
       +/* Override some of pure.css's menu rules to get clym's */
       +a.pure-menu-link {
       +    color: #3b5487;
       +    text-decoration: none;
       +    font-weight: 700;
       +    text-transform: uppercase;
       +}
       +a.pure-menu-link:active, a.pure-menu-link:hover, a.pure-menu-link:focus {
       +   color: #203785;
       +}
   DIR diff --git a/static/css/pure_r1.0.0/LICENSE.md b/static/css/pure_r1.0.0/LICENSE.md
       @@ -0,0 +1,52 @@
       +Software License Agreement (BSD License)
       +========================================
       +
       +Copyright 2014 Yahoo! Inc. All rights reserved.
       +
       +Redistribution and use in source and binary forms, with or without
       +modification, are permitted provided that the following conditions are met:
       +
       +    * Redistributions of source code must retain the above copyright
       +      notice, this list of conditions and the following disclaimer.
       +
       +    * Redistributions in binary form must reproduce the above copyright
       +      notice, this list of conditions and the following disclaimer in the
       +      documentation and/or other materials provided with the distribution.
       +
       +    * Neither the name of the Yahoo! Inc. nor the
       +      names of its contributors may be used to endorse or promote products
       +      derived from this software without specific prior written permission.
       +
       +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
       +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
       +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
       +DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
       +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
       +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
       +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
       +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
       +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
       +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
       +
       +
       +Normalize.css License
       +=====================
       +
       +Copyright (c) Nicolas Gallagher and Jonathan Neal
       +
       +Permission is hereby granted, free of charge, to any person obtaining a copy of
       +this software and associated documentation files (the "Software"), to deal in
       +the Software without restriction, including without limitation the rights to
       +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
       +the Software, and to permit persons to whom the Software is furnished to do so,
       +subject to the following conditions:
       +
       +The above copyright notice and this permission notice shall be included in all
       +copies or substantial portions of the Software.
       +
       +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
       +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
       +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
       +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
       +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
       +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   DIR diff --git a/static/css/pure_r1.0.0/pure.css b/static/css/pure_r1.0.0/pure.css
       @@ -0,0 +1,1508 @@
       +/*!
       +Pure v1.0.0
       +Copyright 2013 Yahoo!
       +Licensed under the BSD License.
       +https://github.com/yahoo/pure/blob/master/LICENSE.md
       +*/
       +/*!
       +normalize.css v^3.0 | MIT License | git.io/normalize
       +Copyright (c) Nicolas Gallagher and Jonathan Neal
       +*/
       +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
       +
       +/**
       + * 1. Set default font family to sans-serif.
       + * 2. Prevent iOS and IE text size adjust after device orientation change,
       + *    without disabling user zoom.
       + */
       +
       +html {
       +  font-family: sans-serif; /* 1 */
       +  -ms-text-size-adjust: 100%; /* 2 */
       +  -webkit-text-size-adjust: 100%; /* 2 */
       +}
       +
       +/**
       + * Remove default margin.
       + */
       +
       +body {
       +  margin: 0;
       +}
       +
       +/* HTML5 display definitions
       +   ========================================================================== */
       +
       +/**
       + * Correct `block` display not defined for any HTML5 element in IE 8/9.
       + * Correct `block` display not defined for `details` or `summary` in IE 10/11
       + * and Firefox.
       + * Correct `block` display not defined for `main` in IE 11.
       + */
       +
       +article,
       +aside,
       +details,
       +figcaption,
       +figure,
       +footer,
       +header,
       +hgroup,
       +main,
       +menu,
       +nav,
       +section,
       +summary {
       +  display: block;
       +}
       +
       +/**
       + * 1. Correct `inline-block` display not defined in IE 8/9.
       + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
       + */
       +
       +audio,
       +canvas,
       +progress,
       +video {
       +  display: inline-block; /* 1 */
       +  vertical-align: baseline; /* 2 */
       +}
       +
       +/**
       + * Prevent modern browsers from displaying `audio` without controls.
       + * Remove excess height in iOS 5 devices.
       + */
       +
       +audio:not([controls]) {
       +  display: none;
       +  height: 0;
       +}
       +
       +/**
       + * Address `[hidden]` styling not present in IE 8/9/10.
       + * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
       + */
       +
       +[hidden],
       +template {
       +  display: none;
       +}
       +
       +/* Links
       +   ========================================================================== */
       +
       +/**
       + * Remove the gray background color from active links in IE 10.
       + */
       +
       +a {
       +  background-color: transparent;
       +}
       +
       +/**
       + * Improve readability of focused elements when they are also in an
       + * active/hover state.
       + */
       +
       +a:active,
       +a:hover {
       +  outline: 0;
       +}
       +
       +/* Text-level semantics
       +   ========================================================================== */
       +
       +/**
       + * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
       + */
       +
       +abbr[title] {
       +  border-bottom: 1px dotted;
       +}
       +
       +/**
       + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
       + */
       +
       +b,
       +strong {
       +  font-weight: bold;
       +}
       +
       +/**
       + * Address styling not present in Safari and Chrome.
       + */
       +
       +dfn {
       +  font-style: italic;
       +}
       +
       +/**
       + * Address variable `h1` font-size and margin within `section` and `article`
       + * contexts in Firefox 4+, Safari, and Chrome.
       + */
       +
       +h1 {
       +  font-size: 2em;
       +  margin: 0.67em 0;
       +}
       +
       +/**
       + * Address styling not present in IE 8/9.
       + */
       +
       +mark {
       +  background: #ff0;
       +  color: #000;
       +}
       +
       +/**
       + * Address inconsistent and variable font size in all browsers.
       + */
       +
       +small {
       +  font-size: 80%;
       +}
       +
       +/**
       + * Prevent `sub` and `sup` affecting `line-height` in all browsers.
       + */
       +
       +sub,
       +sup {
       +  font-size: 75%;
       +  line-height: 0;
       +  position: relative;
       +  vertical-align: baseline;
       +}
       +
       +sup {
       +  top: -0.5em;
       +}
       +
       +sub {
       +  bottom: -0.25em;
       +}
       +
       +/* Embedded content
       +   ========================================================================== */
       +
       +/**
       + * Remove border when inside `a` element in IE 8/9/10.
       + */
       +
       +img {
       +  border: 0;
       +}
       +
       +/**
       + * Correct overflow not hidden in IE 9/10/11.
       + */
       +
       +svg:not(:root) {
       +  overflow: hidden;
       +}
       +
       +/* Grouping content
       +   ========================================================================== */
       +
       +/**
       + * Address margin not present in IE 8/9 and Safari.
       + */
       +
       +figure {
       +  margin: 1em 40px;
       +}
       +
       +/**
       + * Address differences between Firefox and other browsers.
       + */
       +
       +hr {
       +  box-sizing: content-box;
       +  height: 0;
       +}
       +
       +/**
       + * Contain overflow in all browsers.
       + */
       +
       +pre {
       +  overflow: auto;
       +}
       +
       +/**
       + * Address odd `em`-unit font size rendering in all browsers.
       + */
       +
       +code,
       +kbd,
       +pre,
       +samp {
       +  font-family: monospace, monospace;
       +  font-size: 1em;
       +}
       +
       +/* Forms
       +   ========================================================================== */
       +
       +/**
       + * Known limitation: by default, Chrome and Safari on OS X allow very limited
       + * styling of `select`, unless a `border` property is set.
       + */
       +
       +/**
       + * 1. Correct color not being inherited.
       + *    Known issue: affects color of disabled elements.
       + * 2. Correct font properties not being inherited.
       + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
       + */
       +
       +button,
       +input,
       +optgroup,
       +select,
       +textarea {
       +  color: inherit; /* 1 */
       +  font: inherit; /* 2 */
       +  margin: 0; /* 3 */
       +}
       +
       +/**
       + * Address `overflow` set to `hidden` in IE 8/9/10/11.
       + */
       +
       +button {
       +  overflow: visible;
       +}
       +
       +/**
       + * Address inconsistent `text-transform` inheritance for `button` and `select`.
       + * All other form control elements do not inherit `text-transform` values.
       + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
       + * Correct `select` style inheritance in Firefox.
       + */
       +
       +button,
       +select {
       +  text-transform: none;
       +}
       +
       +/**
       + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
       + *    and `video` controls.
       + * 2. Correct inability to style clickable `input` types in iOS.
       + * 3. Improve usability and consistency of cursor style between image-type
       + *    `input` and others.
       + */
       +
       +button,
       +html input[type="button"], /* 1 */
       +input[type="reset"],
       +input[type="submit"] {
       +  -webkit-appearance: button; /* 2 */
       +  cursor: pointer; /* 3 */
       +}
       +
       +/**
       + * Re-set default cursor for disabled elements.
       + */
       +
       +button[disabled],
       +html input[disabled] {
       +  cursor: default;
       +}
       +
       +/**
       + * Remove inner padding and border in Firefox 4+.
       + */
       +
       +button::-moz-focus-inner,
       +input::-moz-focus-inner {
       +  border: 0;
       +  padding: 0;
       +}
       +
       +/**
       + * Address Firefox 4+ setting `line-height` on `input` using `!important` in
       + * the UA stylesheet.
       + */
       +
       +input {
       +  line-height: normal;
       +}
       +
       +/**
       + * It's recommended that you don't attempt to style these elements.
       + * Firefox's implementation doesn't respect box-sizing, padding, or width.
       + *
       + * 1. Address box sizing set to `content-box` in IE 8/9/10.
       + * 2. Remove excess padding in IE 8/9/10.
       + */
       +
       +input[type="checkbox"],
       +input[type="radio"] {
       +  box-sizing: border-box; /* 1 */
       +  padding: 0; /* 2 */
       +}
       +
       +/**
       + * Fix the cursor style for Chrome's increment/decrement buttons. For certain
       + * `font-size` values of the `input`, it causes the cursor style of the
       + * decrement button to change from `default` to `text`.
       + */
       +
       +input[type="number"]::-webkit-inner-spin-button,
       +input[type="number"]::-webkit-outer-spin-button {
       +  height: auto;
       +}
       +
       +/**
       + * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
       + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
       + */
       +
       +input[type="search"] {
       +  -webkit-appearance: textfield; /* 1 */
       +  box-sizing: content-box; /* 2 */
       +}
       +
       +/**
       + * Remove inner padding and search cancel button in Safari and Chrome on OS X.
       + * Safari (but not Chrome) clips the cancel button when the search input has
       + * padding (and `textfield` appearance).
       + */
       +
       +input[type="search"]::-webkit-search-cancel-button,
       +input[type="search"]::-webkit-search-decoration {
       +  -webkit-appearance: none;
       +}
       +
       +/**
       + * Define consistent border, margin, and padding.
       + */
       +
       +fieldset {
       +  border: 1px solid #c0c0c0;
       +  margin: 0 2px;
       +  padding: 0.35em 0.625em 0.75em;
       +}
       +
       +/**
       + * 1. Correct `color` not being inherited in IE 8/9/10/11.
       + * 2. Remove padding so people aren't caught out if they zero out fieldsets.
       + */
       +
       +legend {
       +  border: 0; /* 1 */
       +  padding: 0; /* 2 */
       +}
       +
       +/**
       + * Remove default vertical scrollbar in IE 8/9/10/11.
       + */
       +
       +textarea {
       +  overflow: auto;
       +}
       +
       +/**
       + * Don't inherit the `font-weight` (applied by a rule above).
       + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
       + */
       +
       +optgroup {
       +  font-weight: bold;
       +}
       +
       +/* Tables
       +   ========================================================================== */
       +
       +/**
       + * Remove most spacing between table cells.
       + */
       +
       +table {
       +  border-collapse: collapse;
       +  border-spacing: 0;
       +}
       +
       +td,
       +th {
       +  padding: 0;
       +}
       +
       +/*csslint important:false*/
       +
       +/* ==========================================================================
       +   Pure Base Extras
       +   ========================================================================== */
       +
       +/**
       + * Extra rules that Pure adds on top of Normalize.css
       + */
       +
       +/**
       + * Always hide an element when it has the `hidden` HTML attribute.
       + */
       +
       +.hidden,
       +[hidden] {
       +    display: none !important;
       +}
       +
       +/**
       + * Add this class to an image to make it fit within it's fluid parent wrapper while maintaining
       + * aspect ratio.
       + */
       +.pure-img {
       +    max-width: 100%;
       +    height: auto;
       +    display: block;
       +}
       +
       +/*csslint regex-selectors:false, known-properties:false, duplicate-properties:false*/
       +
       +.pure-g {
       +    letter-spacing: -0.31em; /* Webkit: collapse white-space between units */
       +    *letter-spacing: normal; /* reset IE < 8 */
       +    *word-spacing: -0.43em; /* IE < 8: collapse white-space between units */
       +    text-rendering: optimizespeed; /* Webkit: fixes text-rendering: optimizeLegibility */
       +
       +    /*
       +    Sets the font stack to fonts known to work properly with the above letter
       +    and word spacings. See: https://github.com/yahoo/pure/issues/41/
       +
       +    The following font stack makes Pure Grids work on all known environments.
       +
       +    * FreeSans: Ships with many Linux distros, including Ubuntu
       +
       +    * Arimo: Ships with Chrome OS. Arimo has to be defined before Helvetica and
       +      Arial to get picked up by the browser, even though neither is available
       +      in Chrome OS.
       +
       +    * Droid Sans: Ships with all versions of Android.
       +
       +    * Helvetica, Arial, sans-serif: Common font stack on OS X and Windows.
       +    */
       +    font-family: FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif;
       +
       +    /* Use flexbox when possible to avoid `letter-spacing` side-effects. */
       +    display: -webkit-box;
       +    display: -webkit-flex;
       +    display: -ms-flexbox;
       +    display: flex;
       +    -webkit-flex-flow: row wrap;
       +        -ms-flex-flow: row wrap;
       +            flex-flow: row wrap;
       +
       +    /* Prevents distributing space between rows */
       +    -webkit-align-content: flex-start;
       +        -ms-flex-line-pack: start;
       +            align-content: flex-start;
       +}
       +
       +/* IE10 display: -ms-flexbox (and display: flex in IE 11) does not work inside a table; fall back to block and rely on font hack */
       +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
       +        table .pure-g {
       +                display: block;
       +        }
       +}
       +
       +/* Opera as of 12 on Windows needs word-spacing.
       +   The ".opera-only" selector is used to prevent actual prefocus styling
       +   and is not required in markup.
       +*/
       +.opera-only :-o-prefocus,
       +.pure-g {
       +    word-spacing: -0.43em;
       +}
       +
       +.pure-u {
       +    display: inline-block;
       +    *display: inline; /* IE < 8: fake inline-block */
       +    zoom: 1;
       +    letter-spacing: normal;
       +    word-spacing: normal;
       +    vertical-align: top;
       +    text-rendering: auto;
       +}
       +
       +/*
       +Resets the font family back to the OS/browser's default sans-serif font,
       +this the same font stack that Normalize.css sets for the `body`.
       +*/
       +.pure-g [class *= "pure-u"] {
       +    font-family: sans-serif;
       +}
       +
       +.pure-u-1,
       +.pure-u-1-1,
       +.pure-u-1-2,
       +.pure-u-1-3,
       +.pure-u-2-3,
       +.pure-u-1-4,
       +.pure-u-3-4,
       +.pure-u-1-5,
       +.pure-u-2-5,
       +.pure-u-3-5,
       +.pure-u-4-5,
       +.pure-u-5-5,
       +.pure-u-1-6,
       +.pure-u-5-6,
       +.pure-u-1-8,
       +.pure-u-3-8,
       +.pure-u-5-8,
       +.pure-u-7-8,
       +.pure-u-1-12,
       +.pure-u-5-12,
       +.pure-u-7-12,
       +.pure-u-11-12,
       +.pure-u-1-24,
       +.pure-u-2-24,
       +.pure-u-3-24,
       +.pure-u-4-24,
       +.pure-u-5-24,
       +.pure-u-6-24,
       +.pure-u-7-24,
       +.pure-u-8-24,
       +.pure-u-9-24,
       +.pure-u-10-24,
       +.pure-u-11-24,
       +.pure-u-12-24,
       +.pure-u-13-24,
       +.pure-u-14-24,
       +.pure-u-15-24,
       +.pure-u-16-24,
       +.pure-u-17-24,
       +.pure-u-18-24,
       +.pure-u-19-24,
       +.pure-u-20-24,
       +.pure-u-21-24,
       +.pure-u-22-24,
       +.pure-u-23-24,
       +.pure-u-24-24 {
       +    display: inline-block;
       +    *display: inline;
       +    zoom: 1;
       +    letter-spacing: normal;
       +    word-spacing: normal;
       +    vertical-align: top;
       +    text-rendering: auto;
       +}
       +
       +.pure-u-1-24 {
       +    width: 4.1667%;
       +    *width: 4.1357%;
       +}
       +
       +.pure-u-1-12,
       +.pure-u-2-24 {
       +    width: 8.3333%;
       +    *width: 8.3023%;
       +}
       +
       +.pure-u-1-8,
       +.pure-u-3-24 {
       +    width: 12.5000%;
       +    *width: 12.4690%;
       +}
       +
       +.pure-u-1-6,
       +.pure-u-4-24 {
       +    width: 16.6667%;
       +    *width: 16.6357%;
       +}
       +
       +.pure-u-1-5 {
       +    width: 20%;
       +    *width: 19.9690%;
       +}
       +
       +.pure-u-5-24 {
       +    width: 20.8333%;
       +    *width: 20.8023%;
       +}
       +
       +.pure-u-1-4,
       +.pure-u-6-24 {
       +    width: 25%;
       +    *width: 24.9690%;
       +}
       +
       +.pure-u-7-24 {
       +    width: 29.1667%;
       +    *width: 29.1357%;
       +}
       +
       +.pure-u-1-3,
       +.pure-u-8-24 {
       +    width: 33.3333%;
       +    *width: 33.3023%;
       +}
       +
       +.pure-u-3-8,
       +.pure-u-9-24 {
       +    width: 37.5000%;
       +    *width: 37.4690%;
       +}
       +
       +.pure-u-2-5 {
       +    width: 40%;
       +    *width: 39.9690%;
       +}
       +
       +.pure-u-5-12,
       +.pure-u-10-24 {
       +    width: 41.6667%;
       +    *width: 41.6357%;
       +}
       +
       +.pure-u-11-24 {
       +    width: 45.8333%;
       +    *width: 45.8023%;
       +}
       +
       +.pure-u-1-2,
       +.pure-u-12-24 {
       +    width: 50%;
       +    *width: 49.9690%;
       +}
       +
       +.pure-u-13-24 {
       +    width: 54.1667%;
       +    *width: 54.1357%;
       +}
       +
       +.pure-u-7-12,
       +.pure-u-14-24 {
       +    width: 58.3333%;
       +    *width: 58.3023%;
       +}
       +
       +.pure-u-3-5 {
       +    width: 60%;
       +    *width: 59.9690%;
       +}
       +
       +.pure-u-5-8,
       +.pure-u-15-24 {
       +    width: 62.5000%;
       +    *width: 62.4690%;
       +}
       +
       +.pure-u-2-3,
       +.pure-u-16-24 {
       +    width: 66.6667%;
       +    *width: 66.6357%;
       +}
       +
       +.pure-u-17-24 {
       +    width: 70.8333%;
       +    *width: 70.8023%;
       +}
       +
       +.pure-u-3-4,
       +.pure-u-18-24 {
       +    width: 75%;
       +    *width: 74.9690%;
       +}
       +
       +.pure-u-19-24 {
       +    width: 79.1667%;
       +    *width: 79.1357%;
       +}
       +
       +.pure-u-4-5 {
       +    width: 80%;
       +    *width: 79.9690%;
       +}
       +
       +.pure-u-5-6,
       +.pure-u-20-24 {
       +    width: 83.3333%;
       +    *width: 83.3023%;
       +}
       +
       +.pure-u-7-8,
       +.pure-u-21-24 {
       +    width: 87.5000%;
       +    *width: 87.4690%;
       +}
       +
       +.pure-u-11-12,
       +.pure-u-22-24 {
       +    width: 91.6667%;
       +    *width: 91.6357%;
       +}
       +
       +.pure-u-23-24 {
       +    width: 95.8333%;
       +    *width: 95.8023%;
       +}
       +
       +.pure-u-1,
       +.pure-u-1-1,
       +.pure-u-5-5,
       +.pure-u-24-24 {
       +    width: 100%;
       +}
       +.pure-button {
       +    /* Structure */
       +    display: inline-block;
       +    zoom: 1;
       +    line-height: normal;
       +    white-space: nowrap;
       +    vertical-align: middle;
       +    text-align: center;
       +    cursor: pointer;
       +    -webkit-user-drag: none;
       +    -webkit-user-select: none;
       +       -moz-user-select: none;
       +        -ms-user-select: none;
       +            user-select: none;
       +    box-sizing: border-box;
       +}
       +
       +/* Firefox: Get rid of the inner focus border */
       +.pure-button::-moz-focus-inner {
       +    padding: 0;
       +    border: 0;
       +}
       +
       +/* Inherit .pure-g styles */
       +.pure-button-group {
       +    letter-spacing: -0.31em; /* Webkit: collapse white-space between units */
       +    *letter-spacing: normal; /* reset IE < 8 */
       +    *word-spacing: -0.43em; /* IE < 8: collapse white-space between units */
       +    text-rendering: optimizespeed; /* Webkit: fixes text-rendering: optimizeLegibility */
       +}
       +
       +.opera-only :-o-prefocus,
       +.pure-button-group {
       +    word-spacing: -0.43em;
       +}
       +
       +.pure-button-group .pure-button {
       +    letter-spacing: normal;
       +    word-spacing: normal;
       +    vertical-align: top;
       +    text-rendering: auto;
       +}
       +
       +/*csslint outline-none:false*/
       +
       +.pure-button {
       +    font-family: inherit;
       +    font-size: 100%;
       +    padding: 0.5em 1em;
       +    color: #444; /* rgba not supported (IE 8) */
       +    color: rgba(0, 0, 0, 0.80); /* rgba supported */
       +    border: 1px solid #999;  /*IE 6/7/8*/
       +    border: none rgba(0, 0, 0, 0);  /*IE9 + everything else*/
       +    background-color: #E6E6E6;
       +    text-decoration: none;
       +    border-radius: 2px;
       +}
       +
       +.pure-button-hover,
       +.pure-button:hover,
       +.pure-button:focus {
       +    /* csslint ignore:start */
       +    filter: alpha(opacity=90);
       +    /* csslint ignore:end */
       +    background-image: -webkit-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
       +    background-image: linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
       +}
       +.pure-button:focus {
       +    outline: 0;
       +}
       +.pure-button-active,
       +.pure-button:active {
       +    box-shadow: 0 0 0 1px rgba(0,0,0, 0.15) inset, 0 0 6px rgba(0,0,0, 0.20) inset;
       +    border-color: #000\9;
       +}
       +
       +.pure-button[disabled],
       +.pure-button-disabled,
       +.pure-button-disabled:hover,
       +.pure-button-disabled:focus,
       +.pure-button-disabled:active {
       +    border: none;
       +    background-image: none;
       +    /* csslint ignore:start */
       +    filter: alpha(opacity=40);
       +    /* csslint ignore:end */
       +    opacity: 0.40;
       +    cursor: not-allowed;
       +    box-shadow: none;
       +    pointer-events: none;
       +}
       +
       +.pure-button-hidden {
       +    display: none;
       +}
       +
       +.pure-button-primary,
       +.pure-button-selected,
       +a.pure-button-primary,
       +a.pure-button-selected {
       +    background-color: rgb(0, 120, 231);
       +    color: #fff;
       +}
       +
       +/* Button Groups */
       +.pure-button-group .pure-button {
       +    margin: 0;
       +    border-radius: 0;
       +    border-right: 1px solid #111;  /* fallback color for rgba() for IE7/8 */
       +    border-right: 1px solid rgba(0, 0, 0, 0.2);
       +
       +}
       +
       +.pure-button-group .pure-button:first-child {
       +    border-top-left-radius: 2px;
       +    border-bottom-left-radius: 2px;
       +}
       +.pure-button-group .pure-button:last-child {
       +    border-top-right-radius: 2px;
       +    border-bottom-right-radius: 2px;
       +    border-right: none;
       +}
       +
       +/*csslint box-model:false*/
       +/*
       +Box-model set to false because we're setting a height on select elements, which
       +also have border and padding. This is done because some browsers don't render
       +the padding. We explicitly set the box-model for select elements to border-box,
       +so we can ignore the csslint warning.
       +*/
       +
       +.pure-form input[type="text"],
       +.pure-form input[type="password"],
       +.pure-form input[type="email"],
       +.pure-form input[type="url"],
       +.pure-form input[type="date"],
       +.pure-form input[type="month"],
       +.pure-form input[type="time"],
       +.pure-form input[type="datetime"],
       +.pure-form input[type="datetime-local"],
       +.pure-form input[type="week"],
       +.pure-form input[type="number"],
       +.pure-form input[type="search"],
       +.pure-form input[type="tel"],
       +.pure-form input[type="color"],
       +.pure-form select,
       +.pure-form textarea {
       +    padding: 0.5em 0.6em;
       +    display: inline-block;
       +    border: 1px solid #ccc;
       +    box-shadow: inset 0 1px 3px #ddd;
       +    border-radius: 4px;
       +    vertical-align: middle;
       +    box-sizing: border-box;
       +}
       +
       +/*
       +Need to separate out the :not() selector from the rest of the CSS 2.1 selectors
       +since IE8 won't execute CSS that contains a CSS3 selector.
       +*/
       +.pure-form input:not([type]) {
       +    padding: 0.5em 0.6em;
       +    display: inline-block;
       +    border: 1px solid #ccc;
       +    box-shadow: inset 0 1px 3px #ddd;
       +    border-radius: 4px;
       +    box-sizing: border-box;
       +}
       +
       +
       +/* Chrome (as of v.32/34 on OS X) needs additional room for color to display. */
       +/* May be able to remove this tweak as color inputs become more standardized across browsers. */
       +.pure-form input[type="color"] {
       +    padding: 0.2em 0.5em;
       +}
       +
       +
       +.pure-form input[type="text"]:focus,
       +.pure-form input[type="password"]:focus,
       +.pure-form input[type="email"]:focus,
       +.pure-form input[type="url"]:focus,
       +.pure-form input[type="date"]:focus,
       +.pure-form input[type="month"]:focus,
       +.pure-form input[type="time"]:focus,
       +.pure-form input[type="datetime"]:focus,
       +.pure-form input[type="datetime-local"]:focus,
       +.pure-form input[type="week"]:focus,
       +.pure-form input[type="number"]:focus,
       +.pure-form input[type="search"]:focus,
       +.pure-form input[type="tel"]:focus,
       +.pure-form input[type="color"]:focus,
       +.pure-form select:focus,
       +.pure-form textarea:focus {
       +    outline: 0;
       +    border-color: #129FEA;
       +}
       +
       +/*
       +Need to separate out the :not() selector from the rest of the CSS 2.1 selectors
       +since IE8 won't execute CSS that contains a CSS3 selector.
       +*/
       +.pure-form input:not([type]):focus {
       +    outline: 0;
       +    border-color: #129FEA;
       +}
       +
       +.pure-form input[type="file"]:focus,
       +.pure-form input[type="radio"]:focus,
       +.pure-form input[type="checkbox"]:focus {
       +    outline: thin solid #129FEA;
       +    outline: 1px auto #129FEA;
       +}
       +.pure-form .pure-checkbox,
       +.pure-form .pure-radio {
       +    margin: 0.5em 0;
       +    display: block;
       +}
       +
       +.pure-form input[type="text"][disabled],
       +.pure-form input[type="password"][disabled],
       +.pure-form input[type="email"][disabled],
       +.pure-form input[type="url"][disabled],
       +.pure-form input[type="date"][disabled],
       +.pure-form input[type="month"][disabled],
       +.pure-form input[type="time"][disabled],
       +.pure-form input[type="datetime"][disabled],
       +.pure-form input[type="datetime-local"][disabled],
       +.pure-form input[type="week"][disabled],
       +.pure-form input[type="number"][disabled],
       +.pure-form input[type="search"][disabled],
       +.pure-form input[type="tel"][disabled],
       +.pure-form input[type="color"][disabled],
       +.pure-form select[disabled],
       +.pure-form textarea[disabled] {
       +    cursor: not-allowed;
       +    background-color: #eaeded;
       +    color: #cad2d3;
       +}
       +
       +/*
       +Need to separate out the :not() selector from the rest of the CSS 2.1 selectors
       +since IE8 won't execute CSS that contains a CSS3 selector.
       +*/
       +.pure-form input:not([type])[disabled] {
       +    cursor: not-allowed;
       +    background-color: #eaeded;
       +    color: #cad2d3;
       +}
       +.pure-form input[readonly],
       +.pure-form select[readonly],
       +.pure-form textarea[readonly] {
       +    background-color: #eee; /* menu hover bg color */
       +    color: #777; /* menu text color */
       +    border-color: #ccc;
       +}
       +
       +.pure-form input:focus:invalid,
       +.pure-form textarea:focus:invalid,
       +.pure-form select:focus:invalid {
       +    color: #b94a48;
       +    border-color: #e9322d;
       +}
       +.pure-form input[type="file"]:focus:invalid:focus,
       +.pure-form input[type="radio"]:focus:invalid:focus,
       +.pure-form input[type="checkbox"]:focus:invalid:focus {
       +    outline-color: #e9322d;
       +}
       +.pure-form select {
       +    /* Normalizes the height; padding is not sufficient. */
       +    height: 2.25em;
       +    border: 1px solid #ccc;
       +    background-color: white;
       +}
       +.pure-form select[multiple] {
       +    height: auto;
       +}
       +.pure-form label {
       +    margin: 0.5em 0 0.2em;
       +}
       +.pure-form fieldset {
       +    margin: 0;
       +    padding: 0.35em 0 0.75em;
       +    border: 0;
       +}
       +.pure-form legend {
       +    display: block;
       +    width: 100%;
       +    padding: 0.3em 0;
       +    margin-bottom: 0.3em;
       +    color: #333;
       +    border-bottom: 1px solid #e5e5e5;
       +}
       +
       +.pure-form-stacked input[type="text"],
       +.pure-form-stacked input[type="password"],
       +.pure-form-stacked input[type="email"],
       +.pure-form-stacked input[type="url"],
       +.pure-form-stacked input[type="date"],
       +.pure-form-stacked input[type="month"],
       +.pure-form-stacked input[type="time"],
       +.pure-form-stacked input[type="datetime"],
       +.pure-form-stacked input[type="datetime-local"],
       +.pure-form-stacked input[type="week"],
       +.pure-form-stacked input[type="number"],
       +.pure-form-stacked input[type="search"],
       +.pure-form-stacked input[type="tel"],
       +.pure-form-stacked input[type="color"],
       +.pure-form-stacked input[type="file"],
       +.pure-form-stacked select,
       +.pure-form-stacked label,
       +.pure-form-stacked textarea {
       +    display: block;
       +    margin: 0.25em 0;
       +}
       +
       +/*
       +Need to separate out the :not() selector from the rest of the CSS 2.1 selectors
       +since IE8 won't execute CSS that contains a CSS3 selector.
       +*/
       +.pure-form-stacked input:not([type]) {
       +    display: block;
       +    margin: 0.25em 0;
       +}
       +.pure-form-aligned input,
       +.pure-form-aligned textarea,
       +.pure-form-aligned select,
       +/* NOTE: pure-help-inline is deprecated. Use .pure-form-message-inline instead. */
       +.pure-form-aligned .pure-help-inline,
       +.pure-form-message-inline {
       +    display: inline-block;
       +    *display: inline;
       +    *zoom: 1;
       +    vertical-align: middle;
       +}
       +.pure-form-aligned textarea {
       +    vertical-align: top;
       +}
       +
       +/* Aligned Forms */
       +.pure-form-aligned .pure-control-group {
       +    margin-bottom: 0.5em;
       +}
       +.pure-form-aligned .pure-control-group label {
       +    text-align: right;
       +    display: inline-block;
       +    vertical-align: middle;
       +    width: 10em;
       +    margin: 0 1em 0 0;
       +}
       +.pure-form-aligned .pure-controls {
       +    margin: 1.5em 0 0 11em;
       +}
       +
       +/* Rounded Inputs */
       +.pure-form input.pure-input-rounded,
       +.pure-form .pure-input-rounded {
       +    border-radius: 2em;
       +    padding: 0.5em 1em;
       +}
       +
       +/* Grouped Inputs */
       +.pure-form .pure-group fieldset {
       +    margin-bottom: 10px;
       +}
       +.pure-form .pure-group input,
       +.pure-form .pure-group textarea {
       +    display: block;
       +    padding: 10px;
       +    margin: 0 0 -1px;
       +    border-radius: 0;
       +    position: relative;
       +    top: -1px;
       +}
       +.pure-form .pure-group input:focus,
       +.pure-form .pure-group textarea:focus {
       +    z-index: 3;
       +}
       +.pure-form .pure-group input:first-child,
       +.pure-form .pure-group textarea:first-child {
       +    top: 1px;
       +    border-radius: 4px 4px 0 0;
       +    margin: 0;
       +}
       +.pure-form .pure-group input:first-child:last-child,
       +.pure-form .pure-group textarea:first-child:last-child {
       +    top: 1px;
       +    border-radius: 4px;
       +    margin: 0;
       +}
       +.pure-form .pure-group input:last-child,
       +.pure-form .pure-group textarea:last-child {
       +    top: -2px;
       +    border-radius: 0 0 4px 4px;
       +    margin: 0;
       +}
       +.pure-form .pure-group button {
       +    margin: 0.35em 0;
       +}
       +
       +.pure-form .pure-input-1 {
       +    width: 100%;
       +}
       +.pure-form .pure-input-3-4 {
       +    width: 75%;
       +}
       +.pure-form .pure-input-2-3 {
       +    width: 66%;
       +}
       +.pure-form .pure-input-1-2 {
       +    width: 50%;
       +}
       +.pure-form .pure-input-1-3 {
       +    width: 33%;
       +}
       +.pure-form .pure-input-1-4 {
       +    width: 25%;
       +}
       +
       +/* Inline help for forms */
       +/* NOTE: pure-help-inline is deprecated. Use .pure-form-message-inline instead. */
       +.pure-form .pure-help-inline,
       +.pure-form-message-inline {
       +    display: inline-block;
       +    padding-left: 0.3em;
       +    color: #666;
       +    vertical-align: middle;
       +    font-size: 0.875em;
       +}
       +
       +/* Block help for forms */
       +.pure-form-message {
       +    display: block;
       +    color: #666;
       +    font-size: 0.875em;
       +}
       +
       +@media only screen and (max-width : 480px) {
       +    .pure-form button[type="submit"] {
       +        margin: 0.7em 0 0;
       +    }
       +
       +    .pure-form input:not([type]),
       +    .pure-form input[type="text"],
       +    .pure-form input[type="password"],
       +    .pure-form input[type="email"],
       +    .pure-form input[type="url"],
       +    .pure-form input[type="date"],
       +    .pure-form input[type="month"],
       +    .pure-form input[type="time"],
       +    .pure-form input[type="datetime"],
       +    .pure-form input[type="datetime-local"],
       +    .pure-form input[type="week"],
       +    .pure-form input[type="number"],
       +    .pure-form input[type="search"],
       +    .pure-form input[type="tel"],
       +    .pure-form input[type="color"],
       +    .pure-form label {
       +        margin-bottom: 0.3em;
       +        display: block;
       +    }
       +
       +    .pure-group input:not([type]),
       +    .pure-group input[type="text"],
       +    .pure-group input[type="password"],
       +    .pure-group input[type="email"],
       +    .pure-group input[type="url"],
       +    .pure-group input[type="date"],
       +    .pure-group input[type="month"],
       +    .pure-group input[type="time"],
       +    .pure-group input[type="datetime"],
       +    .pure-group input[type="datetime-local"],
       +    .pure-group input[type="week"],
       +    .pure-group input[type="number"],
       +    .pure-group input[type="search"],
       +    .pure-group input[type="tel"],
       +    .pure-group input[type="color"] {
       +        margin-bottom: 0;
       +    }
       +
       +    .pure-form-aligned .pure-control-group label {
       +        margin-bottom: 0.3em;
       +        text-align: left;
       +        display: block;
       +        width: 100%;
       +    }
       +
       +    .pure-form-aligned .pure-controls {
       +        margin: 1.5em 0 0 0;
       +    }
       +
       +    /* NOTE: pure-help-inline is deprecated. Use .pure-form-message-inline instead. */
       +    .pure-form .pure-help-inline,
       +    .pure-form-message-inline,
       +    .pure-form-message {
       +        display: block;
       +        font-size: 0.75em;
       +        /* Increased bottom padding to make it group with its related input element. */
       +        padding: 0.2em 0 0.8em;
       +    }
       +}
       +
       +/*csslint adjoining-classes: false, box-model:false*/
       +.pure-menu {
       +    box-sizing: border-box;
       +}
       +
       +.pure-menu-fixed {
       +    position: fixed;
       +    left: 0;
       +    top: 0;
       +    z-index: 3;
       +}
       +
       +.pure-menu-list,
       +.pure-menu-item {
       +    position: relative;
       +}
       +
       +.pure-menu-list {
       +    list-style: none;
       +    margin: 0;
       +    padding: 0;
       +}
       +
       +.pure-menu-item {
       +    padding: 0;
       +    margin: 0;
       +    height: 100%;
       +}
       +
       +.pure-menu-link,
       +.pure-menu-heading {
       +    display: block;
       +    text-decoration: none;
       +    white-space: nowrap;
       +}
       +
       +/* HORIZONTAL MENU */
       +.pure-menu-horizontal {
       +    width: 100%;
       +    white-space: nowrap;
       +}
       +
       +.pure-menu-horizontal .pure-menu-list {
       +    display: inline-block;
       +}
       +
       +/* Initial menus should be inline-block so that they are horizontal */
       +.pure-menu-horizontal .pure-menu-item,
       +.pure-menu-horizontal .pure-menu-heading,
       +.pure-menu-horizontal .pure-menu-separator {
       +    display: inline-block;
       +    *display: inline;
       +    zoom: 1;
       +    vertical-align: middle;
       +}
       +
       +/* Submenus should still be display: block; */
       +.pure-menu-item .pure-menu-item {
       +    display: block;
       +}
       +
       +.pure-menu-children {
       +    display: none;
       +    position: absolute;
       +    left: 100%;
       +    top: 0;
       +    margin: 0;
       +    padding: 0;
       +    z-index: 3;
       +}
       +
       +.pure-menu-horizontal .pure-menu-children {
       +    left: 0;
       +    top: auto;
       +    width: inherit;
       +}
       +
       +.pure-menu-allow-hover:hover > .pure-menu-children,
       +.pure-menu-active > .pure-menu-children {
       +    display: block;
       +    position: absolute;
       +}
       +
       +/* Vertical Menus - show the dropdown arrow */
       +.pure-menu-has-children > .pure-menu-link:after {
       +    padding-left: 0.5em;
       +    content: "\25B8";
       +    font-size: small;
       +}
       +
       +/* Horizontal Menus - show the dropdown arrow */
       +.pure-menu-horizontal .pure-menu-has-children > .pure-menu-link:after {
       +    content: "\25BE";
       +}
       +
       +/* scrollable menus */
       +.pure-menu-scrollable {
       +    overflow-y: scroll;
       +    overflow-x: hidden;
       +}
       +
       +.pure-menu-scrollable .pure-menu-list {
       +    display: block;
       +}
       +
       +.pure-menu-horizontal.pure-menu-scrollable .pure-menu-list {
       +    display: inline-block;
       +}
       +
       +.pure-menu-horizontal.pure-menu-scrollable {
       +    white-space: nowrap;
       +    overflow-y: hidden;
       +    overflow-x: auto;
       +    -ms-overflow-style: none;
       +    -webkit-overflow-scrolling: touch;
       +    /* a little extra padding for this style to allow for scrollbars */
       +    padding: .5em 0;
       +}
       +
       +.pure-menu-horizontal.pure-menu-scrollable::-webkit-scrollbar {
       +    display: none;
       +}
       +
       +/* misc default styling */
       +
       +.pure-menu-separator,
       +.pure-menu-horizontal .pure-menu-children .pure-menu-separator {
       +    background-color: #ccc;
       +    height: 1px;
       +    margin: .3em 0;
       +}
       +
       +.pure-menu-horizontal .pure-menu-separator {
       +    width: 1px;
       +    height: 1.3em;
       +    margin: 0 .3em ;
       +}
       +
       +/* Need to reset the separator since submenu is vertical */
       +.pure-menu-horizontal .pure-menu-children .pure-menu-separator {
       +    display: block;
       +    width: auto;
       +}
       +
       +.pure-menu-heading {
       +    text-transform: uppercase;
       +    color: #565d64;
       +}
       +
       +.pure-menu-link {
       +    color: #777;
       +}
       +
       +.pure-menu-children {
       +    background-color: #fff;
       +}
       +
       +.pure-menu-link,
       +.pure-menu-disabled,
       +.pure-menu-heading {
       +    padding: .5em 1em;
       +}
       +
       +.pure-menu-disabled {
       +    opacity: .5;
       +}
       +
       +.pure-menu-disabled .pure-menu-link:hover {
       +    background-color: transparent;
       +}
       +
       +.pure-menu-active > .pure-menu-link,
       +.pure-menu-link:hover,
       +.pure-menu-link:focus {
       +    background-color: #eee;
       +}
       +
       +.pure-menu-selected .pure-menu-link,
       +.pure-menu-selected .pure-menu-link:visited {
       +    color: #000;
       +}
       +
       +.pure-table {
       +    /* Remove spacing between table cells (from Normalize.css) */
       +    border-collapse: collapse;
       +    border-spacing: 0;
       +    empty-cells: show;
       +    border: 1px solid #cbcbcb;
       +}
       +
       +.pure-table caption {
       +    color: #000;
       +    font: italic 85%/1 arial, sans-serif;
       +    padding: 1em 0;
       +    text-align: center;
       +}
       +
       +.pure-table td,
       +.pure-table th {
       +    border-left: 1px solid #cbcbcb;/*  inner column border */
       +    border-width: 0 0 0 1px;
       +    font-size: inherit;
       +    margin: 0;
       +    overflow: visible; /*to make ths where the title is really long work*/
       +    padding: 0.5em 1em; /* cell padding */
       +}
       +
       +/* Consider removing this next declaration block, as it causes problems when
       +there's a rowspan on the first cell. Case added to the tests. issue#432 */
       +.pure-table td:first-child,
       +.pure-table th:first-child {
       +    border-left-width: 0;
       +}
       +
       +.pure-table thead {
       +    background-color: #e0e0e0;
       +    color: #000;
       +    text-align: left;
       +    vertical-align: bottom;
       +}
       +
       +/*
       +striping:
       +   even - #fff (white)
       +   odd  - #f2f2f2 (light gray)
       +*/
       +.pure-table td {
       +    background-color: transparent;
       +}
       +.pure-table-odd td {
       +    background-color: #f2f2f2;
       +}
       +
       +/* nth-child selector for modern browsers */
       +.pure-table-striped tr:nth-child(2n-1) td {
       +    background-color: #f2f2f2;
       +}
       +
       +/* BORDERED TABLES */
       +.pure-table-bordered td {
       +    border-bottom: 1px solid #cbcbcb;
       +}
       +.pure-table-bordered tbody > tr:last-child > td {
       +    border-bottom-width: 0;
       +}
       +
       +
       +/* HORIZONTAL BORDERED TABLES */
       +
       +.pure-table-horizontal td,
       +.pure-table-horizontal th {
       +    border-width: 0 0 1px 0;
       +    border-bottom: 1px solid #cbcbcb;
       +}
       +.pure-table-horizontal tbody > tr:last-child > td {
       +    border-bottom-width: 0;
       +}
   DIR diff --git a/static/css/style.css b/static/css/style.css
       @@ -0,0 +1,17 @@
       +/* =================================================================== */
       +                        /* style.css for cl-yag */
       +/* =================================================================== */
       +@charset "utf-8";
       +
       +
       +/* ~                             PURE                                ~ */
       +@import url("pure_r1.0.0/pure.css");
       +
       +
       +/* ~                             CLYM                                ~ */
       +@import url("clym.css");
       +
       +
       +/* ~                          LAST ENTRY                             ~ */
       +/* ~             use custom.css for overriding rules                 ~ */
       +@import url("custom.css");
   DIR diff --git a/templates/layout.tpl b/templates/layout.tpl
       @@ -5,7 +5,7 @@
            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
            <meta name="generator" content="cl-yag" />
            <title>%%Title%%</title>
       -    <link rel="stylesheet" type="text/css" href="static/css/style.css" />
       +    <link rel="stylesheet" type="text/css" href="static/css/style.css" media="screen" />
            <link rel="alternate" type="application/rss+xml" title="%%Title%% RSS Feed" href="rss.xml" />
        <!--    <link rel="alternate" type="application/atom+xml" title="%%Title%% Atom Feed" href="atom.xml" /> -->
            <link rel="icon" type="image/x-icon" href="static/img/clyagFav.ico" />
       @@ -14,12 +14,12 @@
            <body>
            <div id="wrapper">
              <header>
       -        <nav>
       -         <!-- <a href="#">BRAND</a> -->
       -            <ul>
       -              <li><a href="index.html">Home</a></li>
       -              <li><a href="index-titles.html">List of Articles</a></li>
       -              <li><a href="rss.xml">RSS</a></li>
       +        <nav class="pure-menu pure-menu-horizontal">
       +          <!--<a href="#"></a>-->
       +            <ul class="pure-menu-list">
       +              <li class="pure-menu-item"><a href="index.html" class="pure-menu-link">Home</a></li>
       +              <li class="pure-menu-item"><a href="index-titles.html" class="pure-menu-link">All Posts</a></li>
       +              <li class="pure-menu-item"><a href="rss.xml" class="pure-menu-link">RSS</a></li>
                     </ul>
                </nav>
                <div>All Tags: %%Tags%%</div>
   DIR diff --git a/templates/layout.tpl_original b/templates/layout.tpl_original
       @@ -0,0 +1,34 @@
       +<!DOCTYPE html>
       +<html lang="en">
       +  <head>
       +    <meta charset="utf-8" />
       +    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
       +    <meta name="generator" content="cl-yag" />
       +    <title>%%Title%%</title>
       +    <link rel="stylesheet" type="text/css" href="static/css/style.css" media="screen" />
       +    <link rel="alternate" type="application/rss+xml" title="%%Title%% RSS Feed" href="rss.xml" />
       +<!--    <link rel="alternate" type="application/atom+xml" title="%%Title%% Atom Feed" href="atom.xml" /> -->
       +    <link rel="icon" type="image/x-icon" href="static/img/clyagFav.ico" />
       +  </head>
       +
       +    <body>
       +    <div id="wrapper">
       +      <header>
       +        <nav>
       +          <!--<a href="#"></a>-->
       +            <ul>
       +              <li><a href="index.html">Home</a></li>
       +              <li><a href="index-titles.html">All Posts</a></li>
       +              <li><a href="rss.xml">RSS</a></li>
       +             </ul>
       +        </nav>
       +        <div>All Tags: %%Tags%%</div>
       +      </header>
       +
       +      <main>%%Body%%</main>
       +
       +      <footer><p>This blog is powered by cl-yag!<p></footer>
       +
       +    </div><!-- #wrapper -->
       +  </body>
       +</html>