From 93e75949e9a2861f651e2a3602e08e9b25cf47c4 Mon Sep 17 00:00:00 2001 From: Marc Pervaz Boocha Date: Thu, 16 Feb 2023 22:57:52 +0530 Subject: Move to Server Side Render with expressjs Backend Rewritten in typescript Signed-off-by: Marc Pervaz Boocha On branch main Your branch is up to date with 'origin/main'. Changes to be committed: new file: .editorconfig modified: .gitignore new file: Containerfile renamed: favicon/icon.svg -> assets/favicon.svg modified: assets/index.css deleted: assets/index.js deleted: assets/mandle.png deleted: assets/sw.js new file: assets/syntax.css modified: deploy deleted: eleventy.config.js deleted: favicon/192.png deleted: favicon/512.png deleted: favicon/icon.ico deleted: license modified: package-lock.json modified: package.json deleted: src/_data/env.js deleted: src/_data/metadata.js deleted: src/_includes/base.njk deleted: src/_includes/page.njk deleted: src/_includes/post.njk deleted: src/about.njk deleted: src/blog.njk new file: src/client/index.ts deleted: src/gen/atom.njk deleted: src/gen/error.njk deleted: src/gen/feedjson.11ty.js deleted: src/gen/gen.11tydata.js deleted: src/gen/manifest.11ty.js deleted: src/gen/metadata.11ty.js deleted: src/gen/robot.njk deleted: src/gen/sitemap.njk deleted: src/index.njk deleted: src/post/post.11tydata.js new file: src/server/app.ts new file: src/server/build.ts new file: src/server/content/about.ts new file: src/server/content/blog.ts new file: src/server/content/feed.ts new file: src/server/content/index.ts new file: src/server/content/robots.ts new file: src/server/content/sitemap.ts new file: src/server/content/webmanifest.ts new file: src/server/errHanadler.ts new file: src/server/img.ts new file: src/server/metadata.ts new file: src/server/router.ts new file: src/server/server.ts new file: src/server/template/Base.ts new file: src/server/template/Page.ts new file: src/server/template/Post.ts new file: src/server/template/atom.ts new file: src/server/template/header.ts new file: src/server/template/html.ts new file: src/server/template/sitemap.ts new file: src/server/template/syntax.ts new file: src/server/template/table.ts new file: src/server/template/vdom.ts new file: src/server/template/xml.ts new file: src/server/utils/createUrl.ts new file: src/server/utils/curl.ts new file: src/server/utils/isDefined.ts new file: src/server/utils/isDevel.ts new file: src/server/utils/relDir.ts new file: src/server/utils/relUrl.ts new file: src/server/utils/schema.ts new file: src/server/utils/setStingRoute.ts new file: src/server/utils/strHandler.ts new file: src/worker/sw.ts new file: src/worker/tsconfig.json new file: tsconfig.json --- src/server/content/feed.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/server/content/feed.ts (limited to 'src/server/content/feed.ts') diff --git a/src/server/content/feed.ts b/src/server/content/feed.ts new file mode 100644 index 0000000..b0d6c0f --- /dev/null +++ b/src/server/content/feed.ts @@ -0,0 +1,32 @@ +import curl from "../utils/curl.js" +import setStingRoute from "../utils/setStingRoute.js" +import { posts } from "../template/Post.js" +import metadata from "../metadata.js" +import { doctype } from "../template/xml.js" +import { c } from "../template/vdom.js" +import { feed, title, link, summary, id, author, subtitle, updated, name, email, entry } from "../template/atom.js" + +setStingRoute("/feed", ["application/atom+xml", "xml"], async () => doctype({}, + c(feed, { xmlns: new URL("http://www.w3.org/2005/Atom"), "xml:lang": metadata.language }, + c(title, {}, metadata.title), + c(subtitle, {}, metadata.description), + c(link, { href: curl(metadata.feed.atom), rel: "self" }), + c(link, { href: metadata.url }), + ...(posts[0] ? [c(updated, { date: posts[0].date_mod })] : []), + c(id, { id: metadata.url }), + c(author, {}, + c(name, {}, metadata.author.name), + c(email, {}, metadata.author.email), + ), + ...posts.map(({ url, date_mod, title: Title, description }) => + c(entry, {}, + c(title, {}, Title), + c(link, { href: url }), + c(updated, { date: date_mod }), + c(id, { id: url }), + c(summary, {}, description) + ) + ) + ) +)) + -- cgit v1.2.3-70-g09d2