content: lc-eos

voidcannon: implement visibility_level for content, fixes and tweaks
This commit is contained in:
bignutty
2025-11-08 14:50:57 +01:00
parent c0cdffea32
commit fcc71f1f93
17 changed files with 240 additions and 64 deletions

View File

@@ -1,7 +1,7 @@
import {PagexTemplateType} from "pagex";
export default {
id: "voidcannon",
id: "blognutty",
site_config: {
title: "voidcannon-dev"
},

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -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.
<voidcannon-cta layout="button">
<md-icon slot="icon">help</md-icon>
For any further questions, feel free to reach out.
<md-text-button href="https://discord.gg/fwU68KBH5d" target="_blank" slot="button">labsCore Discord</md-text-button>
</voidcannon-cta>

View File

@@ -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]
}

View File

@@ -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]
}

View File

@@ -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,

View File

@@ -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
},

View File

@@ -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",

View File

@@ -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: {

View File

@@ -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!",

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -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,
}
]
}

View File

@@ -0,0 +1,13 @@
<voidcannon-cta>
<md-icon slot="icon">comic_bubble</md-icon>
The site (and content) are still heavily work-in-progress!
</voidcannon-cta>
# 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.
<gm3-wavy-divider></gm3-wavy-divider>

View File

@@ -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: "<gm3-wavy-divider></gm3-wavy-divider>"
}
},
{
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"
},
]
}

View File

@@ -1,13 +1,6 @@
# blognutty
<voidcannon-cta>
<md-icon slot="icon">comic_bubble</md-icon>
The site (and content) are still heavily work-in-progress!
</voidcannon-cta>
# 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.
<gm3-wavy-divider></gm3-wavy-divider>
This site is still work-in-progress!
</voidcannon-cta>

View File

@@ -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: "<gm3-wavy-divider></gm3-wavy-divider>"
}
},
{
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"
},
}
]
}