Skip to content

Commit

Permalink
Initial
Browse files Browse the repository at this point in the history
  • Loading branch information
svetlyak40wt committed Mar 31, 2024
0 parents commit 0a09111
Show file tree
Hide file tree
Showing 39 changed files with 1,527 additions and 0 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"name": "CI",
"on": {
"push": {
"branches": [
"master"
]
},
"pull_request": null,
"schedule": [
{
"cron": "0 10 * * 1"
}
]
},
"jobs": {
"run-tests": {
"strategy": {
"fail-fast": false,
"matrix": {
"lisp": [
"sbcl-bin",
"ccl-bin/1.12.0"
]
}
},
"runs-on": "ubuntu-latest",
"env": {
"OS": "ubuntu-latest",
"QUICKLISP_DIST": "quicklisp",
"LISP": "${{ matrix.lisp }}"
},
"steps": [
{
"name": "Checkout Code",
"uses": "actions/checkout@v4"
},
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v4",
"with": {
"asdf-system": "staticl",
"cache": "true"
}
},
{
"name": "Run Tests",
"uses": "40ants/run-tests@v2",
"with": {
"asdf-system": "staticl",
"coveralls-token": "\n${{ matrix.lisp == 'sbcl-bin' &&\n matrix.os == 'ubuntu-latest' &&\n matrix.quicklisp == 'ultralisp' &&\n secrets.github_token }}"
}
}
]
}
}
}
48 changes: 48 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"name": "DOCS",
"on": {
"push": {
"branches": [
"master"
]
},
"pull_request": null,
"schedule": [
{
"cron": "0 10 * * 1"
}
]
},
"jobs": {
"build-docs": {
"runs-on": "ubuntu-latest",
"env": {
"OS": "ubuntu-latest",
"QUICKLISP_DIST": "quicklisp",
"LISP": "sbcl-bin"
},
"steps": [
{
"name": "Checkout Code",
"uses": "actions/checkout@v4"
},
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v4",
"with": {
"asdf-system": "staticl-docs",
"cache": "true"
}
},
{
"name": "Build Docs",
"uses": "40ants/build-docs@v1",
"with": {
"asdf-system": "staticl-docs",
"error-on-warnings": true
}
}
]
}
}
}
60 changes: 60 additions & 0 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"name": "LINTER",
"on": {
"push": {
"branches": [
"master"
]
},
"pull_request": null,
"schedule": [
{
"cron": "0 10 * * 1"
}
]
},
"jobs": {
"linter": {
"runs-on": "ubuntu-latest",
"env": {
"OS": "ubuntu-latest",
"QUICKLISP_DIST": "quicklisp",
"LISP": "sbcl-bin"
},
"steps": [
{
"name": "Checkout Code",
"uses": "actions/checkout@v4"
},
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v4",
"with": {
"asdf-system": "staticl",
"cache": "true"
}
},
{
"name": "Change dist to Ultralisp if qlfile does not exist",
"run": "if [[ ! -e qlfile ]]; then echo 'dist ultralisp http://dist.ultralisp.org' > qlfile; fi",
"shell": "bash"
},
{
"name": "Update Qlot",
"run": "qlot update --no-deps",
"shell": "bash"
},
{
"name": "Install SBLint wrapper",
"run": "qlot exec ros install 40ants-asdf-system 40ants-linter",
"shell": "bash"
},
{
"name": "Run Linter",
"run": "qlot exec 40ants-linter --system \"staticl, staticl-docs, staticl-tests\"",
"shell": "bash"
}
]
}
}
}
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.qlot/
/docs/build/
*~
.#*
.*.~undo-tree~
*.fasl
/example/stage/
1 change: 1 addition & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This file will be autogenerated by GitHub action.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This file will be autogenerated by GitHub action.
24 changes: 24 additions & 0 deletions clpmfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
;;; -*- Mode: common-lisp; -*-
(:api-version "0.4")

(:source "quicklisp"
:url "https://beta.quicklisp.org/dist/quicklisp.txt"
:type :quicklisp)

;; Don't move abover quicklisp before this issue
;; will be resolved:
;; https://github.com/ultralisp/ultralisp/issues/197
(:source "ultralisp"
:url "https://clpi.ultralisp.org/"
:type :clpi)

;; Does not work because https://dist.ultralisp.org/ultralisp-versions.txt is missing
;; (:source "ultralisp"
;; :url "https://dist.ultralisp.org/ultralisp.txt"
;; :type :quicklisp)

(:asd "staticl.asd")
(:asd "staticl-tests.asd")
(:asd "staticl-ci.asd")
(:asd "staticl-docs.asd")

13 changes: 13 additions & 0 deletions docs/changelog.lisp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
(uiop:define-package #:staticl-docs/changelog
(:use #:cl)
(:import-from #:40ants-doc/changelog
#:defchangelog))
(in-package #:staticl-docs/changelog)


(defchangelog (:ignore-words ("SLY"
"ASDF"
"REPL"
"HTTP"))
(0.1.0 2023-02-05
"* Initial version."))
104 changes: 104 additions & 0 deletions docs/index.lisp
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
(uiop:define-package #:staticl-docs/index
(:use #:cl)
(:import-from #:pythonic-string-reader
#:pythonic-string-syntax)
#+quicklisp
(:import-from #:quicklisp)
(:import-from #:named-readtables
#:in-readtable)
(:import-from #:40ants-doc
#:defsection
#:defsection-copy)
(:import-from #:staticl-docs/changelog
#:@changelog)
(:import-from #:docs-config
#:docs-config)
(:import-from #:40ants-doc/autodoc
#:defautodoc)
(:export #:@index
#:@readme
#:@changelog))
(in-package #:staticl-docs/index)

(in-readtable pythonic-string-syntax)


(defmethod docs-config ((system (eql (asdf:find-system "staticl-docs"))))
;; 40ANTS-DOC-THEME-40ANTS system will bring
;; as dependency a full 40ANTS-DOC but we don't want
;; unnecessary dependencies here:
#+quicklisp
(ql:quickload "40ants-doc-theme-40ants")
#-quicklisp
(asdf:load-system "40ants-doc-theme-40ants")

(list :theme
(find-symbol "40ANTS-THEME"
(find-package "40ANTS-DOC-THEME-40ANTS")))
)


(defsection @index (:title "staticl - Flexible static site generator."
:ignore-words ("JSON"
"HTTP"
"TODO"
"Unlicense"
"REPL"
"ASDF:PACKAGE-INFERRED-SYSTEM"
"ASDF"
"40A"
"API"
"URL"
"URI"
"RPC"
"GIT"))
(staticl system)
"
[![](https://github-actions.40ants.com/40ants/staticl/matrix.svg?only=ci.run-tests)](https://github.com/40ants/staticl/actions)
![Quicklisp](http://quickdocs.org/badge/staticl.svg)
"
(@installation section)
(@usage section)
(@api section))


(defsection-copy @readme @index)


(defsection @installation (:title "Installation")
"""
You can install this library from Quicklisp, but you want to receive updates quickly, then install it from Ultralisp.org:
```
(ql-dist:install-dist "http://dist.ultralisp.org/"
:prompt nil)
(ql:quickload :staticl)
```
""")


(defsection @usage (:title "Usage")
"
TODO: Write a library description. Put some examples here.
")


(defsection @processing-pipeline (:title "Processing Pipeline")
"
First of all, a SITE object is created and filled with options from `.staticlrc` file.
Then STATICL:STAGE function calls STATICL/CONTENT:READ-CONTENT generic-function which returns a list
of STATICL/CONTENT:CONTENT objects. On the next stage, initial list of content objects are passed to a
generic-function STATICL/CONTENT:PREPROCESS called with a preprocessor returned by a
generic-function STATICL/PLUGINS:SITE-PLUGINS as a first argument. Each preprocessor may
return additional STATICL/CONTENT:CONTENT objects such as index pages, RSS or ATOM feeds, sitemaps etc.
When all content was preprocessed, a generic-function STATICL/CONTENT:WRITE-CONTENT is called
on each STATICL/CONTENT:CONTENT object and a SITE object. Content objects are having a format slot,
so internally STATICL/CONTENT:WRITE-CONTENT generic-function creates an object of corresponding format class
or takes it from the cache and then calls STATICL/CONTENT:WRITE-CONTENT-TO-STREAM using this format object.
")


(defautodoc @api (:system "staticl"))
3 changes: 3 additions & 0 deletions example/.staticlrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
;;; -*- mode : lisp -*-
(:title "Example Staticl Site"
:plugins ((sitemap)))
17 changes: 17 additions & 0 deletions example/index.page
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
;;;;;
title: An index page.
tags: foo, bar
created-at: 2024-03-30 08:18:05
format: md
;;;;;

<!-- **** your post here (remove this line) **** -->
<!-- format: could be 'html' (for raw html) or 'md' (for markdown). -->

Here is my content.

<!--more-->

Excerpt separator can also be extracted from content.
Add `excerpt: <string>` to the above metadata.
Excerpt separator is `<!--more-->` by default.
4 changes: 4 additions & 0 deletions qlfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
dist ultralisp http://dist.ultralisp.org/

# This branch is what I use in my Emacs.
github slynk svetlyak40wt/sly :branch patches
12 changes: 12 additions & 0 deletions qlfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
("quicklisp" .
(:class qlot/source/dist:source-dist
:initargs (:distribution "http://beta.quicklisp.org/dist/quicklisp.txt" :%version :latest)
:version "2023-10-21"))
("ultralisp" .
(:class qlot/source/dist:source-dist
:initargs (:distribution "http://dist.ultralisp.org/" :%version :latest)
:version "20240330015000"))
("slynk" .
(:class qlot/source/github:source-github
:initargs (:repos "svetlyak40wt/sly" :ref nil :branch "patches" :tag nil)
:version "github-030a8441f57f7e0bb401570935e741dfd9edfb83"))
Loading

0 comments on commit 0a09111

Please sign in to comment.