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>