Skip to content

Commit

Permalink
Adds vitepress docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Robert27 committed Sep 14, 2024
1 parent 6ca8407 commit 290060e
Show file tree
Hide file tree
Showing 78 changed files with 2,051 additions and 112 deletions.
49 changes: 49 additions & 0 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Build and push Docker image for docs

# Configures this workflow to run every time a change is pushed to the branch called `release`.
on:
push:
branches: ['main']
paths:
- 'docs/**'

# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds.
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

# There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu.
jobs:
deploy-docs:
runs-on: ubuntu-latest
# Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job.
permissions:
contents: read
packages: write
#
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here.
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about) to extract tags and labels that will be applied to the specified image. The `id` "meta" allows the output of this step to be referenced in a subsequent step. The `images` value provides the base name for the tags and labels.
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages.
# It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository.
# It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step.
- name: Build and push Docker image
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: ./docs
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
15 changes: 15 additions & 0 deletions .github/workflows/test-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Lint docs
on:
pull_request:
paths:
- 'docs/**'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Try to build docker image
run: docker build -t docs ./docs
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,12 @@ It features a modern user interface and utilizes the Expo framework for easy dev
The app aims at implementing all important features of the official app as free and open source software with a modern UI and native features.
To achieve this, the existing React backend was adapted and the Neuland GraphQL API was created.

Learn more about the app on the [Neuland Next website](https://next.neuland.app).

### Contributing

We are always looking for contributors to help us improve the app.
Check out the [contributing guidelines](.github/CONTRIBUTING.md) to get started.
Check out the [contributing guidelines](https://next.neuland.app/en/app/setup) to get started.

## Beta Testing

Expand Down
Binary file modified bun.lockb
Binary file not shown.
3 changes: 3 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.vitepress/dist/
.vitepress/cache/
node_modules/
1 change: 1 addition & 0 deletions docs/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
111 changes: 111 additions & 0 deletions docs/.vitepress/config/de.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
import { createRequire } from "module";
import { defineConfig, type DefaultTheme } from "vitepress";

export const de = defineConfig({
lang: "de-DE",
description: "Dein Studium an der THI in einer App.",

themeConfig: {
nav: [
{ text: "Home", link: "/" },
{ text: "App", link: "/app/main" },
{ text: "Über uns", link: "/about/club" },
],
search: {
provider: "local",
options: {
translations: {
button: {
buttonText: "Suchen",
buttonAriaLabel: "Suchen",
},
modal: {
displayDetails: "Details anzeigen",
resetButtonTitle: "Zurücksetzen",
backButtonTitle: "Zurück",
noResultsText: "Keine Ergebnisse gefunden",
footer: {
selectText: "Auswählen",
navigateText: "Navigieren",
closeText: "Schließen",
},
},
},
},
},

footer: {
message:
'<a href="/legal/imprint">Impressum</a> & <a href="/legal/privacy">Datenschutz</a>',
copyright: "Copyright © 2024 Neuland Ingolstadt e.V.",
},
sidebar: {
"/app/": { base: "/app/", items: sidebarApp() },
"/about/": { base: "/about/", items: sidebarAbout() },
},
docFooter: {
prev: "Vorherige Seite",
next: "Nächste Seite",
},
outline: {
label: "Auf dieser Seite",
},

lastUpdated: {
text: "Aktualisiert am",
formatOptions: {
dateStyle: "short",
timeStyle: "medium",
},
},

langMenuLabel: "Sprache wechseln",
returnToTopLabel: "Nach oben zurückkehren",
sidebarMenuLabel: "Seitenmenü",
darkModeSwitchLabel: "Erscheinungsbild",
lightModeSwitchTitle: "Zu hellem Modus wechseln",
darkModeSwitchTitle: "Zu dunklem Modus wechseln",
},
});

function sidebarApp(): DefaultTheme.SidebarItem[] {
return [
{
text: "The App",
collapsed: false,
items: [
{ text: "Neuland Next", link: "app" },
{ text: "Funktionen", link: "features" },
{ text: "Installieren", link: "download" },
{ text: "FAQ", link: "faq" },
],
},
{
text: "Support",
collapsed: false,
items: [
{ text: "Fehlerbehebung", link: "troubleshoot" },
{ text: "Feedback", link: "feedback" },
],
},
{
text: "Mitwirken",
collapsed: false,
items: [
{ text: "Wege zur Mitarbeit", link: "contribute" },
{ text: "Entwicklungsumgebung einrichten", link: "setup" },
],
},
];
}
function sidebarAbout(): DefaultTheme.SidebarItem[] {
return [
{
text: "About Neuland",
items: [
{ text: "Neuland Ingolstadt", link: "club" },
{ text: "Entwickler", link: "contributors" },
],
},
];
}
70 changes: 70 additions & 0 deletions docs/.vitepress/config/en.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import { createRequire } from "module";
import { defineConfig, type DefaultTheme } from "vitepress";

const require = createRequire(import.meta.url);

export const en = defineConfig({
lang: "en-US",
description: "Your studies at THI in one app.",

themeConfig: {
nav: [
{ text: "Home", link: "/en/" },

{ text: "App", link: "/en/app/main" },
{ text: "About Us", link: "/en/about/club" },
],

footer: {
message:
'<a href="/legal/imprint">Imprint</a> & <a href="/legal/privacy">Privacy</a>',
copyright: "Copyright © 2024 Neuland Ingolstadt e.V.",
},
sidebar: {
"/en/app/": { base: "/en/app/", items: sidebarApp() },
"/en/about/": { base: "/en/about/", items: sidebarAbout() },
},
},
});

function sidebarApp(): DefaultTheme.SidebarItem[] {
return [
{
text: "The App",
collapsed: false,
items: [
{ text: "Neuland Next", link: "app" },
{ text: "Features", link: "features" },
{ text: "Install", link: "download" },
{ text: "FAQ", link: "faq" },
],
},
{
text: "Support",
collapsed: false,
items: [
{ text: "Troubleshooting", link: "troubleshoot" },
{ text: "Feedback", link: "feedback" },
],
},
{
text: "Contributing",
collapsed: false,
items: [
{ text: "Ways to Contribute", link: "contribute" },
{ text: "Setup Development Environment", link: "setup" },
],
},
];
}
function sidebarAbout(): DefaultTheme.SidebarItem[] {
return [
{
text: "About Neuland",
items: [
{ text: "Neuland Ingolstadt", link: "club" },
{ text: "Contributors", link: "contributors" },
],
},
];
}
12 changes: 12 additions & 0 deletions docs/.vitepress/config/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { defineConfig } from "vitepress";
import { shared } from "./shared";
import { en } from "./en";
import { de } from "./de";

export default defineConfig({
...shared,
locales: {
root: { label: "Deutsch", ...de },
en: { label: "English", ...en },
},
});
Binary file added docs/.vitepress/config/og-image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
103 changes: 103 additions & 0 deletions docs/.vitepress/config/shared.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
import { defineConfig, type DefaultTheme } from "vitepress";

// https://vitepress.dev/reference/site-config
export const shared = defineConfig({
title: "Neuland Next",
cleanUrls: true,
head: [
["meta", { charset: "UTF-8" }],
[
"meta",
{ name: "viewport", content: "width=device-width, initial-scale=1.0" },
],
["meta", { name: "theme-color", content: "#0073ff" }],
["link", { rel: "icon", href: "/favicon.svg", type: "image/svg+xml" }],
["link", { rel: "icon", href: "/favicon.png", type: "image/png" }],
["meta", { property: "og:type", content: "website" }],
["meta", { property: "og:locale", content: "de_DE" }],
["meta", { property: "og:locale:alternate", content: "en_US" }],
[
"meta",
{
property: "og:title",
content: "Neuland Next | Deine inoffizielle THI App",
},
],
[
"meta",
{
property: "title",
content: "Neuland Next | Deine inoffizielle THI App",
},
],
[
"meta",
{
property: "og:description",
content: "Dein Studium an der THI in einer App.",
},
],
[
"meta",
{
property: "description",
content: "Dein Studium an der THI in einer App.",
},
],
[
"meta",
{
property: "og:title",
content: "Neuland Next | Deine inoffizielle THI App",
},
],
["meta", { property: "og:image", content: "/og-image.png" }],
["meta", { property: "og:site_name", content: "Neuland Next" }],
["meta", { property: "og:url", content: "https://next.neuland.app" }],
[
"meta",
{
name: "keywords",
content: "Neuland, THI, neuland.app, THI App, Neuland Next",
},
],
[
"meta",
{
property: "twitter:title",
content: "Neuland Next | Deine inoffizielle THI App",
},
],
[
"meta",
{
property: "twitter:description",
content: "Dein Studium an der THI in einer App.",
},
],
["meta", { property: "twitter:image", content: "/og-image.png" }],
["link", { rel: "canonical", href: "https://next.neuland.app" }],
],
rewrites: {
"de/:rest*": ":rest*",
},
themeConfig: {
logo: {
dark: "/assets/logo-light.png",
light: "/assets/logo-dark.png",
},
search: {
provider: "local",
},
socialLinks: [
{
icon: "github",
link: "https://github.com/neuland-ingolstadt/neuland.app-native",
},
{
icon: "instagram",
link: "https://www.instagram.com/neuland_ingolstadt/",
},
],
},
});
Loading

0 comments on commit 290060e

Please sign in to comment.