From fcc71f1f93a3d1444b39b23fb7b88855f992c307 Mon Sep 17 00:00:00 2001 From: bignutty <3515180-bignutty@users.noreply.gitlab.com> Date: Sat, 8 Nov 2025 14:50:57 +0100 Subject: [PATCH] content: lc-eos voidcannon: implement visibility_level for content, fixes and tweaks --- pagex.config.js | 2 +- .../assets/header/background.webp | Bin 0 -> 25084 bytes .../labscore-deprecation-notice/content.md | 34 +++++++ .../labscore-deprecation-notice.pagex.js | 40 ++++++++ .../playground-empty.pagex.js | 3 +- .../playground-full/playground-full.pagex.js | 3 +- .../playground-gm3/playground-gm3.pagex.js | 3 +- .../playground-p3/playground-p3.pagex.js | 8 +- .../playground-totk/playground-totk.pagex.js | 8 +- .../articles/playground/playground.pagex.js | 3 +- src/content/authors/assets/labscore.webp | Bin 0 -> 5600 bytes .../authors/labsCoreMaintainers.pagex.js | 31 ++++++ src/content/editorial/home-debug/content.md | 13 +++ .../editorial/home-debug/home-debug.pagex.js | 89 ++++++++++++++++++ src/content/editorial/home/content.md | 15 +-- src/content/editorial/home/home.pagex.js | 50 +--------- voidcannon | 2 +- 17 files changed, 240 insertions(+), 64 deletions(-) create mode 100644 src/content/articles/labscore-deprecation-notice/assets/header/background.webp create mode 100644 src/content/articles/labscore-deprecation-notice/content.md create mode 100644 src/content/articles/labscore-deprecation-notice/labscore-deprecation-notice.pagex.js create mode 100644 src/content/authors/assets/labscore.webp create mode 100644 src/content/authors/labsCoreMaintainers.pagex.js create mode 100644 src/content/editorial/home-debug/content.md create mode 100644 src/content/editorial/home-debug/home-debug.pagex.js diff --git a/pagex.config.js b/pagex.config.js index 30dbc8c..3437539 100644 --- a/pagex.config.js +++ b/pagex.config.js @@ -1,7 +1,7 @@ import {PagexTemplateType} from "pagex"; export default { - id: "voidcannon", + id: "blognutty", site_config: { title: "voidcannon-dev" }, diff --git a/src/content/articles/labscore-deprecation-notice/assets/header/background.webp b/src/content/articles/labscore-deprecation-notice/assets/header/background.webp new file mode 100644 index 0000000000000000000000000000000000000000..56a86224056be30d33bbb0c4b29fb59400aa426c GIT binary patch literal 25084 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 Qf1v+mV`2X2qyT{b1I^*#X#fBK literal 0 HcmV?d00001 diff --git a/src/content/articles/labscore-deprecation-notice/content.md b/src/content/articles/labscore-deprecation-notice/content.md new file mode 100644 index 0000000..eaeb437 --- /dev/null +++ b/src/content/articles/labscore-deprecation-notice/content.md @@ -0,0 +1,34 @@ +## What's happening? + +The labsCore Discord Bot will be ceasing operation starting on the **1st of January 2026**. + +## What's next? + +labsCore will continue operating throughout 2025. From 2026 onward the public instance (`labsCore#5969`) will no longer +be available. + +> If you're looking for replacements, I can personally vouch for [Assyst](https://discord.com/oauth2/authorize?client_id=571661221854707713) +> and [NotSoBot](https://discord.com/oauth2/authorize?client_id=439205512425504771). + +The frontend (bot) source-code will be preserved in a read-only state on [GitLab](https://gitlab.com/bignutty/labscore), +the first-party backend (labscore-api) cannot not be trivially made available due to it relying on a plethora of private +and undocumented services. + +## Why now? + +The bot has always been a hobby project that I work on in my free time. In the recent months I've gradually felt +less and less motivation to dedicate any significant time towards contributing to the project. I don't feel comfortable +handing this project over to new maintainers, nor do I want to keep it running on "autopilot" until it eventually breaks +down and I disappear from the internet. + +labsCore is one of my oldest JavaScript-based projects, two and a half rewrites later it still exhibits many poor +conventions and bad decisions that I'd no longer make today. The entire codebase (both frontend and backend) are still +using CommonJS imports and exports as well as a giant mess of half-baked helper functions and utilities. I believe +another full rewrite of both the frontend and backend would be necessary to get it into a somewhat manageable state, +which is something I simply don't want to invest the time into. + + + help + For any further questions, feel free to reach out. + labsCore Discord + \ No newline at end of file diff --git a/src/content/articles/labscore-deprecation-notice/labscore-deprecation-notice.pagex.js b/src/content/articles/labscore-deprecation-notice/labscore-deprecation-notice.pagex.js new file mode 100644 index 0000000..44182dd --- /dev/null +++ b/src/content/articles/labscore-deprecation-notice/labscore-deprecation-notice.pagex.js @@ -0,0 +1,40 @@ +import {VoidcannonHeaderLayoutType, VoidcannonHeaderType, VoidcannonContentType} from "voidcannon"; + +import bignutty from "../../authors/bignutty.pagex.js"; + +import videogamesCollection from "../../collections/videogames.pagex.js"; +import testCollection from "../../collections/test.pagex.js"; +import featuredCollection from "../../collections/_featured.pagex.js"; + +import {PagexResourceTransformer} from "pagex"; +import {ThemeVariants} from "pagex_commons"; +import labsCoreMaintainersPagex from "../../authors/labsCoreMaintainers.pagex.js"; + +export default { + type: VoidcannonContentType.ARTICLE, + content: { + _transform: PagexResourceTransformer.MARKDOWN, + path: "./content.md" + }, + id: "labscore-deprecation-notice", + title: "labsCore End of Service Notice", + slug: "labscore-eos-notice", + abstract: "labsCore will be ceasing operations after 2025.", + created_at: 1757861297516, + theme: { + partial: true, + colors: { + light: "#00F562", + dark: "#00F562", + } + }, + header: { + type: VoidcannonHeaderType.IMAGE, + base: { + _transform: PagexResourceTransformer.MEDIA, + path: "./assets/header/background.webp" + }, + color: "#0eb1f4" + }, + authors: [labsCoreMaintainersPagex] +} \ No newline at end of file diff --git a/src/content/articles/playground-empty/playground-empty.pagex.js b/src/content/articles/playground-empty/playground-empty.pagex.js index c6fa976..8eb2e7c 100644 --- a/src/content/articles/playground-empty/playground-empty.pagex.js +++ b/src/content/articles/playground-empty/playground-empty.pagex.js @@ -1,4 +1,4 @@ -import {VoidcannonContentType} from "voidcannon"; +import {VoidcannonContentType, VoidcannonVisibilityLevel} from "voidcannon"; import placeholder from "../../authors/placeholder.pagex.js"; @@ -13,5 +13,6 @@ export default { id: "playground-empty", title: "Playground Empty Article", created_at: 1762267626610, + visibility_level: VoidcannonVisibilityLevel.HIDDEN, authors: [placeholder] } \ No newline at end of file diff --git a/src/content/articles/playground-full/playground-full.pagex.js b/src/content/articles/playground-full/playground-full.pagex.js index 644b9e7..909ca4c 100644 --- a/src/content/articles/playground-full/playground-full.pagex.js +++ b/src/content/articles/playground-full/playground-full.pagex.js @@ -2,7 +2,7 @@ import { VoidcannonHeaderLayoutType, VoidcannonHeaderType, VoidcannonContentType, - VoidcannonEmojiStyle + VoidcannonEmojiStyle, VoidcannonVisibilityLevel } from "voidcannon"; import bignutty from "../../authors/bignutty.pagex.js"; @@ -21,6 +21,7 @@ export default { id: "playground-full", title: "Playground Test Article (full theme)", created_at: 0, + visibility_level: VoidcannonVisibilityLevel.HIDDEN, theme: { emoji_style: VoidcannonEmojiStyle.FLUENT_FLAT, partial: false, diff --git a/src/content/articles/playground-gm3/playground-gm3.pagex.js b/src/content/articles/playground-gm3/playground-gm3.pagex.js index 5fc8a3b..69477a3 100644 --- a/src/content/articles/playground-gm3/playground-gm3.pagex.js +++ b/src/content/articles/playground-gm3/playground-gm3.pagex.js @@ -2,7 +2,7 @@ import { VoidcannonHeaderLayoutType, VoidcannonHeaderType, VoidcannonContentType, - VoidcannonEmojiStyle + VoidcannonEmojiStyle, VoidcannonVisibilityLevel } from "voidcannon"; import bignutty from "../../authors/bignutty.pagex.js"; @@ -21,6 +21,7 @@ export default { id: "playground-gm3", title: "Playground Test Article (gm3 base theme)", created_at: 1757861297516, + visibility_level: VoidcannonVisibilityLevel.HIDDEN, theme: { emoji_style: VoidcannonEmojiStyle.TWITTER }, diff --git a/src/content/articles/playground-p3/playground-p3.pagex.js b/src/content/articles/playground-p3/playground-p3.pagex.js index 7dbf77b..1f2dcf8 100644 --- a/src/content/articles/playground-p3/playground-p3.pagex.js +++ b/src/content/articles/playground-p3/playground-p3.pagex.js @@ -1,4 +1,9 @@ -import {VoidcannonHeaderLayoutType, VoidcannonHeaderType, VoidcannonContentType} from "voidcannon"; +import { + VoidcannonHeaderLayoutType, + VoidcannonHeaderType, + VoidcannonContentType, + VoidcannonVisibilityLevel +} from "voidcannon"; import bignutty from "../../authors/bignutty.pagex.js"; @@ -19,6 +24,7 @@ export default { title: "Playground P3 Test Article", abstract: "An article about the 2024 video game 'Persona 3 Reload'.", created_at: 1757861297516, + visibility_level: VoidcannonVisibilityLevel.HIDDEN, theme: { colors: { light: "#0eb1f4", diff --git a/src/content/articles/playground-totk/playground-totk.pagex.js b/src/content/articles/playground-totk/playground-totk.pagex.js index af38a0a..c962f02 100644 --- a/src/content/articles/playground-totk/playground-totk.pagex.js +++ b/src/content/articles/playground-totk/playground-totk.pagex.js @@ -1,4 +1,9 @@ -import {VoidcannonHeaderLayoutType, VoidcannonHeaderType, VoidcannonContentType} from "voidcannon"; +import { + VoidcannonHeaderLayoutType, + VoidcannonHeaderType, + VoidcannonContentType, + VoidcannonVisibilityLevel +} from "voidcannon"; import bignutty from "../../authors/bignutty.pagex.js"; @@ -18,6 +23,7 @@ export default { title: "Playground Totk Test Article", created_at: 1757861297516, updated_at: 1757861297516, + visibility_level: VoidcannonVisibilityLevel.HIDDEN, theme: { // partial: true, colors: { diff --git a/src/content/articles/playground/playground.pagex.js b/src/content/articles/playground/playground.pagex.js index fcd7a23..926128b 100644 --- a/src/content/articles/playground/playground.pagex.js +++ b/src/content/articles/playground/playground.pagex.js @@ -2,7 +2,7 @@ import { VoidcannonHeaderLayoutType, VoidcannonHeaderType, VoidcannonContentType, - VoidcannonEmojiStyle + VoidcannonEmojiStyle, VoidcannonVisibilityLevel } from "voidcannon"; import bignutty from "../../authors/bignutty.pagex.js"; @@ -22,6 +22,7 @@ export default { id: "playground", title: "Playground Test Article", created_at: Date.now(), + visibility_level: VoidcannonVisibilityLevel.HIDDEN, abstract: "Article to quickly run tests for all pagex markdown features. Abstract has a lot of filler and padding to test if css limits work as intended across all surfaces.", author_abstract: "i swear i only played this game for the plot", cta: "View Test Article!", diff --git a/src/content/authors/assets/labscore.webp b/src/content/authors/assets/labscore.webp new file mode 100644 index 0000000000000000000000000000000000000000..355986095807deca43a519281981b5a90f1cd966 GIT binary patch literal 5600 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 O(I@&hjSmd|ui-xmD~yEz literal 0 HcmV?d00001 diff --git a/src/content/authors/labsCoreMaintainers.pagex.js b/src/content/authors/labsCoreMaintainers.pagex.js new file mode 100644 index 0000000..16f4a46 --- /dev/null +++ b/src/content/authors/labsCoreMaintainers.pagex.js @@ -0,0 +1,31 @@ +import {PagexResourceTransformer} from "pagex"; +import {VoidcannonContentType, VoidcannonEmojiStyle, VoidcannonLinksIconType} from "voidcannon"; + +export default { + type: VoidcannonContentType.AUTHOR, + id: "labscore-maintainers", + name: "labsCore Maintainers", + avatar: { + _transform: PagexResourceTransformer.MEDIA, + path: "/content/authors/assets/labscore.webp" + }, + theme: { + partial: true, + colors: { + light: "#00F562", + dark: "#00F562", + } + }, + links: [ + { + label: "Discord", + url: "https://discord.gg/fwU68KBH5d", + icon: VoidcannonLinksIconType.DISCORD + }, + { + label: "GitLab", + url: "https://gitlab.com/bignutty/labscore", + icon: VoidcannonLinksIconType.GITLAB, + } + ] +} \ No newline at end of file diff --git a/src/content/editorial/home-debug/content.md b/src/content/editorial/home-debug/content.md new file mode 100644 index 0000000..fa69ee5 --- /dev/null +++ b/src/content/editorial/home-debug/content.md @@ -0,0 +1,13 @@ + + comic_bubble + The site (and content) are still heavily work-in-progress! + + +# Voidcannon + +Voidcannon is a modern blogging frontend build on pagex, a static site generator. + +This site exists as both a functional example of what pagex can do, and my personal +playground to write about topics that interest me. + + \ No newline at end of file diff --git a/src/content/editorial/home-debug/home-debug.pagex.js b/src/content/editorial/home-debug/home-debug.pagex.js new file mode 100644 index 0000000..02a4b6f --- /dev/null +++ b/src/content/editorial/home-debug/home-debug.pagex.js @@ -0,0 +1,89 @@ +import { + VoidcannonContentType, + VoidcannonSectionType +} from "voidcannon"; + +import {PagexResourceTransformer} from "pagex"; +import CollectionContentTransformer from "voidcannon/src/transformers/CollectionContent.transformer.js"; +import RecentContentTransformer from "voidcannon/src/transformers/RecentContent.transformer.js"; +import ContentByIdentifierTransformer from "voidcannon/src/transformers/ContentByIdentifier.transformer.js"; + +import playground from "../../articles/playground/playground.pagex.js"; +import playgroundP3 from "../../articles/playground-p3/playground-p3.pagex.js"; +import playgroundEmpty from "../../articles/playground-empty/playground-empty.pagex.js"; + +import recentArticles from "../recent-articles/recent-articles.pagex.js"; + +export default { + type: VoidcannonContentType.EDITORIAL, + id: "voidcannon-index-debug", + slug: "home-debug", + name: "Voidcannon Home", + description: "Voidcannon Home", + color: null, + sections: [ + { + type: VoidcannonSectionType.STORY_HERO, + content: { + _transform: ContentByIdentifierTransformer, + content_ids: [ + playground.id, + playgroundEmpty.id, + playgroundP3.id, + ], + // TODO: implement this + content_types: [ + VoidcannonContentType.ARTICLE + ] + } + }, + { + type: VoidcannonSectionType.EDITORIAL, + content: { + _transform: PagexResourceTransformer.MARKDOWN, + path: "./content.md" + } + }, + { + type: VoidcannonSectionType.CONTENT_GRID, + content: { + _transform: CollectionContentTransformer, + collection_id: "test" + }, + label: "Testing Articles", + icon: "forklift" + }, + { + type: VoidcannonSectionType.EDITORIAL, + content: { + _transform: PagexResourceTransformer.MARKDOWN, + content: "" + } + }, + { + type: VoidcannonSectionType.CONTENT_GRID, + content: { + _transform: RecentContentTransformer, + amount: 15 + }, + label: "Recent Articles", + icon: "history", + cta: { + label: "View All", + target: { + type: VoidcannonContentType.EDITORIAL, + id: recentArticles.id + }, + } + }, + { + type: VoidcannonSectionType.CAROUSEL, + content: { + _transform: CollectionContentTransformer, + collection_id: "featured" + }, + label: "Various Articles", + target: "collections/featured" + }, + ] +} \ No newline at end of file diff --git a/src/content/editorial/home/content.md b/src/content/editorial/home/content.md index fa69ee5..60a5cd4 100644 --- a/src/content/editorial/home/content.md +++ b/src/content/editorial/home/content.md @@ -1,13 +1,6 @@ +# blognutty + comic_bubble - The site (and content) are still heavily work-in-progress! - - -# Voidcannon - -Voidcannon is a modern blogging frontend build on pagex, a static site generator. - -This site exists as both a functional example of what pagex can do, and my personal -playground to write about topics that interest me. - - \ No newline at end of file + This site is still work-in-progress! + \ No newline at end of file diff --git a/src/content/editorial/home/home.pagex.js b/src/content/editorial/home/home.pagex.js index 69482b4..6c77d58 100644 --- a/src/content/editorial/home/home.pagex.js +++ b/src/content/editorial/home/home.pagex.js @@ -16,27 +16,12 @@ import recentArticles from "../recent-articles/recent-articles.pagex.js"; export default { type: VoidcannonContentType.EDITORIAL, - id: "voidcannon-index", + id: "blognutty-index", slug: "index", - name: "Voidcannon Home", - description: "Voidcannon Home", + name: "/home", + description: "blognutty home", color: null, sections: [ - { - type: VoidcannonSectionType.STORY_HERO, - content: { - _transform: ContentByIdentifierTransformer, - content_ids: [ - playground.id, - playgroundEmpty.id, - playgroundP3.id, - ], - // TODO: implement this - content_types: [ - VoidcannonContentType.ARTICLE - ] - } - }, { type: VoidcannonSectionType.EDITORIAL, content: { @@ -44,27 +29,11 @@ export default { path: "./content.md" } }, - { - type: VoidcannonSectionType.CONTENT_GRID, - content: { - _transform: CollectionContentTransformer, - collection_id: "test" - }, - label: "Testing Articles", - icon: "forklift" - }, - { - type: VoidcannonSectionType.EDITORIAL, - content: { - _transform: PagexResourceTransformer.MARKDOWN, - content: "" - } - }, { type: VoidcannonSectionType.CONTENT_GRID, content: { _transform: RecentContentTransformer, - amount: 15 + amount: 9 }, label: "Recent Articles", icon: "history", @@ -75,15 +44,6 @@ export default { id: recentArticles.id }, } - }, - { - type: VoidcannonSectionType.CAROUSEL, - content: { - _transform: CollectionContentTransformer, - collection_id: "featured" - }, - label: "Various Articles", - target: "collections/featured" - }, + } ] } \ No newline at end of file diff --git a/voidcannon b/voidcannon index d3eb751..dd03da6 160000 --- a/voidcannon +++ b/voidcannon @@ -1 +1 @@ -Subproject commit d3eb75154aa245d7f2009effeac18f2f215c33e7 +Subproject commit dd03da61adf27636d7fc1ce49b0fd16481f5c1cc