Lightweight blogging engine with Markdown support.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
dependabot[bot] 65058f036a
Bump golang from 1.18.3-alpine to 1.18.4-alpine (#10)
3 months ago
.github Merge pull request #7 from lcomrade/dependabot/github_actions/docker/login-action-2 5 months ago
cmd Update CLI 5 months ago
docs Update template mode 5 months ago
internal Add `{{.Time.*}}` to template mode 5 months ago
.dockerignore Added binary release support 8 months ago
.gitignore Update .gitignore 8 months ago
CHANGELOG.md Update CHANGELOG.md and docs/page.md 5 months ago
Dockerfile Bump golang from 1.18.3-alpine to 1.18.4-alpine (#10) 3 months ago
LICENSE first commit 9 months ago
Makefile Add go.mod file 7 months ago
README.md Update template mode 5 months ago
go.mod Updating dependencies (go.mod) 5 months ago
go.sum `\{ \}` are now replaced by `{ }` 5 months ago

README.md

Go report Docker Hub Pulls Release License

WallBlog - lightweight blogging engine with markdown support.

Features:

  • Page formatting in markdown and html
  • Custom page header and footer (in markdown)
  • Custom CSS style
  • Automatic sitemap generation
  • Custom error pages
  • HTTP and HTTPS

📦Install binary release

UNIX-like systems

Example for Linux amd64. For other OS/arch change the link end.

curl --output /usr/local/bin/wallblog -L https://github.com/lcomrade/wallblog/releases/latest/download/wallblog.linux.amd64
chmod 755 /usr/local/bin/wallblog

Docker container

Read more on the Docker Hub page.

🔨Build from source

Build deps:

  • Git
  • GNU Make
  • Golang
git clone https://github.com/lcomrade/wallblog.git
cd ./wallblog
make

You can find result of build in ./dist/ directory.

Configuration

/etc/wallblog/config.json

To apply the changes in this file, you must restart the program.

Default:

{
	"WebRoot": "/var/lib/wallblog",
	"HTTP": {
		"Enable": true,
		"Port": ":80"
	},
	"HTTPS": {
		"Enable": false,
		"Port": ":443",
		"Cert": "",
		"Key": ""
	},
	"Overwrite": {
		"Host": "",
		"Protocol": ""
	},
	"SiteMap": {
		"Enable": true,
		"URL": "/sitemap.xml",
		"SkipHidden": true
	},
	"Page": {
		"AutoTitle": {
			"Enable": true,
			"Prefix": "",
			"Sufix": ""
		},
		"AddToHead": [],
		"TemplateMode": {
			"EnableForMainPage": true,
			"EnableForPagePart": true
		}
	}
}

/var/lib/wallblog/*

**.md files - normal Markdown with support for HTML tags.

**.htmlp files - only HTML tags are supported. Put there what is usually between <body></body>.

** files - serve according to their MIME type.

Pages and files

  • **/index.htmlp or **/index.md - works like index.html

Custom page design

  • ./article_start.htmlp or ./article_start.md - custom beginning of the article
  • ./article_end.htmlp or ./article_end.md - custom end of article
  • ./header.htmlp or ./header.md - page header
  • ./footer.htmlp or ./footer.md - page footer
  • ./style.css - page CSS style
  • ./favicon.ico - site icon

Custom error pages

  • ./error.css - error page CSS style
  • ./403.htmlp or ./403.md
  • ./404.htmlp or ./404.md
  • ./500_permission_denied.htmlp or ./500_permission_denied.md
  • ./500_file_read_timeout.htmlp or ./500_file_read_timeout.md
  • ./500_unknown.htmlp or ./500_unknown.md

📑Documentation