From 0944b90ba40119f6c70c923f1c993980c15d2f5b Mon Sep 17 00:00:00 2001 From: prplwtf Date: Wed, 29 May 2024 16:29:44 +0200 Subject: [PATCH] feat `Site`: add blog cover image support --- configuration/Configuration.example.yml | 2 +- configuration/Posts.example.yml | 2 +- src/App.js | 3 ++- src/components/elements/LinkElement.js | 4 ++-- src/components/elements/NavigationBarElement.js | 4 ++-- .../elements/posts/BlogListElement.js | 2 +- src/components/sections/AboutSection.js | 6 +++++- src/components/sections/RootSection.js | 2 +- src/configuration/FetchBlogs.js | 6 +++--- src/configuration/FetchConfiguration.js | 6 +++--- src/configuration/RenderConfiguration.js | 2 +- writea.jpg | Bin 0 -> 86422 bytes 12 files changed, 22 insertions(+), 17 deletions(-) create mode 100644 writea.jpg diff --git a/configuration/Configuration.example.yml b/configuration/Configuration.example.yml index b541421..86e4eb4 100644 --- a/configuration/Configuration.example.yml +++ b/configuration/Configuration.example.yml @@ -1,4 +1,4 @@ -Application: +Information: Title: writea Description: Writea is an open-source alternative for blogs, allowing for easy page configuration and ultimate flexibility. Link: github.com/prplwtf/writea diff --git a/configuration/Posts.example.yml b/configuration/Posts.example.yml index fcd8815..39e8c39 100644 --- a/configuration/Posts.example.yml +++ b/configuration/Posts.example.yml @@ -1,7 +1,7 @@ - Title: Introducing writea, a new way to write blogs. Description: Lorem ipsum or whatever Topic: product release - Thumbnail: https://i.imgur.com/MAj12Va.jpg + Thumbnail: writea.jpg Content: gravity-introduction.md - Title: Meet Nebula - Pterodactyl takes flight! diff --git a/src/App.js b/src/App.js index 59f55ee..c630524 100644 --- a/src/App.js +++ b/src/App.js @@ -1,3 +1,4 @@ +var Timestamp = Math.round(Date.now() / 240000) document.addEventListener("DOMContentLoaded", (async () => { // Register global variables var App = document.getElementById("App") @@ -14,5 +15,5 @@ document.addEventListener("DOMContentLoaded", (async () => { clearInterval(interval); Route(window.location.hash) - }, 10); + }, 10); })) \ No newline at end of file diff --git a/src/components/elements/LinkElement.js b/src/components/elements/LinkElement.js index 8ca8e9f..cb767b8 100644 --- a/src/components/elements/LinkElement.js +++ b/src/components/elements/LinkElement.js @@ -1,7 +1,7 @@ function LinkElement() { - if(!window.Configuration.Application.Link) return; + if(!window.Configuration.Information.Link) return; - let Link = window.Configuration.Application.Link + let Link = window.Configuration.Information.Link .replace("http://", "") .replace("https://", "") diff --git a/src/components/elements/NavigationBarElement.js b/src/components/elements/NavigationBarElement.js index 0701eb2..deae71e 100644 --- a/src/components/elements/NavigationBarElement.js +++ b/src/components/elements/NavigationBarElement.js @@ -16,8 +16,8 @@ function NavigationBarElement() { ${ConfigurationReminder}
-

- ${window.Configuration.Application.Title || "gravity"} +

+ ${window.Configuration.Information.Title || "writea"}

diff --git a/src/components/elements/posts/BlogListElement.js b/src/components/elements/posts/BlogListElement.js index e3454a5..f7e3d4d 100644 --- a/src/components/elements/posts/BlogListElement.js +++ b/src/components/elements/posts/BlogListElement.js @@ -10,7 +10,7 @@ function BlogListSection() { if (Post.Thumbnail) { PostThumbnail = `
- +
` } diff --git a/src/components/sections/AboutSection.js b/src/components/sections/AboutSection.js index 760728d..644a72d 100644 --- a/src/components/sections/AboutSection.js +++ b/src/components/sections/AboutSection.js @@ -2,7 +2,11 @@ function AboutSection() { return ` ${NavigationBarElement()}

- writea is a free, open-source and simplistic alternative for blogs + + + writea + + is a free, open-source and simplistic alternative for blogs - made with pure HTML and JavaScript.

diff --git a/src/components/sections/RootSection.js b/src/components/sections/RootSection.js index 18ed728..5152d5d 100644 --- a/src/components/sections/RootSection.js +++ b/src/components/sections/RootSection.js @@ -2,7 +2,7 @@ function RootSection() { return ` ${NavigationBarElement()}

- ${window.Configuration.Application.Description || "no description provided"} + ${window.Configuration.Information.Description || "no description provided"}

${ConnectionElement( diff --git a/src/configuration/FetchBlogs.js b/src/configuration/FetchBlogs.js index 453e811..308cea4 100644 --- a/src/configuration/FetchBlogs.js +++ b/src/configuration/FetchBlogs.js @@ -1,4 +1,4 @@ -let BlogsURL = "./configuration/Posts.yml" +let BlogsURL = `./configuration/Posts.yml?v=${Timestamp}` let ExampleBlogs = false async function FetchBlogs() { @@ -11,9 +11,9 @@ async function FetchBlogs() { return; } if (xhr.readyState == 4 && xhr.status == 404) { - if(BlogsURL != "./configuration/Posts.example.yml") { + if(!ExampleBlogs) { ExampleBlogs = true - BlogsURL = "./configuration/Posts.example.yml" + BlogsURL = `./configuration/Posts.example.yml?v=${Timestamp}` FetchBlogs() } else { return console.error("Posts.yml could not be found!") diff --git a/src/configuration/FetchConfiguration.js b/src/configuration/FetchConfiguration.js index 433c467..f752e4b 100644 --- a/src/configuration/FetchConfiguration.js +++ b/src/configuration/FetchConfiguration.js @@ -1,4 +1,4 @@ -let ConfigurationURL = "./configuration/Configuration.yml" +let ConfigurationURL = `./configuration/Configuration.yml?v=${Timestamp}` let ExampleConfiguration = false async function FetchConfiguration() { @@ -12,9 +12,9 @@ async function FetchConfiguration() { return; } if (xhr.readyState == 4 && xhr.status == 404) { - if(ConfigurationURL != "./configuration/Configuration.example.yml") { + if(!ExampleConfiguration) { ExampleConfiguration = true - ConfigurationURL = "./configuration/Configuration.example.yml" + ConfigurationURL = `./configuration/Configuration.example.yml?v=${Timestamp}` FetchConfiguration() } else { await RenderConfiguration() diff --git a/src/configuration/RenderConfiguration.js b/src/configuration/RenderConfiguration.js index e8fb343..ea95e4b 100644 --- a/src/configuration/RenderConfiguration.js +++ b/src/configuration/RenderConfiguration.js @@ -1,5 +1,5 @@ async function RenderConfiguration() { // Render values - AppTitle.innerHTML = window.Configuration.Application.Title || "gravity" + AppTitle.innerHTML = window.Configuration.Information.Title || "writea" return; } \ No newline at end of file diff --git a/writea.jpg b/writea.jpg new file mode 100644 index 0000000000000000000000000000000000000000..610e69ac34ceb16358d0c11f519101008c9298e8 GIT binary patch literal 86422 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 z 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