generated from autonomic-cooperative/astro-payload-template
Compare commits
7 Commits
da435c8fc1
...
36b5ab7cd2
Author | SHA1 | Date | |
---|---|---|---|
36b5ab7cd2 | |||
03c14f0ca7 | |||
421394a794 | |||
a8362fa88f | |||
467b4bb0ad | |||
7234cef7e1 | |||
7ba1f78721 |
@ -9,6 +9,9 @@ export default defineConfig({
|
|||||||
build: {
|
build: {
|
||||||
inlineStylesheets: "auto",
|
inlineStylesheets: "auto",
|
||||||
},
|
},
|
||||||
|
server: {
|
||||||
|
port: 3000
|
||||||
|
},
|
||||||
integrations: [
|
integrations: [
|
||||||
tailwind({
|
tailwind({
|
||||||
config: {
|
config: {
|
||||||
|
@ -6,11 +6,11 @@ const { content } = Astro.props;
|
|||||||
const contentArray = getContentArray(content);
|
const contentArray = getContentArray(content);
|
||||||
---
|
---
|
||||||
|
|
||||||
<div>
|
<article>
|
||||||
{
|
{
|
||||||
contentArray.map((value) => {
|
contentArray.map((value) => {
|
||||||
if (typeof value === "string") {
|
if (typeof value === "string") {
|
||||||
return <article set:html={value} />;
|
return <section set:html={value} />;
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
<Image
|
<Image
|
||||||
@ -18,10 +18,10 @@ const contentArray = getContentArray(content);
|
|||||||
width={value.width}
|
width={value.width}
|
||||||
height={value.height}
|
height={value.height}
|
||||||
format="webp"
|
format="webp"
|
||||||
alt="hallo"
|
alt={value.alt}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
</div>
|
</article>
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
---
|
---
|
||||||
const links = [
|
const links = [
|
||||||
{
|
|
||||||
label: "Home",
|
|
||||||
link: "/home"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: "About",
|
label: "About",
|
||||||
link: "/about"
|
link: "/about"
|
||||||
@ -22,9 +18,11 @@ const links = [
|
|||||||
|
|
||||||
<header class="flex justify-between py-6">
|
<header class="flex justify-between py-6">
|
||||||
<div>
|
<div>
|
||||||
|
<a href="/">
|
||||||
<span class="font-extrabold">
|
<span class="font-extrabold">
|
||||||
Logo
|
Logo
|
||||||
</span>
|
</span>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<ul class="flex gap-4 font-bold">
|
<ul class="flex gap-4 font-bold">
|
||||||
|
19
astro/src/global.css
Normal file
19
astro/src/global.css
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
.autonomic {
|
||||||
|
/* Palette */
|
||||||
|
/* RGBA instead of hex so that opacity will work */
|
||||||
|
--absolute-white: 255, 255, 255;
|
||||||
|
--white: 243, 252, 248;
|
||||||
|
--shocking-pink: 253, 0, 159;
|
||||||
|
--shamrock-green: 0, 198, 88;
|
||||||
|
--bubblegum-pink: 255, 133, 203;
|
||||||
|
--bright-orange: 255, 96, 21;
|
||||||
|
|
||||||
|
/* Use these in tailwind.config.cjs */
|
||||||
|
--primary: var(--shocking-pink);
|
||||||
|
--secondary: var(--shamrock-green);
|
||||||
|
--tertiary: var(--bright-orange);
|
||||||
|
|
||||||
|
--text: var(--shocking-pink);
|
||||||
|
--textInverted: var(--absolute-white);
|
||||||
|
--background: var(--white);
|
||||||
|
}
|
@ -4,6 +4,7 @@ export interface Props {
|
|||||||
title: string;
|
title: string;
|
||||||
}
|
}
|
||||||
const { title } = Astro.props;
|
const { title } = Astro.props;
|
||||||
|
import "@/global.css"
|
||||||
---
|
---
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
@ -30,7 +31,7 @@ const { title } = Astro.props;
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body class="min-h-screen flex flex-col mx-auto max-w-7xl bg-gray px-6 py-8 font-plex text-gray-200">
|
<body class="autonomic min-h-screen flex flex-col mx-auto max-w-7xl px-6 py-8 font-plex text-primary bg-background">
|
||||||
<slot />
|
<slot />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -7,7 +7,7 @@ const posts = await getPosts();
|
|||||||
|
|
||||||
<ContentLayout title="Paystro">
|
<ContentLayout title="Paystro">
|
||||||
<main class="" >
|
<main class="" >
|
||||||
<h1 class="font-bold text-5xl">Paystro</h1>
|
<h1 class="font-bold text-5xl text-">Paystro</h1>
|
||||||
<p class="mt-3 text-lg">
|
<p class="mt-3 text-lg">
|
||||||
Paystro is a pre-configured setup for Astro and Payloadcms that makes it
|
Paystro is a pre-configured setup for Astro and Payloadcms that makes it
|
||||||
easy to get started with building your website. With Paystro, you'll have
|
easy to get started with building your website. With Paystro, you'll have
|
||||||
@ -26,7 +26,7 @@ const posts = await getPosts();
|
|||||||
posts.length > 0 ? (
|
posts.length > 0 ? (
|
||||||
posts.map((post) => (
|
posts.map((post) => (
|
||||||
<a href={`/posts/${post.id}/`}>
|
<a href={`/posts/${post.id}/`}>
|
||||||
<article class="text-gray bg-gray-light px-5 py-3 rounded-md shadow-md w-64 text-center hover:-translate-y-1 transition-transform">
|
<article class="bg-secondary text-textInverted px-5 py-3 rounded-md shadow-md w-64 text-center hover:-translate-y-1 transition-transform">
|
||||||
<h3 class="font-bold text-lg">{post.title}</h3>
|
<h3 class="font-bold text-lg">{post.title}</h3>
|
||||||
{post.publishedDate && (
|
{post.publishedDate && (
|
||||||
<p>
|
<p>
|
||||||
@ -42,4 +42,4 @@ const posts = await getPosts();
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</CLayout>
|
</ContentLayout>
|
||||||
|
@ -20,11 +20,10 @@ const post = id && (await getPost(id));
|
|||||||
post ? (
|
post ? (
|
||||||
<ContentLayout title={`Paystro | ${post.title!}`}>
|
<ContentLayout title={`Paystro | ${post.title!}`}>
|
||||||
<div class="space-y-3 my-3">
|
<div class="space-y-3 my-3">
|
||||||
<a href="/">BACK</a>
|
|
||||||
<h1 class="font-bold text-5xl">{post.title}</h1>
|
<h1 class="font-bold text-5xl">{post.title}</h1>
|
||||||
{post.content && <Content content={post.content} />}
|
{post.content && <Content content={post.content} />}
|
||||||
</div>
|
</div>
|
||||||
</CLayout>
|
</ContentLayout>
|
||||||
) : (
|
) : (
|
||||||
<div>404</div>
|
<div>404</div>
|
||||||
)
|
)
|
||||||
|
@ -12,12 +12,13 @@ export const getContentArray = (content: any) => {
|
|||||||
src: node.value.filename,
|
src: node.value.filename,
|
||||||
width: `${node.value.width}`,
|
width: `${node.value.width}`,
|
||||||
height: `${node.value.height}`,
|
height: `${node.value.height}`,
|
||||||
|
alt: `${node.value.alt}`,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
}).replaceAll("<p></p>", "<p> </p>");
|
}).replaceAll("<p></p>", "<p> </p>");
|
||||||
const htmlImageArray: (
|
const htmlImageArray: (
|
||||||
| string
|
| string
|
||||||
| { src: string; width: number; height: number }
|
| { src: string; width: number; height: number, alt: string }
|
||||||
)[] = [];
|
)[] = [];
|
||||||
let lastIndex = 0;
|
let lastIndex = 0;
|
||||||
while (true) {
|
while (true) {
|
||||||
@ -33,6 +34,7 @@ export const getContentArray = (content: any) => {
|
|||||||
src: imgTag.match(/src="(.*?)"/)![1],
|
src: imgTag.match(/src="(.*?)"/)![1],
|
||||||
width: +imgTag.match(/width="(.*?)"/)![1],
|
width: +imgTag.match(/width="(.*?)"/)![1],
|
||||||
height: +imgTag.match(/height="(.*?)"/)![1],
|
height: +imgTag.match(/height="(.*?)"/)![1],
|
||||||
|
alt: imgTag.match(/alt="(.*?)"/)![1],
|
||||||
};
|
};
|
||||||
htmlImageArray.push(remainingHtml, imgObject);
|
htmlImageArray.push(remainingHtml, imgObject);
|
||||||
lastIndex = imgEndIndex;
|
lastIndex = imgEndIndex;
|
||||||
|
@ -7,11 +7,12 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
extend: {
|
extend: {
|
||||||
colors: {
|
colors: {
|
||||||
gray: {
|
primary: "rgba(var(--primary))",
|
||||||
DEFAULT: "#111111",
|
secondary: "rgba(var(--secondary))",
|
||||||
light: "#888888",
|
tertiary: "rgba(var(--tertiary))",
|
||||||
dark: "#222222",
|
text: "rgba(var(--text))",
|
||||||
},
|
textInverted: "rgba(var(--textInverted))",
|
||||||
|
background: "rgba(var(--background))",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
"version": "1.2",
|
"version": "1.2",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "docker compose up",
|
"dev": "docker compose up",
|
||||||
"stop": "docker compose down"
|
"stop": "docker compose down",
|
||||||
|
"dev:build": "docker compose up --build"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ export const Media: CollectionConfig = {
|
|||||||
{
|
{
|
||||||
name: "alt",
|
name: "alt",
|
||||||
type: "text",
|
type: "text",
|
||||||
|
required: true
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
@ -38,10 +38,7 @@ const Posts: CollectionConfig = {
|
|||||||
{
|
{
|
||||||
name: "title",
|
name: "title",
|
||||||
type: "text",
|
type: "text",
|
||||||
},
|
required: true
|
||||||
{
|
|
||||||
name: "hallo",
|
|
||||||
type: "text",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "publishedDate",
|
name: "publishedDate",
|
||||||
@ -59,7 +56,7 @@ const Posts: CollectionConfig = {
|
|||||||
media: {
|
media: {
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: "imagel",
|
name: "image",
|
||||||
type: "upload",
|
type: "upload",
|
||||||
relationTo: "media",
|
relationTo: "media",
|
||||||
required: true,
|
required: true,
|
||||||
|
Reference in New Issue
Block a user