Added docs.

This commit is contained in:
BurnyLlama 2021-07-27 21:47:00 +02:00
parent 2fd774ff3b
commit 40ec509d6c
2 changed files with 100 additions and 2 deletions

100
README.md
View File

@ -1,2 +1,100 @@
# qwik-cms # qwik cms
This is a **really** basic CMS. But it will get the job done. It basically operates really simple.
It checks what path a client is trying to access and checks if there is a corresponding file for
that. After that it renders the file if it exists (if not it sends a 404 error).
## Installation
### Requirements:
* node
* npm
### Instructions:
```bash
git clone https://git.qwik.space/BurnyLlama/qwik-cms
cd qwik-cms
npm i
node index.js
```
### Extra info
Even tho it can be annoying, I would recommend looking through what code this will run on your
PC/server. Otherwise you would have to take my word for it, which could be a bad idea. (Although
I can *promise* you that there is no malicious code or dependency in this project AFAIK.)
The project depends on the following packages (installed when you ran `npm i`):
* express (a web server framework)
* nunjucks (a templating engine)
* fs (used for filesystem operations)
### Maintenence
I recommend forking (or just cloning) this repository if you want a long-term solution for stuff like
multiple people working on the site.
## How do I create pages?
Let's say you want a page on the path `/foo`, then you can create the corresponding file in two places:
* `{contentDir}/pages/foo.njk`
* `{contentDir}/pages/foo/index.njk`
`/foo/bar` would be in either of:
* `{contentDir}/pages/foo/bar.njk`
* `{contentDir}/pages/foo/bar/index.njk`
If both files exist the first one specified is rendered. `{contentDir}` is configured in `config.json` and its default is `content/`.
The documents are written in the [nunjucks](https://mozilla.github.io/nunjucks/) templating language
which means you can use imports/includes/etc for code reusability.
## Configuration
The default configuration looks like this:
```json
{
"contentDir": "content",
"assetsDir": "assets",
"serverPort": "8789",
"serverName": "qwik"
}
```
The file is called `config.json`.
### Descriptions
#### contentDir
Specifies which directory the content is in.
Default: `content`
#### assetsDir
Specifies which directory the assets are in. These items will be statically available on (your site's)
`/assets/`. I recommend storing CSS, images, etc. here.
Default: `assets`
#### serverPort
The port the server should run on.
Default: `8789`
#### serverName
This can be accessed in any page/template by using `{{ serverName }}`
Default: `qwik`
## Future features
I have some ideas on things that would be good to implement, one of which is plugins/extensions that
can provide extra functionality.
As an example, it would be cool to be able to implement sidebars that
contains all pages (if you're making a blog or wiki/documentation).
It would also be nice to have a plugin that could auto update (and restart) the server if you make
changes to a git repository. (You could do this with cronjobs in theory, but this *should* be the
server's responsibility.)

View File

@ -1,6 +1,6 @@
{ {
"name": "qwik-cms", "name": "qwik-cms",
"version": "0.0.1", "version": "1.0.0",
"description": "A dead simple CMS. No bullshit.", "description": "A dead simple CMS. No bullshit.",
"main": "index.js", "main": "index.js",
"type": "module", "type": "module",