Skip to content

Commit

Permalink
feat: migrate documentation to Starlight (#289)
Browse files Browse the repository at this point in the history
* Migrate documentation to Starlight

---------

Co-authored-by: Melissa Henderson <[email protected]>
  • Loading branch information
huijing and melissahenderson authored Sep 22, 2023
1 parent c1e5010 commit 26affd3
Show file tree
Hide file tree
Showing 62 changed files with 3,956 additions and 4,391 deletions.
41 changes: 41 additions & 0 deletions .github/workflows/deploy-docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Deploy to GitHub Pages

on:
# Trigger the workflow every time you push to the `main` branch
# Using a different branch name? Replace `main` with your branch’s name
push:
branches: [main]
# Allows you to run this workflow manually from the Actions tab on GitHub.
workflow_dispatch:

# Allow this job to clone the repo and create a page deployment
permissions:
contents: read
pages: write
id-token: write

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout your repository using git
uses: actions/checkout@v3
- name: Install, build, and upload your site output
uses: withastro/action@v0
with:
path: ./docs # The root location of your Astro project inside the repository. (optional)
node-version: 18 # The specific version of Node that should be used to build your site. Defaults to 16. (optional)
package-manager: pnpm # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional)
pnpm-version: 8.x.x # If `package-manager` is set to `pnpm`, use this specific version. Defaults to `7.x.x`. (optional)
# resolve-dep-from-path: false # If the dependency file should be resolved from the root location of your Astro project. Defaults to `true`. (optional)

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1
41 changes: 0 additions & 41 deletions .github/workflows/deploy-landing.yaml

This file was deleted.

35 changes: 35 additions & 0 deletions .github/workflows/test-docs-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Test docs build

on:
pull_request:
branches:
- main
# Review gh actions docs if you want to further define triggers, paths, etc
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on

jobs:
test-deploy:
name: Test deployment
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 18

- uses: pnpm/action-setup@v2
name: Install pnpm
with:
version: 8
run_install: false

- name: Install dependencies
run: pnpm install

- name: Test build website
run: |
cd docs
pnpm build
21 changes: 21 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 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
51 changes: 51 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Starlight Starter Kit: Basics

```
npm create astro@latest -- --template starlight
```

[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/starlight/tree/main/examples/basics)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/starlight/tree/main/examples/basics)

> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
## 🚀 Project Structure

Inside of your Astro + Starlight project, you'll see the following folders and files:

```
.
├── public/
├── src/
│ ├── assets/
│ ├── content/
│ │ ├── docs/
│ │ └── config.ts
│ └── env.d.ts
├── astro.config.mjs
├── package.json
└── tsconfig.json
```

Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.

Images can be added to `src/assets/` and embedded in Markdown with a relative link.

Static assets, like favicons, can be placed in the `public/` directory.

## 🧞 Commands

All commands are run from the root of the project, from a terminal:

| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |

## 👀 Want to learn more?

Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
73 changes: 73 additions & 0 deletions docs/astro.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import { defineConfig } from 'astro/config'
import starlight from '@astrojs/starlight'
import { generateAPI } from 'starlight-openapi'
// import overrideIntegration from './src/overrideIntegration.mjs'
import react from '@astrojs/react'

// Generate the documentation and get the associated sidebar groups.
const { openAPISidebarGroups, starlightOpenAPI } = await generateAPI([
{
base: 'apis/resource-server',
label: 'Open Payments',
schema: '../openapi/resource-server.yaml'
},
{
base: 'apis/auth-server',
label: 'Open Payments Authorization Server',
schema: '../openapi/auth-server.yaml'
}
])

// https://astro.build/config
export default defineConfig({
integrations: [
// overrideIntegration(),
react(),
starlight({
title: 'OpenPayments',
customCss: [
'./node_modules/@interledger/docs-design-system/src/styles/green-theme.css',
'./node_modules/@interledger/docs-design-system/src/styles/ilf-docs.css',
'./src/styles/openpayments.css'
],
logo: {
src: './public/favicon.svg'
},
sidebar: [
{
label: 'Intro to Open Payments',
autogenerate: {
directory: 'introduction'
}
},
{
label: 'Security',
autogenerate: {
directory: 'security'
}
},
{
label: 'Guides',
autogenerate: {
directory: 'guides'
}
},
{
label: 'API references',
autogenerate: {
directory: 'api_references'
}
},
// Add the generated sidebar groups to the sidebar.
{
label: 'API specifications',
items: openAPISidebarGroups
}
]
}),
starlightOpenAPI()
],
server: {
port: 1104
}
})
23 changes: 23 additions & 0 deletions docs/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "openpayments-docs",
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"@astrojs/react": "^3.0.2",
"@astrojs/starlight": "0.10.1",
"@interledger/docs-design-system": "^0.0.12",
"astro": "3.1.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"sharp": "^0.32.6",
"shiki": "0.14.4",
"starlight-openapi": "^0.2.0"
}
}
1 change: 1 addition & 0 deletions docs/public/CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
openpayments.guide/
1 change: 1 addition & 0 deletions docs/public/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 26affd3

Please sign in to comment.