diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..30cb216 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,26 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + ci: + timeout-minutes: 10 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + - name: Install + run: npm ci + - name: Check + run: npm run check + - name: audit + if: (${{ success() }} || ${{ failure() }}) + run: npm run buld diff --git a/astro.config.mjs b/astro.config.mjs index 3ed8b84..bb1b33d 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -4,22 +4,14 @@ import starlight from "@astrojs/starlight"; import remarkHeadingId from "remark-heading-id"; import tailwind from "@astrojs/tailwind"; import liveCode from "astro-live-code"; -import rehypeAstroRelativeMarkdownLinks from "astro-rehype-relative-markdown-links"; import react from "@astrojs/react"; +import starlightLinksValidator from "starlight-links-validator"; // https://astro.build/config export default defineConfig({ markdown: { // @ts-expect-error ?????? remarkPlugins: [remarkHeadingId], - rehypePlugins: [ - [ - rehypeAstroRelativeMarkdownLinks, - { - contentPath: "src/content/docs", - }, - ], - ], }, site: "https://docs.solvro.pl", integrations: [ @@ -29,6 +21,11 @@ export default defineConfig({ }, }), starlight({ + plugins: [ + starlightLinksValidator({ + exclude: ["http://localhost:4321"], + }), + ], defaultLocale: "pl", locales: { root: { diff --git a/package-lock.json b/package-lock.json index ff8de30..941c223 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,6 @@ "astro": "^4.16.16", "astro-live-code": "^0.0.4", "astro-og-canvas": "^0.5.4", - "astro-rehype-relative-markdown-links": "^0.16.0", "date-fns": "^4.1.0", "date-fns-tz": "^3.2.0", "react": "^18.3.1", @@ -26,6 +25,7 @@ "rehype-slug-custom-id": "^2.0.0", "remark-heading-id": "^1.0.1", "sharp": "^0.32.5", + "starlight-links-validator": "^0.14.1", "tailwindcss": "^3.4.15", "typescript": "^5.7.2" }, @@ -2229,6 +2229,12 @@ "undici-types": "~6.19.8" } }, + "node_modules/@types/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-1MRgzpzY0hOp9pW/kLRxeQhUWwil6gnrUYd3oEpeYBqp/FexhaCPv3F8LsYr47gtUU45fO2cm1dbwkSrHEo8Uw==", + "license": "MIT" + }, "node_modules/@types/prop-types": { "version": "15.7.13", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", @@ -2725,25 +2731,6 @@ "astro": "^3.0.0 || ^4.0.0" } }, - "node_modules/astro-rehype-relative-markdown-links": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/astro-rehype-relative-markdown-links/-/astro-rehype-relative-markdown-links-0.16.0.tgz", - "integrity": "sha512-J6y4LV//jBe+o7IREWpz3r3uljLreWvaFi0WlhW3erLfUVpx3jGhQTYnU54LZDZMHNs234n+1C8wmiEaeHDBaw==", - "license": "MIT", - "dependencies": { - "catch-unknown": "^2.0.0", - "debug": "^4.3.4", - "github-slugger": "^2.0.0", - "gray-matter": "^4.0.3", - "is-absolute-url": "^4.0.1", - "unified": "^11.0.4", - "unist-util-visit": "^5.0.0", - "zod": "^3.22.4" - }, - "peerDependencies": { - "astro": ">=2.x <5" - } - }, "node_modules/astro/node_modules/sharp": { "version": "0.33.5", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", @@ -3135,12 +3122,6 @@ "@webgpu/types": "0.1.21" } }, - "node_modules/catch-unknown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/catch-unknown/-/catch-unknown-2.0.0.tgz", - "integrity": "sha512-4ELowf+Fp6Qwv77ZvRDto9oJMsOalEk8IYvS5KsmIhRZQWbfArlIhIOONJtmCzOeeqpip6JzYqAYaNR9sIyLVQ==", - "license": "ISC" - }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -8531,6 +8512,29 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "license": "BSD-3-Clause" }, + "node_modules/starlight-links-validator": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/starlight-links-validator/-/starlight-links-validator-0.14.1.tgz", + "integrity": "sha512-qd5zMBezFhE3R/RBW2am58jVMK3ydcHs8TqOOBLimjn+iXqWV/ZkLlpcavoIOd//w72cX3L//lN4TA+a7vdaZg==", + "license": "MIT", + "dependencies": { + "@types/picomatch": "^3.0.1", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-has-property": "^3.0.0", + "is-absolute-url": "^4.0.1", + "kleur": "^4.1.5", + "mdast-util-to-string": "^4.0.0", + "picomatch": "^4.0.2", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=18.17.1" + }, + "peerDependencies": { + "@astrojs/starlight": ">=0.15.0" + } + }, "node_modules/stdin-discarder": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", diff --git a/package.json b/package.json index 543dcaa..c2ecd55 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "scripts": { "dev": "astro dev", "start": "astro dev", - "build": "astro check && astro build", + "check": "astro check", + "build": "astro build", "preview": "astro preview", "astro": "astro", "format": "prettier --write .", @@ -22,7 +23,6 @@ "astro": "^4.16.16", "astro-live-code": "^0.0.4", "astro-og-canvas": "^0.5.4", - "astro-rehype-relative-markdown-links": "^0.16.0", "date-fns": "^4.1.0", "date-fns-tz": "^3.2.0", "react": "^18.3.1", @@ -30,6 +30,7 @@ "rehype-slug-custom-id": "^2.0.0", "remark-heading-id": "^1.0.1", "sharp": "^0.32.5", + "starlight-links-validator": "^0.14.1", "tailwindcss": "^3.4.15", "typescript": "^5.7.2" }, diff --git a/src/content/docs/guides/Adonis.md b/src/content/docs/guides/Adonis.md index d52de10..763f6e9 100644 --- a/src/content/docs/guides/Adonis.md +++ b/src/content/docs/guides/Adonis.md @@ -18,14 +18,14 @@ description: Szybki start dla tych, którzy chcą poznać Adonisa i tworzyć św Oto lista najważniejszych rzeczy, które warto w mniejszym lub większym stopniu ogarniać biorąc się za naukę korzystania z Adonisa: -- **Git i GitHub** - podstawowe narzędzia pracy każdego developera. Z zasadami korzystania stosowanymi w Solvro można zapoznać się w [Handbook GitHub](./Github.md) +- **Git i GitHub** - podstawowe narzędzia pracy każdego developera. Z zasadami korzystania stosowanymi w Solvro można zapoznać się w [Handbook GitHub](/guides/github) - **IDE** - środowisko do pracy z kodem. Do najpopularniejszych opcji należy Visual Studio Code i Webstorm od Jetbrains. - **TypeScript** - jest to podstawowy język wykorzystywany przez Adonisa. Bez jego znajomości ciężko cokolwiek zrobić. - **NodeJS** - technologia pozwalająca na uruchamianie JS poza przeglądarką. Wykorzystywana do budowania backendu. Zrozumienie działania importów i menadżera pakietów NPM jest potrzebne do sprawnego poruszania się po frameworku. ## Instalacja -Proces instalacji został szczegółowo przedstawiony [tutaj](https://docs.adonisjs.com/guides/getting-started/installation). +Proces instalacji został szczegółowo przedstawiony [w dokumentacji adonisa](https://docs.adonisjs.com/guides/getting-started/installation). ### NodeJs @@ -72,7 +72,7 @@ npm run format ## Deployment -[Poradnik jak zdeployować apkę Adonisową](./Deployment.mdx) +[Poradnik jak zdeployować apkę Adonisową](/guides/deployment) ## Rozszerzenia diff --git "a/src/content/docs/guides/Prowadzenie projekt\303\263w.md" "b/src/content/docs/guides/Prowadzenie projekt\303\263w.md" index 94fabdc..f3fa02e 100644 --- "a/src/content/docs/guides/Prowadzenie projekt\303\263w.md" +++ "b/src/content/docs/guides/Prowadzenie projekt\303\263w.md" @@ -27,7 +27,7 @@ Po skompletowaniu zespołu zalecamy tzw. **spotkanie wizyjne** w formie dłuższ ### Karta projektu -**Karta projektu** jest podstawowym i najważniejszym dokumentem każdego projektu. Ten 1-2 stronicowy dokument zawiera wszystkie najistotniejsze informacje dotyczące przedsięwzięcia wliczając: +**Karta projektu** jest podstawowym i najważniejszym dokumentem każdego projektu. Ten 1-2 stronicowy dokument zawiera wszystkie najistotniejsze informacje dotyczące przedsięwzięcia: - **Nazwę projektu** - **Project Managera** @@ -91,7 +91,7 @@ Lead jest odpowiedzialny za jego utworzenie, odpowiednie skonfigurowanie pól i Pamiętajmy o jak najbardziej pomocnych opisach zadań najlepiej od razu z linkami/screenami do makiety UI/UX. -Więcej informacji można znaleźć w [Handbooku Githuba](./Github.md) +Więcej informacji można znaleźć w [Handbooku Githuba](/guides/github) ### Makiety UI/UX @@ -150,7 +150,7 @@ Od tego momentu przechodzimy na tzw. produkcję, gdzie reliability musi być zac Infrastrukturą wdrożenia będzie zajmował się devops i końcowo produkcyjna aplikacja będzie hostowana na innym serwerze niż developerska. Domena aplikacji produkcyjnej jest subdomeną solvro.pl -Więcej info z deploymentu znajdziesz w [Handbooku Deploymentu](./Deployment.mdx). +Więcej info z deploymentu znajdziesz w [Handbooku Deploymentu](/guides/deployment). ## Zamknięcie lub dalsza praca diff --git a/src/content/docs/hello-there.md b/src/content/docs/hello-there.md index bdf84ea..2651e7d 100644 --- a/src/content/docs/hello-there.md +++ b/src/content/docs/hello-there.md @@ -38,30 +38,35 @@ Znając [wstępne informacje](#na-początek) o naszej dokumentacji, chcielibyśm ### Dla gości -- [Poznaj nasz zarząd](/solvro/vii_board) -- [Zapoznaj się z naszą strategią](/solvro/strategy) +TODO: Dla Dawida Linka od odkomentowania + + + ### Dla nowych członków Ogólne informacje: -- [Zapoznaj się z naszą strategią](./solvro/strategy/) -- [Kanały komunikacji](./guides/Communication%20Channels.md) -- [Jak używać GitHuba?](./guides/Github.md) -- [Jak prowadzimy projekty? Czego się spodziewać?](./guides/Prowadzenie%20projektów.md) -- [Poznaj nasz zarząd](/solvro/vii_board) +TODO: Dla Dawida Linka od odkomentowania + + + +- [Kanały komunikacji](/guides/communication-channels) +- [Jak używać GitHuba?](/guides/github/) +- [Jak prowadzimy projekty? Czego się spodziewać?](/guides/prowadzenie-projektów) + Poradniki technologiczne: -- [Web](./guides/Web%20Development/index.mdx) -- [Mobile](./guides/Flutter%20(Mobile)/index.md) +- [Web](/guides/web-development/) +- [Mobile](/guides/flutter-mobile/) ### Dla starych wyjadaczy Oprócz materiałów dla nowych członków, warto zapoznać się z: -- [Jak prowadzić projekt?](./guides/Prowadzenie%20projektów.md) -- [Deploy Guide](./guides/Deployment.mdx) +- [Jak prowadzić projekt?](/guides/prowadzenie-projektów/) +- [Deploy Guide](/guides/deployment/) --- diff --git a/src/content/docs/how-to-write-docs.mdx b/src/content/docs/how-to-write-docs.mdx index cd794f9..d50013d 100644 --- a/src/content/docs/how-to-write-docs.mdx +++ b/src/content/docs/how-to-write-docs.mdx @@ -114,7 +114,7 @@ Ewentualnie można użyć jakiegoś onlineowego edytora markdowna, np. https://s Tutaj są wszystkie tricki, które można tutaj robić: https://starlight.astro.build/guides/authoring-content/ :::tip -Można coś takiego! +Można coś takiego! ::: > Albo coś takiego diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index 20a85f5..86ff161 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -28,7 +28,7 @@ _A więc zawitałeś do naszych skromnych progów i nie wiesz, co dalej? W tym d [Ważne zmiany 4](#ważne-zmiany) -[Jak jest obecnie 4](#jak-jest-obecnie?) +[Jak jest obecnie 4](#jak-jest-obecnie) [**Pierwsze kroki 5**](#pierwsze-kroki) @@ -153,7 +153,7 @@ Oprócz spotkań weekly całego koła odbywają się cykliczne spotkania projekt Po restrukturyzacji kierujemy się w stronę GiTHuba. Chcemy, aby był on sercem naszej organizacji, gdzie przepływa cała praca operacyjna i kod. Tam również prowadzone są projekty od strony operacyjnej, rozpisywane zadania itd. Końcowo będąc studenckim kołem chcemy chwalić się naszymi projektami i w tym właśnie celu projekty koła, które na to pozwalają będą realizowane jako open-source. Pozwoli to uhonorować członków projektu i potwierdzić swoje doświadczenie przy szukaniu pracy. Z tego również powodu dbamy o dobre praktyki pisania kodu i pracowania z githubem (PR, jednolite commity, readme itd.). Dla początkujących na naszym blogu znajduje się post [Podstawy GITa](https://solvro.pwr.edu.pl/blog/solvro-talks-1-podstawy-gita). -Must-have lekturą jest również [Handbook Githuba](./guides/Github.md) +Must-have lekturą jest również [Handbook Githuba](/guides/github) # Projekty @@ -161,7 +161,7 @@ Must-have lekturą jest również [Handbook Githuba](./guides/Github.md) KN Solvro łączy w sobie zwinne techniki startupowe oraz solidne podejście naukowe. Oznacza to, że chcemy sprawnie realizować projekty i dążymy do jak najszybszego wypuszczenia MVP (Minimal Viable Product), ale z zachowaniem dobrych praktyk i dokumentacji projektowej. -Dokładnie jak przeprowadzić projekt w Solvro można się dowiedzieć z pomocą[Handbook prowadzenia projektów](./guides/Prowadzenie%20projektów.md) +Dokładnie jak przeprowadzić projekt w Solvro można się dowiedzieć z pomocą[Handbook prowadzenia projektów](/guides/prowadzenie-projektów/) ## Czas wskoczyć w projekt