From 411502591a07dbb4b548cbf69ce828401cb34305 Mon Sep 17 00:00:00 2001 From: Adam Matthiesen Date: Tue, 23 Jan 2024 12:56:52 -0800 Subject: [PATCH] update readme --- README.md | 122 +++++++----------------------------------------------- 1 file changed, 14 insertions(+), 108 deletions(-) diff --git a/README.md b/README.md index 17a02378..ddcc8e31 100644 --- a/README.md +++ b/README.md @@ -2,112 +2,18 @@ # Welcome to Astro-GhostCMS +For a full always up to date documentation please checkout [Our Website](https://astro-ghostcms.xyz) + +**Demo site Deploy status**: + +![Vercel](https://vercelbadge.vercel.app/api/matthiesenxyz/astro-ghostcms-demo) + +## Repo Structure + +This repo is structured as a monorepo. All of our astro-ghostcms packages can be found under the `packages` folder. These are all independently published packages that can be found on [npmjs.com](https://npmjs.com) + +In this Repo you will also find a `playground` the dev environment, `www` the folder containing the main webpage, and `demo` the Demo site. + +### Notices + *Ghost is a trademark of [The Ghost Foundation](https://ghost.org/trademark/). This project is not directly related to or provided by The Ghost Foundation and is intended to help create a easier method to utilize their provided JavaScript tools to link a Headless GhostCMS install in to your Astro project.* - -- [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-demo) for an example of how the setup looks. -- [Ghost.org](https://ghost.org) Get your own Ghost[^1] Install - -*Need help but don't have Github? Email us at [issues@astro-ghostcms.xyz](mailto:issues@astroghostcms.xyz) to create an issue here on github!* - -Astro minimum Version: **Astro v4.0** - -This Integration is 2 parts. Firstly, there is the API portion that uses the `@tryghost/content-api`[^1] 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[^1] iteself instead of storing any data locally outside of Build. - -- *This package contains a independent copy of the tryghost content-api.js[^1] that is used to establish the connection so this package dose not depend on `@tryghost/content-api` package.[^1]* -- 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. - -## 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: - -```env -CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48 -CONTENT_API_URL=https://ghostdemo.matthiesen.xyz -``` -## Manual Installation - -``` -npm i @matthiesenxyz/astro-ghostcms -``` - -Then set your astro.config.ts to look like this: - -```ts -import { defineConfig } from "astro/config"; -import sitemap from "@astrojs/sitemap"; //optional but recommended -import GhostCMS from '@matthiesenxyz/astro-ghostcms'; - -// https://astro.build/config -export default defineConfig({ - site: "https://YOUR-DOMAIN-HERE.com" - integrations: [sitemap(), GhostCMS()], -}); -``` - -#### Dont forget to set your environment Variables! - -You must also create 2 environment variables in a `.env` file with the following: - -```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 | - - -## Manual Function Mode (DIY MODE) - -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. - -``` -npm i @matthiesenxyz/astro-ghostcms -``` - -You must also create 2 environment variables in a `.env` file with the following: - -```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!** - -For more information and to see the docs please check our website: [Astro-GhostCMS.xyz](https://astro-ghostcms.xyz) - -# Foot Notes & Credits - -[^1]: Ghost.org, Ghost.io, Ghost are all trademarks of [The Ghost Foundation](https://ghost.org/). This project is Open Source and not directly related to or provided by The Ghost Foundation and is intended to help create a easier method to utilize their provided JavaScript tools to link a Headless GhostCMS install in to your Astro project. -