content: lc-eos
voidcannon: implement visibility_level for content, fixes and tweaks
This commit is contained in:
@@ -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 |
34
src/content/articles/labscore-deprecation-notice/content.md
Normal file
34
src/content/articles/labscore-deprecation-notice/content.md
Normal 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>
|
||||
@@ -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]
|
||||
}
|
||||
@@ -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]
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
},
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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!",
|
||||
|
||||
BIN
src/content/authors/assets/labscore.webp
Normal file
BIN
src/content/authors/assets/labscore.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.5 KiB |
31
src/content/authors/labsCoreMaintainers.pagex.js
Normal file
31
src/content/authors/labsCoreMaintainers.pagex.js
Normal 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,
|
||||
}
|
||||
]
|
||||
}
|
||||
13
src/content/editorial/home-debug/content.md
Normal file
13
src/content/editorial/home-debug/content.md
Normal 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>
|
||||
89
src/content/editorial/home-debug/home-debug.pagex.js
Normal file
89
src/content/editorial/home-debug/home-debug.pagex.js
Normal 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"
|
||||
},
|
||||
]
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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"
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
||||
Submodule voidcannon updated: d3eb75154a...dd03da61ad
Reference in New Issue
Block a user