feat: convert to an astro application (!9)

Reviewed-on: https://codeberg.org/nhcarrigan/docs/pulls/9
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
This commit is contained in:
Naomi Carrigan 2024-08-23 23:49:24 +00:00 committed by Naomi the Technomancer
parent 2898736099
commit 4cc44ae423
43 changed files with 4727 additions and 1368 deletions

25
.gitignore vendored
View File

@ -1 +1,24 @@
/node_modules/ # 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
# jetbrains setting folder
.idea/

View File

@ -1,29 +1,47 @@
# General Documentation # Astro Starter Kit: Minimal
Documentation for my smaller projects. ```sh
npm create astro@latest -- --template minimal
```
## Live Version [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/minimal)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/minimal)
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/minimal/devcontainer.json)
This page is currently deployed. [View the live website.](https://docs.nhcarrigan.com) > 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
## Feedback and Bugs ## 🚀 Project Structure
If you have feedback or a bug report, please feel free to open a GitHub issue! Inside of your Astro project, you'll see the following folders and files:
## Contributing ```text
/
├── public/
├── src/
│ └── pages/
│ └── index.astro
└── package.json
```
If you would like to contribute to the project, you may create a Pull Request containing your proposed changes and we will review it as soon as we are able! Please review our [contributing guidelines](CONTRIBUTING.md) first. Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
## Code of Conduct There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
Before interacting with our community, please read our [Code of Conduct](CODE_OF_CONDUCT.md). Any static assets, like images, can be placed in the `public/` directory.
## License ## 🧞 Commands
This software is licensed under our [global software license](https://docs.nhcarrigan.com/#/license). All commands are run from the root of the project, from a terminal:
Copyright held by Naomi Carrigan. | 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 |
## Contact ## 👀 Want to learn more?
We may be contacted through our [Chat Server](http://chat.nhcarrigan.com) or via `contact@nhcarrigan.com`. Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).

33
astro.config.mjs Normal file
View File

@ -0,0 +1,33 @@
import { defineConfig } from 'astro/config';
import starlight from "@astrojs/starlight";
import { navigation } from "./src/components/navigation.ts";
export default defineConfig({
integrations: [starlight({
title: "Naomi's Documentation",
sidebar: navigation,
tableOfContents: true,
description: "Helpful documentation we want to share with everyone.",
social: {
codeberg: "https://codeberg.org/nhcarrigan",
github: "https://github.com/nhcarrigan",
discord: "https://chat.nhcarrigan.com"
},
head: [
{
tag: "script",
attrs: {
type: "text/javascript",
id: "hs-script-loader",
async: true,
defer: true,
src: "//js.hs-scripts.com/47086586.js"
}
}
],
customCss: [
"./src/styles/style.css"
]
})]
});

View File

View File

@ -1 +0,0 @@
docs.nhcarrigan.com

View File

@ -1,51 +0,0 @@
**Important Information**
- [Hire us!](/hire)
- [Support Our Work 💜](/donate)
- [Contact](/contact)
---
**Legal**
- [Privacy Policy](/privacy)
- [Terms of Service](/terms)
- [Security Policy](/security)
- [DMCA Requests](/dmca)
---
**Community**
- [Code of Conduct](/coc)
- [Community Guidelines](/community/guide)
- [Appeal a Sanction](/community/appeal)
- [Security Hall of Fame](/community/hall-of-fame)
---
**Development**
- [Software License](/license)
- [Contributing](/contributing)
- [Contributor Covenant](/covenant)
- [Issue/PR Labels](/community/labels)
- [Development Environment](/environment)
- [Server Setup](/servers.md)
---
**Staff**
- [Staff Handbook](/staff/handbook)
- [Join the Team](/staff/apply)
---
**Miscellaneous**
- [VTubing Setup](/vtubing)
---
© 2022 - [Naomi Carrigan](https://www.nhcarrigan.com)

View File

@ -1,119 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/docsify-themeable@0/dist/css/theme-simple-dark.css"
/>
<style>
:root {
--theme-color: #3a3240;
--mono-hue: 255;
--theme-hue: 255;
--mono-tint3: #3a3240;
--mono-tint2: #3a3240;
--mono-tint1: #3a3240;
--base-color: #3a3240;
--heading-color: #3a3240;
--base-background-color: #fff;
--sidebar-background: #abfcecdd;
--sidebar-nav-link-color: #3a3240;
--code-inline-background: #3a3240;
--table-row-odd-background: #abfcec;
}
body::before {
background: url(https://cdn.nhcarrigan.com/background.png);
background-size: cover;
background-position: center;
width: 100%;
height: 100%;
z-index: -1;
content: "";
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
opacity: 1;
pointer-events: none;
}
.sidebar-nav > h1 {
font-size: var(--modular-scale-2);
}
.sidebar-toggle .sidebar-toggle-button {
color: #fff;
}
.content {
background: transparent;
}
.markdown-section {
background: #abfceccc;
}
</style>
<title>Naomi's Documentation</title>
</head>
<body>
<div id="app">
<h1>Naomi's Documentation</h1>
<p>Documentation for my various smaller projects.</p>
</div>
</body>
<script>
window.$docsify = {
loadSidebar: "_navbar.md",
autoHeader: true,
maxLevel: 2,
subMaxLevel: 3,
homepage: "index.md",
auto2top: true,
// Plugins
"flexible-alerts": {
style: "flat",
},
copyCode: {
buttonText: "Copy this snippet",
errorText: "Could not copy!",
successText: "Copied to clipboard",
},
};
</script>
<!-- Docsify v4 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/docsify/4.13.1/docsify.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/docsify-plugin-flexible-alerts@1"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-markdown.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-ini.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-bash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-json.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-nginx.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-python.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-toml.min.js"></script>
<script src="https://unpkg.com/docsify-copy-code@2"></script>
<script
src="https://browser.sentry-cdn.com/6.3.6/bundle.min.js"
integrity="sha384-Wh1kaX6+TxjSQdRRE+XUoIsEh5Cj8LgB6Wjbg/1/kTB3aG7q6ORaKSe5VfThKhcj"
crossorigin="anonymous"
></script>
<script
src="https://browser.sentry-cdn.com/6.3.6/bundle.tracing.min.js"
integrity="sha384-i2Yvbs5RFObbcbRhpGsmI2wLv+I4jxpEET1WzR/KWxLdwZMtP8E1M0PROnrwe2gF"
crossorigin="anonymous"
></script>
<!-- Start of HubSpot Embed Code -->
<script
type="text/javascript"
id="hs-script-loader"
async
defer
src="//js.hs-scripts.com/47086586.js"
></script>
<!-- End of HubSpot Embed Code -->
</html>

View File

@ -1,3 +0,0 @@
# Naomi's Documentation
Welcome! This site serves as documentation for my smaller projects. You can use the sidebar to navigate to the specific project you are interested in.

View File

@ -1,35 +1,18 @@
{ {
"name": "general-documentation", "name": "magical-metal",
"version": "1.0.0", "type": "module",
"description": "Documentation for my smaller projects.", "version": "0.0.1",
"main": "null",
"scripts": { "scripts": {
"lint": "markdownlint ./docs/**/*.md", "dev": "astro dev",
"start": "docsify serve ./docs -o --port 3200" "start": "astro dev",
"build": "astro check && astro build",
"preview": "astro preview",
"astro": "astro"
}, },
"repository": {
"type": "git",
"url": "git+https://github.com/nhcarrigan/general-documentation.git"
},
"engines": {
"node": "20",
"pnpm": "9"
},
"keywords": [
"docsify",
"documentation"
],
"author": "Naomi Carrigan",
"license": "SEE LICENSE IN https://docs.nhcarrigan.com/#/license",
"bugs": {
"url": "https://github.com/nhcarrigan/general-documentation/issues"
},
"homepage": "https://github.com/nhcarrigan/general-documentation#readme",
"dependencies": { "dependencies": {
"docsify-cli": "4.4.4" "@astrojs/check": "^0.9.3",
}, "@astrojs/starlight": "^0.26.1",
"devDependencies": { "astro": "^4.14.5",
"markdownlint": "0.34.0", "typescript": "^5.5.4"
"markdownlint-cli": "0.39.0"
} }
} }

5300
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

9
public/favicon.svg Normal file
View File

@ -0,0 +1,9 @@
<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>

After

Width:  |  Height:  |  Size: 749 B

View File

@ -0,0 +1,99 @@
export const navigation = [
{
label: "About Us",
items: [
{
label: "Hire us!",
link: "/about/hire"
},
{
label: "Support Our Work 💜",
link: "/about/donate"
},
{
label: "Contact",
link: "/about/contact"
}
]
},
{
label: "Legal Information",
items: [
{
label: "Terms of Service",
link: "/legal/terms"
},
{
label: "Privacy Policy",
link: "/legal/privacy"
},
{
label: "Software License",
link: "/legal/license"
},
{
label: "Security Policy",
link: "/legal/security"
},
{
label: "DMCA and Copyright",
link: "/legal/dmca"
}
]
},
{
label: "Community Policies",
items: [
{
label: "Code of Conduct",
link: "/community/coc"
},
{
label: "Community Guidelines",
link: "/community/guide"
},
{
label: "Appeal a Sanction",
link: "/community/appeal"
}
]
},
{
label: "Development Documentation",
items: [
{
label: "Contributing Guide",
link: "/dev/contributing"
},
{
label: "Contributor Covenant",
link: "/dev/covenant"
},
{
label: "Issue/PR Labels",
link: "/dev/labels"
},
{
label: "Development Environment",
link: "/dev/environment"
},
{
label: "Server Setup",
link: "/dev/servers"
}
]
},
{
label: "Staff Guidelines",
items: [
{
label: "Staff Handbook",
link: "/staff/handbook"
},
{
label: "Join our Team",
link: "/staff/apply"
}
]
}
]

6
src/content/config.ts Normal file
View File

@ -0,0 +1,6 @@
import { defineCollection } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';
export const collections = {
docs: defineCollection({ schema: docsSchema() }),
};

View File

@ -0,0 +1,20 @@
---
title: About Us
template: splash
hero:
tagline:
Learn more about Naomi, her consulting firm nhcarrigan, and our communities.
actions:
- text: Hire us!
link: /about/hire
icon: right-arrow
variant: secondary
- text: Support our Work 💜
link: /about/donate
icon: right-arrow
variant: primary
- text: Appeal a Sanction
link: /community/appeal
icon: right-arrow
variant: secondary
---

View File

@ -1,4 +1,6 @@
# Contact Policy ---
title: Contact Policy
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# Support Our Work 💜 ---
title: Support Our Work 💜
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# Hire Us ---
title: Hire us!
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# VTubing ---
title: Naomi's VTubing Setup
---
**Effective 14 July 2024** **Effective 14 July 2024**

View File

@ -0,0 +1,20 @@
---
title: Community Information
template: splash
hero:
tagline:
We offer the following documents to assist you in engaging with our community in a meaningful way.
actions:
- text: Community Guidelines
link: /community/guide
icon: right-arrow
variant: primary
- text: Code of Conduct
link: /community/coc
icon: right-arrow
variant: primary
- text: Appeal a Sanction
link: /community/appeal
icon: right-arrow
variant: secondary
---

View File

@ -1,4 +1,6 @@
# Appealing a Sanction ---
title: Appealing a Sanction
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# Code of Conduct ---
title: Code of Conduct
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# Community Guidelines ---
title: Community Guidelines
---
**Effective 7 July 2024** **Effective 7 July 2024**

28
src/content/docs/dev.mdx Normal file
View File

@ -0,0 +1,28 @@
---
title: Developer Documentation
template: splash
hero:
tagline:
Various guides for contributing to our projects.
actions:
- text: Contributing Guide
link: /dev/contributing
icon: right-arrow
variant: primary
- text: Contributor Covenant
link: /dev/covenant
icon: right-arrow
variant: primary
- text: Issue/PR Labels
link: /dev/labels
icon: right-arrow
variant: secondary
- text: Development Environment
link: /dev/environment
icon: right-arrow
variant: secondary
- text: Server Setup
link: /dev/servers
icon: right-arrow
variant: secondary
---

View File

@ -1,4 +1,6 @@
# Contributing ---
title: Contributing Documentation
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# nhcarrigan Contributor Covenant ---
title: nhcarrigan Contributor Covenant
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# Development Environment ---
title: Development Environment
---
**Effective 14 July 2024** **Effective 14 July 2024**

View File

@ -1,12 +1,12 @@
# Hall of Fame ---
title: Security Hall of Fame
---
**Effective 7 July 2024** **Effective 7 July 2024**
## 1. Purpose ## 1. Purpose
This document recognises the folks who have reported security vulnerabilities in our Applications pursuant to our [security policy](/security). This document recognises the folks who have reported security vulnerabilities in our Applications pursuant to our [security policy](/security).
## 2. Recognitions ## 2. Recognitions
We extend our thanks to the following people for their efforts in keeping our users secure: We extend our thanks to the following people for their efforts in keeping our users secure:

View File

@ -1,4 +1,6 @@
# Labels ---
title: Labels
---
**Effective 14 July 2024** **Effective 14 July 2024**

View File

@ -1,4 +1,6 @@
# Server Setup ---
title: Server Setup
---
**Effective 14 July 2024** **Effective 14 July 2024**

View File

@ -0,0 +1,21 @@
---
title: Naomi's Documentation
description: This site contains various information that Naomi felt would be helpful to share.
template: splash
hero:
tagline:
This site contains various information that Naomi felt would be helpful to share.
actions:
- text: ❓ About Us
link: /about
variant: secondary
- text: ⚖️ Legal Information
link: /legal
variant: secondary
- text: 📜 Community Guide
link: /community
variant: secondary
- text: 🛠️ Staff Guide
link: /staff
variant: secondary
---

View File

@ -0,0 +1,23 @@
---
title: Legal Information
template: splash
hero:
tagline:
These are the legal policies you agree to when you engage with our community or consume our products.
actions:
- text: Terms of Service
link: /legal/terms
variant: primary
- text: Privacy Policy
link: /legal/privacy
variant: primary
- text: Software License
link: /legal/license
variant: secondary
- text: Security Policy
link: /legal/security
variant: secondary
- text: DMCA and Copyright
link: /legal/dmca
variant: secondary
---

View File

@ -1,4 +1,6 @@
# DMCA and Intellectual Property Compliance Policy ---
title: DMCA and Intellectual Property Compliance Policy
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# Naomi's Public License ---
title: Naomi's Public License
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# Privacy Policy ---
title: Privacy Policy
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# Security Policy ---
title: Security Policy
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# Terms of Service ---
title: Terms of Service
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -0,0 +1,16 @@
---
title: Staff Guides
template: splash
hero:
tagline:
These documents are primarily intended for our staff members.
actions:
- text: Staff Handbook
link: /staff/handbook
icon: right-arrow
variant: primary
- text: Join the Team
link: /staff/apply
icon: right-arrow
variant: secondary
---

View File

@ -1,4 +1,6 @@
# Join Our Staff Team ---
title: Join Our Staff Team
---
**Effective 7 July 2024** **Effective 7 July 2024**

View File

@ -1,4 +1,6 @@
# Staff Handbook ---
title: Staff Handbook
---
**Effective 7 July 2024** **Effective 7 July 2024**

1
src/env.d.ts vendored Normal file
View File

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

67
src/pages/index.astro Normal file
View File

@ -0,0 +1,67 @@
---
---
<!--
We used to use Docsify, so rather than breaking links we borrowed this from freeCodeCamp
to make our things work.
-->
<script>
document.addEventListener('DOMContentLoaded', () => {
const { hash } = window.location;
if (!hash || hash === '#/' || hash === '#') {
window.location.replace('/intro');
return;
}
if (hash === "#/coc") {
window.location.replace('/community/coc');
return;
}
if (hash === "#/coc") {
window.location.replace('/community/coc');
return;
}
if (hash === "#/coc") {
window.location.replace('/community/coc');
return;
}
if (hash === "#/coc") {
window.location.replace('/community/coc');
return;
}
if (hash.startsWith('#/')) {
const [newPath, newHash] = hash.slice(2).split('?id=');
window.location.replace(
newHash ? `/${newPath}/#${newHash}` : `/${newPath}`
);
return;
}
window.location.replace('/intro');
});
</script>
<style>
.loader {
border: 8px solid #0a0a23;
border-top: 8px solid #f3f3f3;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 2s linear infinite;
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style>
<div class='loader'></div>

53
src/styles/style.css Normal file
View File

@ -0,0 +1,53 @@
:root,
:root[data-theme="light"] {
--primary-color: #04624f;
--background-color: #abfcecdd;
}
:root[data-theme="dark"] {
--background-color: #04624fdd;
--primary-color: #abfcec;
}
.main-frame::before {
background: url(https://cdn.nhcarrigan.com/background.png);
background-size: cover;
background-position: center;
width: 100%;
height: 100%;
z-index: -1;
content: "";
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 1;
pointer-events: none;
}
.main-pane {
margin: auto;
background-color: var(--background-color);
color: var(--primary-color);
}
.sidebar-pane,
.right-sidebar-panel {
background-color: var(--background-color);
color: var(--primary-color);
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: var(--primary-color) !important;
}
header {
color: var(--primary-color) !important;
background-color: var(--background-color) !important;
}

3
tsconfig.json Normal file
View File

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