Update dependencies + temp. remove art, comms
This commit is contained in:
Generated
+1727
-9693
File diff suppressed because it is too large
Load Diff
+5
-9
@@ -15,16 +15,12 @@
|
|||||||
"astro": "astro"
|
"astro": "astro"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/mdx": "^5.0.3",
|
"@astrojs/mdx": "^7.0.5",
|
||||||
"@astrojs/rss": "^4.0.18",
|
"@astrojs/rss": "^4.0.19",
|
||||||
"@astrojs/sitemap": "^3.7.2",
|
"@astrojs/sitemap": "^3.7.3",
|
||||||
"astro": "^6.1.3",
|
"astro": "^7.1.6"
|
||||||
"better-auth": "^1.5.5",
|
|
||||||
"decap-cms-app": "^3.10.1",
|
|
||||||
"sharp": "^0.34.3"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^25.2.1",
|
"@types/node": "^26.1.2"
|
||||||
"astro-compress": "2.3.9"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,108 +0,0 @@
|
|||||||
# Use DecapBridge PKCE auth (required)
|
|
||||||
backend:
|
|
||||||
name: gitlab
|
|
||||||
repo: merrin2/my-website
|
|
||||||
branch: main
|
|
||||||
auth_type: pkce
|
|
||||||
base_url: https://auth.decapbridge.com
|
|
||||||
auth_endpoint: /sites/398abb39-6842-4b10-b57f-e69c47709e27/pkce
|
|
||||||
auth_token_endpoint: /sites/398abb39-6842-4b10-b57f-e69c47709e27/token
|
|
||||||
gateway_url: https://gateway.decapbridge.com
|
|
||||||
|
|
||||||
# See who did what (optional)
|
|
||||||
commit_messages:
|
|
||||||
create: Create {{collection}} “{{slug}}” - {{author-name}} <{{author-login}}> via DecapBridge
|
|
||||||
update: Update {{collection}} “{{slug}}” - {{author-name}} <{{author-login}}> via DecapBridge
|
|
||||||
delete: Delete {{collection}} “{{slug}}” - {{author-name}} <{{author-login}}> via DecapBridge
|
|
||||||
uploadMedia: Upload “{{path}}” - {{author-name}} <{{author-login}}> via DecapBridge
|
|
||||||
deleteMedia: Delete “{{path}}” - {{author-name}} <{{author-login}}> via DecapBridge
|
|
||||||
openAuthoring: Message {{message}} - {{author-name}} <{{author-login}}> via DecapBridge
|
|
||||||
|
|
||||||
# Enable PKCE fields (optional, recommended)
|
|
||||||
auth:
|
|
||||||
email_claim: email
|
|
||||||
first_name_claim: first_name
|
|
||||||
last_name_claim: last_name
|
|
||||||
avatar_url_claim: avatar_url
|
|
||||||
|
|
||||||
# Better Decap + Bridge logo (optional)
|
|
||||||
logo_url: https://decapbridge.com/decapcms-with-bridge.svg
|
|
||||||
|
|
||||||
# Add site links in Decap CMS (optional)
|
|
||||||
site_url: https://jackrabbits.gay
|
|
||||||
|
|
||||||
media_folder: static/media
|
|
||||||
public_folder: /media
|
|
||||||
|
|
||||||
collections:
|
|
||||||
- name: "apps"
|
|
||||||
label: "Apps"
|
|
||||||
folder: "src/content/apps"
|
|
||||||
create: true
|
|
||||||
fields:
|
|
||||||
- { label: "Title", name: "title", widget: "string" }
|
|
||||||
- { label: "Publish Date", name: "pubDate", widget: "datetime" }
|
|
||||||
- { label: "Adult", name: "adult", widget: "boolean", required: false }
|
|
||||||
- { label: "Description", name: "description", widget: "text", required: false }
|
|
||||||
- { label: "Body", name: "body", widget: "markdown", required: false }
|
|
||||||
|
|
||||||
- name: "commissions"
|
|
||||||
label: "Commissions"
|
|
||||||
folder: "src/content/commissions"
|
|
||||||
create: true
|
|
||||||
fields:
|
|
||||||
- { label: "Title", name: "title", widget: "string" }
|
|
||||||
- { label: "Publish Date", name: "pubDate", widget: "datetime" }
|
|
||||||
- { label: "Adult", name: "adult", widget: "boolean", required: false }
|
|
||||||
- { label: "Description", name: "description", widget: "text", required: false }
|
|
||||||
- { label: "Artist Name", name: "artistName", widget: "list", required: false, field: { label: "Name", name: "name", widget: "string" } }
|
|
||||||
- { label: "Artist URL", name: "artistUrl", widget: "list", required: false, field: { label: "URL", name: "url", widget: "string" } }
|
|
||||||
- { label: "Custom Source", name: "customSrc", widget: "string", required: false }
|
|
||||||
- { label: "Source Image", name: "src", widget: "image", required: false }
|
|
||||||
|
|
||||||
- name: "poems"
|
|
||||||
label: "Poems"
|
|
||||||
folder: "src/content/poems"
|
|
||||||
create: true
|
|
||||||
fields:
|
|
||||||
- { label: "Title", name: "title", widget: "string" }
|
|
||||||
- { label: "Publish Date", name: "pubDate", widget: "datetime" }
|
|
||||||
- { label: "Adult", name: "adult", widget: "boolean", required: false }
|
|
||||||
- { label: "Description", name: "description", widget: "text", required: false }
|
|
||||||
- { label: "Body", name: "body", widget: "markdown", required: false }
|
|
||||||
|
|
||||||
- name: "songs"
|
|
||||||
label: "Songs"
|
|
||||||
folder: "src/content/songs"
|
|
||||||
create: true
|
|
||||||
fields:
|
|
||||||
- { label: "Title", name: "title", widget: "string" }
|
|
||||||
- { label: "Publish Date", name: "pubDate", widget: "datetime" }
|
|
||||||
- { label: "Adult", name: "adult", widget: "boolean", required: false }
|
|
||||||
- { label: "Description", name: "description", widget: "text", required: false }
|
|
||||||
- { label: "Audio Source", name: "src", widget: "file", required: true }
|
|
||||||
|
|
||||||
- name: "stories"
|
|
||||||
label: "Stories"
|
|
||||||
folder: "src/content/stories"
|
|
||||||
create: true
|
|
||||||
fields:
|
|
||||||
- { label: "Title", name: "title", widget: "string" }
|
|
||||||
- { label: "Publish Date", name: "pubDate", widget: "datetime" }
|
|
||||||
- { label: "Adult", name: "adult", widget: "boolean", required: false }
|
|
||||||
- { label: "Description", name: "description", widget: "text", required: false }
|
|
||||||
- { label: "Body", name: "body", widget: "markdown", required: false }
|
|
||||||
|
|
||||||
- name: "visuals"
|
|
||||||
label: "Visuals"
|
|
||||||
folder: "src/content/visuals"
|
|
||||||
create: true
|
|
||||||
fields:
|
|
||||||
- { label: "Title", name: "title", widget: "string" }
|
|
||||||
- { label: "Publish Date", name: "pubDate", widget: "datetime" }
|
|
||||||
- { label: "Adult", name: "adult", widget: "boolean", required: false }
|
|
||||||
- { label: "Description", name: "description", widget: "text", required: false }
|
|
||||||
- { label: "Artist Name", name: "artistName", widget: "list", required: false, field: { label: "Name", name: "name", widget: "string" } }
|
|
||||||
- { label: "Artist URL", name: "artistUrl", widget: "list", required: false, field: { label: "URL", name: "url", widget: "string" } }
|
|
||||||
- { label: "Custom Source", name: "customSrc", widget: "string", required: false }
|
|
||||||
- { label: "Source Image", name: "src", widget: "image", required: false }
|
|
||||||
@@ -1,38 +1,38 @@
|
|||||||
import type { CollectionKey } from "astro:content";
|
import type { CollectionKey } from "astro:content";
|
||||||
import {
|
import {
|
||||||
APPS_URL,
|
APPS_URL,
|
||||||
COMMISSIONS_URL,
|
// COMMISSIONS_URL,
|
||||||
POEMS_URL,
|
POEMS_URL,
|
||||||
SONGS_URL,
|
SONGS_URL,
|
||||||
STORIES_URL,
|
STORIES_URL,
|
||||||
VISUAL_ART_URL,
|
// VISUAL_ART_URL,
|
||||||
} from "./urls";
|
} from "./urls";
|
||||||
|
|
||||||
export const keyUrlMap: { [key in CollectionKey]: string } = {
|
export const keyUrlMap: { [key in CollectionKey]: string } = {
|
||||||
apps: APPS_URL,
|
apps: APPS_URL,
|
||||||
commissions: COMMISSIONS_URL,
|
// commissions: COMMISSIONS_URL,
|
||||||
poems: POEMS_URL,
|
poems: POEMS_URL,
|
||||||
songs: SONGS_URL,
|
songs: SONGS_URL,
|
||||||
stories: STORIES_URL,
|
stories: STORIES_URL,
|
||||||
visuals: VISUAL_ART_URL,
|
// visuals: VISUAL_ART_URL,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const keyPageNameMap: { [key in CollectionKey]: string } = {
|
export const keyPageNameMap: { [key in CollectionKey]: string } = {
|
||||||
apps: "Apps",
|
apps: "Apps",
|
||||||
commissions: "Commissioned Art",
|
// commissions: "Commissioned Art",
|
||||||
poems: "Poems",
|
poems: "Poems",
|
||||||
songs: "Songs",
|
songs: "Songs",
|
||||||
stories: "Stories",
|
stories: "Stories",
|
||||||
visuals: "Visual Art",
|
// visuals: "Visual Art",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const keyTypeNameMap: { [key in CollectionKey]: string } = {
|
export const keyTypeNameMap: { [key in CollectionKey]: string } = {
|
||||||
apps: "App",
|
apps: "App",
|
||||||
commissions: "Commissioned Art",
|
// commissions: "Commissioned Art",
|
||||||
poems: "Poem",
|
poems: "Poem",
|
||||||
songs: "Song",
|
songs: "Song",
|
||||||
stories: "Story",
|
stories: "Story",
|
||||||
visuals: "Visual Art",
|
// visuals: "Visual Art",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const allCollectionKeys: CollectionKey[] = Object.keys(
|
export const allCollectionKeys: CollectionKey[] = Object.keys(
|
||||||
|
|||||||
+1
-1
@@ -7,5 +7,5 @@ export * from "./urls";
|
|||||||
export const noSubrouteCollections: CollectionKey[] = [
|
export const noSubrouteCollections: CollectionKey[] = [
|
||||||
"commissions",
|
"commissions",
|
||||||
"songs",
|
"songs",
|
||||||
"visuals",
|
// "visuals",
|
||||||
];
|
];
|
||||||
|
|||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
export const APPS_URL = "/apps";
|
export const APPS_URL = "/apps";
|
||||||
export const COMMISSIONS_URL = "/commissions";
|
// export const COMMISSIONS_URL = "/commissions";
|
||||||
export const POEMS_URL = "/poems";
|
export const POEMS_URL = "/poems";
|
||||||
export const SONGS_URL = "/songs";
|
export const SONGS_URL = "/songs";
|
||||||
export const STORIES_URL = "/stories";
|
export const STORIES_URL = "/stories";
|
||||||
export const VISUAL_ART_URL = "/visuals";
|
// export const VISUAL_ART_URL = "/visuals";
|
||||||
|
|
||||||
export const LIVE_APP_PATH = "/live";
|
export const LIVE_APP_PATH = "/live";
|
||||||
|
|||||||
@@ -25,28 +25,28 @@ export type PostProps = z.infer<typeof zodSchema>;
|
|||||||
|
|
||||||
export const collectionNames = [
|
export const collectionNames = [
|
||||||
"apps",
|
"apps",
|
||||||
"commissions",
|
// "commissions",
|
||||||
"poems",
|
"poems",
|
||||||
"songs",
|
"songs",
|
||||||
"stories",
|
"stories",
|
||||||
"visuals",
|
// "visuals",
|
||||||
];
|
];
|
||||||
|
|
||||||
const commonSchema = z.object({
|
const commonSchema = z.object({
|
||||||
...commonProps,
|
...commonProps,
|
||||||
});
|
});
|
||||||
|
|
||||||
const imageSchema = z.object({ ...imageProps });
|
// const imageSchema = z.object({ ...imageProps });
|
||||||
|
|
||||||
const appSchema = commonSchema;
|
const appSchema = commonSchema;
|
||||||
const commissionSchema = imageSchema;
|
// const commissionSchema = imageSchema;
|
||||||
const poemSchema = commonSchema;
|
const poemSchema = commonSchema;
|
||||||
const songSchema = z.object({
|
const songSchema = z.object({
|
||||||
...commonProps,
|
...commonProps,
|
||||||
src: z.string(),
|
src: z.string(),
|
||||||
});
|
});
|
||||||
const storySchema = commonSchema;
|
const storySchema = commonSchema;
|
||||||
const visualSchema = imageSchema;
|
// const visualSchema = imageSchema;
|
||||||
|
|
||||||
const getGlob = (name: string) =>
|
const getGlob = (name: string) =>
|
||||||
glob({ pattern: "**/*.md", base: `./src/content/${name}` });
|
glob({ pattern: "**/*.md", base: `./src/content/${name}` });
|
||||||
@@ -56,10 +56,10 @@ export const collections = {
|
|||||||
loader: getGlob("apps"),
|
loader: getGlob("apps"),
|
||||||
schema: appSchema,
|
schema: appSchema,
|
||||||
}),
|
}),
|
||||||
commissions: defineCollection({
|
/* commissions: defineCollection({
|
||||||
loader: getGlob("commissions"),
|
loader: getGlob("commissions"),
|
||||||
schema: commissionSchema,
|
schema: commissionSchema,
|
||||||
}),
|
}), */
|
||||||
poems: defineCollection({
|
poems: defineCollection({
|
||||||
loader: getGlob("poems"),
|
loader: getGlob("poems"),
|
||||||
schema: poemSchema,
|
schema: poemSchema,
|
||||||
@@ -72,8 +72,8 @@ export const collections = {
|
|||||||
loader: getGlob("stories"),
|
loader: getGlob("stories"),
|
||||||
schema: storySchema,
|
schema: storySchema,
|
||||||
}),
|
}),
|
||||||
visuals: defineCollection({
|
/* visuals: defineCollection({
|
||||||
loader: getGlob("visuals"),
|
loader: getGlob("visuals"),
|
||||||
schema: visualSchema,
|
schema: visualSchema,
|
||||||
}),
|
}), */
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -23,11 +23,11 @@ const itemsByYear = chunkItemsByYear(items as any);
|
|||||||
|
|
||||||
const typeComponentMap: { [key in CollectionKey]?: any } = {
|
const typeComponentMap: { [key in CollectionKey]?: any } = {
|
||||||
apps: GalleryWritingItem,
|
apps: GalleryWritingItem,
|
||||||
commissions: GalleryImageItem,
|
// commissions: GalleryImageItem,
|
||||||
poems: GalleryWritingItem,
|
poems: GalleryWritingItem,
|
||||||
songs: GalleryAudioItem,
|
songs: GalleryAudioItem,
|
||||||
stories: GalleryWritingItem,
|
stories: GalleryWritingItem,
|
||||||
visuals: GalleryImageItem,
|
// visuals: GalleryImageItem,
|
||||||
};
|
};
|
||||||
|
|
||||||
const ItemComponent = typeComponentMap[collection];
|
const ItemComponent = typeComponentMap[collection];
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ export async function getStaticPaths() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const { collection } = Astro.params as { collection: CollectionKey };
|
const { collection } = Astro.params as { collection: CollectionKey };
|
||||||
const inlineGalleries: CollectionKey[] = ["commissions", "visuals"];
|
// const inlineGalleries: CollectionKey[] = ["commissions", "visuals"];
|
||||||
const showInline = inlineGalleries.includes(collection);
|
// const showInline = inlineGalleries.includes(collection);
|
||||||
---
|
---
|
||||||
|
|
||||||
<GalleryLayout collection={collection} showInline={showInline} />
|
<GalleryLayout collection={collection} showInline={true} />
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta name="robots" content="noindex" />
|
|
||||||
<link href="/admin/config.yml" type="text/yaml" rel="cms-config-url" />
|
|
||||||
<title>Content Manager</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<script src="https://unpkg.com/decap-cms@^3.1.2/dist/decap-cms.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
Reference in New Issue
Block a user