Fix spaces at end of line - 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 25c83f1ce1ad0e39f746364c88ce45fda78e4630
DIR parent 8f68de9add9b35be4694980db5826a91e286cf7b
HTML Author: Solene Rapenne <solene@perso.pw>
Date: Tue, 28 Nov 2017 08:15:42 +0100
Fix spaces at end of line
Diffstat:
M README.md | 125 +++++++++++++++----------------
1 file changed, 62 insertions(+), 63 deletions(-)
---
DIR diff --git a/README.md b/README.md
@@ -3,17 +3,16 @@
## Introduction
-cl-yag is a very 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'.
+cl-yag is a very 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.
## Showcase
I am using cl-yag to create and maintain my websites in the
-world-wide-web (visit: *[Solene's
-percent](https://dataswamp.org/~solene/)*) as well as [in
-gopher-space](gopher://dataswamp.org/1/~solene/).
+world-wide-web (visit: *[Solene'spercent](https://dataswamp.org/~solene/)*)
+as well as [in gopher-space](gopher://dataswamp.org/1/~solene/).
## Requirements
@@ -32,10 +31,10 @@ To use cl-yag you'll need:
## Usage
-Go into your project's directory and type ``make``. You'll find your new website/gopher page in 'output/'.
+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.
+type ``make clean``.
+For further commands: read the Makefile.
Read in the follwing section where to find it.
@@ -44,28 +43,28 @@ Read in the follwing section where to find it.
After cloning the repository, your project's directory should contain at
least the following files and folders:
- .
- |-- LICENSE
- |-- Makefile
- |-- README.md
- |-- data/
- | |-- 1.md
- | |-- README.md
- | `-- articles.lisp
- |-- generator.lisp
- |-- output/
- | |-- gopher/
- | `-- html/
- |-- static/
- | |-- css/style.css
- | `-- img/
- `-- templates/
- |-- article.tpl
- |-- gopher_head.tpl
- |-- layout.tpl
- |-- one-tag.tpl
- |-- rss-item.tpl
- `-- rss.tpl
+.
+ |-- LICENSE
+ |-- Makefile
+ |-- README.md
+ |-- data/
+ | |-- 1.md
+ | |-- README.md
+ | `-- articles.lisp
+ |-- generator.lisp
+ |-- output/
+ | |-- gopher/
+ | `-- html/
+ |-- static/
+ | |-- css/style.css
+ | `-- img/
+ `-- templates/
+ |-- article.tpl
+ |-- gopher_head.tpl
+ |-- layout.tpl
+ |-- one-tag.tpl
+ |-- rss-item.tpl
+ `-- rss.tpl
- **Makefile**
- This file exists to simplifiy the recurring execution of frequently used commands.
@@ -73,14 +72,14 @@ 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.
@@ -117,15 +116,15 @@ 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
- **: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/ is a valid url.
- **:rss-item-number**
- This holds the number of latest(!) RSS items you want to get published when you generate the files.
- **html**
@@ -142,35 +141,35 @@ The **config** variable is used to assign the following values:
### The **articles** Variable
-The **articles** variable holds per page/post-metadata.
+The **articles** variable holds per page/post-metadata.
Of the following fields, only the *:author* and *:short* description could 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.
+ - 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'.)
+ - 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.
- **:tag**
- _:tag_ field is used to create a "view" containing all articles of the same tag.
- - MIND: Whitespaces are not allowed in(!) tags.
+ - MIND: Whitespaces are not allowed in(!) tags.
## Howto Create A New Post
-
+
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"
- :tag "example help code")
+ (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"
+ :tag "example help code")
Then write a corresponding ``2.md`` file, using markdown.
@@ -189,12 +188,12 @@ other directory, somewhere else on your machine).
## Howto Add A New Page
-You may want to have some dedicated pages besides the index or a post.
+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:
(generate "somepage.html" (load-file "data/mypage.html"))
-
+
This will produce the file **somepage.html** in the output folder.
@@ -202,11 +201,11 @@ This will produce the file **somepage.html** in the output folder.
### Howto Use Another Common Lisp Interpreter
-cl-yags default Lisp interpreter is **sbcl**.
+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``.
- `make LISP=ecl`
+ make LISP=ecl
### Using git Hooks For Publishing
@@ -221,13 +220,13 @@ updated automatically.
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.
+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**.
-3. Modify the function *generate-layout* in cl-yag's **generator.lisp** accordingly.
+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"))**"
+ (template "%%Panel%%" (load-file "template/panel.tpl"))
(Note: You can insert your text directly into the layout template file
as well.)
@@ -243,7 +242,7 @@ 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').
@@ -262,17 +261,17 @@ focuses only 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.
+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.
# Hacking cl-yag
-I tried to make cl-yag easy to extend.
+I tried to make cl-yag easy to extend.
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.