commit 707f5e747aa837657993f852439c99063a416cf6 lambda <lambda@fnord.one> 2017-11-29 11:33:19 +0100 ~README.md and data/README.md Remove bmake and CLISP references. Correct spelling errors. Add links to websites of sbcl, ecl, multimarkdown in section 'Requirements'. Add :title to data/articles.lisp section. Use *bar* for *vars* and *functions* (exception: Beginning of list-item). Use ``bar`` for ``:keywords``, booleans, inline-examples. Use **bar** for **foo/path/** and **foo/path/file.name**. Status of this commit: Suggestion.
README.md | 162 ++++++++++++++++++++++++++++----------------------------- data/README.md | 162 ++++++++++++++++++++++++++++----------------------------- 2 files changed, 160 insertions(+), 164 deletions(-)
diff --git a/README.md b/README.md index a54a176..2c1c3a7 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -# README +o# README ## 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,25 +95,25 @@ 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** @@ -125,45 +121,49 @@ The **config** variable is used to assign the following values: - **: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. + - 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. - **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 every 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 every 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 can be omitted. +The *articles* variable holds post metadata. +So you need to create an entry in the *articles* variable for each of your posts. -- **: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. +Of the following keywords, only ``:author`` and ``:short`` can be omitted. + +- **:author** + - 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. + - 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. +- **: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 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. +- **: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" @@ -172,30 +172,30 @@ Edit data/articles.lisp and add a new list to the *articles* variable: :short "I will explain how to use the generator" :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 @@ -204,66 +204,64 @@ This will produce the file **somepage.html** in the output folder. 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``. +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 +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. @@ -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'. diff --git a/data/README.md b/data/README.md index a54a176..2c1c3a7 100644 --- a/data/README.md +++ b/data/README.md @@ -1,9 +1,9 @@ -# README +o# README ## 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,25 +95,25 @@ 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** @@ -125,45 +121,49 @@ The **config** variable is used to assign the following values: - **: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. + - 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. - **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 every 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 every 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 can be omitted. +The *articles* variable holds post metadata. +So you need to create an entry in the *articles* variable for each of your posts. -- **: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. +Of the following keywords, only ``:author`` and ``:short`` can be omitted. + +- **:author** + - 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. + - 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. +- **: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 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. +- **: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" @@ -172,30 +172,30 @@ Edit data/articles.lisp and add a new list to the *articles* variable: :short "I will explain how to use the generator" :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 @@ -204,66 +204,64 @@ This will produce the file **somepage.html** in the output folder. 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``. +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 +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. @@ -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'.