summaryrefslogtreecommitdiffstats
path: root/rssg
diff options
context:
space:
mode:
authorRomain Gonçalves <me@rgoncalves.se>2024-05-15 12:51:49 +0200
committerRomain Gonçalves <me@rgoncalves.se>2024-05-15 12:51:49 +0200
commitc5ad7625aaaf32ba407729aa63b3d48edb5eb910 (patch)
treeb0e05ab5ea0180e102c094383af53c7b787f6c57 /rssg
downloadssg-c5ad7625aaaf32ba407729aa63b3d48edb5eb910.tar.gz
feat: init static site generator
Diffstat (limited to 'rssg')
-rwxr-xr-xrssg48
1 files changed, 48 insertions, 0 deletions
diff --git a/rssg b/rssg
new file mode 100755
index 0000000..16fdd2b
--- /dev/null
+++ b/rssg
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+. "$(dirname "${0}")/functions.sh"
+
+set -e
+
+current_date=$(date +"%a, %d %b %Y %H:%M:%S %z")
+
+cat <<-EOF > "${rss_out_file}"
+<rss version="2.0">
+<channel>
+<title>${website_title}</title>
+<description>${website_description}</description>
+<link>${website_link}</link>
+<copyright>$(date +"%Y") ${website_title} - All rights reserved</copyright>
+<managingEditor>${website_email}</managingEditor>
+<webMaster>${website_email}</webMaster>
+<lastBuildDate>${current_date}</lastBuildDate>
+<pubDate>${current_date}</pubDate>
+<generator>${website_generator}</generator>
+<language>${website_language}</language>
+<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
+<ttl>1800</ttl>
+EOF
+
+for file in $(__list_files_date "${rss_dir}"); do
+ __get_value "${file}" "draft" >/dev/null && continue
+
+ title=$(__get_value_title "${file}")
+ date=$(__get_value_date_publication "${file}")
+ link="${website_link}/$(__get_final_filename "${file}")"
+ guid="$(echo "${link}" | "${__sha256}" | cut -d ' ' -f 1)"
+ description=$(__generate_rss_body "${file}")
+ cat <<-EOF >> "${rss_out_file}"
+ <item>
+ <title>${title}</title>
+ <link>${link}</link>
+ <pubDate>${date}</pubDate>
+ <guid>${guid}</guid>
+ <description>${description}</description>
+ </item>
+ EOF
+done
+
+cat <<-EOF >> "${rss_out_file}"
+</channel>
+</rss>
+EOF
remember that computers suck.