first commit with astro

This commit is contained in:
Olivier Demers 2023-09-02 13:43:38 -04:00
parent a87824d57c
commit 25d80a4a31
37 changed files with 4243 additions and 11384 deletions

31
.gitignore vendored
View File

@ -1,20 +1,21 @@
# Dependencies
/node_modules
# build output
dist/
# generated types
.astro/
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
# 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
README.md Normal file
View File

@ -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 [Starlights docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).

30
astro.config.mjs Normal file
View File

@ -0,0 +1,30 @@
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
// https://astro.build/config
export default defineConfig({
integrations: [
starlight({
title: 'My Docs',
social: {
github: 'https://github.com/withastro/starlight',
},
sidebar: [
{
label: 'Guides',
items: [
// Each item here is one entry in the navigation menu.
{ label: 'Example Guide', link: '/guides/example/' },
],
},
{
label: 'Reference',
autogenerate: { directory: 'reference' },
},
],
}),
],
// Process images with sharp: https://docs.astro.build/en/guides/assets/#using-sharp
image: { service: { entrypoint: 'astro/assets/services/sharp' } },
});

View File

@ -1,3 +0,0 @@
module.exports = {
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
};

View File

@ -1,146 +0,0 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
const lightCodeTheme = require("prism-react-renderer/themes/github");
const darkCodeTheme = require("prism-react-renderer/themes/dracula");
/** @type {import('@docusaurus/types').Config} */
const config = {
title: "Doc PLS5618",
tagline: "Documentation PLS5618",
favicon: "img/favicon.ico",
// Set the production url of your site here
url: "https://docs.pls5618.com",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: "/",
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
// Even if you don't use internalization, you can use this field to set useful
// metadata like html lang. For example, if your site is Chinese, you may want
// to replace "en" with "zh-Hans".
i18n: {
defaultLocale: "fr",
locales: ["fr"],
},
presets: [
[
"classic",
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: false,
theme: {
customCss: require.resolve("./src/css/custom.css"),
},
}),
],
],
plugins: [
[
"@docusaurus/plugin-content-docs",
{
id: "java",
path: "java",
routeBasePath: "java",
sidebarPath: require.resolve("./sidebars.js"),
},
],
[
"@docusaurus/plugin-content-docs",
{
id: "robot",
path: "robot",
routeBasePath: "robot",
sidebarPath: require.resolve("./sidebars2.js"),
},
],
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
// Replace with your project's social card
image: "img/logo.png",
navbar: {
title: "PLS 5618",
logo: {
alt: "PLS 5618",
src: "img/logo.png",
},
items: [
{
type: "doc",
docId: "index",
position: "left",
label: "Java",
docsPluginId: "java",
},
{
type: "doc",
docId: "index",
position: "left",
label: "Robot",
docsPluginId: "robot",
},
],
},
footer: {
style: "dark",
links: [
{
title: "Documentation",
items: [
{
label: "Java",
to: "/java",
},
{
label: "Robot",
to: "/robot",
},
],
},
{
title: "Communauté",
items: [
{
label: "Facebook",
href: "https://www.facebook.com/PLS5618",
},
{
label: "Twitter",
href: "https://twitter.com/pls5618",
},
{
label: "Instagram",
href: "https://www.instagram.com/team5618",
},
{
label: "Site Internet",
href: "https://pls5618.com/",
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} PLS 5618. Fait avec Docusaurus.`,
},
prism: {
additionalLanguages: ["java", "groovy"],
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
},
algolia: {
appId: "FWL5E6J51N",
apiKey: "311ff1b7dfe8b50e47c8f1b58617356d",
indexName: "pls5618",
contextualSearch: true,
},
}),
};
module.exports = config;

View File

@ -1 +0,0 @@
# Classes

View File

@ -1,8 +0,0 @@
---
sidebar_position: 1
---
# Introduction
Pour programmer le robot, nous utilisons le langage de programmation **Java**.
Dans cette section, vous allez apprendre les bases de Java.

View File

@ -1 +0,0 @@
# Syntaxe

View File

@ -1 +0,0 @@
# Try-Catch

View File

@ -1,61 +0,0 @@
---
sidebar_position: 2
---
# Variables et Types
En Java, comme dans plusieurs langagues de programmation, l'information est stockée dans des [variables](#variables). Ces variables ont toutes un [type](#types), qui permet de déterminer ce qu'elles peuvent contenir.
## Variables
Une variable représente un espace en mémoire pour stocker de l'information.
Chaque variable a un **nom**, un **type** et contient de l'information. Pour créer un variable, on l'écrit `type nom = valeur`. À savoir que la valeur est optionnelle, car elle peut être donnée plus tard.
## Types
Il existe plusieurs types pour les variables, certains viennent dans Java, mais il est aussi possible pour vous d'en créer. Certains types ne font que stocker une donnée, ils sont donc de types [primitifs](#primitifs). D'autres ont aussi de la fonctionnalité, ce sont des [classes](#classes).
### Primitifs
Les types primitifs ne font que stocker de la donnée. En Java, il existe 8 types primitifs qui permettes de stocker des **nombres**, **charactères** et **vrai/faux**.
Voici les différents types primitifs
| **Type** | **Stockage** |
| --------- | -------------------------------------------- |
| _int_ | _Nombre entier_ |
| byte | Peut stocker n'importe quoi, mais très petit |
| short | Petit nombre entier |
| long | Très grand nombre entier |
| float | Nombre à virgule |
| _double_ | _Nombre à virgule plus précis_ |
| _boolean_ | _Vrai/Faux_ |
| char | Charactère |
:::note
Les types en italique (_int_, _double_, _boolean_) sont les plus utiles.
:::
Voici comment créer un `double`:
```java
double nombre = 4.2;
```
### Classes
Les classes permettent d'ajouter de la fonctionnalité à une variable. Elles permettent aussi de regrouper plusiers variables ensemble. On les reconnait par le fait que leur nom commence par une majuscule (les types primitifs commencent tous par une minuscule). Un exemple de classe qui vient avec Java est le `String`, qui contient une chaine de charactères (`char`). Ça permet donc de stocker des mots ou des phrases. Les string ajoute aussi quelques fonctionalités qui permettent de séparer une phrase en mots ou de savoir la longueur de la chaine de charactère par exemple.
:::info
Plus d'information sur les classes est donnée dans la section [classes](./classes).
:::
Voici comment créer un `String`:
```java
String phrase = "Hello World!";
```
:::note
Vous remarquez que dans les exemples sur cette page, les lignes finissent toutes par `;`. Pour en savoir plus, lisez la page [syntaxe](./syntaxe)
:::

14827
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,46 +1,17 @@
{
"name": "docs",
"version": "0.0.0",
"private": true,
"name": "pls-docs",
"type": "module",
"version": "0.0.1",
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids"
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"@docusaurus/core": "^2.4.0",
"@docusaurus/plugin-content-docs": "^2.4.0",
"@docusaurus/preset-classic": "^2.4.0",
"@docusaurus/theme-search-algolia": "^2.4.0",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@docusaurus/eslint-plugin": "^2.4.0",
"@docusaurus/module-type-aliases": "^2.4.0"
},
"browserslist": {
"production": [
">0.5%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"engines": {
"node": ">=16.14"
"@astrojs/starlight": "^0.9.0",
"astro": "^3.0.6",
"sharp": "^0.32.5"
}
}
}

1
public/favicon.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill-rule="evenodd" d="M81 36 64 0 47 36l-1 2-9-10a6 6 0 0 0-9 9l10 10h-2L0 64l36 17h2L28 91a6 6 0 1 0 9 9l9-10 1 2 17 36 17-36v-2l9 10a6 6 0 1 0 9-9l-9-9 2-1 36-17-36-17-2-1 9-9a6 6 0 1 0-9-9l-9 10v-2Zm-17 2-2 5c-4 8-11 15-19 19l-5 2 5 2c8 4 15 11 19 19l2 5 2-5c4-8 11-15 19-19l5-2-5-2c-8-4-15-11-19-19l-2-5Z" clip-rule="evenodd"/><path d="M118 19a6 6 0 0 0-9-9l-3 3a6 6 0 1 0 9 9l3-3Zm-96 4c-2 2-6 2-9 0l-3-3a6 6 0 1 1 9-9l3 3c3 2 3 6 0 9Zm0 82c-2-2-6-2-9 0l-3 3a6 6 0 1 0 9 9l3-3c3-2 3-6 0-9Zm96 4a6 6 0 0 1-9 9l-3-3a6 6 0 1 1 9-9l3 3Z"/><style>path{fill:#000}@media (prefers-color-scheme:dark){path{fill:#fff}}</style></svg>

After

Width:  |  Height:  |  Size: 696 B

View File

@ -1,5 +0,0 @@
---
sidebar_position: 2
---
# Créer un projet

View File

@ -1,7 +0,0 @@
---
sidebar_position: 2
---
# Premier Projet
Dans cette section, vous apprendrez comment installer le logiciel de programmation et comment créer un projet.

View File

@ -1,23 +0,0 @@
---
sidebar_position: 1
---
# Installation
Pour programmer un robot _FRC_, nous avons plusieurs choses à installer:
- Les [outils de développement](#outils-de-développement), qui permettent de programmer le robot et déployer le programme sur un robot
- Les [outils de jeux](#outils-de-jeu), qui permettent de controler le robot
- L'[outil de configuration de radio](#outil-de-configuration-de-radio) (optionnel), qui permet de configurer le routeur du robot
## Outils de développement
Les outils de développement sont les outils qui permettent de créer un programme pour le robot et de l'envoyer sur le robot. L'outil principal est l'éditeur [VSCode](https://code.visualstudio.com/) avec des extensions faites pour le développement d'un robot _FRC_.
Pour télécharger les outils, vous pouvez aller sur leur [page GitHub](https://github.com/wpilibsuite/allwpilib/releases/), descendre et télécharger le fichier `WPILib_Windows-xxx.x.x.iso` pour la version la plus récente disponible.
![page github](/img/installation/github.png)
## Outils de jeu
## Outil de configuration de Radio

View File

@ -1,10 +0,0 @@
---
sidebar_position: 1
---
# Introduction
Comme vous l'aurez compris avec la section [Java](../java/), un robot _FRC_ peut être programmé en Java.
Il peut aussi être programmé en _C++_, _LabView_ ou _Python_, mais nous avons choisi _Java_ pour sa simplicité et sa robustesse.
Dans cette section, vous apprendrez comment programmer un robot _FRC_ en _Java_ en utilisant la bibliothèque [WPILib](https://docs.wpilib.org/)

View File

@ -1,77 +0,0 @@
---
sidebar_position: 2
---
# Installer AdvantageKit
AdvantageKit permet de recevoir plus d'information du robot, ce qui nous aidera à debug.
[Plus d'information](https://github.com/Mechanical-Advantage/AdvantageKit/blob/main/docs/INSTALLATION.md)
## Ajouter le répertoire d'AdvantageKit
Ajouter ce code à la fin du fichier `build.gradle` pour ajouter le repertoire d'AdvantageKit.
```groovy
repositories {
maven {
url = uri("https://maven.pkg.github.com/Mechanical-Advantage/AdvantageKit")
credentials {
username = "Mechanical-Advantage-Bot"
password = "\u0067\u0068\u0070\u005f\u006e\u0056\u0051\u006a\u0055\u004f\u004c\u0061\u0079\u0066\u006e\u0078\u006e\u0037\u0051\u0049\u0054\u0042\u0032\u004c\u004a\u006d\u0055\u0070\u0073\u0031\u006d\u0037\u004c\u005a\u0030\u0076\u0062\u0070\u0063\u0051"
}
}
}
```
Il faut aussi ajouter ce code en dessous pour remplacer certaines fonctionalités de WPILib par celles de AdvantageKit.
```groovy
configurations.all {
exclude group: "edu.wpi.first.wpilibj"
}
```
## Ajout dans le programme
Il faut ensuite ajouter les bibliothèques qui permettent de choisir quoi enregistrer.
### Bibliothèques
Il faut utiliser la même technique que dans [Bibliothèques de composants](./vendor_libraries) avec le lien suivant:
```
https://github.com/Mechanical-Advantage/AdvantageKit/releases/latest/download/AdvantageKit.json
```
### Configuration du robot
Il faut ensuite aller remplacer le type de robot pour celui de AdvantageKit dans `Robot.java`:
```java
public class Robot extends LoggedRobot {
...
}
```
Ensuite, dans `robotInit()` ajoutez les lignes suivantes:
```java
Logger.getInstance().recordMetadata("ProjectName", "5618BOT");
if (isReal()) {
Logger.getInstance().addDataReceiver(new WPILOGWriter("/media/sda1/"));
new PowerDistribution(1, ModuleType.kCTRE);
}
Logger.getInstance().addDataReceiver(new NT4Publisher());
Logger.getInstance().start();
```
:::caution
Il faut importer le `Logger` de `org.littletonrobotics.junction.Logger`.
:::
:::note
Remplacer le ModuleType du PowerDistribution par kREV selon le PDP utilisé.
:::
AdvantageKit est installé. Vous pouvez maintenant utiliser [AdvantageScope](https://github.com/Mechanical-Advantage/AdvantageScope).

View File

@ -1,5 +0,0 @@
---
sidebar_position: 3
---
# Nouveau Projet

View File

@ -1,35 +0,0 @@
---
sidebar_position: 1
---
# Bibliothèques de composants
NavX
```
https://dev.studica.com/releases/2023/NavX.json
```
Phoenix (CTRE)
```
https://maven.ctr-electronics.com/release/com/ctre/phoenix/Phoenix5-frc2023-latest.json
```
REV
```
https://software-metadata.revrobotics.com/REVLib-2023.json
```
AdvantageKit (voir [AdvantageKit](./advantagekit))
```
https://github.com/Mechanical-Advantage/AdvantageKit/releases/latest/download/AdvantageKit.json
```
YAGSL (Swerve, voir [YAGSL](./yagsl.md))
```
https://broncbotz3481.github.io/YAGSL-Lib/yagsl/yagsl.json
```

View File

@ -1,44 +0,0 @@
---
sidebar_position: 3
---
# YAGSL (Swerve)
[Yet Another Generic Swerve Library](https://github.com/BroncBotz3481/YAGSL) permet de facilement créer un sous-système swerve pour un robot.
Plus d'information sera ajoutée, mais pour l'instant vous pouvez suivre la documentation [ici](https://github.com/BroncBotz3481/YAGSL)
## Installation
Installer les [bibliothèques](vendor_libraries.md) de NavX, Phoenix, REV et YAGSL.
## Configuration
Pour utiliser la bibliothèque, nous devons lui fournir des fichiers de configuration qui décrivent notre système swerve (les différents moteurs et leurs ID, entre autres).
Vous pouvez donc aller chercher le dossier d'[exemple](https://github.com/BroncBotz3481/YAGSL/tree/main/deploy) ou le [créer vous-même](https://broncbotz3481.github.io/YAGSL-Example/). Vous devez mettre le dossier `swerve` dans le dossier `deploy` de votre projet.
## Utilisation
1. Créer un subsystem pour le swerve
2. Créer une variable `SwerveDrive`
3. Créer le `SwerveDrive` à partir de la configuration
```java
SwerveDrive swerveDrive;
/** Creates a new SwerveSubsystem. */
public SwerveSubsystem(File file) {
try {
this.swerveDrive = new SwerveParser(file).createSwerveDrive();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
```
:::note
Ici, on utilise un [try-catch](../../java/try-catch){target="\_blank"}, car il pourrait y avoir une erreur si les fichiers de configuration n'existent pas;
:::
Vous devrez ensuite ajouter vos méthodes pour intéragir avec le `SwerveDrive` dans le subsystem.

View File

@ -1,33 +0,0 @@
/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation
The sidebars can be generated from the filesystem, or explicitly defined here.
Create as many sidebars as you want.
*/
// @ts-check
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
// By default, Docusaurus generates a sidebar from the docs folder structure
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
// But you can create a sidebar manually
/*
tutorialSidebar: [
'intro',
'hello',
{
type: 'category',
label: 'Tutorial',
items: ['tutorial-basics/create-a-document'],
},
],
*/
};
module.exports = sidebars;

View File

@ -1,6 +0,0 @@
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
tutorialSidebar: [{ type: "autogenerated", dirName: "." }],
};
module.exports = sidebars;

BIN
src/assets/houston.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

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

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

View File

@ -0,0 +1,11 @@
---
title: Example Guide
description: A guide in my new Starlight docs site.
---
Guides lead a user through a specific task they want to accomplish, often with a sequence of steps.
Writing a good guide requires thinking about what your users are trying to do.
## Further reading
- Read [about how-to guides](https://diataxis.fr/how-to-guides/) in the Diátaxis framework

View File

@ -0,0 +1,36 @@
---
title: Welcome to Starlight
description: Get started building your docs site with Starlight.
template: splash
hero:
tagline: Congrats on setting up a new Starlight project!
image:
file: ../../assets/houston.webp
actions:
- text: Example Guide
link: /guides/example/
icon: right-arrow
variant: primary
- text: Read the Starlight docs
link: https://starlight.astro.build
icon: external
---
import { Card, CardGrid } from '@astrojs/starlight/components';
## Next steps
<CardGrid stagger>
<Card title="Update content" icon="pencil">
Edit `src/content/docs/index.mdx` to see this page change.
</Card>
<Card title="Add new content" icon="add-document">
Add Markdown or MDX files to `src/content/docs` to create new pages.
</Card>
<Card title="Configure your site" icon="setting">
Edit your `sidebar` and other config in `astro.config.mjs`.
</Card>
<Card title="Read the docs" icon="open-book">
Learn more in [the Starlight Docs](https://starlight.astro.build/).
</Card>
</CardGrid>

View File

@ -0,0 +1,11 @@
---
title: Example Reference
description: A reference page in my new Starlight docs site.
---
Reference pages are ideal for outlining how things work in terse and clear terms.
Less concerned with telling a story or addressing a specific use case, they should give a comprehensive outline of what your documenting.
## Further reading
- Read [about reference](https://diataxis.fr/reference/) in the Diátaxis framework

View File

@ -1,30 +0,0 @@
/**
* Any CSS included here will be global. The classic template
* bundles Infima by default. Infima is a CSS framework designed to
* work well for content-centric websites.
*/
/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #189ad6;
--ifm-color-primary-dark: #1275a3;
--ifm-color-primary-darker: #0c506f;
--ifm-color-primary-darkest: #0c192e;
--ifm-color-primary-light: #1cb5fc;
--ifm-color-primary-lighter: #1ca8ff;
--ifm-color-primary-lightest: #1c98ff;
--ifm-code-font-size: 95%;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
}
/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme='dark'] {
--ifm-color-primary: #189ad6;
--ifm-color-primary-dark: #1275a3;
--ifm-color-primary-darker: #0c506f;
--ifm-color-primary-darkest: #0c192e;
--ifm-color-primary-light: #1cb5fc;
--ifm-color-primary-lighter: #1ca8ff;
--ifm-color-primary-lightest: #1c98ff;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}

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

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

View File

@ -1,44 +0,0 @@
import React from "react";
import clsx from "clsx";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import Layout from "@theme/Layout";
import styles from "./index.module.css";
import Link from "@docusaurus/Link";
import Head from "@docusaurus/Head";
function HomepageHeader() {
const { siteConfig } = useDocusaurusContext();
return (
<header className={clsx("hero hero--primary", styles.heroBanner)}>
<div className="container">
<h1 className="hero__title">{siteConfig.title}</h1>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link className="button button--secondary button--lg" to="/java">
<i class="fa-brands fa-java"></i> Java
</Link>
<Link className="button button--secondary button--lg" to="/robot">
<i class="fa-solid fa-robot"></i> Robot
</Link>
</div>
</div>
</header>
);
}
export default function Home() {
const { siteConfig } = useDocusaurusContext();
return (
<Layout title={`${siteConfig.title}`} description="Documentation PLS 5618">
<Head>
<script
src="https://kit.fontawesome.com/9e215b042a.js"
crossorigin="anonymous"
></script>
</Head>
<HomepageHeader />
<main></main>
</Layout>
);
}

View File

@ -1,24 +0,0 @@
/**
* CSS files with the .module.css suffix will be treated as CSS modules
* and scoped locally.
*/
.heroBanner {
padding: 4rem 0;
text-align: center;
position: relative;
overflow: hidden;
}
@media screen and (max-width: 996px) {
.heroBanner {
padding: 2rem;
}
}
.buttons {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
}

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

3
tsconfig.json Normal file
View File

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