gophertype/README.md

68 rindas
2.1 KiB
Markdown

2019-11-06 00:49:18 +00:00
# Gophertype
This is a simple web blog engine written in Go.
## Dependencies
This app expects you to have a Redis cache server running on localhost. Redis
is used for rate limiting and to cache Pygments code highlight blocks in
Markdown files.
The Python `pygmentize` program should also be available if you want code
highlight in Markdown.
## Usage
For database, this app can use SQLite, MySQL or PostgreSQL; use **one** of the
options. Easiest is to use a SQLite database for local development.
```bash
Usage of gophertype:
-bind string
Bind address for HTTP server (default ":8000")
-debug
Debug level logging
-mysql string
Use MySQL database, format: user:password@/dbname?charset=utf8&parseTime=True&loc=Local
-postgres string
Use Postgres database, format: host=myhost port=myport user=gorm dbname=gorm password=mypassword
-root string
User root for custom web pages (default "./public_html")
-sqlite3 string
Use SQLite database, default 'database.sqlite'
-v Show version number and exit (alias)
-version
Show version number and exit
```
Example:
```bash
gophertype -debug -sqlite database.sqlite -root ./public_html
```
## Architecture
Gophertype runs on a dual templating system: it has its own built-in store of
default pages to run the core features of the blog, and a public user root for
your own pages and you can override the built-in defaults by creating files with
the same name.
The `pvt-www/` folder contains the built-in templates (these get bundled into
the binary when compiled), and `public_html` is the default user root (which you
can change with the `-root` command line parameter).
## Pages and Markdown Support
Everything under the user root is basically served as static files from disk, so
you can arrange images and JavaScript paths and embed everything as normal.
A couple types of files are handled specially:
* Go templates (`*.gohtml`) are processed with the html/template module.
* Markdown files (`*.md`) are supported and will render as HTML wrapped in
an HTML template providing your blog's normal layout and decorations.
## License
Copyright 2022 Noah Petherbridge, all rights reserved.