Makko, the people-oriented static site generator made for blogging.
forge.starlightnet.work/Team/Makko
ssg
static-site-generator
makko
starlight-network
1const std = @import("std");
2const Callbacks = @import("Callbacks.zig");
3
4@"$schema": ?[]const u8 = "https://makko.starlightnet.work/schema.json",
5title: []const u8,
6description: []const u8,
7url: []const u8,
8
9paths: struct {
10 symlinks_enabled: bool = false,
11 cleanup_mode: enum { none, regenerate } = .none,
12
13 source: []const u8,
14 templates: []const u8,
15 output: []const u8,
16},
17
18feeds: struct {
19 html: ?[]const u8 = "index.html",
20 atom: ?[]const u8 = "feed.atom",
21 rss: ?[]const u8 = "feed.rss",
22} = .{},
23
24custom: std.json.Value = .{ .null = {} },
25
26callbacks: Callbacks = .{},
27
28hashes: std.json.Value = .{ .null = {} },
29
30pub const example =
31 \\{
32 \\ "$schema": "https://makko.starlightnet.work/schema.json",
33 \\
34 \\ "title": "My Makko blog!",
35 \\ "url": "https://yourweb.site",
36 \\ "description": "My very own blog made with Makko!",
37 \\
38 \\ "paths": {
39 \\ "source": "blog/",
40 \\ "templates": "templates/",
41 \\ "output": "web/"
42 \\ },
43 \\
44 \\ "feeds": {
45 \\ "html": "index.html",
46 \\ "rss": "feed.rss",
47 \\ "atom": "feed.atom"
48 \\ },
49 \\
50 \\ "custom": {
51 \\ "hey1": "You can add anything here, then reference it in your templates",
52 \\ "hey2": "or markdown files like this: {{custom.hey1}}, {{custom.hey2}}",
53 \\
54 \\ "note": "Any JSON input through STDIN will be overlaid on top of this."
55 \\ }
56 \\}
57;