blog-software-java/README.md

47 lines
1.9 KiB
Markdown
Raw Normal View History

blog-software(config, template, content) = blog website
2025-01-19 10:15:42 +01:00
## Usage
1. [Download the program from here](/Minecon724/blog-software-java/releases)
2. Run the program:
2025-01-19 10:15:42 +01:00
```shell
java -jar blog-0.0.1-shaded.jar -s example_workdir
2025-01-19 10:15:42 +01:00
```
For tips on how to create your own project (workdir), see [Project format](#Project format) below.
2025-01-19 10:15:42 +01:00
## Important caveats
Generated site must be the root of a subdomain, like `https://example.com/`. \
You can't put it in a directory, like `https://example.com/blog/`
## API
There's no "API," but it's possible to integrate this into your Java project.
See [Main.java](/Minecon724/blog-software-java/src/branch/master/src/main/java/eu/m724/blog/Main.java) for an example. \
If you need a Maven dependency, [see here](/Minecon724/-/packages/maven/eu.m724-blog)
## Project format
There's an ["Example workdir"](/Minecon724/blog-software-java/src/branch/master/example_workdir) which you can take inspiration from.
Basically:
- `assets/` - contains static assets
- `posts/` - contains posts. Post format:
- Header / metadata:
- `title A title` - post title
- `summary This is a post with a title` - post summary
- `live` - is the post live (not draft), doesn't need an argument
- Custom properties, which are Strings
- ` ` - Empty line separates header from content
- Post content in HTML. Generally not sanitized, but depends on template.
- `template/` - contains the template, see [Template format](#Template format) below
- `site-config.yml` - the site configuration
- `name: my blog` property - site name
- `baseUrl: https://example.com` property - URL of the site. It must be a root URL - folders are currently not supported. This is used only for the RSS feed.
- Custom properties, which can be anything as they are Objects
## Template format
https://pebbletemplates.io is used
- `static/` - contains static assets
- `article_template.html` - post template
- `index_template.html` - index.html template