# CoolSiteGENerator csgen stands for CoolSiteGEnerator and as the name implies it is a site generator that generates pages on-the-fly. ## Features - Articles are written in Markdown, with extra powerful csgen markup - Very customizable, minimal but modern UI with very little JavaScript - Account system, including administrators, moderators and registering - Comments - GPL licensed (no proprietary software here) ## Dependencies - php - sqlite3 - php-mbstring - Web server - On Gentoo, you'll need to enable USE flag `sqlite` for package `dev-lang/php` in case you're testing locally using `php -S`. - On Debian, you'll need to install the appropriate Apache plugin if you want to use Apache. ## Installation 1. Set up a web server with php and sqlite3 2. Point it to `index.php` 3. Make sure users cannot access the database or any of the config files (See docs/apache-sample.conf for an example) When no admin account is set up, you'll be prompted to create one. ## Configuration See config.def.ini. ## csgen syntax csgen supports special syntax. This syntax should be entered in the Markdown document and it can be at any point. - `@csgen.title = "myTitleHere";` - `@csgen.description = "myDescriptionHere";` - `@csgen.favicon = "myFaviconHere";` - `@csgen.date = "myDateHere";` - `@csgen.license = "myLicenseHere";` - `@csgen.displayTitle = "true";` - `@csgen.displayDate = "true";` - `@csgen.displaySource = "true";` - `@csgen.displayLicense = "true";` - `@csgen.displayAuthors = "true"` - `@csgen.enableComments = "true";` - `@csgen.addAuthor = "one author here";` - `@csgen.markAsFeed = "false";` - `@csgen.includePage = "/blog/my-awesome-blog-post";` - `@csgen.redirectTo = "/blog/rss.xml";` - `@csgen.span("color: #0000ff;", "thisIsRedText");` - `@csgen.span("color: #0000ff;", "

thisIsARedHTMLTag

");` - `@csgen.inline("myHtmlHere");` - `@csgen.inline("h1 { color: #0000ff; }");` - `@csgen.inline("alert('Hello world!');");` - `@csgen.image("1920x1080", "/attachments/image.png");` - `@csgen.div("myFirstDiv");` - `@csgen.div("myFirstDiv");` - `@csgen.div("text-align: left;", "myFirstDiv");` - `@csgen.include("/attachments/index.html");` - `@csgen.include("/attachments/index.css");` - `@csgen.include("/attachments/index.js");` There are also special csgen reserved endpoints. These are: - `/` - The root document. - `/_head` - The header text. - `/_foot` - The footer text. - `/_list` - Additional items to prepend to the menu. - `/_404` - The error to display when no page was found for the endpoint. ## License GNU Affero General Public License version 3.0. See `LICENSE` for details. The font included is called Noto Sans, and is licensed under the SIL Open Font License. See `OFL.txt` for copyright details.