All the astro deployments for demo's and main website have been relocated to their own repo's due to to many different projects trying to deploy at a time was causing to many issues.

Also removed sharp dep from brutal theme as its unneeded now
This commit is contained in:
Adam Matthiesen 2024-02-12 05:56:01 -08:00
parent a788e9dd7b
commit ea3e6aba6d
94 changed files with 201 additions and 8232 deletions

View File

@ -5,8 +5,11 @@ Want to Chat? Join our [Discord](https://discord.gg/u7NZqUyeAR)
For a full always up to date documentation please checkout [Our Website](https://astro-ghostcms.xyz)
- [Default Theme Demo](https://demo.astro-ghostcms.xyz)
- [Catppuccin Dark Demo](https://catppuccindark-demo.astro-ghostcms.xyz/)
- [Github Repo](https://github.com/MatthiesenXYZ/demo-astroghostcms-themedefault)
- [Catppuccin Demo](https://catppuccindark-demo.astro-ghostcms.xyz/)
- [Github Repo](https://github.com/MatthiesenXYZ/demo-astroghostcms-catppuccin)
- [Brutal by Elian Demo](https://brutal-demo.astro-ghostcms.xyz)
- [Github Repo](https://github.com/MatthiesenXYZ/demo-astroghostcms-brutalbyelian)
## Quick Start
@ -25,8 +28,6 @@ This repo is structured as a `pnpm` monorepo. All of our packages can be found
In this Repo you will find the Following:
- `demo`: [Main Demo Site](https://demo.astro-ghostcms.xyz)
- `www`: [Main Public Site](https://astro-ghostcms.xyz)
- `playground`: Development and Testing
- `packages/`:
- `create-astro-ghostcms`: CLI Utility to quickly deploy new Astro-GhostCMS projects.

View File

@ -1,2 +0,0 @@
CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48
CONTENT_API_URL=https://ghostdemo.matthiesen.xyz

View File

@ -1,4 +0,0 @@
{
"recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": []
}

View File

@ -1,11 +0,0 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "./node_modules/.bin/astro dev",
"name": "Development server",
"request": "launch",
"type": "node-terminal"
}
]
}

View File

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2024 Matthiesen XYZ
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,11 +0,0 @@
# Astro-GhostCMS Demo Template
[Demo](https://catppuccindark-demo.astro-ghostcms.xyz/)
This Repo is a Demo Website for the [@matthiesenxyz/astro-ghostcms](https://github.com/MatthiesenXYZ/astro-ghostcms) integraion.
### For more information Check our website
[Astro-GhostCMS.xyz](https://astro-ghostcms.xyz)

View File

@ -1,14 +0,0 @@
import { defineConfig } from "astro/config";
import ghostcms from "@matthiesenxyz/astro-ghostcms";
import tailwind from "@astrojs/tailwind";
// https://astro.build/config
export default defineConfig({
site: "https://catppuccindark-demo.astro-ghostcms.xyz/",
integrations: [tailwind(),
ghostcms({
theme: "@matthiesenxyz/astro-ghostcms-catppuccin",
ghostURL: "https://ghostdemo.matthiesen.xyz",
})
],
});

View File

@ -1,23 +0,0 @@
{
"name": "catppuccin-dark-demo",
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro check && astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"astro": "^4.3.2",
"@matthiesenxyz/astro-ghostcms": "^3.2.0",
"@matthiesenxyz/astro-ghostcms-catppuccin": "0.0.3",
"@astrojs/tailwind": "^5.1.0",
"tailwindcss": "^3.3.5"
},
"devDependencies": {
"@astrojs/check": "^0.4.1",
"typescript": "^5.3.3"
}
}

View File

@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
<style>
path { fill: #000; }
@media (prefers-color-scheme: dark) {
path { fill: #FFF; }
}
</style>
</svg>

Before

Width:  |  Height:  |  Size: 749 B

View File

@ -1,9 +0,0 @@
/// <reference types="astro/client" />
interface ImportMetaEnv {
readonly CONTENT_API_KEY: string
readonly CONTENT_API_URL: string
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}

View File

@ -1,4 +0,0 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
presets: [require('@matthiesenxyz/astro-ghostcms-catppuccin/macchiato')]
};

View File

@ -1,4 +0,0 @@
{
"extends": "astro/tsconfigs/strict",
"exclude": ["dist"]
}

View File

@ -1,2 +0,0 @@
CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48
CONTENT_API_URL=https://ghostdemo.matthiesen.xyz

View File

@ -1,2 +0,0 @@
CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48
CONTENT_API_URL=https://ghostdemo.matthiesen.xyz

View File

@ -1,4 +0,0 @@
{
"recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": []
}

View File

@ -1,11 +0,0 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "./node_modules/.bin/astro dev",
"name": "Development server",
"request": "launch",
"type": "node-terminal"
}
]
}

View File

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2024 Matthiesen XYZ
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,13 +0,0 @@
# Astro-GhostCMS Demo Template
![Vercel](https://vercelbadge.vercel.app/api/matthiesenxyz/astro-ghostcms)
This Repo is a Demo Website for the [@matthiesenxyz/astro-ghostcms](https://github.com/MatthiesenXYZ/astro-ghostcms) integraion.
- For a live preview goto [Demo.Astro-GhostCMS.xyz](https://demo.astro-ghostcms.xyz)
- To see the Current Lighthouse test that is ran every deployment goto [Test.Demo.Astro-GhostCMS.xyz](https://test.demo.astro-ghostcms.xyz)
### For more information Check our website
[Astro-GhostCMS.xyz](https://astro-ghostcms.xyz)

View File

@ -1,10 +0,0 @@
import { defineConfig } from 'astro/config';
import GhostCMS from "@matthiesenxyz/astro-ghostcms";
// https://astro.build/config
export default defineConfig({
site: "https://demo.astro-ghostcms.xyz/",
integrations: [GhostCMS({
ghostURL: 'https://ghostdemo.matthiesen.xyz'
})]
});

View File

@ -1,21 +0,0 @@
{
"name": "demo",
"type": "module",
"version": "0.0.2",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro check && astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"astro": "^4.3.2",
"@matthiesenxyz/astro-ghostcms": "3.2.1",
"@matthiesenxyz/astro-ghostcms-theme-default": "0.1.8"
},
"devDependencies": {
"@astrojs/check": "^0.4.1",
"typescript": "^5.3.3"
}
}

View File

@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
<style>
path { fill: #000; }
@media (prefers-color-scheme: dark) {
path { fill: #FFF; }
}
</style>
</svg>

Before

Width:  |  Height:  |  Size: 749 B

9
demo/src/env.d.ts vendored
View File

@ -1,9 +0,0 @@
/// <reference types="astro/client" />
interface ImportMetaEnv {
readonly CONTENT_API_KEY: string
readonly CONTENT_API_URL: string
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}

View File

@ -1,3 +0,0 @@
{
"extends": "astro/tsconfigs/strict"
}

View File

@ -9,9 +9,6 @@
"lint": "biome check .",
"lint:fix": "biome check --apply .",
"playground:dev": "pnpm --filter playground dev",
"www:dev": "pnpm --filter www dev",
"demo:dev": "pnpm --filter demo dev",
"cat:dev": "pnpm --filter catppuccin-dark-demo dev",
"api:test": "pnpm --filter astro-ghostcms test",
"api:test:watch": "pnpm --filter astro-ghostcms test:watch",
"api:test:coverage": "pnpm --filter astro-ghostcms test:coverage",

View File

@ -1,7 +1,7 @@
{
"name": "@matthiesenxyz/astro-ghostcms-brutalbyelian",
"description": "ElianCodes Brutal theme modified to work with Astro-GhostCMS",
"version": "0.0.2",
"version": "0.0.3",
"homepage": "https://astro-ghostcms.xyz/",
"type": "module",
"license": "MIT",
@ -51,7 +51,6 @@
"eslint-plugin-jsx-a11y": "^6.8.0",
"prettier-plugin-astro": "^0.13.0",
"prettier": "^3.2.5",
"sharp": "^0.33.2",
"@matthiesenxyz/astro-ghostcms": "workspace:*"
},
"dependencies": {

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,3 @@
packages:
- "packages/*"
- "playground"
- "www"
- "demo"
- "brutal-demo"
- "catppuccin-dark-demo"
- "playground"

21
www/.gitignore vendored
View File

@ -1,21 +0,0 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store

View File

@ -1 +0,0 @@
Repo for Astro-ghostcms.xyz website

View File

@ -1,50 +0,0 @@
import { defineConfig } from 'astro/config';
import fs from 'node:fs';
import { ExpressiveCodeTheme } from '@astrojs/starlight/expressive-code';
import starlight from "@astrojs/starlight";
const houstonFile = './houston-vscode.jsonc';
const houston = fs.readFileSync(
new URL(houstonFile, import.meta.url),'utf-8');
const houstonTheme = ExpressiveCodeTheme.fromJSONString(houston);
// https://astro.build/config
export default defineConfig({
site: 'https://astro-ghostcms.xyz',
integrations: [
starlight({
title: 'Astro-GhostCMS',
logo: {
src: './src/assets/spaceghost.png'
},
favicon: 'spaceghost.png',
customCss: [ './src/styles/starlight.css' ],
expressiveCode: { themes: [ houstonTheme ] },
social: {
github: 'https://github.com/MatthiesenXYZ/astro-ghostcms',
},
sidebar: [
{ label: 'Docs Home', link: '/docs/' },
{ label: 'Introduction', items: [
{ label: 'Getting Started', link: '/docs/introduction/getting-started' },
{ label: 'Integration Mode', badge: { variant: 'default', text: 'Easy' }, items: [
{ label: 'Quick Install', link: '/docs/introduction/integration/quick' },
{ label: 'Manual Install', link: '/docs/introduction/integration/manual' },
{ label: 'Configuration Options', link: '/docs/introduction/integration/config', }, ], },
{ label: 'API Only Mode', badge: { variant: 'default', text: 'Advanced' }, items: [
{ label: 'Install', link: '/docs/introduction/api/install' },
{ label: 'Basic API Usage', link: '/docs/introduction/api/usage' },
{ label: 'Templates', link: '/docs/introduction/api/templates', badge: { text: 'DIY', variant: 'note' }, } ], }, ], },
{ label: 'Customization', items: [
{ label: 'Default Theme Usage', autogenerate: { directory: 'docs/customization/theme-default'}, },
]},
{ label: 'Themes', badge: { text: 'NPM-Module', variant: 'tip' }, items: [
{ label: 'Catppuccin Theme', autogenerate: { directory: 'docs/themes/catppuccin'}, },
{ label: 'Brutal by Elian Theme', badge: { text: 'NEW', variant: 'success' }, autogenerate: { directory: 'docs/themes/brutalbyelian'}, },
] },
{ label: 'Tutorials', autogenerate: { directory: 'docs/tutorials' }, },
{ label: 'Reference', autogenerate: { directory: 'docs/reference' }, },
],
}),
],
});

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +0,0 @@
{
"name": "www",
"type": "module",
"license": "MIT",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro check && astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"@astrojs/check": "^0.4.1",
"@astrojs/starlight": "^0.17.2",
"astro": "^4.3.2",
"astro-font": "^0.0.77",
"sass": "^1.69.5",
"sharp": "^0.33.2",
"typescript": "^5.3.3"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@ -1,7 +0,0 @@
# Run this command and follow the prompt!
npx @matthiesenxyz/create-astro-ghostcms
# Want to pass arguments through to the command? YOU CAN!
# `--install` : Sets Install Dependencies to 'true'
# `--git` : Initiates git Repo
# `--pkg-manager` : Specify your Package manager
# ( i.e. `npm`, `yarn` | DEFAULT: `pnpm` )

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

View File

@ -1,58 +0,0 @@
---
import { AstroFont } from 'astro-font';
import { ViewTransitions } from 'astro:transitions';
import { SiteTitle, SiteDescription } from '../consts';
import spaceghost from '../assets/spaceghost.png'
const canonicalURL = new URL(Astro.url.pathname, Astro.site)
const { title = SiteTitle, name = SiteTitle, description = SiteDescription } = Astro.props;
---
<!-- Page Metadata -->
<link rel="canonical" href={canonicalURL} />
<link rel="icon" type="image/svg" href={spaceghost.src} />
<meta name="description" content={description} />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<!-- OpenGraph Tags -->
<meta property="og:title" content={title} />
<meta property="og:url" content={canonicalURL} />
<meta property="og:locale" content='en' />
<meta property="og:description" content={description} />
<meta property="og:site_name" content={name} />
<meta property="og:image" content={Astro.url+'og.png'} />
<!-- Twitter Tags -->
<meta name="twitter:card" content='summary_large_image' />
<meta name="twitter:title" content={title} />
<meta name="twitter:description" content={description} />
<meta name="twitter:image" content={Astro.url+'og.png'} />
<meta name="twitter:image:alt" content="og_alt" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<AstroFont
config={[
{
src: [],
name: "Lato",
preload: true,
display: "swap",
selector: "body",
fallback: "sans-serif",
googleFontsURL: 'https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap',
},
{
src: [],
preload: false,
display: "swap",
fallback: "sans-serif",
name: "Source Code Pro",
cssVariable: "font-source-code",
googleFontsURL: 'https://fonts.googleapis.com/css2?family=Source+Code+Pro&display=swap',
},
]}
/>
<ViewTransitions />

View File

@ -1,12 +0,0 @@
---
import '../styles/global.scss';
---
<footer>
<p>© MatthiesenXYZ 2024</p>
<div class="footer_links">
<a href="/archive">Previous Release Archives</a>
<a href="https://github.com/MatthiesenXYZ/astro-ghostcms">GitHub</a>
<a href="https://www.buymeacoffee.com/adammatthiesen/membership">Become a Supporter</a>
</div>
</footer>

View File

@ -1,25 +0,0 @@
---
import type { HTMLAttributes } from 'astro/types';
type Props = HTMLAttributes<'time'> & {
date: Date;
};
const { date, ...attrs } = Astro.props;
---
<time datetime={date.toISOString()} {...attrs}>
{
date.toLocaleDateString('en-us', {
year: 'numeric',
month: 'short',
day: 'numeric',
})
}
</time>
<style>
time {
display: block;
}
</style>

View File

@ -1,4 +0,0 @@
---
---
<div>Astro-GhostCMS is independently maintained and not provided by Ghost or <a href="https://astro.build">Astro</a>, Ghost is a trademark of <a href="https://ghost.org">The Ghost Foundation</a>.</div>

View File

@ -1,32 +0,0 @@
---
import '../styles/global.scss';
import { SiteTitle } from '../consts';
import spaceghost from '../assets/spaceghost.png'
---
<header>
<nav>
<h2 id="site_title">
<a href="/">
<img src={spaceghost.src} alt="logo" width={64}/>
{SiteTitle}
</a>
</h2>
<div class="links">
<a href="https://demo.astro-ghostcms.xyz" target="_blank"><i class="bi bi-folder-symlink-fill"> Live Demo</i></a>
<a href="https://test.demo.astro-ghostcms.xyz" target="_blank"><i class="bi bi-flag-fill"> Unlighthouse</i></a>
<a href="/docs" target=""><i aria-label="Docs" class="bi bi-journal-code"> Docs</i></a>
<a href="https://github.com/matthiesenxyz/astro-ghostcms" target="_blank"><i class="bi bi-github"> GitHub</i></a>
<a href="https://discord.gg/e4yFbGHA72" target="_blank"><i class="bi bi-discord"> Discord</i></a>
</div>
</nav>
</header>
<style>
.links a {
text-decoration: none;
}
.filter-white{
filter: invert(100%) sepia(0%) saturate(3179%) hue-rotate(226deg) brightness(118%) contrast(101%);
}
</style>

View File

@ -1,15 +0,0 @@
---
import { Code } from '@astrojs/starlight/components';
import quickstart from "../assets/quickstart.sh?raw"
const highlights = ['npm', 'yarn', 'pnpm', 2];
---
<Code
title='Astro-GhostCMS Quickstart'
lang={'sh'}
class='quickstart'
code={quickstart}
mark={highlights}
/>

View File

@ -1,85 +0,0 @@
---
import type { ImageMetadata } from 'astro';
type Image = {
src: string | ImageMetadata;
alt: string;
};
type SEOMetadata = {
name: string;
title: string;
description: string;
image?: Image | undefined;
canonicalURL?: URL | string | undefined;
locale?: string;
};
type OpenGraph = Partial<SEOMetadata> & {
type?: string;
};
type Twitter = Partial<SEOMetadata> & {
handle?: string;
card?: 'summary' | 'summary_large_image';
};
export type Props = SEOMetadata & {
og?: OpenGraph;
twitter?: Twitter;
};
const {
name,
title,
description,
image,
locale = 'en',
canonicalURL = new URL(Astro.url.pathname, Astro.site),
} = Astro.props;
const og = {
name,
title,
description,
canonicalURL,
image,
locale,
type: 'website',
...(Astro.props.og ?? {}),
} satisfies OpenGraph;
const twitter = {
name,
title,
description,
canonicalURL,
image,
locale,
card: 'summary_large_image',
...Astro.props.twitter,
};
function normalizeImageUrl(image: string | ImageMetadata) {
return typeof image === 'string' ? image : image.src;
}
---
<!-- Page Metadata -->
<link rel="canonical" href={canonicalURL} />
<meta name="description" content={description} />
<!-- OpenGraph Tags -->
<meta property="og:title" content={og.title} />
<meta property="og:type" content={og.type} />
<meta property="og:url" content={canonicalURL} />
<meta property="og:locale" content={og.locale} />
<meta property="og:description" content={og.description} />
<meta property="og:site_name" content={og.name} />
<!-- Twitter Tags -->
<meta name="twitter:card" content={twitter.card} />
<meta name="twitter:site" content={twitter.handle} />
<meta name="twitter:title" content={twitter.title} />
<meta name="twitter:description" content={twitter.description} />
{twitter.image && <meta name="twitter:image" content={normalizeImageUrl(twitter.image.src)} />}
{twitter.image && <meta name="twitter:image:alt" content={twitter.image.alt} />}

View File

@ -1,5 +0,0 @@
// Place any global data in this file.
// You can import this data from anywhere in your site by using the `import` keyword.
export const SiteTitle = 'Astro-GhostCMS';
export const SiteDescription = 'Easily migrate your Ghost site to Astro';

View File

@ -1,48 +0,0 @@
---
title: 'Introducing Astro-GhostCMS.xyz!'
date: '01-17-2024'
versionNumber: '2.0.5'
description: 'This is the First Release posted to our new website!'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## Introducing Astro-GhostCMS.xyz!
Greetings, Astro-GhostCMS users! We're happy to announce the launch of our new website astro-ghostcms.xyz a central location to get all your relevent updates regarding our Astro-GhostCMS integration!
### Welcome to Astro-GhostCMS
- [Live Demo](https://demo.astro-ghostcms.xyz/) of the Astro-GhostCMS integration in action!
- [Live Demo's Repo](https://github.com/MatthiesenXYZ/astro-ghostcms-demo) for an example of how the setup looks.
Astro minimum Version: **Astro v4.0**
This Integration is 2 parts. Firstly, there is the API portion that uses the `@tryghost/content-api` to create the link between astro and GhostCMS. From there we move to the Second Part, which is a theme pre-programmed to pull ALL of its data from GhostCMS iteself instead of storing any data locally outside of Build.
- *This package contains a independent copy of the tryghost content-api.js that is used to establish the connection so this package dose not depend on `@tryghost/content-api` package.*
- If you are looking for a more Customizable option please check [astro-ghostcms-basetheme](https://github.com/MatthiesenXYZ/astro-ghostcms-basetheme)
- This project is not setup for SSR in Integration mode. As such is will most likely not function properly in that mode. You will need to build your own project around the API or customize the *basetheme* linked above.
### Quick Start : Astro Integration Mode
In this mode, the addon will not be just an API, but will be a full Route takeover, there is plans to add more themes in time, but for now there is only the base Casper theme based on Ghost's main Theme.
## Astro Add Installation
```sh
# For fresh Install
npm create astro@latest
# Create Empty Install with standard typescript
# Then Delete entire `pages` folder under `/src/`
npx astro add @matthiesenxyz/astro-ghostcms
```
#### Dont forget to set your environment Variables!
You must also create 2 environment variables in a `.env` file with the following(*Below info is for DEMO Purposes. Please generate your own API_KEY for your Ghost install.*):
```ansi frame="code" title=".env"
CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48
CONTENT_API_URL=https://ghostdemo.matthiesen.xyz
```

View File

@ -1,13 +0,0 @@
---
title: 'New Feature: Theming (BETA)'
date: '01-18-2024'
versionNumber: '2.0.8'
description: 'New Feature Alert! Theming!'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## New Feature: Themes (BETA)!
As of posting this there is now a new undocumented feature. Themes! this feature will allow the end-user the option of changing how their website's astro-ghostcms install looks and functons! I will be building a Theme Skeleton and then documentation for this new feature. Stay tuned for more updates as this is a beta feature!

View File

@ -1,20 +0,0 @@
---
title: 'Updates & Bug Fixes'
date: '01-20-2024 08:00'
versionNumber: '2.1.0'
description: 'Updates & Bug Fixes'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## Updates
This patch resolved some outstanding issues with the api integration itself. There had been some issues with types being imported and not working. that is now solved.
RSS Implentation is successful, Integration now checks that .env file exisits with the required values set.
New Features in progress:
- sitemap integration
- robots integration
- rss styling

View File

@ -1,22 +0,0 @@
---
title: 'Updates & Bug Fixes'
date: '01-20-2024 11:00'
versionNumber: '2.1.3'
description: 'Updates & Bug Fixes'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## Bug Fixes & New Config Options
### Fixes:
This patch resolved the issues that were causing sitemap, and robots to not load fully. Issue now resolved.
### New:
This patch also creates new Configuration Options for Sitemap and RobotsTxt allowing the user to modify the integrated plugins instead of having to run them independently from this Integration. More info on the Docs.
#### Features in progress:
- rss styling

View File

@ -1,22 +0,0 @@
---
title: 'IntelliSense Docs Integration!'
date: '01-20-2024 14:40'
versionNumber: '2.1.5'
description: 'IntelliSense Docs Integration!'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## IntelliSense Docs Integration!
### Fixes:
Unnoted v2.1.4 was supposed to add jsDocs to our IntelliSense but that caused all sorts of errors at first. But we are glad to announce, IT IS NOW WORKING! now while you are trying to setup your config it will give you some help!
### New:
- IntelliSense jsDoc Integration(Resources right in your code editor)!
#### Features in progress:
- rss styling

View File

@ -1,23 +0,0 @@
---
title: 'More Features! and a 404 page!'
date: '01-21-2024 01:20'
versionNumber: '2.1.7'
description: 'More Features! and a 404 page!'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## More Features! and a 404 page!
### Fixes:
v2.1.6 & v2.1.7 include updates to include a new 404 page route, as well clean up a bunch of internal code.
### New:
- New options that allow users to disable both console logging and the default route injection
#### Features in progress:
- rss styling

View File

@ -1,17 +0,0 @@
---
title: 'Minior Bug fixes & some code cleanup'
date: '01-21-2024 07:00'
versionNumber: '2.1.8'
description: 'Minior Bug fixes & some code cleanup'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## Minior Bug fixes & some code cleanup
Nothing Major in this update, i went through and cleaned up and reorganized some files and code. No breaking changes no bugs.
#### Features in progress:
- rss styling

View File

@ -1,35 +0,0 @@
import { defineCollection, z } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';
const releases = defineCollection({
schema: ({ image }) =>
z.object({
title: z.string(),
description: z.string(),
versionNumber: z.string(),
image: z.object({
src: image(),
alt: z.string(),
}).optional(),
date: z.date({ coerce: true }),
}),
});
const archivedreleases = defineCollection({
schema: ({ image }) =>
z.object({
title: z.string(),
description: z.string(),
versionNumber: z.string(),
image: z.object({
src: image(),
alt: z.string(),
}).optional(),
date: z.date({ coerce: true }),
}),
});
export const collections = {
docs: defineCollection({ schema: docsSchema() }),
releases, archivedreleases,
};

View File

@ -1,24 +0,0 @@
---
title: Enable Darkmode
description: How to enable Dark-Mode on the default theme
---
*Requires `@matthiesenxyz/astro-ghostcms` version 0.1.1 and above*
To enable darkmode on your Astro-Ghost install for the basic theme all you have to do is add a Code_Injection to the Site Header. Dont know how to do that? No Problem! Just look below
- To get started Login to your GhostCMS Admin Dashboard.
- Click the Settings Icon on the bottom left next to your Avatar.
- Scroll down to `Avanced` > `Code injection` and click Open
- In the Site header tab paste the following:
```
<script>document.documentElement.classList.add('dark-mode');</script>
<script>
document.addEventListener('astro:after-swap', () => {
document.documentElement.classList.add('dark-mode');
});
</script>
```
The Above script will enable darkmode, and make it persist with Astro View Transitions.

View File

@ -1,11 +0,0 @@
---
title: Welcome to the Docs
description: Learn more about Astro-GhostCMS - Docs built on Starlight
---
Demo site status:
![Vercel](https://vercelbadge.vercel.app/api/matthiesenxyz/astro-ghostcms)
Welcome to the Astro-GhostCMS Docs! Powered by Starlight & Astro.build!
Here you will find a document reference for the Astro-GhostCMS Integration & API

View File

@ -1,40 +0,0 @@
---
title: API Only Mode - Install
description: API Only Mode - Install
---
# API Only Install
In this mode the integration will not deploy routes at all. you will have to build your own website to utilize the exported functions listed below.
```sh
npm i @matthiesenxyz/astro-ghostcms
```
You must also create 2 environment variables in a `.env` file with the following:
```ansi frame="code" title=".env"
CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48
CONTENT_API_URL=https://ghostdemo.matthiesen.xyz
```
***When you deploy your install dont forget to set the above ENVIRONMENT VARIABLES!***
Then Change your astro config option in `astro.config.ts` to looks like this:
```ts frame="code" title="astro.config.ts"
import { defineConfig } from "astro/config";
import GhostCMS from '@matthiesenxyz/astro-ghostcms';
export default defineConfig({
site: "https://YOUR-DOMAIN-HERE.com",
// THIS WILL DISABLE DEFAULT ROUTE INJECT
integrations: [
GhostCMS({
// You can either set your ghostURL here or as a `.env`/environment variable
ghostURL: "https://ghostdemo.matthiesen.xyz",
disableRouteInjection: true,
})
],
});
```

View File

@ -1,8 +0,0 @@
---
title: API Mode - Templates
description: API Mode - Templates
---
## We now have templates to get started with!
- [Basic Starter Kit](https://github.com/MatthiesenXYZ/astro-ghostcms-basicstarterkit): This is a Public Template repo that users are free to copy and modify to their hearts content.

View File

@ -1,35 +0,0 @@
---
title: API Only Mode - Basic Usage
description: API Only Mode - Basic Usage
---
## Manual Function Usage Examples:
### getBlogPosts
```astro frame="code" title="getBlogPosts()"
---
import { getPosts } from '@matthiesenxyz/astro-ghostcms/api';
const dateOptions = {year:"numeric",month:"long",day:"numeric"}
const posts = await getPosts()
---
{ posts?.map((post) => (
<a href={`/${post.slug}`}>
<article class="">
<Image
src={post.feature_image}
alt={post.title}
width={post.feature_image.width}
class=""/>
<h2 class="">{post.title}</h2>
<p class="">{post.excerpt}</p>
<p class="">
{new Date(post.published_at).toLocaleDateString( "en-US",dateOptions )}
</p>
</article>
</a>
))
}
```

View File

@ -1,16 +0,0 @@
---
title: Getting Started with Astro-GhostCMS
description: Getting Started
---
- [Live Demo](https://demo.astro-ghostcms.xyz/) of the Astro-GhostCMS integration in action!
- [Live Demo - Unlighthouse Test](https://test.demo.astro-ghostcms.xyz) for a Automatically updated Lighthouse test from every deploy!
- [Live Demo's Repo](https://github.com/MatthiesenXYZ/astro-ghostcms/tree/main/demo) for an example of how the setup looks.
Astro minimum Version: **Astro v4.0**
This Integration is 2 parts. Firstly, there is the API portion that uses the `@tsghost/core-api` to create the link between astro and GhostCMS. From there we move to the Second Part, which is a theme pre-programmed to pull ALL of its data from GhostCMS iteself instead of storing any data locally outside of Build.
- If you are looking for a more Customizable option please check [astro-ghostcms-basetheme](https://github.com/MatthiesenXYZ/astro-ghostcms-basetheme)
- The default theme is not setup for SSR in Integration mode. As such is will most likely not function properly in that mode. You will need to build your own project around the API or customize the *basetheme* linked above.

View File

@ -1,58 +0,0 @@
---
title: Integration Mode - Configuration Options
description: Integration Mode - Configuration Options
---
### This is still a *BETA* Feature
Theme config option in `astro.config.ts` looks like this:
```ts frame="code" title="astro.config.ts"
import { defineConfig } from "astro/config";
import GhostCMS from '@matthiesenxyz/astro-ghostcms';
export default defineConfig({
site: "https://YOUR-DOMAIN-HERE.com",
integrations: [
GhostCMS({
// You can either set your ghostURL here or as a `.env`/environment variable
ghostURL: "https://ghostdemo.matthiesen.xyz",
// Disables default 404 page route
disable404: false,
// Disables default RSS page route and @astrojs/rss integration
disableRSS: false,
// Disables default satori OpenGraph generation
disableSatoriOG: false,
// *OPTIONAL* THIS Option allows the user to disable default route
// injections, disabling the default layout and theme all together.
// Allowing the user to still use integration features while building
// off of the included API functions
disableRouteInjection: false, // DEFAULT VALUE
// *OPTIONAL* Setting this to true will disable the extra info logs
disableConsoleOutput: false, // DEFAULT VALUE
// *OPTIONAL* THIS IS THE DEFAULT VALUE
theme: '@matthiesenxyz/astro-ghostcms-theme-default',
// THIS IS TO SHOW SUPPORTED FEATURES FOR MORE INFO SEE
// npm:@astrojs/sitemap package README
sitemap: {
customPages: // OPTIONAL - string[]
entryLimit: // OPTIONAL - number
}
// THIS IS TO SHOW SUPPORTED FEATURES FOR MORE INFO SEE
// npm:astro-robots-txt package README
robotstxt: {
host: // OPTIONAL - string
sitemap: // OPTIONAL - string
sitemapBaseFileName: // OPTIONAL - string
policy: { // OPTIONAL
userAgent: // REQUIRED IF POLICY IS PRESENT - string
allow: // OPTIONAL - string
disallow: //OPTIONAL - string
cleanParam: //OPTIONAL - string
crawlDelay: //OPTIONAL - number
}
}
}),
],
});
```

View File

@ -1,62 +0,0 @@
---
title: Integration Mode - Manual Install
description: Integration Mode - Manual Install
---
## Install
```sh
# For fresh Install
npm create astro@latest
# Create Empty Install with standard typescript
# Then Delete entire `pages` folder under `/src/`
# Then run one of the following:
# Astro Quick mode
npx astro add @matthiesenxyz/astro-ghostcms
# Manual Method
npm i @matthiesenxyz/astro-ghostcms
```
Then set your `astro.config.ts` to look like this:
```ts frame="code" title="astro.config.ts"
import { defineConfig } from "astro/config";
import GhostCMS from '@matthiesenxyz/astro-ghostcms';
// https://astro.build/config
export default defineConfig({
site: "https://YOUR-DOMAIN-HERE.com"
integrations: [GhostCMS({
// You can either set your ghostURL here or as a `.env`/environment variable
// THIS WILL TAKE PRIORITY
ghostURL: "https://ghostdemo.matthiesen.xyz",
})],
});
```
## Setup `.env` variables
```ansi frame="code" title=".env"
CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48
CONTENT_API_URL=https://ghostdemo.matthiesen.xyz
```
***When you deploy your install dont forget to set the above ENVIRONMENT VARIABLES!***
## Created Routes
The routes are the same as a standard Ghost Blog so you can migrate to Astro easily.
| Route | Content |
| --------------------- | ----------------------------------------- |
| `/` | Homepage with recents/features Blog Posts |
| `/404` | 404 Page |
| `/[slug]` | Post or Page |
| `/author/[slug]` | Author page with related posts |
| `/authors` | All the authors |
| `/tag[slug]` | Tag page with related posts |
| `/tags` | All the tags |
| `/archives/[...page]` | All the posts, paginated |
| `/rss.xml` | All the posts, in a FEED |

View File

@ -1,35 +0,0 @@
---
title: Integration Mode - Quick Install
description: Integration Mode - Quick Install
---
```sh title="Simple"
# Run this command and follow the prompt!
npx @matthiesenxyz/create-astro-ghostcms
# Want to pass arguments through to the command? YOU CAN!
# `--install` : Sets Install Dependencies to 'true'
# `--git` : Initiates git Repo
# `--pkg-manager` : Specify your Package manager(i.e. npm, yarn | DEFAULT: pnpm)
```
```sh title="Advanced"
npx @matthiesenxyz/create-astro-ghostcms <template> <project_directory> --git --install
```
***When you deploy your install dont forget to set your ENVIRONMENT VARIABLES!***
## Created Routes
The routes are the same as a standard Ghost Blog so you can migrate to Astro easily.
| Route | Content |
| --------------------- | ----------------------------------------- |
| `/` | Homepage with recents/features Blog Posts |
| `/404` | 404 Page |
| `/[slug]` | Post or Page |
| `/author/[slug]` | Author page with related posts |
| `/authors` | All the authors |
| `/tag[slug]` | Tag page with related posts |
| `/tags` | All the tags |
| `/archives/[...page]` | All the posts, paginated |
| `/rss.xml` | All the posts, in a FEED |

View File

@ -1,205 +0,0 @@
---
title: Ghost Content API References
description: Ghost Content API References
---
- [Main Content API Docs (ghost.org)](https://ghost.org/docs/content-api/)
## Example of Posts Output
```json frame="code" title="Posts"
{
"posts": [
{
"slug": "welcome-short",
"id": "5c7ece47da174000c0c5c6d7",
"uuid": "3a033ce7-9e2d-4b3b-a9ef-76887efacc7f",
"title": "Welcome",
"html": "<p>👋 Welcome, it's great to have you here.</p>",
"comment_id": "5c7ece47da174000c0c5c6d7",
"feature_image": "https://casper.ghost.org/v2.0.0/images/welcome-to-ghost.jpg",
"feature_image_alt": null,
"feature_image_caption": null,
"featured": false,
"meta_title": null,
"meta_description": null,
"created_at": "2019-03-05T19:30:15.000+00:00",
"updated_at": "2019-03-26T19:45:31.000+00:00",
"published_at": "2012-11-27T15:30:00.000+00:00",
"custom_excerpt": "Welcome, it's great to have you here.",
"codeinjection_head": null,
"codeinjection_foot": null,
"og_image": null,
"og_title": null,
"og_description": null,
"twitter_image": null,
"twitter_title": null,
"twitter_description": null,
"custom_template": null,
"canonical_url": null,
"authors": [
{
"id": "5951f5fca366002ebd5dbef7",
"name": "Ghost",
"slug": "ghost",
"profile_image": "https://demo.ghost.io/content/images/2017/07/ghost-icon.png",
"cover_image": null,
"bio": "The professional publishing platform",
"website": "https://ghost.org",
"location": null,
"facebook": "ghost",
"twitter": "@tryghost",
"meta_title": null,
"meta_description": null,
"url": "https://demo.ghost.io/author/ghost/"
}
],
"tags": [
{
"id": "59799bbd6ebb2f00243a33db",
"name": "Getting Started",
"slug": "getting-started",
"description": null,
"feature_image": null,
"visibility": "public",
"meta_title": null,
"meta_description": null,
"url": "https://demo.ghost.io/tag/getting-started/"
}
],
"primary_author": {
"id": "5951f5fca366002ebd5dbef7",
"name": "Ghost",
"slug": "ghost",
"profile_image": "https://demo.ghost.io/content/images/2017/07/ghost-icon.png",
"cover_image": null,
"bio": "The professional publishing platform",
"website": "https://ghost.org",
"location": null,
"facebook": "ghost",
"twitter": "@tryghost",
"meta_title": null,
"meta_description": null,
"url": "https://demo.ghost.io/author/ghost/"
},
"primary_tag": {
"id": "59799bbd6ebb2f00243a33db",
"name": "Getting Started",
"slug": "getting-started",
"description": null,
"feature_image": null,
"visibility": "public",
"meta_title": null,
"meta_description": null,
"url": "https://demo.ghost.io/tag/getting-started/"
},
"url": "https://demo.ghost.io/welcome-short/",
"excerpt": "Welcome, it's great to have you here."
}
]
}
```
## Example of Tags Output
```json frame="code" title="Tags"
{
"tags": [
{
"slug": "getting-started",
"id": "5ddc9063c35e7700383b27e0",
"name": "Getting Started",
"description": null,
"feature_image": null,
"visibility": "public",
"meta_title": null,
"meta_description": null,
"og_image": null,
"og_title": null,
"og_description": null,
"twitter_image": null,
"twitter_title": null,
"twitter_description": null,
"codeinjection_head": null,
"codeinjection_foot": null,
"canonical_url": null,
"accent_color": null,
"url": "https://docs.ghost.io/tag/getting-started/"
}
]
}
```
## Example of Authors Output
```json frame="code" title="Authors"
{
"authors": [
{
"slug": "cameron",
"id": "5ddc9b9510d8970038255d02",
"name": "Cameron Almeida",
"profile_image": "https://docs.ghost.io/content/images/2019/03/1c2f492a-a5d0-4d2d-b350-cdcdebc7e413.jpg",
"cover_image": null,
"bio": "Editor at large.",
"website": "https://example.com",
"location": "Cape Town",
"facebook": "example",
"twitter": "@example",
"meta_title": null,
"meta_description": null,
"url": "https://docs.ghost.io/author/cameron/"
}
]
}
```
## Example of Settings Output
```json frame="code" title="Settings"
{
"settings": {
"title": "Ghost",
"description": "The professional publishing platform",
"logo": "https://docs.ghost.io/content/images/2014/09/Ghost-Transparent-for-DARK-BG.png",
"icon": "https://docs.ghost.io/content/images/2017/07/favicon.png",
"accent_color": null,
"cover_image": "https://docs.ghost.io/content/images/2019/10/publication-cover.png",
"facebook": "ghost",
"twitter": "@tryghost",
"lang": "en",
"timezone": "Etc/UTC",
"codeinjection_head": null,
"codeinjection_foot": "<script src=\"//rum-static.pingdom.net/pa-5d8850cd3a70310008000482.js\" async></script>",
"navigation": [
{
"label": "Home",
"url": "/"
},
{
"label": "About",
"url": "/about/"
},
{
"label": "Getting Started",
"url": "/tag/getting-started/"
},
{
"label": "Try Ghost",
"url": "https://ghost.org"
}
],
"secondary_navigation": [],
"meta_title": null,
"meta_description": null,
"og_image": null,
"og_title": null,
"og_description": null,
"twitter_image": null,
"twitter_title": null,
"twitter_description": null,
"members_support_address": "noreply@docs.ghost.io",
"url": "https://docs.ghost.io/"
}
}
```

View File

@ -1,9 +0,0 @@
---
title: Unlighthouse Report Lists
description: Unlighthouse Report Lists
---
Below you will find a list of links to different lighthouse reports generated using [Unlighthouse](https://unlighthouse.dev)'s CI utility
- [Main Demo](https://test.demo.astro-ghostcms.xyz)
- [Base Theme Demo](https://test.basetheme-demo.astro-ghostcms.xyz)

View File

@ -1,8 +0,0 @@
---
title: Quick Install
description: How to install the Brutal by Elian Theme
---
[Demo](https://brutal-demo.astro-ghostcms.xyz/)
## Coming Soon

View File

@ -1,80 +0,0 @@
---
title: Manual Install
description: How to install the Brutal by Elian Theme
---
[Demo](https://brutal-demo.astro-ghostcms.xyz/)
## Install
```sh
# For fresh Install
npm create astro@latest
# Create Empty Install with standard typescript
# Then Delete entire `pages` folder under `/src/`
# Then run the following:
npx astro add @matthiesenxyz/astro-ghostcms
npm i @matthiesenxyz/astro-ghostcms/astro-ghostcms-brutalbyelian @unocss/astro
npm i -D @unocss/reset postcss unocss
```
Then set your `astro.config.ts` to look like this:
```ts frame="code" title="astro.config.ts"
import { defineConfig } from "astro/config";
import ghostcms from "@matthiesenxyz/astro-ghostcms";
import UnoCSS from 'unocss/astro';
// https://astro.build/config
export default defineConfig({
site: "https://YOURDOMAINHERE.com/",
trailingSlash: 'ignore',
integrations: [
UnoCSS({ injectReset: true }),
ghostcms({
theme: "@matthiesenxyz/astro-ghostcms-catppuccin",
ghostURL: "https://ghostdemo.matthiesen.xyz",
})
],
});
```
## Setup UnoCSS
```ts frame="code" title="uno.config.ts"
import brutalTheme from '@matthiesenxyz/astro-ghostcms-brutalbyelian';
import { defineConfig } from 'unocss';
export default defineConfig({
presets: [ brutalTheme() ],
});
```
## Setup `.env` variables
```ansi frame="code" title=".env"
CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48
```
***When you deploy your install dont forget to set the above ENVIRONMENT VARIABLES!***
## Created Routes
The routes are the same as a standard Ghost Blog so you can migrate to Astro easily.
| Route | Content |
| --------------------- | ----------------------------------------- |
| `/` | Homepage with recents/features Blog Posts |
| `/404` | 404 Page |
| `/[slug]` | Post or Page |
| `/author/[slug]` | Author page with related posts |
| `/authors` | All the authors |
| `/tag[slug]` | Tag page with related posts |
| `/tags` | All the tags |
| `/archives/[...page]` | All the posts, paginated |
| `/rss.xml` | All the posts, in a FEED |

View File

@ -1,92 +0,0 @@
---
title: Manual Install
description: How to install the Catppuccin theme
---
[Demo](https://catppuccindark-demo.astro-ghostcms.xyz/)
## Install
```sh
# For fresh Install
npm create astro@latest
# Create Empty Install with standard typescript
# Then Delete entire `pages` folder under `/src/`
# Then run the following:
npx astro add @matthiesenxyz/astro-ghostcms tailwind
npm i @matthiesenxyz/astro-ghostcms/astro-ghostcms-catppuccin
```
Then set your `astro.config.ts` to look like this:
```ts frame="code" title="astro.config.ts"
import { defineConfig } from "astro/config";
import ghostcms from "@matthiesenxyz/astro-ghostcms";
import tailwind from "@astrojs/tailwind";
// https://astro.build/config
export default defineConfig({
site: "https://YOURDOMAINHERE.com/",
integrations: [tailwind(),
ghostcms({
theme: "@matthiesenxyz/astro-ghostcms-catppuccin",
ghostURL: "https://ghostdemo.matthiesen.xyz",
})
],
});
```
## Setup Tailwind
There are multiple color options with Catppuccin. This theme defaults to one of the 3 darker themes. The themes in order are
- Latte (Light)
- Frappe (Light Dark)
- Macchiato (Dark Light) *DEFAULT*
- Mocha (Darkest)
### To use Default options just call the theme's Node Module
```ts frame="code" title="tailwind.config.cjs"
/** @type {import('tailwindcss').Config} */
module.exports = {
presets: [require('@matthiesenxyz/astro-ghostcms-catppuccin')]
};
```
### To use Specific options call the theme's Node Module `/` the color option lowercase
```ts frame="code" title="tailwind.config.cjs"
/** @type {import('tailwindcss').Config} */
module.exports = {
// OTHER OPTIONS ARE: `/frappe`, `/macchiato`, or `/mocha`
presets: [require('@matthiesenxyz/astro-ghostcms-catppuccin/latte')]
};
```
## Setup `.env` variables
```ansi frame="code" title=".env"
CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48
```
***When you deploy your install dont forget to set the above ENVIRONMENT VARIABLES!***
## Created Routes
The routes are the same as a standard Ghost Blog so you can migrate to Astro easily.
| Route | Content |
| --------------------- | ----------------------------------------- |
| `/` | Homepage with recents/features Blog Posts |
| `/404` | 404 Page |
| `/[slug]` | Post or Page |
| `/author/[slug]` | Author page with related posts |
| `/authors` | All the authors |
| `/tag[slug]` | Tag page with related posts |
| `/tags` | All the tags |
| `/archives/[...page]` | All the posts, paginated |
| `/rss.xml` | All the posts, in a FEED |

View File

@ -1,12 +0,0 @@
---
title: Quick Install
description: How to install the Catppuccin Dark theme
---
[Demo](https://catppuccindark-demo.astro-ghostcms.xyz/)
### To Quickly get started with this theme just run the following command
```sh
npx @matthiesenxyz/create-astro-ghostcms catppuccin
```

View File

@ -1,13 +0,0 @@
---
title: 'We now have automated Lighthouse Reports with Unlighthouse!'
date: '01-19-2024'
versionNumber: 'POST'
description: 'New Feature Alert! Theming!'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## We now have automated Lighthouse Reports with Unlighthouse!!
Hello! Our Main Demo site now autogenerates a Lighthouse Report every deployment! To see this test at any point just goto [test.demo.astro-ghostcms.xyz](https://test.demo.astro-ghostcms.xyz) eventually the goal will be to have a `test.*` domain for each of the themes as well to be able to demonstrate lighthouse scores for each of our inhouse projects!

View File

@ -1,15 +0,0 @@
---
title: 'We now have a DIY Starter Kit!'
date: '01-26-2024'
versionNumber: 'POST'
description: 'We now have a DIY Starter Kit!'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## We now have a DIY Starter Kit!
As of the posting of this message, we now have a Template Repo, for those who wish to create a custom frontend and not use one of our themes. This repo allows you to take a exisiting working project and modify it freely.
To get started checkout the [Repo on Github](https://github.com/MatthiesenXYZ/astro-ghostcms-basicstarterkit)

View File

@ -1,13 +0,0 @@
---
title: 'New create-astro-ghostcms CLI Utility'
date: '01-28-2024'
versionNumber: 'POST'
description: 'New create-astro-ghostcms CLI Utility'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## We now have a CLI Utility to quickly deploy new projects!
Wow, after many hours of tinkering and trying to figure this out I have finally completed `@matthiesenxyz/create-astro-ghostcms` a `clack` based CLI Utility to auto install our project with default variables set.

View File

@ -1,13 +0,0 @@
---
title: 'Updated Docs, and New Theme!'
date: '02-10-2024'
versionNumber: 'POST'
description: 'Updated Docs, and New Theme!'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
## Updated Docs, and a New Theme!
We now have an updated Docs for our integration. As well as we have brought the Brutal Theme by Elian.Codes in to our Integration as a usable theme!

View File

@ -1,29 +0,0 @@
---
title: 'v3 NEW API BACKEND!!!'
date: '01-23-2024 06:30'
versionNumber: '3.0.6'
description: 'v3 NEW API BACKEND!!!'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
# v3 Update - NEW API
So this was needed from the beginning due to the way the `@tryghost/content-api` works, we have now switched to the `@ts-ghost/core-api` with our own Content-API running on top. I am thrilled to announce that it is now up and running and working! and our demo is already updated.
### New Stuff
- Converted Github Repo into a Monorepo to hold all of Astro-ghostxyz related content.
- Migrated from `@tryghost/content-api` to `@ts-ghost/core-api`.
- Updated the Theme to use the new API
- Moved theme into its own NPM package to prepare for the future plans of more themes!
- Resolved all github workflow issues so i can now do everything i was doing before
### Planned Additions
- Skeleton Theme - DIY KIT
### NOTICE
Version 3.0.6 and above is not compatible with previous version of this project.

View File

@ -1,21 +0,0 @@
---
title: 'v3.1.0 Stable'
date: '01-24-2024 19:00'
versionNumber: '3.1.0'
description: 'v3.1.0 Stable'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
# v3.1.0+ Stable
As of Version 3.1.0 this project is considered stable. All workflows have been figured out. And at this point we will be focusing on working on new features and quality of life updates. If you feel you have something to contribute to make our codebase better please feel free to open an issue on [GitHub](https://github.com/matthiesenxyz/astro-ghostcms) or send a email to [issues@astro-ghostcms.xyz](mailto:issues@astro-ghostcms.xyz) which will automattically create the issue for you!
### New Stuff
- Nothing "new" in this release. Just some code cleanup and dependency upgrades.
### Planned Additions
- Skeleton Theme - DIY KIT

View File

@ -1,21 +0,0 @@
---
title: 'v3.1.1 - Dark Mode'
date: '01-25-2024 01:00'
versionNumber: '3.1.1'
description: 'v3.1.1 - Dark Mode'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
# v3.1.1 Dark Mode
Woot we added darkmode to our theme!
### New Stuff
- Dark Mode, To enable check the docs!
### Planned Additions
- Skeleton Theme - DIY KIT

View File

@ -1,21 +0,0 @@
---
title: 'v3.1.4'
date: '01-25-2024 23:00'
versionNumber: '3.1.4'
description: 'v3.1.4'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
# v3.1.4
Implimented Testing suites, and a bunch of Code Cleanup
### New Stuff
- Vitest implementation for testing the API before new version releases.
### Planned Additions
- Skeleton Theme - DIY KIT

View File

@ -1,21 +0,0 @@
---
title: 'v3.1.5'
date: '01-26-2024 05:50'
versionNumber: '3.1.5'
description: 'v3.1.5'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
# v3.1.5
Implimented More Tests, and a bunch of Code Cleanup, and some new config options!
### New Stuff
- New Config options! Check the docs!
### Planned Additions
- Skeleton Theme - DIY KIT

View File

@ -1,17 +0,0 @@
---
title: 'v3.1.7 - Satori OG Integration to add Auto OpenGraph Generation'
date: '01-30-2024 05:50'
versionNumber: '3.1.7'
description: 'v3.1.7 - Satori OG Integration to add Auto OpenGraph Generation'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
# v3.1.7 - Satori OG Integration to add Auto OpenGraph Generation
Implimented Satori to generate open-graph images for each route automatically!
### New Stuff
- Satori!

View File

@ -1,23 +0,0 @@
---
title: 'v3.2.1 - RSS Stylesheets & Some code cleanup'
date: '02-05-2024 00:00'
versionNumber: '3.2.1'
description: 'v3.2.1 - RSS Stylesheets & Some code cleanup'
#image:
# src: '../../assets/starlog-placeholder-2.jpg'
# alt: 'The full Astro logo.'
---
# v3.2.1 - RSS Stylesheets & Some code cleanup
We now have Rss Stylesheet to make the RSS xml to look better than just a plain XML format, and some code cleanup and better logging.
### New Stuff
- RSS Stylesheets
- Better Logs
- Code Cleanup and Fixes
### Changes since 3.1.7
- Bumb Depenedency Versions and fix a small issue with Satori.

2
www/src/env.d.ts vendored
View File

@ -1,2 +0,0 @@
/// <reference path="../.astro/types.d.ts" />
/// <reference types="astro/client" />

View File

@ -1,41 +0,0 @@
---
import type { CollectionEntry } from 'astro:content';
import BaseHead from '../components/BaseHead.astro';
import FormattedDate from '../components/FormattedDate.astro';
import Header from '../components/Header.astro';
import Footer from '../components/Footer.astro';
import { SiteTitle } from '../consts';
type Props = {
arrelease: CollectionEntry<'archivedreleases'>;
};
const { arrelease } = Astro.props;
---
<!doctype html>
<html lang="en">
<head>
<title>{arrelease.data.versionNumber} | {SiteTitle}</title>
<BaseHead
title={arrelease.data.title}
description={arrelease.data.description}
image={arrelease.data.image}
/>
</head><body>
<div class="glow"></div>
<Header />
<div class="post single" transition:persist transition:name="post">
<div class="version_wrapper">
<div class="version_info">
<div class="version_number">{arrelease.data.versionNumber}</div>
<FormattedDate class="date" date={arrelease.data.date} />
</div>
</div>
<div class="content">
<slot />
</div>
</div>
<Footer />
</body>
</html>

View File

@ -1,23 +0,0 @@
---
import BaseHead from '../components/BaseHead.astro';
import Header from '../components/Header.astro';
import Footer from '../components/Footer.astro';
import { SiteDescription, SiteTitle } from '../consts';
import GhostAstroFooter from '../components/GhostAstroFooter.astro';
---
<!doctype html>
<meta charset="utf-8" />
<html lang="en">
<head>
<title>{SiteTitle} </title>
<BaseHead {SiteTitle} {SiteDescription}/>
<body>
<div class="glow"></div>
<Header />
<slot />
<GhostAstroFooter />
<Footer />
</body>
</head>
</html>

View File

@ -1,41 +0,0 @@
---
import type { CollectionEntry } from 'astro:content';
import BaseHead from '../components/BaseHead.astro';
import FormattedDate from '../components/FormattedDate.astro';
import Header from '../components/Header.astro';
import Footer from '../components/Footer.astro';
import { SiteTitle } from '../consts';
type Props = {
release: CollectionEntry<'releases'>;
};
const { release } = Astro.props;
---
<!doctype html>
<html lang="en">
<head>
<title>{release.data.versionNumber} | {SiteTitle}</title>
<BaseHead
title={release.data.title}
description={release.data.description}
image={release.data.image}
/>
</head><body>
<div class="glow"></div>
<Header />
<div class="post single" transition:persist transition:name="post">
<div class="version_wrapper">
<div class="version_info">
<div class="version_number">{release.data.versionNumber}</div>
<FormattedDate class="date" date={release.data.date} />
</div>
</div>
<div class="content">
<slot />
</div>
</div>
<Footer />
</body>
</html>

View File

@ -1,21 +0,0 @@
---
import { getCollection } from 'astro:content';
import Layout from '../../layouts/ArchivePostLayout.astro';
export async function getStaticPaths() {
const arreleases = await getCollection('archivedreleases');
return arreleases.map((arrelease) => ({
params: { slug: arrelease.slug },
props: { arrelease },
}));
}
const { arrelease } = Astro.props;
const { Content } = await arrelease.render();
---
<Layout {arrelease}>
<Content />
</Layout>

View File

@ -1,37 +0,0 @@
---
import { getCollection } from 'astro:content';
import FormattedDate from '../../components/FormattedDate.astro';
import Layout from '../../layouts/IndexLayout.astro';
const posts = await getCollection('archivedreleases');
posts.sort((a, b) => +b.data.date - +a.data.date);
---
<Layout>
<main>
<hr />
<h1 class="page_title">Previous Version Archive</h1>
<hr />
<ul class="posts" transition:name="post">
{
posts.map((post) => (
<li class="post">
<div class="version_wrapper">
<div class="version_info">
<a href={`/archive/${post.slug}`}>
<div class="version_number">{post.data.versionNumber}</div>
<FormattedDate class="date" date={post.data.date} />
</a>
</div>
</div>
<div class="content">
{post.render().then(({ Content }) => (
<Content />
))}
</div>
</li>
))
}
</ul>
</main>
</Layout>

View File

@ -1,41 +0,0 @@
---
import { getCollection } from 'astro:content';
import FormattedDate from '../components/FormattedDate.astro';
import Layout from '../layouts/IndexLayout.astro';
import QuickStart from '../components/QuickStart.astro';
const posts = await getCollection('releases');
posts.sort((a, b) => +b.data.date - +a.data.date);
---
<Layout>
<main>
<hr />
<div>Astro-GhostCMS is an Astro v4 Integration and API, its purpose is to create a easy way to bring your GhostCMS content into the Astro world. Create super fast websites, and customize to your hearts content. With the content being pulled from your headless GhostCMS install, all you do is build the layout with the info you want and your on your way!</div>
<QuickStart />
<hr />
<h1 class="page_title">News & Changelog</h1>
<hr />
<ul class="posts" transition:name="post">
{
posts.map((post) => (
<li class="post">
<div class="version_wrapper">
<div class="version_info">
<a href={`/releases/${post.slug}`}>
<div class="version_number">{post.data.versionNumber}</div>
<FormattedDate class="date" date={post.data.date} />
</a>
</div>
</div>
<div class="content">
{post.render().then(({ Content }) => (
<Content />
))}
</div>
</li>
))
}
</ul>
</main>
</Layout>

View File

@ -1,21 +0,0 @@
---
import { getCollection } from 'astro:content';
import Layout from '../../layouts/PostLayout.astro';
export async function getStaticPaths() {
const releases = await getCollection('releases');
return releases.map((release) => ({
params: { slug: release.slug },
props: { release },
}));
}
const { release } = Astro.props;
const { Content } = await release.render();
---
<Layout {release}>
<Content />
</Layout>

View File

@ -1,61 +0,0 @@
@function color($color, $tone) {
// @warn map-get($palette,$color);
@if map-has-key($palette, $color) {
$color: map-get($palette, $color);
@if map-has-key($color, $tone) {
$tone: map-get($color, $tone);
@return $tone;
}
@warn "unknown tone `#{$tone}` in color";
@return null;
}
@warn "unknown color `#{$color}` in palette";
@return null;
}
$white: #ffffff;
$palette: (
purple: (
50: #f2e8fd,
100: #e6d1fa,
200: #cfa3f5,
300: #ba75f0,
400: #a846ec,
500: #9818e7,
600: #7b13b4,
700: #5b0e81,
800: #3a084e,
900: #15031c,
950: #020002,
),
orange: (
50: #fbf0ea,
100: #f8e3d9,
200: #f2cab7,
300: #ecb194,
400: #e59872,
500: #df7f4f,
600: #d05f26,
700: #a1491d,
800: #713315,
900: #421e0c,
950: #2a1308,
),
gray: (
50: #f6f6f9,
100: #e6e7ef,
200: #c7c9db,
300: #a8abc7,
400: #898eb4,
500: #6a71a0,
600: #545b83,
700: #404664,
800: #2c3145,
900: #181b26,
950: #0e1016,
),
);

View File

@ -1,3 +0,0 @@
@import 'colors.scss';
@import 'type.scss';
@import 'layout.scss';

View File

@ -1,291 +0,0 @@
$container: 1040px;
$tablet: 768px;
$mobile: 420px;
* {
box-sizing: border-box;
}
body {
margin: 0 auto;
padding: 0 1em;
width: 1040px;
max-width: 100%;
background-color: $white;
@media (prefers-color-scheme: dark) {
background-color: color(gray, 950);
}
@media (max-width: $tablet) {
font-size: 16px;
}
}
.glow {
width: 100%;
height: 100%;
position: absolute;
z-index: -1;
top: 0;
left: 0;
overflow: hidden;
&:after {
content: '';
display: block;
position: absolute;
top: -120px;
left: calc(50% - 360px);
width: 720px;
height: 240px;
background: radial-gradient(
50% 50% at 50% 50%,
rgba(color(orange, 500), 0.2) 0%,
rgba(color(orange, 500), 0) 100%
);
@media (prefers-color-scheme: dark) {
background: radial-gradient(
50% 50% at 50% 50%,
rgba(255, 255, 255, 0.06) 0%,
rgba(255, 255, 255, 0) 100%
);
}
}
}
::selection {
background: color(orange, 200);
@media (prefers-color-scheme: dark) {
background: color(orange, 600);
}
}
a,
a:visited {
color: color(orange, 600);
@media (prefers-color-scheme: dark) {
color: color(orange, 300);
}
transition: 0.1s ease;
&:hover {
color: color(orange, 500);
}
}
hr {
margin: 1em 0;
border: 0;
border-bottom: 1px solid color(gray, 100);
@media (prefers-color-scheme: dark) {
border-color: color(gray, 900);
}
}
nav {
display: flex;
align-items: center;
justify-content: space-between;
margin: 0 0 2em 0;
padding: 2em 0;
a {
transition: 0.1s ease;
&:hover {
opacity: 0.6;
}
}
#site_title {
margin: 0;
}
#site_title a {
display: flex;
align-items: center;
gap: 10px;
color: color(gray, 950);
@media (prefers-color-scheme: dark) {
color: $white;
}
font-size: 16px;
font-weight: 700;
letter-spacing: 2px;
line-height: 1;
text-decoration: none;
text-transform: uppercase;
}
.links a {
margin-left: 1em;
color: color(gray, 800);
@media (prefers-color-scheme: dark) {
color: color(gray, 200);
}
}
}
.content {
ol,
ul {
padding-left: 2em;
margin-bottom: 1em;
}
ul {
list-style: none;
li {
position: relative;
margin-bottom: 0.75em;
&:before {
content: '';
display: block;
position: absolute;
left: -1em;
top: 0.63em;
width: 8px;
height: 8px;
background: linear-gradient(25deg, color(purple, 500), color(orange, 500));
border-radius: 99px;
}
}
}
}
.page_title {
margin: 1.5em 0;
@media (max-width: $tablet) {
margin: 0.5em 0;
}
}
.posts {
list-style: none;
padding: 0;
}
.post {
display: flex;
width: 100%;
@media (max-width: $tablet) {
flex-flow: column;
}
&:last-child .content,
&.single .content {
border-bottom: 0;
}
}
.version_wrapper {
flex-basis: 260px;
@media (max-width: $container) {
flex-basis: 140px;
}
flex-grow: 0;
flex-shrink: 0;
margin: 4.5em 0 0 0;
@media (max-width: $tablet) {
flex-basis: 0;
margin-top: 2em;
}
.version_info {
position: sticky;
top: 1em;
@media (max-width: $tablet) {
position: relative;
top: 0;
}
}
a {
float: left;
color: $white;
text-decoration: none;
transition: 0.1s ease;
&:hover {
opacity: 0.6;
}
}
}
.version_number {
display: inline-block;
font-family: var(--font-source-code);
line-height: 1;
margin-bottom: 8px;
padding: 4px 12px;
color: $white;
background: linear-gradient(
25deg,
color(purple, 800),
color(purple, 700),
mix(color(purple, 500), color(orange, 500)),
color(orange, 500)
);
border-radius: 8px;
}
.date {
clear: both;
@media (max-width: $tablet) {
display: inline;
margin-left: 1em;
}
color: color(gray, 800);
@media (prefers-color-scheme: dark) {
color: color(gray, 200);
}
font-family: var(--font-source-code);
font-size: $fontSizeSmall;
}
.content {
margin: 0;
padding: 4em 0;
@media (max-width: $tablet) {
margin: 1em 0;
padding: 0 0 2em 0;
}
border-bottom: 1px solid color(gray, 100);
@media (prefers-color-scheme: dark) {
border-color: color(gray, 900);
}
*:first-child {
margin-top: 0;
}
img {
max-width: 100%;
height: auto;
border-radius: 12px;
border: 1px solid color(gray, 200);
@media (prefers-color-scheme: dark) {
border-color: color(gray, 800);
}
}
}
footer {
display: flex;
padding: 2em 0;
@media (max-width: $tablet) {
padding: 1em 0;
}
color: color(gray, 500);
justify-content: space-between;
border-top: 1px solid color(gray, 100);
@media (prefers-color-scheme: dark) {
border-color: color(gray, 900);
}
a {
margin-left: 1em;
color: color(gray, 500);
text-decoration: none;
&:hover {
color: color(gray, 500);
opacity: 0.6;
}
}
}

View File

@ -1,29 +0,0 @@
/* Dark mode colors. */
:root {
--sl-color-accent-low: #3a0e38;
--sl-color-accent: #ae00a8;
--sl-color-accent-high: #ebb4e5;
--sl-color-white: #ffffff;
--sl-color-gray-1: #e8edff;
--sl-color-gray-2: #bac1da;
--sl-color-gray-3: #7d89b8;
--sl-color-gray-4: #4b5580;
--sl-color-gray-5: #2c355d;
--sl-color-gray-6: #1c2349;
--sl-color-black: #131729;
}
/* Light mode colors. */
:root[data-theme='light'] {
--sl-color-accent-low: #f1c7ec;
--sl-color-accent: #b100ab;
--sl-color-accent-high: #550852;
--sl-color-white: #131729;
--sl-color-gray-1: #1c2349;
--sl-color-gray-2: #2c355d;
--sl-color-gray-3: #4b5580;
--sl-color-gray-4: #7d89b8;
--sl-color-gray-5: #bac1da;
--sl-color-gray-6: #e8edff;
--sl-color-gray-7: #f3f6ff;
--sl-color-black: #ffffff;
}

View File

@ -1,133 +0,0 @@
$fontSizeSmall: 15px;
body {
font-size: 18px;
line-height: 1.65;
font-weight: 400;
@media (prefers-color-scheme: dark) {
color: color(gray, 200);
}
color: color(gray, 800);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}
h1,
h2,
h3,
h4,
h5 {
line-height: 1.2;
margin: 1em 0 0.5em 0;
@media (prefers-color-scheme: dark) {
color: $white;
}
color: color(gray, 950);
font-weight: 700;
}
h1 {
font-size: 3.052em;
}
h2 {
font-size: 2.441em;
}
h3 {
font-size: 1.953em;
}
h4 {
font-size: 1.563em;
}
h5 {
font-size: 1.25em;
}
p {
margin: 0 0 1em 0;
}
code {
font-family: var(--font-source-code);
font-weight: bold;
color:rgb(0, 114, 114);
@media (prefers-color-scheme: dark) {
color: rgb(0, 231, 231);
}
}
.quickstart {
list-style: none inside;
margin-top: 4px;
font-size: medium;
width: flex;
color:rgb(82, 82, 82);
border: 2px solid #a0a0a0;
border-radius: 2rem;
background-color: #ffffff;
padding-left: 0.5rem;
padding-top: 0.5rem;
padding-bottom: 1rem;
padding-right: 0.5rem;
@media (prefers-color-scheme: dark) {
color: rgb(170, 170, 170);
border: 2px solid #1f1f1f;
background-color: #161616;
}
}
.qstart {
font-family: var(--font-source-code);
font-weight: bold;
margin-top: 4px;
color:rgb(165, 0, 115);
padding-left: 0.5rem;
padding-right: 0.5rem;
@media (prefers-color-scheme: dark) {
color: rgb(255, 0, 179);
}
}
.install {
font-family: var(--font-source-code);
font-weight: bold;
margin-top: 4px;
color:rgb(0, 161, 161);
border: 2px solid #a7a7a7;
border-radius: 2rem;
padding-left: 0.5rem;
padding-right: 0.5rem;
background-color: #eeeeee;
@media (prefers-color-scheme: dark) {
color: rgb(0, 231, 231);
border: 2px solid #6e6e6e;
background-color: #2e2e2e;
}
}
.comment {
font-family: var(--font-source-code);
font-weight: bold;
margin-top: 4px;
color:rgb(102, 102, 102);
border: 2px solid #929292;
border-radius: 2rem;
padding-left: 0.5rem;
padding-right: 0.5rem;
background-color: #dddddd;
@media (prefers-color-scheme: dark) {
color: rgb(170, 170, 170);
border: 2px solid #4b4b4b;
background-color: #2e2e2e;
}
}
b,
strong {
font-weight: 700;
color: #fff;
@media (prefers-color-scheme: dark) {
color: $white;
}
color: color(gray, 950);
}

View File

@ -1,4 +0,0 @@
{
"extends": "astro/tsconfigs/strict",
"exclude": ["dist"]
}