diff --git a/.changeset/config.json b/.changeset/config.json index c0ffe1a..3351f30 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,11 +1,14 @@ { - "$schema": "https://unpkg.com/@changesets/config@3.0.5/schema.json", - "changelog": "@changesets/cli/changelog", - "commit": false, - "fixed": [], - "linked": [], - "access": "public", - "baseBranch": "main", - "updateInternalDependencies": "patch", - "ignore": ["docs"] + "$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json", + "changelog": [ + "@changesets/changelog-github", + { "repo": "trueberryless-org/starlight-minimalistic-theme" } + ], + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [] } diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f86a2cb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +Dockerfile +.dockerignore +**/node_modules/ +**/.git +README.md +npm-debug.log +.coverage +.coverage.* +.env +.aws +.next diff --git a/.github/labeler.yaml b/.github/labeler.yaml new file mode 100644 index 0000000..a6fa2c4 --- /dev/null +++ b/.github/labeler.yaml @@ -0,0 +1,34 @@ +# See https://github.com/actions/labeler/tree/v5 + +"🚨 action": + - changed-files: + - any-glob-to-any-file: .github/workflows/** + +"πŸ“ changeset": + - changed-files: + - any-glob-to-any-file: "**/.changeset/**.{md,mdx}" + +"🚧 config": + - changed-files: + - any-glob-to-any-file: "**/*config*.{js,ts,jsx,tsx,mjs,mts,json,yml,yaml,toml,cjs,cts}" + +"βœ’οΈ documentation": + - changed-files: + - any-glob-to-any-file: "**/README.md" + +"🌏 i18n": + - changed-files: + - all-globs-to-any-file: ["**/docs/**", "!**/docs/en/**"] + +"πŸš€ manifest": + - changed-files: + - any-glob-to-any-file: "manifest*/**" + +"πŸ“¦ package": + - changed-files: + - any-glob-to-any-file: "**/packages/**" + - any-glob-to-any-file: "**/package.json" + +"🏯 styles": + - changed-files: + - any-glob-to-any-file: "**/*.{css,scss,sass,less,styl}" diff --git a/.github/workflows/deployment.yaml b/.github/workflows/deployment.yaml new file mode 100644 index 0000000..aa7b0af --- /dev/null +++ b/.github/workflows/deployment.yaml @@ -0,0 +1,208 @@ +name: Deployment + +on: + push: + branches: [main] + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.head_ref || github.ref }} + cancel-in-progress: true + +env: + REGISTRY: docker.io + IMAGE_OWNER: trueberryless + IMAGE_NAME: starlight-minimalistic-theme + NODE_VERSION: 20 + +jobs: + changes: + name: Filter + runs-on: ubuntu-latest + outputs: + apps/docs: ${{ steps.filter.outputs.apps/docs }} + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + apps/docs: + - 'apps/docs/**' + + changesets: + name: Changesets + runs-on: ubuntu-latest + outputs: + hasChangesets: ${{ steps.changesets.outputs.hasChangesets }} + permissions: + contents: write + pull-requests: write + steps: + - name: Generate GitHub App token + id: generate_token + uses: tibdex/github-app-token@v2.1.0 + with: + app_id: ${{ secrets.BOT_APP_ID }} + private_key: ${{ secrets.BOT_PRIVATE_KEY }} + + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Setup PNPM + uses: pnpm/action-setup@v3 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" + + - name: Install Dependencies + run: pnpm i + + - name: Create Release Pull Request + id: changesets + uses: changesets/action@v1 + with: + commit: "[ci] release" + title: "[ci] release" + env: + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + + image-tag: + name: Image Tag + runs-on: ubuntu-latest + outputs: + IMAGE_TAG: ${{ env.IMAGE_TAG }} + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Read version from package.json + id: get_version + run: | + VERSION=$(jq -r '.version' apps/docs/package.json) + echo "IMAGE_TAG=$VERSION" >> $GITHUB_ENV + + deployment: + needs: [changes, changesets, image-tag] + if: > + ( + needs.changesets.outputs.hasChangesets == 'false' && + ( + contains(github.event.head_commit.message, 'deploy') || + contains(github.event.head_commit.message, '[ci] release') + ) + ) || + github.event_name == 'workflow_dispatch' + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Check out the repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup PNPM + uses: pnpm/action-setup@v3 + with: + package_json_file: ./apps/docs/package.json + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: pnpm + cache-dependency-path: ./pnpm-lock.yaml + + - name: Install dependencies + run: pnpm install + shell: bash + working-directory: ./apps/docs + + - name: Build Website + run: pnpm run build + shell: bash + working-directory: ./apps/docs + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + uses: docker/build-push-action@v6 + with: + context: . + push: true + tags: | + ${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:${{ needs.image-tag.outputs.IMAGE_TAG }} + ${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:latest + labels: ${{ steps.meta.outputs.labels }} + + - name: Update deployment.yaml file + run: | + yq eval '.spec.template.spec.containers[0].image = "${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:${{ needs.image-tag.outputs.IMAGE_TAG }}"' -i manifest/deployment.yaml + + - uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: update deployment.json container image (automated) + + release: + name: Release + needs: [image-tag, deployment] + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - id: extract-changelog + uses: sean0x42/markdown-extract@v2.1.0 + with: + file: apps/docs/CHANGELOG.md + pattern: ${{ needs.image-tag.outputs.IMAGE_TAG }} + + - uses: ncipollo/release-action@v1 + id: create_release + with: + tag: ${{ env.IMAGE_NAME }}-docs@${{ needs.image-tag.outputs.IMAGE_TAG }} + makeLatest: false + body: ${{ steps.extract-changelog.outputs.markdown }} + skipIfReleaseExists: true + + - name: Check if release was created + id: check_release + run: | + if [ -z "${{ steps.create_release.outputs.html_url }}" ]; then + echo "RELEASE_SKIPPED=true" >> $GITHUB_ENV + else + echo "RELEASE_SKIPPED=false" >> $GITHUB_ENV + fi + + - name: Discord notification + if: env.RELEASE_SKIPPED == 'false' + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL }} + uses: Ilshidur/action-discord@0.3.2 + with: + args: | + # ${{ env.IMAGE_NAME }}@${{ needs.image-tag.outputs.IMAGE_TAG }} + + ${{ steps.extract-changelog.outputs.markdown }} diff --git a/.github/workflows/format.yaml b/.github/workflows/format.yaml new file mode 100644 index 0000000..1defa5d --- /dev/null +++ b/.github/workflows/format.yaml @@ -0,0 +1,37 @@ +name: autofix.ci +on: + pull_request: + push: + branches: [main] +permissions: + contents: read + +jobs: + autofix: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup PNPM + uses: pnpm/action-setup@v3 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: "pnpm" + + - name: Install Dependencies + run: pnpm i + + - name: Run prettier + run: pnpm exec prettier . --write + + # Optimize all PNGs with https://pngquant.org/ + - run: sudo apt-get update && sudo apt-get install -y pngquant + - name: Run pngquant + run: | + shopt -s globstar + find . -name '*.png' -exec pngquant --ext .png --force 256 {} \; + + - uses: autofix-ci/action@ff86a557419858bb967097bfc916833f5647fa8c diff --git a/.github/workflows/labeler.yaml b/.github/workflows/labeler.yaml new file mode 100644 index 0000000..162e678 --- /dev/null +++ b/.github/workflows/labeler.yaml @@ -0,0 +1,55 @@ +name: "Pull Request Labeler" +on: + - pull_request_target + +jobs: + labeler: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - name: Generate GitHub App token + id: generate_token + uses: tibdex/github-app-token@v2.1.0 + with: + app_id: ${{ secrets.BOT_APP_ID }} + private_key: ${{ secrets.BOT_PRIVATE_KEY }} + + - uses: actions/checkout@v4 + - name: Ensure labels exist + env: + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + run: | + gh label delete "bug" --yes || true + gh label delete "documentation" --yes || true + gh label delete "duplicate" --yes || true + gh label delete "enhancement" --yes || true + gh label delete "good first issue" --yes || true + gh label delete "help wanted" --yes || true + gh label delete "invalid" --yes || true + gh label delete "question" --yes || true + gh label delete "wontfix" --yes || true + + gh label create "🚨 action" --description "Changes in GitHub workflows or actions" --color "A75AD5" --force + gh label create "πŸ€– bot" --description "Automatically generated pull request" --color "0075CA" --force + gh label create "πŸ› bug" --description "Something isn't working" --color "D73A4A" --force + gh label create "πŸ“ changeset" --description "Contains changeset files" --color "304EF9" --force + gh label create "🚧 config" --description "Configuration file updates" --color "C0ED4F" --force + gh label create "βœ’οΈ documentation" --description "Documentation updates, like README changes" --color "66741D" --force + gh label create "πŸ” duplicate" --description "This issue or pull request already exists" --color "008672" --force + gh label create "⏫ enhancement" --description "New feature or request" --color "3C11FD" --force + gh label create "πŸ₯‡ good first issue" --description "Good for newcomers" --color "7057FF" --force + gh label create "πŸ†˜ help wanted" --description "Extra attention is needed" --color "BFD4F2" --force + gh label create "🌏 i18n" --description "Updates to internationalized docs, excluding English" --color "006B75" --force + gh label create "πŸ‘€ invalid" --description "This doesn't seem right" --color "E4E669" --force + gh label create "πŸš€ manifest" --description "Manifest-related changes" --color "96D3D7" --force + gh label create "πŸ“¦ package" --description "Updates in package structure or package.json" --color "F34A37" --force + gh label create "❓ question" --description "Further information is requested" --color "D876E3" --force + gh label create "🏯 styles" --description "Stylesheets or design updates" --color "550F5A" --force + gh label create "πŸ”’ wontfix" --description "This will not be worked on" --color "FFFFFF" --force + + - uses: actions/labeler@v5 + with: + configuration-path: .github/labeler.yaml + sync-labels: true diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 0000000..059ffbe --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,171 @@ +name: Publish + +on: + push: + branches: [main] + workflow_dispatch: + +# Automatically cancel in-progress actions on the same branch +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.head_ref || github.ref }} + cancel-in-progress: true + +env: + REGISTRY: docker.io + IMAGE_OWNER: trueberryless + IMAGE_NAME: starlight-minimalistic-theme + NODE_VERSION: 20 + +jobs: + changes: + name: Filter + runs-on: ubuntu-latest + outputs: + starlight-minimalistic-theme: ${{ steps.filter.outputs.starlight-minimalistic-theme }} + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + starlight-minimalistic-theme: + - 'packages/starlight-minimalistic-theme/**' + + changesets: + name: Changesets + runs-on: ubuntu-latest + outputs: + hasChangesets: ${{ steps.changesets.outputs.hasChangesets }} + permissions: + contents: write + pull-requests: write + steps: + - name: Generate GitHub App token + id: generate_token + uses: tibdex/github-app-token@v2.1.0 + with: + app_id: ${{ secrets.BOT_APP_ID }} + private_key: ${{ secrets.BOT_PRIVATE_KEY }} + + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Setup PNPM + uses: pnpm/action-setup@v3 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" + + - name: Install Dependencies + run: pnpm i + + - name: Create Release Pull Request + id: changesets + uses: changesets/action@v1 + with: + commit: "[ci] release" + title: "[ci] release" + env: + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + + image-tag: + name: Image Tag + runs-on: ubuntu-latest + outputs: + IMAGE_TAG: ${{ env.IMAGE_TAG }} + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Read version from package.json + id: get_version + run: | + VERSION=$(jq -r '.version' packages/starlight-minimalistic-theme/package.json) + echo "IMAGE_TAG=$VERSION" >> $GITHUB_ENV + + publish: + needs: [changes, changesets, image-tag] + if: > + ( + needs.changesets.outputs.hasChangesets == 'false' && + ( + contains(github.event.head_commit.message, 'deploy') || + contains(github.event.head_commit.message, '[ci] release') + ) + ) || + github.event_name == 'workflow_dispatch' + runs-on: ubuntu-latest + permissions: + contents: write + id-token: write + steps: + - uses: actions/checkout@v4 + + - name: Setup PNPM + uses: pnpm/action-setup@v3 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: "pnpm" + registry-url: "https://registry.npmjs.org" + + - name: Install Dependencies + run: pnpm i + + - run: | + cd packages/starlight-minimalistic-theme + npm publish --provenance --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + release: + name: Release + needs: [image-tag, publish] + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - id: extract-changelog + uses: sean0x42/markdown-extract@v2.1.0 + with: + file: packages/starlight-minimalistic-theme/CHANGELOG.md + pattern: ${{ needs.image-tag.outputs.IMAGE_TAG }} + + - uses: ncipollo/release-action@v1 + id: create_release + with: + tag: ${{ env.IMAGE_NAME }}@${{ needs.image-tag.outputs.IMAGE_TAG }} + makeLatest: true + body: ${{ steps.extract-changelog.outputs.markdown }} + skipIfReleaseExists: true + + - name: Check if release was created + id: check_release + run: | + if [ -z "${{ steps.create_release.outputs.html_url }}" ]; then + echo "RELEASE_SKIPPED=true" >> $GITHUB_ENV + else + echo "RELEASE_SKIPPED=false" >> $GITHUB_ENV + fi + + - name: Discord notification + if: env.RELEASE_SKIPPED == 'false' + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL }} + uses: Ilshidur/action-discord@0.3.2 + with: + args: | + # ${{ env.IMAGE_NAME }}@${{ needs.image-tag.outputs.IMAGE_TAG }} + + ${{ steps.extract-changelog.outputs.markdown }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..4d626ae --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,47 @@ +name: Release + +on: + push: + branches: [main] + +jobs: + release: + name: Release + if: ${{ github.repository_owner == 'trueberryless-org' }} + permissions: + contents: write + pull-requests: write + runs-on: ubuntu-latest + steps: + - name: Generate GitHub App token + id: generate_token + uses: tibdex/github-app-token@v2.1.0 + with: + app_id: ${{ secrets.BOT_APP_ID }} + private_key: ${{ secrets.BOT_PRIVATE_KEY }} + + - name: Checkout Repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup PNPM + uses: pnpm/action-setup@v3 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: "pnpm" + + - name: Install Dependencies + run: pnpm i + + - name: Create Release Pull Request + uses: changesets/action@v1 + with: + version: pnpm run version + commit: "[ci] release" + title: "[ci] release" + env: + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token}} diff --git a/.github/workflows/welcome-bot.yaml b/.github/workflows/welcome-bot.yaml new file mode 100644 index 0000000..6bdd228 --- /dev/null +++ b/.github/workflows/welcome-bot.yaml @@ -0,0 +1,43 @@ +name: WelcomeBot + +on: + pull_request_target: + branches: [main] + types: [opened] + +permissions: + pull-requests: write + +jobs: + welcome: + name: Welcome First-Time Contributors + runs-on: ubuntu-latest + steps: + - name: Generate GitHub App token + id: generate_token + uses: tibdex/github-app-token@v2.1.0 + with: + app_id: ${{ secrets.BOT_APP_ID }} + private_key: ${{ secrets.BOT_PRIVATE_KEY }} + + - uses: actions/checkout@v4 + - name: Convert Repository Name to Title Case + id: convert_repo_name + run: | + REPO_NAME="${{ github.event.repository.name }}" + TITLE_CASE_REPO_NAME=$(echo "$REPO_NAME" | sed 's/-/ /g' | awk '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) tolower(substr($i,2))} 1') + echo "title_case_repo_name=$TITLE_CASE_REPO_NAME" >> $GITHUB_ENV + - uses: zephyrproject-rtos/action-first-interaction@7e6446f8439d8b4399169880c36a3a12b5747699 + with: + repo-token: ${{ steps.generate_token.outputs.token }} + pr-opened-message: | + Hello! Thank you for opening your **first PR** to ${{ env.title_case_repo_name }}! ✨ + + Here’s what will happen next: + + 1. Our GitHub bots will run to check your changes. + If they spot any issues you will see some error messages on this PR. + Don’t hesitate to ask any questions if you’re not sure what these mean! + + 2. One or more of our maintainers will take a look and may ask you to make changes. + We try to be responsive, but don’t worry if this takes a few days. diff --git a/.gitignore b/.gitignore index 6240da8..821e436 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,134 @@ -# build output -dist/ -# generated types -.astro/ - -# dependencies -node_modules/ - -# logs +# Logs +logs +*.log npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache +# Optional stylelint cache +.stylelintcache -# environment variables +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files .env -.env.production +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Astro +.astro + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for (testing) VSCode extensions +.vscode +.vscode-test -# macOS-specific files -.DS_Store +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..af546af --- /dev/null +++ b/.prettierignore @@ -0,0 +1,44 @@ +# Dependency directories +node_modules/ +dist/ +build/ +out/ + +# Lock files +pnpm-lock.yaml +package-lock.json +yarn.lock + +# Build and generated files +*.min.* +*.bundle.* +*.map + +# Git and version control +**/.git + +# Framework-specific files +next-env.d.ts +__generated__/ + +# Test and coverage files +coverage/ +*.spec.* +*.test.* + +# Editor-specific files +.vscode/ +.idea/ +*.sublime-project +*.sublime-workspace + +# OS generated files +.DS_Store +Thumbs.db + +# Markdown and MDX files +*.md +*.mdx + +# Changelog +.changeset diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..8788a17 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "trailingComma": "es5", + "tabWidth": 2, + "semi": true, + "singleQuote": false, + "endOfLine": "lf", + "htmlWhitespaceSensitivity": "css" +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d897cce --- /dev/null +++ b/Dockerfile @@ -0,0 +1,4 @@ +FROM httpd:2.4 AS runtime +COPY /apps/docs/dist /usr/local/apache2/htdocs/ +EXPOSE 80 +EXPOSE 443 diff --git a/LICENSE b/LICENSE index 5cc0eea..af26fc4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 NAME +Copyright (c) 2025-present, trueberryless 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/apps/docs/package.json b/apps/docs/package.json index 1531fb1..dec6929 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -1,22 +1,23 @@ { "name": "docs", - "type": "module", "version": "0.0.0", "private": true, + "type": "module", "scripts": { - "dev": "astro dev", - "start": "astro dev", + "astro": "astro", "build": "astro check && astro build", + "dev": "astro dev", "preview": "astro preview", - "astro": "astro" + "start": "astro dev" }, "dependencies": { "@astrojs/check": "catalog:", "@astrojs/starlight": "catalog:", "astro": "catalog:", "sharp": "catalog:", - "starlight-package-managers": "^0.8.0", "starlight-minimalistic-theme": "workspace:*", + "starlight-package-managers": "^0.8.0", "typescript": "catalog:" - } + }, + "packageManager": "pnpm@9.6.0" } diff --git a/apps/docs/src/assets/houston.png b/apps/docs/src/assets/houston.png index 2ca6142..654c069 100644 Binary files a/apps/docs/src/assets/houston.png and b/apps/docs/src/assets/houston.png differ diff --git a/assets/preview.png b/assets/preview.png index fdfb27a..6fcdee6 100644 Binary files a/assets/preview.png and b/assets/preview.png differ diff --git a/manifest/certificate.yaml b/manifest/certificate.yaml new file mode 100644 index 0000000..e66b83a --- /dev/null +++ b/manifest/certificate.yaml @@ -0,0 +1,12 @@ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: starlight-minimalistic-theme + namespace: starlight-minimalistic-theme +spec: + secretName: starlight-minimalistic-theme + issuerRef: + name: acme-issuer + kind: ClusterIssuer + dnsNames: + - "starlight-minimalistic-theme.trueberryless.org" diff --git a/manifest/deployment.yaml b/manifest/deployment.yaml new file mode 100644 index 0000000..231919d --- /dev/null +++ b/manifest/deployment.yaml @@ -0,0 +1,21 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: starlight-minimalistic-theme + namespace: starlight-minimalistic-theme + labels: + app: starlight-minimalistic-theme +spec: + replicas: 3 + selector: + matchLabels: + app: starlight-minimalistic-theme + template: + metadata: + labels: + app: starlight-minimalistic-theme + spec: + containers: + - name: starlight-minimalistic-theme + image: "trueberryless/starlight-minimalistic-theme" + imagePullPolicy: Always diff --git a/manifest/ingress.yaml b/manifest/ingress.yaml new file mode 100644 index 0000000..2a4ca8a --- /dev/null +++ b/manifest/ingress.yaml @@ -0,0 +1,22 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: starlight-minimalistic-theme + namespace: starlight-minimalistic-theme +spec: + rules: + - host: starlight-minimalistic-theme.trueberryless.org + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: starlight-minimalistic-theme + port: + number: 80 + + tls: + - hosts: + - starlight-minimalistic-theme.trueberryless.org + secretName: starlight-minimalistic-theme diff --git a/manifest/namespace.yaml b/manifest/namespace.yaml new file mode 100644 index 0000000..ea00090 --- /dev/null +++ b/manifest/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: starlight-minimalistic-theme diff --git a/manifest/service.yaml b/manifest/service.yaml new file mode 100644 index 0000000..7ae8ae8 --- /dev/null +++ b/manifest/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: starlight-minimalistic-theme + namespace: starlight-minimalistic-theme + annotations: + cert-manager.io/issuer: acme-issuer +spec: + selector: + app: starlight-minimalistic-theme + ports: + - name: http + port: 80 diff --git a/package.json b/package.json index b512fc3..97e5148 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,28 @@ { - "name": "starlight-minimalistic-theme", + "name": "starlight-minimalistic-theme-monorepo", "version": "0.0.0", "private": true, + "homepage": "https://github.com/trueberryless-org/starlight-minimalistic-theme", + "bugs": { + "url": "https://github.com/trueberryless-org/starlight-minimalistic-theme/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/trueberryless-org/starlight-minimalistic-theme.git" + }, + "license": "MIT", + "author": "trueberryless (https://trueberryless.org)", "scripts": { + "build": "pnpm --filter docs build", "ci:publish": "pnpm publish -r", "ci:version": "pnpm changeset version", "dev": "pnpm --filter docs dev", - "build": "pnpm --filter docs build" + "version": "pnpm changeset version && pnpm i --no-frozen-lockfile" }, "devDependencies": { "@biomejs/biome": "1.9.4", + "@changesets/changelog-github": "^0.5.0", "@changesets/cli": "^2.27.11" }, - "packageManager": "pnpm@9.15.3" + "packageManager": "pnpm@9.6.0" } diff --git a/packages/theme/README.md b/packages/theme/README.md index 923f214..8b10489 100644 --- a/packages/theme/README.md +++ b/packages/theme/README.md @@ -31,3 +31,7 @@ export default defineConfig({ ``` ## License + +Licensed under the MIT license, Copyright Β© trueberryless. + +See [LICENSE](/LICENSE) for more information. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ca9e58..7477a77 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,9 @@ importers: '@biomejs/biome': specifier: 1.9.4 version: 1.9.4 + '@changesets/changelog-github': + specifier: ^0.5.0 + version: 0.5.0 '@changesets/cli': specifier: ^2.27.11 version: 2.27.11 @@ -210,6 +213,9 @@ packages: '@changesets/changelog-git@0.2.0': resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} + '@changesets/changelog-github@0.5.0': + resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} + '@changesets/cli@2.27.11': resolution: {integrity: sha512-1QislpE+nvJgSZZo9+Lj3Lno5pKBgN46dAV8IVxKJy9wX8AOrs9nn5pYVZuDpoxWJJCALmbfOsHkyxujgetQSg==} hasBin: true @@ -223,6 +229,9 @@ packages: '@changesets/get-dependents-graph@2.1.2': resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} + '@changesets/get-github-info@0.6.0': + resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} + '@changesets/get-release-plan@4.0.6': resolution: {integrity: sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w==} @@ -1132,6 +1141,9 @@ packages: engines: {node: '>=4'} hasBin: true + dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -1181,6 +1193,10 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dotenv@8.6.0: + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} + engines: {node: '>=10'} + dset@3.1.4: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} @@ -1754,6 +1770,15 @@ packages: nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -2133,6 +2158,9 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -2379,6 +2407,12 @@ packages: web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} @@ -2684,6 +2718,14 @@ snapshots: dependencies: '@changesets/types': 6.0.0 + '@changesets/changelog-github@0.5.0': + dependencies: + '@changesets/get-github-info': 0.6.0 + '@changesets/types': 6.0.0 + dotenv: 8.6.0 + transitivePeerDependencies: + - encoding + '@changesets/cli@2.27.11': dependencies: '@changesets/apply-release-plan': 7.0.7 @@ -2736,6 +2778,13 @@ snapshots: picocolors: 1.1.1 semver: 7.6.3 + '@changesets/get-github-info@0.6.0': + dependencies: + dataloader: 1.4.0 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + '@changesets/get-release-plan@4.0.6': dependencies: '@changesets/assemble-release-plan': 6.0.5 @@ -3583,6 +3632,8 @@ snapshots: cssesc@3.0.0: {} + dataloader@1.4.0: {} + debug@4.4.0: dependencies: ms: 2.1.3 @@ -3617,6 +3668,8 @@ snapshots: dlv@1.1.3: {} + dotenv@8.6.0: {} + dset@3.1.4: {} emmet@2.4.7: @@ -4623,6 +4676,10 @@ snapshots: dependencies: '@types/nlcst': 2.0.3 + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + normalize-path@3.0.0: {} not@0.1.0: {} @@ -5122,6 +5179,8 @@ snapshots: dependencies: is-number: 7.0.0 + tr46@0.0.3: {} + trim-lines@3.0.1: {} trough@2.2.0: {} @@ -5346,6 +5405,13 @@ snapshots: web-namespaces@2.0.1: {} + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + which-pm-runs@1.1.0: {} which-pm@3.0.0: