Dynamic site generator, written in PHP.
Go to file
2024-02-05 21:16:41 +01:00
md Initial commit. 2024-01-02 03:55:23 +01:00
.gitignore Initial commit. 2024-01-02 03:55:23 +01:00
.htaccess Initial commit. 2024-01-02 03:55:23 +01:00
account.php Initial commit. 2024-01-02 03:55:23 +01:00
admin.php Initial commit. 2024-01-02 03:55:23 +01:00
change.php Initial commit. 2024-01-02 03:55:23 +01:00
comment.php Make sure variables are actually present in the config before attempting 2024-02-05 20:59:53 +01:00
config.def.ini Add limit to how many accounts can be created per IP address. 2024-02-05 21:12:45 +01:00
config.php Add limit to how many accounts can be created per IP address. 2024-02-05 21:12:45 +01:00
core.php Don't display 'Request changes' link if not logged in. 2024-02-05 19:05:00 +01:00
create-user.php Initial commit. 2024-01-02 03:55:23 +01:00
create.php Initial commit. 2024-01-02 03:55:23 +01:00
edit-page.php Implement support for pull requests. Kinda crude, but works I guess. 2024-02-05 19:01:24 +01:00
edit.php Implement support for pull requests. Kinda crude, but works I guess. 2024-02-05 19:01:24 +01:00
font.ttf Initial commit. 2024-01-02 03:55:23 +01:00
index.css Add support for history, and some other small changes. 2024-02-04 22:44:44 +01:00
index.php Initial commit. 2024-01-02 03:55:23 +01:00
LICENSE Initial commit. 2024-01-02 03:55:23 +01:00
login.php Initial commit. 2024-01-02 03:55:23 +01:00
OFL.txt Initial commit. 2024-01-02 03:55:23 +01:00
post-edit.php Implement support for pull requests. Kinda crude, but works I guess. 2024-02-05 19:01:24 +01:00
README.md Implement @csgen.favicon, @csgen.license and @csgen.displayLicense 2024-01-22 13:07:18 +01:00
register.php Check for the newly added error. 2024-02-05 21:16:41 +01:00
remove-comment.php Forgot to remove this line. 2024-02-05 20:49:11 +01:00
remove-file.php Initial commit. 2024-01-02 03:55:23 +01:00
remove-user.php Initial commit. 2024-01-02 03:55:23 +01:00
remove.php Implement support for pull requests. Kinda crude, but works I guess. 2024-02-05 19:01:24 +01:00
setup.php Initial commit. 2024-01-02 03:55:23 +01:00
update.php Implement support for pull requests. Kinda crude, but works I guess. 2024-02-05 19:01:24 +01:00
upload.php Initial commit. 2024-01-02 03:55:23 +01:00

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

  • Web server

    • You probably want Apache. It will work with another web server, but you'll need to port the .htaccess to your preferred 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

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.enableComments = "true";
  • @csgen.span<STYLE, TEXT>("color: #0000ff;", "thisIsRedText");
  • @csgen.span<STYLE, HTML>("color: #0000ff;", "<p>thisIsARedHTMLTag</p>");
  • @csgen.inline<HTML>("<small>myHtmlHere</small>");
  • @csgen.inline<CSS>("h1 { color: #0000ff; }");
  • @csgen.inline<JAVASCRIPT>("alert('Hello world!');");
  • @csgen.image<SIZE, PATH>("1920x1080", "/attachments/image.png");
  • @csgen.div<START, NAME>("myFirstDiv");
  • @csgen.div<END, NAME>("myFirstDiv");
  • @csgen.div<STYLE, NAME>("text-align: left;", "myFirstDiv");
  • @csgen.include<HTML>("/attachments/index.html");
  • @csgen.include<CSS>("/attachments/index.css");
  • @csgen.include<JAVASCRIPT>("/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.