diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index b91f1299..55be46dd 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -1,11 +1,8 @@
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
@@ -26,6 +23,8 @@ jobs:
path: . # The root location of your Astro project inside the repository. (optional)
node-version: 24 # The specific version of Node that should be used to build your site. Defaults to 24. (optional)
package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional)
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
deploy:
needs: build
diff --git a/.gitignore b/.gitignore
index 6fe73297..6240da8b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,6 @@
dist/
# generated types
.astro/
-.idea/
# dependencies
node_modules/
@@ -20,6 +19,3 @@ pnpm-debug.log*
# macOS-specific files
.DS_Store
-.Trash*
-.parcel-cache
-package-lock.json
diff --git a/.typos.toml b/.typos.toml
index 5adceab2..85a92c9a 100644
--- a/.typos.toml
+++ b/.typos.toml
@@ -1,26 +1,19 @@
-# SPDX-FileCopyrightText: 2025 AerynOS Developers
+# SPDX-FileCopyrightText: 2026 aerynOS Developers
# SPDX-License-Identifier: MPL-2.0
[default]
-#locale = "en-gb"
-
extend-ignore-re = [
- # Ignore lines that end with `# spellchecker:disable-line`
- "(?Rm)^.*(#|//)\\s*spellchecker:disable-line$",
- # Ignore the line after `# spellchecker:ignore-next-line`:
- "(#|//)\\s*spellchecker:ignore-next-line\\n.*",
- # Ignore blocks between `# spellchecker:off` and `# spellchecker:on`
- "(?s)(#|//)\\s*spellchecker:off.*?\\n\\s*(#|//)\\s*spellchecker:on",
- "rela\\.dyn",
- "\\\"Aer\\\"",
- "\\\"+git\\\"",
- "ba",
- "ND",
-]
-extend-ignore-identifiers-re = [
- # Ignore identifiers that look like SSL cipher suites:
- "\\bTLS_[A-Z0-9_]+(_anon_[A-Z0-9_]+)?\\b",
+ # Ignore blocks between `spellchecker:off` and `spellchecker:on`
+ "spellchecker:off.*?\\n*.*spellchecker:on",
]
[default.extend-words]
+aer = "aer"
+indexs = "indexs"
+ND = "ND"
Collet = "Collet"
+rela = "rela"
+ba = "ba"
+
+[files]
+extend-exclude = ["/package-lock.json"]
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 00000000..22a15055
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 00000000..d6422097
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/LICENSES/CC-BY-SA-4.0.txt b/LICENSES/CC-BY-SA-4.0.txt
new file mode 100644
index 00000000..2d58298e
--- /dev/null
+++ b/LICENSES/CC-BY-SA-4.0.txt
@@ -0,0 +1,428 @@
+Attribution-ShareAlike 4.0 International
+
+=======================================================================
+
+Creative Commons Corporation ("Creative Commons") is not a law firm and
+does not provide legal services or legal advice. Distribution of
+Creative Commons public licenses does not create a lawyer-client or
+other relationship. Creative Commons makes its licenses and related
+information available on an "as-is" basis. Creative Commons gives no
+warranties regarding its licenses, any material licensed under their
+terms and conditions, or any related information. Creative Commons
+disclaims all liability for damages resulting from their use to the
+fullest extent possible.
+
+Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and
+conditions that creators and other rights holders may use to share
+original works of authorship and other material subject to copyright
+and certain other rights specified in the public license below. The
+following considerations are for informational purposes only, are not
+exhaustive, and do not form part of our licenses.
+
+ Considerations for licensors: Our public licenses are
+ intended for use by those authorized to give the public
+ permission to use material in ways otherwise restricted by
+ copyright and certain other rights. Our licenses are
+ irrevocable. Licensors should read and understand the terms
+ and conditions of the license they choose before applying it.
+ Licensors should also secure all rights necessary before
+ applying our licenses so that the public can reuse the
+ material as expected. Licensors should clearly mark any
+ material not subject to the license. This includes other CC-
+ licensed material, or material used under an exception or
+ limitation to copyright. More considerations for licensors:
+ wiki.creativecommons.org/Considerations_for_licensors
+
+ Considerations for the public: By using one of our public
+ licenses, a licensor grants the public permission to use the
+ licensed material under specified terms and conditions. If
+ the licensor's permission is not necessary for any reason--for
+ example, because of any applicable exception or limitation to
+ copyright--then that use is not regulated by the license. Our
+ licenses grant only permissions under copyright and certain
+ other rights that a licensor has authority to grant. Use of
+ the licensed material may still be restricted for other
+ reasons, including because others have copyright or other
+ rights in the material. A licensor may make special requests,
+ such as asking that all changes be marked or described.
+ Although not required by our licenses, you are encouraged to
+ respect those requests where reasonable. More considerations
+ for the public:
+ wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Creative Commons Attribution-ShareAlike 4.0 International Public
+License
+
+By exercising the Licensed Rights (defined below), You accept and agree
+to be bound by the terms and conditions of this Creative Commons
+Attribution-ShareAlike 4.0 International Public License ("Public
+License"). To the extent this Public License may be interpreted as a
+contract, You are granted the Licensed Rights in consideration of Your
+acceptance of these terms and conditions, and the Licensor grants You
+such rights in consideration of benefits the Licensor receives from
+making the Licensed Material available under these terms and
+conditions.
+
+
+Section 1 -- Definitions.
+
+ a. Adapted Material means material subject to Copyright and Similar
+ Rights that is derived from or based upon the Licensed Material
+ and in which the Licensed Material is translated, altered,
+ arranged, transformed, or otherwise modified in a manner requiring
+ permission under the Copyright and Similar Rights held by the
+ Licensor. For purposes of this Public License, where the Licensed
+ Material is a musical work, performance, or sound recording,
+ Adapted Material is always produced where the Licensed Material is
+ synched in timed relation with a moving image.
+
+ b. Adapter's License means the license You apply to Your Copyright
+ and Similar Rights in Your contributions to Adapted Material in
+ accordance with the terms and conditions of this Public License.
+
+ c. BY-SA Compatible License means a license listed at
+ creativecommons.org/compatiblelicenses, approved by Creative
+ Commons as essentially the equivalent of this Public License.
+
+ d. Copyright and Similar Rights means copyright and/or similar rights
+ closely related to copyright including, without limitation,
+ performance, broadcast, sound recording, and Sui Generis Database
+ Rights, without regard to how the rights are labeled or
+ categorized. For purposes of this Public License, the rights
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
+ Rights.
+
+ e. Effective Technological Measures means those measures that, in the
+ absence of proper authority, may not be circumvented under laws
+ fulfilling obligations under Article 11 of the WIPO Copyright
+ Treaty adopted on December 20, 1996, and/or similar international
+ agreements.
+
+ f. Exceptions and Limitations means fair use, fair dealing, and/or
+ any other exception or limitation to Copyright and Similar Rights
+ that applies to Your use of the Licensed Material.
+
+ g. License Elements means the license attributes listed in the name
+ of a Creative Commons Public License. The License Elements of this
+ Public License are Attribution and ShareAlike.
+
+ h. Licensed Material means the artistic or literary work, database,
+ or other material to which the Licensor applied this Public
+ License.
+
+ i. Licensed Rights means the rights granted to You subject to the
+ terms and conditions of this Public License, which are limited to
+ all Copyright and Similar Rights that apply to Your use of the
+ Licensed Material and that the Licensor has authority to license.
+
+ j. Licensor means the individual(s) or entity(ies) granting rights
+ under this Public License.
+
+ k. Share means to provide material to the public by any means or
+ process that requires permission under the Licensed Rights, such
+ as reproduction, public display, public performance, distribution,
+ dissemination, communication, or importation, and to make material
+ available to the public including in ways that members of the
+ public may access the material from a place and at a time
+ individually chosen by them.
+
+ l. Sui Generis Database Rights means rights other than copyright
+ resulting from Directive 96/9/EC of the European Parliament and of
+ the Council of 11 March 1996 on the legal protection of databases,
+ as amended and/or succeeded, as well as other essentially
+ equivalent rights anywhere in the world.
+
+ m. You means the individual or entity exercising the Licensed Rights
+ under this Public License. Your has a corresponding meaning.
+
+
+Section 2 -- Scope.
+
+ a. License grant.
+
+ 1. Subject to the terms and conditions of this Public License,
+ the Licensor hereby grants You a worldwide, royalty-free,
+ non-sublicensable, non-exclusive, irrevocable license to
+ exercise the Licensed Rights in the Licensed Material to:
+
+ a. reproduce and Share the Licensed Material, in whole or
+ in part; and
+
+ b. produce, reproduce, and Share Adapted Material.
+
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
+ Exceptions and Limitations apply to Your use, this Public
+ License does not apply, and You do not need to comply with
+ its terms and conditions.
+
+ 3. Term. The term of this Public License is specified in Section
+ 6(a).
+
+ 4. Media and formats; technical modifications allowed. The
+ Licensor authorizes You to exercise the Licensed Rights in
+ all media and formats whether now known or hereafter created,
+ and to make technical modifications necessary to do so. The
+ Licensor waives and/or agrees not to assert any right or
+ authority to forbid You from making technical modifications
+ necessary to exercise the Licensed Rights, including
+ technical modifications necessary to circumvent Effective
+ Technological Measures. For purposes of this Public License,
+ simply making modifications authorized by this Section 2(a)
+ (4) never produces Adapted Material.
+
+ 5. Downstream recipients.
+
+ a. Offer from the Licensor -- Licensed Material. Every
+ recipient of the Licensed Material automatically
+ receives an offer from the Licensor to exercise the
+ Licensed Rights under the terms and conditions of this
+ Public License.
+
+ b. Additional offer from the Licensor -- Adapted Material.
+ Every recipient of Adapted Material from You
+ automatically receives an offer from the Licensor to
+ exercise the Licensed Rights in the Adapted Material
+ under the conditions of the Adapter's License You apply.
+
+ c. No downstream restrictions. You may not offer or impose
+ any additional or different terms or conditions on, or
+ apply any Effective Technological Measures to, the
+ Licensed Material if doing so restricts exercise of the
+ Licensed Rights by any recipient of the Licensed
+ Material.
+
+ 6. No endorsement. Nothing in this Public License constitutes or
+ may be construed as permission to assert or imply that You
+ are, or that Your use of the Licensed Material is, connected
+ with, or sponsored, endorsed, or granted official status by,
+ the Licensor or others designated to receive attribution as
+ provided in Section 3(a)(1)(A)(i).
+
+ b. Other rights.
+
+ 1. Moral rights, such as the right of integrity, are not
+ licensed under this Public License, nor are publicity,
+ privacy, and/or other similar personality rights; however, to
+ the extent possible, the Licensor waives and/or agrees not to
+ assert any such rights held by the Licensor to the limited
+ extent necessary to allow You to exercise the Licensed
+ Rights, but not otherwise.
+
+ 2. Patent and trademark rights are not licensed under this
+ Public License.
+
+ 3. To the extent possible, the Licensor waives any right to
+ collect royalties from You for the exercise of the Licensed
+ Rights, whether directly or through a collecting society
+ under any voluntary or waivable statutory or compulsory
+ licensing scheme. In all other cases the Licensor expressly
+ reserves any right to collect such royalties.
+
+
+Section 3 -- License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the
+following conditions.
+
+ a. Attribution.
+
+ 1. If You Share the Licensed Material (including in modified
+ form), You must:
+
+ a. retain the following if it is supplied by the Licensor
+ with the Licensed Material:
+
+ i. identification of the creator(s) of the Licensed
+ Material and any others designated to receive
+ attribution, in any reasonable manner requested by
+ the Licensor (including by pseudonym if
+ designated);
+
+ ii. a copyright notice;
+
+ iii. a notice that refers to this Public License;
+
+ iv. a notice that refers to the disclaimer of
+ warranties;
+
+ v. a URI or hyperlink to the Licensed Material to the
+ extent reasonably practicable;
+
+ b. indicate if You modified the Licensed Material and
+ retain an indication of any previous modifications; and
+
+ c. indicate the Licensed Material is licensed under this
+ Public License, and include the text of, or the URI or
+ hyperlink to, this Public License.
+
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
+ reasonable manner based on the medium, means, and context in
+ which You Share the Licensed Material. For example, it may be
+ reasonable to satisfy the conditions by providing a URI or
+ hyperlink to a resource that includes the required
+ information.
+
+ 3. If requested by the Licensor, You must remove any of the
+ information required by Section 3(a)(1)(A) to the extent
+ reasonably practicable.
+
+ b. ShareAlike.
+
+ In addition to the conditions in Section 3(a), if You Share
+ Adapted Material You produce, the following conditions also apply.
+
+ 1. The Adapter's License You apply must be a Creative Commons
+ license with the same License Elements, this version or
+ later, or a BY-SA Compatible License.
+
+ 2. You must include the text of, or the URI or hyperlink to, the
+ Adapter's License You apply. You may satisfy this condition
+ in any reasonable manner based on the medium, means, and
+ context in which You Share Adapted Material.
+
+ 3. You may not offer or impose any additional or different terms
+ or conditions on, or apply any Effective Technological
+ Measures to, Adapted Material that restrict exercise of the
+ rights granted under the Adapter's License You apply.
+
+
+Section 4 -- Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that
+apply to Your use of the Licensed Material:
+
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
+ to extract, reuse, reproduce, and Share all or a substantial
+ portion of the contents of the database;
+
+ b. if You include all or a substantial portion of the database
+ contents in a database in which You have Sui Generis Database
+ Rights, then the database in which You have Sui Generis Database
+ Rights (but not its individual contents) is Adapted Material,
+ including for purposes of Section 3(b); and
+
+ c. You must comply with the conditions in Section 3(a) if You Share
+ all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not
+replace Your obligations under this Public License where the Licensed
+Rights include other Copyright and Similar Rights.
+
+
+Section 5 -- Disclaimer of Warranties and Limitation of Liability.
+
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+
+ c. The disclaimer of warranties and limitation of liability provided
+ above shall be interpreted in a manner that, to the extent
+ possible, most closely approximates an absolute disclaimer and
+ waiver of all liability.
+
+
+Section 6 -- Term and Termination.
+
+ a. This Public License applies for the term of the Copyright and
+ Similar Rights licensed here. However, if You fail to comply with
+ this Public License, then Your rights under this Public License
+ terminate automatically.
+
+ b. Where Your right to use the Licensed Material has terminated under
+ Section 6(a), it reinstates:
+
+ 1. automatically as of the date the violation is cured, provided
+ it is cured within 30 days of Your discovery of the
+ violation; or
+
+ 2. upon express reinstatement by the Licensor.
+
+ For the avoidance of doubt, this Section 6(b) does not affect any
+ right the Licensor may have to seek remedies for Your violations
+ of this Public License.
+
+ c. For the avoidance of doubt, the Licensor may also offer the
+ Licensed Material under separate terms or conditions or stop
+ distributing the Licensed Material at any time; however, doing so
+ will not terminate this Public License.
+
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
+ License.
+
+
+Section 7 -- Other Terms and Conditions.
+
+ a. The Licensor shall not be bound by any additional or different
+ terms or conditions communicated by You unless expressly agreed.
+
+ b. Any arrangements, understandings, or agreements regarding the
+ Licensed Material not stated herein are separate from and
+ independent of the terms and conditions of this Public License.
+
+
+Section 8 -- Interpretation.
+
+ a. For the avoidance of doubt, this Public License does not, and
+ shall not be interpreted to, reduce, limit, restrict, or impose
+ conditions on any use of the Licensed Material that could lawfully
+ be made without permission under this Public License.
+
+ b. To the extent possible, if any provision of this Public License is
+ deemed unenforceable, it shall be automatically reformed to the
+ minimum extent necessary to make it enforceable. If the provision
+ cannot be reformed, it shall be severed from this Public License
+ without affecting the enforceability of the remaining terms and
+ conditions.
+
+ c. No term or condition of this Public License will be waived and no
+ failure to comply consented to unless expressly agreed to by the
+ Licensor.
+
+ d. Nothing in this Public License constitutes or may be interpreted
+ as a limitation upon, or waiver of, any privileges and immunities
+ that apply to the Licensor or You, including from the legal
+ processes of any jurisdiction or authority.
+
+
+=======================================================================
+
+Creative Commons is not a party to its public
+licenses. Notwithstanding, Creative Commons may elect to apply one of
+its public licenses to material it publishes and in those instances
+will be considered the “Licensor.” The text of the Creative Commons
+public licenses is dedicated to the public domain under the CC0 Public
+Domain Dedication. Except for the limited purpose of indicating that
+material is shared under a Creative Commons public license or as
+otherwise permitted by the Creative Commons policies published at
+creativecommons.org/policies, Creative Commons does not authorize the
+use of the trademark "Creative Commons" or any other trademark or logo
+of Creative Commons without its prior written consent including,
+without limitation, in connection with any unauthorized modifications
+to any of its public licenses or any other arrangements,
+understandings, or agreements concerning use of licensed material. For
+the avoidance of doubt, this paragraph does not form part of the
+public licenses.
+
+Creative Commons may be contacted at creativecommons.org.
+
diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt
index a149e891..73bb9780 100644
--- a/LICENSES/MIT.txt
+++ b/LICENSES/MIT.txt
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2020 aerynOS Developers
+Copyright (c) 2020 aerynOS
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 7e78cbb8..1c13c969 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,9 @@
+# aerynOS website
+
+## Prerequisites for editing and viewing the site locally
+
+If this is your first encounter with a git-based workflow, we recommend that you study up on what git is and how git (and GitHub) works. One such tutorial is available [here](https://docs.github.com/en/get-started).
+
## NodeJS install prerequisites
Before attempting to compile and show the website locally, please ensure that:
@@ -11,7 +17,8 @@ Before attempting to compile and show the website locally, please ensure that:
- Make sure you add `${HOME}/node_modules/.bin` to your shell ${PATH}
- With the above prerequisites satisfied, clone the present repo and cd into the root of it.
- Then run:
- ```
+
+```
pnpm install
```
@@ -19,12 +26,35 @@ Before attempting to compile and show the website locally, please ensure that:
After the above import and install operations have completed successfully on your system, run:
- pnpm run dev
+ ```
+ pnpm run dev
+ ```
... and follow the instructions shown.
At this point, any time you edit a page, the changes should show up live in your browser.
+When you are happy with your edits, commit your changes in your local git repository and create a Pull Request from said local changes.
+
+### Suggested writing style guide
+
+We recommend that you consult the [Solus documentation style guide](https://help.getsol.us/docs/user/contributing/style/) when it comes to how to address your target audience.
+
+### Example github commit message
+
+When describing your changes, [use imperative mood, present tense and an active voice](https://github.com/joelparkerhenderson/git-commit-message/).
+
+Example:
+
+```
+packaging: Add goober subsection on frobnicating
+
+- Add up front context that the user needs to know
+- Ensure that the structure flows naturally from start to finish
+- Simplify the fiddlybob section language to shorter, international english sentences
+- Run spellcheck on the changes to ensure they are written in US English.
+```
+
## Licences
This repository contains multiple types of content, each under its own licence:
@@ -32,6 +62,7 @@ At this point, any time you edit a page, the changes should show up live in your
| Content | Licence |
|---------|---------|
| Blog posts (src/content/docs/blog/) | [CC BY-ND 4.0](LICENSES/CC-BY-ND-4.0.txt) |
+| Documentation (src/content/docs/) | [CC BY-SA 4.0](LICENSES/CC-BY-SA-4.0.txt) |
| Website code (Anything else) | [MIT](LICENSES/MIT.txt) |
### Website Code (MIT)
@@ -42,6 +73,31 @@ The website build configuration, templates, and code are licensed under the MIT
Blog articles may be redistributed but not modified under the Creative Commons Attribution-NoDerivatives 4.0 International licence.
+### Documentation (CC BY-SA 4.0)
+
+All documentation content may be shared and adapted under the terms of the Creative Commons Attribution-ShareAlike 4.0 International licence.
+
### Other
Some files might have a different license. See the file's content for details.
+
+## Documentation
+
+### Suggested writing style guide
+
+We recommend that you consult the [Solus documentation style guide](https://help.getsol.us/docs/user/contributing/style/) when it comes to how to address your target audience.
+
+### Example github commit message
+
+When describing your changes, [use imperative mood, present tense and an active voice](https://github.com/joelparkerhenderson/git-commit-message/).
+
+Example:
+
+```
+packaging: Add goober subsection on frobnicating
+
+- Add up front context that the user needs to know
+- Ensure that the structure flows naturally from start to finish
+- Simplify the fiddlybob section language to shorter, international english sentences
+- Run spellcheck on the changes to ensure they are written in US English.
+```
diff --git a/astro.config.mjs b/astro.config.mjs
index 2b20f15e..76e78de4 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -1,144 +1,209 @@
+// @ts-check
import { defineConfig, svgoOptimizer } from "astro/config";
+import starlight from '@astrojs/starlight';
+import starlightBlog from 'starlight-blog';
+import mermaid from "astro-mermaid";
+import starlightLinksValidator from "starlight-links-validator";
+import starlightScrollToTop from "starlight-scroll-to-top";
+import starlightKbd from "starlight-kbd";
import icon from "astro-icon"
-import starlight from '@astrojs/starlight'
-import starlightBlog from 'starlight-blog'
-import astroBrokenLinksChecker from 'astro-broken-link-checker';
-import mdx from "@astrojs/mdx"
+import starlightUiTweaks from 'starlight-ui-tweaks'
// https://astro.build/config
export default defineConfig({
- // https://docs.astro.build/en/guides/images/#authorizing-remote-images
- site: "https://aerynos.com",
- // image: {
- // domains: ["images.unsplash.com"],
- // },
- // i18n: {
- // defaultLocale: "en",
- // locales: ["en"],
- // fallback: {},
- // routing: {
- // prefixDefaultLocale: false,
- // },
- // },
+ site: 'https://aerynos.com',
prefetch: true,
integrations: [
- astroBrokenLinksChecker({
- logFilePath: 'dist/broken-links.log', // Optional: specify the log file path
- checkExternalLinks: false // Optional: check external links (currently, caching to disk is not supported, and it is slow )
- }),
+ mermaid({
+ enableLog: false,
+ }),
icon(),
- // tailwind(),
- starlight({ // Starlight config:
- title: "aerynOS",
+ starlight({
logo: {
- dark: '@/images/logo.svg',
- light: '@/images/logo-light-mode.svg',
- replacesTitle: true,
+ dark: "@/images/logo.svg",
+ light: "@/images/logo-light-mode.svg",
+ replacesTitle: false,
},
- favicon: '/images/favicons/favicon.svg', // Starlight requires favicons from the public/ directory
- head: [
- // favicon set
- { tag: 'link', attrs: { rel: 'shortcut icon', href: 'favicon.ico', media: '(prefers-color-scheme: light)' } },
- { tag: 'link', attrs: { rel: 'shortcut icon', href: '/images/favicons/favicon-dark.ico', media: '(prefers-color-scheme: dark)' } },
+ title: 'aerynOS',
+
+ social: [
+ {
+ icon: 'github',
+ label: 'GitHub',
+ href: 'https://github.com/aerynos',
+ },
+ {
+ icon: 'zulip',
+ label: 'Zulip',
+ href: 'https://aerynos.zulipchat.com/',
+ },
+ {
+ icon: 'mastodon',
+ label: 'Mastodon',
+ href: 'https://hachyderm.io/@aerynOS',
+ },
+ {
+ icon: 'blueSky',
+ label: 'Bluesky',
+ href: 'https://bsky.app/profile/aerynos.com/',
+ },
+ {
+ icon: 'x.com',
+ label: 'x.com',
+ href: 'https://x.com/AerynOS_Linux',
+ },
+ {
+ icon: 'discourse',
+ label: 'Discourse',
+ href: 'https://aerynos.discourse.group/',
+ },
],
+
sidebar: [
- { slug: '' },
- { slug: 'about' },
- { slug: 'download' },
- { slug: 'community' },
- { slug: 'privacy' },
- { slug: 'sponsor' },
{
- label: 'Tooling',
- collapsed: true,
+ label: "aerynOS",
items: [
- { slug: 'tooling' },
- { slug: 'tooling/moss' },
- { slug: 'tooling/boulder' },
- ]
+ { autogenerate: { directory: 'aerynOS' } }
+ ],
+ },
+ {
+ label: "FAQ",
+ items: [
+ { autogenerate: { directory: 'FAQ' } }
+ ],
+ },
+ {
+ label: "Users",
+ items: [
+ { autogenerate: { directory: 'Users' } }
+ ],
+ },
+ {
+ label: "Packaging",
+ items: [
+ { autogenerate: { directory: 'Packaging' } }
+ ],
+ },
+ {
+ label: "Developers",
+ items: [
+ { autogenerate: { directory: 'Developers' } }
+ ],
},
- { label: 'Blog', link: '/blog' },
],
+
plugins: [
+ starlightUiTweaks({
+ navbarLinks: [
+ { label: "About", href: "/about" },
+ { label: "Download", href: "/download" },
+ { label: "Privacy", href: "/privacy" },
+ { label: "Sponsor", href: "/sponsor" },
+ { label: "Tooling", href: "/tooling" },
+ { label: "Documentation", href: "/aerynos" },
+ { label: "Blog", href: "/blog" },
+ ],
+ footer: {
+ showSocialIcons: false,
+ copyright: "aerynOS developers. All rights reserved.",
+ firstColumn: {
+ title: "aerynOS",
+ links: [
+ { label: "About", href: "/about" },
+ { label: "Download", href: "/download" },
+ { label: "Documentation", href: "/aerynos" },
+ ],
+ },
+ secondColumn: {
+ title: "Privacy",
+ links: [
+ { label: "Privacy", href: "/privacy" },
+ ],
+ },
+ thirdColumn: {
+ title: "Sponsorship",
+ links: [
+ { label: "Sponsor", href: "/sponsor" },
+ ],
+ },
+ fourthColumn: {
+ title: "Blog",
+ links: [
+ { label: "Blog", href: "/blog" },
+ ],
+ },
+ },
+ }),
starlightBlog({
- title: "Blog",
+ title: 'Blog',
recentPostCount: 100,
metrics: {
readingTime: true,
words: 'total',
- },
+ },
authors: {
ikey: {
name: 'Ikey',
title: 'Founder: Retired',
- picture: '/images/authors/ikey.jpg',
+ picture: '/images/authors/ikey.webp',
url: 'https://github.com/ikeycode',
},
sunnyflunk: {
name: 'SunnyFlunk',
title: 'Distro Engineer: Retired',
- picture: '/images/authors/sunnyflunk.png',
+ picture: '/images/authors/sunnyflunk.webp',
url: 'https://github.com/sunnyflunk',
},
ermo: {
name: 'ermo',
title: 'Co-founder & Project Steward',
- picture: '/images/authors/ermo.png',
+ picture: '/images/authors/ermo.webp',
url: 'https://github.com/ermo',
},
nomadiccore: {
name: 'NomadicCore',
title: 'Project Comms',
- picture: '/images/authors/khaga87.png',
+ picture: '/images/authors/khaga87.webp',
url: 'https://github.com/khaga87',
},
khaga87: {
name: 'khaga87',
title: 'Project Comms',
- picture: '/images/authors/khaga87.png',
+ picture: '/images/authors/khaga87.webp',
url: 'https://github.com/khaga87',
},
joebonrichie: {
name: 'Joey Riches',
- picture: '/images/authors/joey.png',
- url: 'https://github.com/joebonrichie'
- }
+ picture: '/images/authors/joey.webp',
+ url: 'https://github.com/joebonrichie',
+ },
},
}),
+ starlightLinksValidator(),
+ starlightScrollToTop({
+ position: "right",
+ showTooltip: true,
+ smoothScroll: true,
+ threshold: 10,
+ svgPath: "M12 4L6 10H9V16H15V10H18L12 4M9 16L12 20L15 16",
+ svgStrokeWidth: 2,
+ borderRadius: "20",
+ showProgressRing: true,
+ showOnHomepage: true,
+ tooltipText: "Back to top",
+ }),
+ starlightKbd({
+ globalPicker: false,
+ types: [
+ { id: "mac", label: "macOS" },
+ { id: "windows", label: "Windows" },
+ { id: "linux", label: "Linux", default: true },
+ ],
+ }),
],
customCss: [
"@/styles/global.css",
],
- components: {
- Sidebar: "@/components/starlight-overrides/Sidebar.astro",
- Pagination: "@/components/starlight-overrides/Pagination.astro",
- SocialIcons: '@/components/starlight-overrides/SocialIcons.astro',
- PageTitle: '@/components/starlight-overrides/PageTitle.astro',
- ContentPanel: '@/components/starlight-overrides/ContentPanel.astro',
-
- },
- credits: false,
}),
- // sitemap({
- // i18n: {
- // defaultLocale: "en", // All urls that don't contain `fr` after `https://aerynos.com/` will be treated as default locale, i.e. `en`
- // locales: {
- // en: "en", // The `defaultLocale` value must present in `locales` keys
- // // fr: "fr",
- // },
- // },
- // }),
-
- // pre-compress them generated files - requires web server to be configured to look for these first
- // compressor({
- // gzip: false,
- // brotli: true,
- // }),
-
- mdx()
],
- experimental: {
- clientPrerender: true,
- svgOptimizer: svgoOptimizer()
- },
-})
+});
diff --git a/package.json b/package.json
index 6c8f5474..a05a4c3c 100644
--- a/package.json
+++ b/package.json
@@ -10,50 +10,26 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/check": "^0.9.10",
- "@astrojs/mdx": "^7.0.8",
- "@astrojs/sitemap": "^3.7.4",
- "@astrojs/starlight": "^0.41.11",
+ "@astrojs/starlight": "^0.42.5",
"@iconify-json/fa6-regular": "^1.2.4",
"@iconify-json/fa6-solid": "^1.2.4",
- "@iconify-json/octicon": "^1.2.34",
- "@iconify-json/simple-icons": "^1.2.95",
- "@iconify-json/tabler": "^1.2.38",
- "@preline/accordion": "^2.6.0",
- "@preline/collapse": "^2.6.0",
- "@preline/dropdown": "^2.6.0",
- "@preline/overlay": "^2.6.0",
- "@preline/tabs": "^2.6.0",
- "@types/html-to-text": "^9.0.4",
- "@types/markdown-it": "^14.2.0",
- "astro": "^7.3.2",
- "astro-broken-link-checker": "github:imazen/astro-broken-link-checker",
- "astro-compressor": "^1.3.0",
+ "@iconify-json/logos": "^1.2.15",
+ "@iconify-json/octicon": "^1.2.37",
+ "@iconify-json/simple-icons": "^1.2.98",
+ "@iconify-json/tabler": "^1.2.41",
+ "astro": "^7.3.5",
+ "astro-asciinema": "^0.1.0",
+ "astro-broken-links-checker": "^1.1.0",
"astro-icon": "^1.2.0",
- "clipboard": "^2.0.11",
- "globby": "^14.1.0",
- "gray-matter": "^4.0.3",
- "gsap": "^3.15.0",
- "html-minifier-terser": "^7.2.0",
- "html-to-text": "^9.0.5",
- "js-yaml": "^4.3.2",
- "preline": "^2.7.0",
- "rimraf": "^6.1.3",
- "sharp": "^0.33.5",
- "sharp-ico": "^0.1.5",
- "starlight-blog": "^0.26.1"
- },
- "devDependencies": {
- "astro-vtbot": "^2.1.12",
- "prettier": "^3.9.6",
- "prettier-plugin-astro": "^0.14.1",
- "prettier-plugin-tailwindcss": "^0.6.14",
- "typescript": "^5.9.3"
- },
- "pnpm": {
- "onlyBuiltDependencies": [
- "esbuild",
- "sharp"
- ]
+ "astro-mermaid": "^2.1.0",
+ "card": "^2.5.4",
+ "mermaid": "^12.1.0",
+ "sharp": "^0.35.5",
+ "starlight-blog": "^0.30.0",
+ "starlight-kbd": "^0.4.0",
+ "starlight-links-validator": "^0.26.0",
+ "starlight-scroll-to-top": "^2.0.0",
+ "starlight-ui-tweaks": "^0.2.2",
+ "yaml": "^2.9.1"
}
}
diff --git a/patches/starlight-blog.patch b/patches/starlight-blog.patch
deleted file mode 100644
index fbf3f6a6..00000000
--- a/patches/starlight-blog.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-diff --git a/components/Preview.astro b/components/Preview.astro
-index e7bfe0b71210a8a25f6bb9f019fc9509925e8f08..a00c193e4433c44c6d7f824fa6bb31b5d1b0ee9d 100644
---- a/components/Preview.astro
-+++ b/components/Preview.astro
-@@ -26,7 +26,7 @@ const Excerpt = await getBlogEntryExcerpt(entry)
-