diff --git a/build.zig.zon b/build.zig.zon
index 8d6c246..ca04d31 100644
--- a/build.zig.zon
+++ b/build.zig.zon
@@ -25,8 +25,8 @@
// internet connectivity.
.dependencies = .{
.jetzig = .{
- .url = "https://github.com/jetzig-framework/jetzig/archive/1feb18fb74e626fe068ec67532318640a9cb83be.tar.gz",
- .hash = "jetzig-0.0.0-IpAgLfMzDwDyAqZ05btcLDd9dfE_bxUbfOI_Wx7a19ed",
+ .url = "https://github.com/jetzig-framework/jetzig/archive/bb724b48f62605ca63dca5bb21805b2ed1683557.tar.gz",
+ .hash = "jetzig-0.0.0-IpAgLf5aDwCfevsEIt-MOj1YUZI0IdhNCCuEBYXQcEkc",
},
.uuid = .{
.url = "git+https://github.com/r4gus/uuid-zig#9d66e23e32cd7208d1becb4fd9352f8a27f89551",
diff --git a/src/app/views/root/index.zmpl b/src/app/views/root/index.zmpl
index 355b321..12276fc 100644
--- a/src/app/views/root/index.zmpl
+++ b/src/app/views/root/index.zmpl
@@ -21,17 +21,17 @@
@else
Login
@end
- Gitea instance
- IRC
+ Gitea instance
+ IRC
RSS feed
- SearX
- Files
+ SearX
+ Files
E-mail
diff --git a/src/app/rss.zig b/src/app/views/rss.zig
similarity index 77%
rename from src/app/rss.zig
rename to src/app/views/rss.zig
index 006ff69..6aff48f 100644
--- a/src/app/rss.zig
+++ b/src/app/views/rss.zig
@@ -21,6 +21,7 @@ fn generateRss(items: []const RssItem, allocator: std.mem.Allocator) ![]u8 {
\\
yuzucchii.xyz
\\yuzucchii.xyz
\\Personal blog of Yuzu with all kinds of different articles
+ \\
, .{});
for (items) |item| {
@@ -44,9 +45,7 @@ fn generateRss(items: []const RssItem, allocator: std.mem.Allocator) ![]u8 {
// we'll send xml instead
-pub fn index(request: *jetzig.Request) !void {
- try request.headers.append("Content-Type", "application/rss+xml");
-
+pub fn index(request: *jetzig.Request) !jetzig.View {
const query = jetzig.database.Query(.Blog).orderBy(.{.created_at = .desc});
const blogs = try request.repo.all(query);
@@ -64,9 +63,14 @@ pub fn index(request: *jetzig.Request) !void {
});
}
- // TODO: wait until jetzig adds xml support
- _ = try generateRss(try items.toOwnedSlice(), request.allocator);
+ const rss = generateRss(items.toOwnedSlice() catch {
+ std.debug.print("lol", .{});
+ return request.fail(.bad_request);
+ }, request.allocator) catch {
+ return request.fail(.bad_request);
+ };
- return request.render(.ok);
+ request.response.content_type = "application/rss+xml";
+ return request.renderText(rss, .ok);
}
diff --git a/src/app/views/rss/index.zmpl b/src/app/views/rss/index.zmpl
new file mode 100644
index 0000000..7c89b54
--- /dev/null
+++ b/src/app/views/rss/index.zmpl
@@ -0,0 +1 @@
+
diff --git a/src/main.zig b/src/main.zig
index 547da02..8c89cd0 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -214,7 +214,7 @@ pub const jetzig_options = struct {
};
pub fn init(app: *jetzig.App) !void {
- _ = app;
+ app.route(.GET, "/rss.xml", @import("app/views/rss.zig"), .index);
}
pub fn main() !void {