diff --git a/docs/contribution.lisp b/docs/contribution.lisp new file mode 100644 index 0000000..a1e1486 --- /dev/null +++ b/docs/contribution.lisp @@ -0,0 +1,36 @@ +(uiop:define-package #:staticl-docs/contribution + (:use #:cl) + (:import-from #:named-readtables + #:in-readtable) + (:import-from #:40ants-doc + #:defsection) + (:import-from #:pythonic-string-reader + #:pythonic-string-syntax)) +(in-package #:staticl-docs/contribution) + + +(in-readtable pythonic-string-syntax) + +(defsection @contribution (:title "Contribution") + """ +I'll be happy to discuss your ideas in the issues and to review your pull-requests. + +Follow these few rules to make it be merged faster: + +* Write a detailed description of the changes made in the pull request. +* Keep the same style as in the rest of code. +* If unsure, check [Google's Common Lisp Styleguide](https://google.github.io/styleguide/lispguide.xml). +* Write a test on added functionality. +* Describe your changes in the `docs/changelog.lisp` file. This way documentation and a ChangeLog.md file will be updated after the merge. +* Make changes to the documentation files inside the `docs/` folder. +* Ensure all checks on the pull request are green. + +""" + (@contributors section)) + + +(defsection @contributors (:title "Contributors") + """ +* Alexander Artemenko (initial author). +""" + ) diff --git a/docs/index.lisp b/docs/index.lisp index 374551b..ead3e11 100644 --- a/docs/index.lisp +++ b/docs/index.lisp @@ -25,6 +25,10 @@ #:@making-a-site) (:import-from #:staticl-docs/pipeline #:@pipeline) + (:import-from #:staticl-docs/roadmap + #:@roadmap) + (:import-from #:staticl-docs/contribution + #:@contribution) (:export #:@index #:@readme #:@changelog)) @@ -106,7 +110,9 @@ " (@installation section) - (@introduction section)) + (@introduction section) + (@roadmap section) + (@contribution section)) (defsection-copy @readme @index) @@ -114,13 +120,19 @@ (defsection @installation (:title "Installation") """ -You can install this library from Quicklisp, but you want to receive updates quickly, then install it from Ultralisp.org: +This library is not in Quicklisp yet, but you can install it from Ultralisp.org: ``` (ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil) (ql:quickload :staticl) ``` + +Or, if you wish to use a command line utility, then install it with [Roswell](https://github.com/roswell/roswell) like this: + +``` +ros install 40ants/staticl +``` """) diff --git a/docs/introduction.lisp b/docs/introduction.lisp index 43f7c87..d658ed6 100644 --- a/docs/introduction.lisp +++ b/docs/introduction.lisp @@ -11,7 +11,7 @@ (in-readtable pythonic-string-syntax) -(defsection @introduction (:title "Introduction") +(defsection @introduction (:title "Basics") """ # Why do we need static website generators? @@ -33,13 +33,13 @@ Generators convert content from a simple Markdown markup language to HTML and CS You can use various methods to host a static site, including Github Pages, CDN, or other affordable cheap hosting services. Github Pages is a free service provided by Github that allows you to host static sites directly from the repository on Github. This is a convenient way to host small projects or personal pages. CDN (Content Delivery Network) is a network of servers distributed around the world that helps speed up the loading of content on a site due to the proximity of servers to end users. This is especially useful for sites with a large number of visitors and traffic. If you have a budget, you can also consider other cheap hosting providers that offer good conditions for hosting static sites. It is important to consider the requirements of your project and choose the appropriate option that meets your needs in terms of performance, reliability and price. -# Why was `StatiCL` created +# Why was StatiCL created At [40Ants](https://40ants.com/), we believe in the power of Common Lisp and use it as the basis of all our projects. We used to work with the [Coleslaw](https://github.com/coleslaw-org/coleslaw) static blog generator, but we encountered some of its limitations. For example, it was difficult for us to create a website in several languages and set up the main page in a different way than just a list of articles. Coleslaw is more suitable for blogs than for sites with a diverse structure. Therefore, we have developed a `StatiCL` tool with even more flexibility. With `StatiCL`, you can create a static website of any complexity, without limiting yourself to blog templates. In `StatiCL`, you can easily create extensions, as well as use any template engine, not limited to Clozure Templates. This gives you more freedom in choosing tools to work with your static sites and allows you to use those technologies that are more convenient and familiar to you. The flexibility of `StatiCL` makes it an excellent choice for developers who want to create high-quality static websites optimized for their needs and preferences. -# The basic principles underlying `StatiCL` +# The basic principles underlying StatiCL `StatiCL` is an innovative content processing system based on the pipeline concept. The pipeline consists of various nodes, each of which receives all the content objects generated by the previous parts of the pipeline. Each node has the ability to modify existing content or add new elements to it. This allows you to create unique and high-quality content enriched with a variety of data and information. In addition, thanks to the use of a content processing pipeline, `StatiCL` provides efficient and fast information processing. Each stage of the pipeline is performed sequentially, which allows you to optimize the process of creating content and improve its quality. This approach allows users to easily manage the content processing process and create unique materials for various purposes. Thanks to the flexible pipeline structure and the ability to add new nodes, `StatiCL` provides a high degree of personalization and customization of the content processing process for specific user needs. Thus, the system allows you to create content that meets the individual requirements and tasks of users, ensuring high efficiency and effectiveness of work. @@ -81,5 +81,7 @@ When creating `sitemap.xml` In addition to RSS, we can add another step to our p The `(sitemap)` step will receive all the content created by the previous steps and create a file at the output `sitemap.xml`. In addition to sequentially executing the pipeline steps, you can split the content into different "streams". For example, you can filter them by the language in which the texts are written, and perform different pipeline steps for each language. For example, you can create separate RSS feeds for each language. You can read more about this in the tutorial. + +Read more about pipeline in the STATICL-DOCS/PIPELINE::@PIPELINE section and walk through a tutorial in STATICL-DOCS/MAKING-A-STATIC-SITE::@MAKING-A-SITE section. """ ) diff --git a/docs/roadmap.lisp b/docs/roadmap.lisp new file mode 100644 index 0000000..e0eae44 --- /dev/null +++ b/docs/roadmap.lisp @@ -0,0 +1,23 @@ +(uiop:define-package #:staticl-docs/roadmap + (:use #:cl) + (:import-from #:named-readtables + #:in-readtable) + (:import-from #:40ants-doc + #:defsection) + (:import-from #:pythonic-string-reader + #:pythonic-string-syntax)) +(in-package #:staticl-docs/roadmap) + + +(in-readtable pythonic-string-syntax) + +(defsection @roadmap (:title "Roadmap") + """ +* Add support for translations for themes and menu items to be able to make multilingual sites. +* Add a documentation on theme and plugin creation. +* Implement more themes. +* Port all [Coleslaw plugins](https://github.com/coleslaw-org/coleslaw/tree/master/plugins). +* Support more services for adding comments. +* Make cool demos for YouTube and publish them at [40Ants channel](https://www.youtube.com/channel/UCeQ6iZT5nmAGFHX1b4V6dQw). +""" + )