From 8c19cf93678e6e6d017b24b3e2cdcb7084f3712b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Sat, 25 Oct 2025 13:19:59 +0200 Subject: [PATCH] feat: github pages workflow --- .github/workflows/jekyll.yml | 55 +++++++------ _config.yml | 146 +++++++++++++++++------------------ 2 files changed, 103 insertions(+), 98 deletions(-) diff --git a/.github/workflows/jekyll.yml b/.github/workflows/jekyll.yml index 61f2d80..d0ae84a 100644 --- a/.github/workflows/jekyll.yml +++ b/.github/workflows/jekyll.yml @@ -9,12 +9,12 @@ name: Deploy Jekyll site to Pages on: # Runs on pushes targeting the default branch push: - branches: ["main"] + branches: [ "main" ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages + # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write @@ -31,26 +31,31 @@ jobs: build: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Ruby - # https://github.com/ruby/setup-ruby/releases/tag/v1.207.0 - uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4 - with: - ruby-version: '3.1' # Not needed with a .ruby-version file - bundler-cache: true # runs 'bundle install' and caches installed gems automatically - cache-version: 0 # Increment this number if you need to re-download cached gems - - name: Setup Pages - id: pages - uses: actions/configure-pages@v5 - - name: Build with Jekyll - # Outputs to the './_site' directory by default - run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" - env: - JEKYLL_ENV: production - - name: Upload artifact - # Automatically uploads an artifact from the './_site' directory by default - uses: actions/upload-pages-artifact@v3 + - name: Checkout + uses: actions/checkout@v4 + - uses: actions/setup-node@v5 + with: + node-version: '22' + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: '10' + - name: Install dependencies + run: pnpm install + - name: Build JavaScript + run: pnpm build:all + - name: 💎 Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.2.3 + + - name: 🏗️ Build Jekyll site + run: | + bundle install + bundle exec jekyll build --lsi --destination ${{ github.workspace }}/_site + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 # Deployment job deploy: @@ -60,6 +65,6 @@ jobs: runs-on: ubuntu-latest needs: build steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/_config.yml b/_config.yml index d2d23f9..e166850 100644 --- a/_config.yml +++ b/_config.yml @@ -16,11 +16,12 @@ url: https://pivoine.art baseurl: '' exclude: - - packages - - gfx +- packages +- gfx include: - - _pages +- _pages +- CNAME twitter: username: bordeaux1981 @@ -40,37 +41,37 @@ theme_color: rgb(255,255,255) menu: legal: - - title: About - url: /about - - title: Imprint - url: /imprint +- title: About + url: /about +- title: Imprint + url: /imprint timezone: Europe/Berlin featured_categories: - - slug: Palina - title: Palina - url: /palina - - slug: Odinsland - title: Odinsland - url: /odinsland - - slug: Devilish - title: Devilish - url: /devilish - - slug: Souls - title: Souls - url: /souls - - slug: Sketches - title: Sketches - url: /sketches - - slug: Music - title: Music - url: /music +- slug: Palina + title: Palina + url: /palina +- slug: Odinsland + title: Odinsland + url: /odinsland +- slug: Devilish + title: Devilish + url: /devilish +- slug: Souls + title: Souls + url: /souls +- slug: Sketches + title: Sketches + url: /sketches +- slug: Music + title: Music + url: /music featured_tags: - - slug: Hyperloop - title: Hyperloop - url: /hyperloop +- slug: Hyperloop + title: Hyperloop + url: /hyperloop lsi: true @@ -81,19 +82,18 @@ kramdown: permalink: pretty plugins: - - jekyll-default-layout - - jekyll-feed - - jekyll-optional-front-matter - - jekyll-paginate-v2 - - jekyll-readme-index - - jekyll-redirect-from - - jekyll-relative-links - - jekyll-seo-tag - - jekyll-sitemap - - jekyll-titles-from-headings - - jekyll-include-cache - - jekyll-last-modified-at - +- jekyll-default-layout +- jekyll-feed +- jekyll-optional-front-matter +- jekyll-paginate-v2 +- jekyll-readme-index +- jekyll-redirect-from +- jekyll-relative-links +- jekyll-seo-tag +- jekyll-sitemap +- jekyll-titles-from-headings +- jekyll-include-cache +- jekyll-last-modified-at pagination: # Site-wide kill switch, disabled here it doesn't run at all @@ -117,113 +117,113 @@ google_fonts: false pivoine: # Configure the order of complementary content on blog posts - post_addons: [about, newsletter, related, random, comments] + post_addons: [ about, newsletter, related, random, comments ] # Configure the order of complementary content on project pages - project_addons: [about, newsletter, other, comments] + project_addons: [ about, newsletter, other, comments ] # Set to `true` if you don't want to show an icon indicating external links - no_mark_external: true + no_mark_external: true # Set to `true` if third party plugins fail to work with dynamically loaded pages - no_push_state: false + no_push_state: false # Set to `true` if you want to disable the drawer - no_drawer: false + no_drawer: false # Set to `true` if you don't to use the auto-hiding (JavaScript based) navbar. # Note that this will not hide the navbar completely, only replace it with a static one. # Use custom css to hide completely, e.g. `#_navbar { display: none }`. - no_navbar: false + no_navbar: false # Set to true to disable the built-in search functionality. # Note that search is disabled during local use to save on build time. # Run Jekyll with the `JEKYLL_ENV` environment variable set to `production` to enable. - no_search: false + no_search: false # Set to `true` if you do not want parts of the css inlined in # This will increase site build speed dramatically! - no_inline_css: false + no_inline_css: false # Set to `true` if you don't intend on changing the accent color on a per-page basis. # This will increase site build speed! - no_page_style: false + no_page_style: false # Code blocks and tables "break" the layout by spanning the full available width. # Set this to true if you want them to be the same width as other content. - no_break_layout: true + no_break_layout: true # Set to `true` to disable the dynamic Table of Contents on large screens. - no_toc: false + no_toc: false # When set to `true`, will not extend the content in the "third column" on large screens. # Instead, all content will remains within the center column. # Note that this will not affect the Table of Contents, use `no_toc` instead. - no_third_column: false + no_third_column: false # Set to `true` if you don't like oversized headlines on large screens. - no_large_headings: false + no_large_headings: false # Set to `true` if you do not want to expose your resume and projects # in machine-readable formats. - no_structured_data: false + no_structured_data: false # You can set this to `true` if you don't want to set the `theme-color` meta tag, # This only affects the meta tag, not the color specified in the app manifest. - no_theme_color: false + no_theme_color: false # Disable the breadcrumbs above the title - no_breadcrumbs: false + no_breadcrumbs: false # Set to `true` when building with the `--lsi` option. # The net effect is to use the Jekyll-provided `site.related_posts` variable. - use_lsi: true + use_lsi: true # When using Google Analytics, set to `true` to display a cookie notice banner. # When enabled, no user-related data will be stored until the user gives consent. - cookies_banner: false + cookies_banner: false # Set to `true` if you would like to add a "Powered by pivoine" link in the footer. # Note that this setting has no effect when using the free version. - advertise: false + advertise: false # Buyers of the PRO version can opt to hide all dates from the theme. # Frequent consumers of online content will know that nothing devalues a post like # seeing an old date. - hide_dates: false + hide_dates: false # Similarly, showing last modified date can devalue a post if it is too far in the past. - hide_last_modified: true + hide_last_modified: true # Note that dark mode only works in the PRO version of pivoine. dark_mode: # Set to `true` to always use the dark theme. - always: false + always: false # Set to `true` to use the dark theme based on visitors' preference (OS setting). - dynamic: true + dynamic: true # Set to `true` to allow visitors to switch between light and dark mode. - icon: true + icon: true search: - icon: true + icon: true - sound: true + sound: true umami: - script: https://umami.pivoine.art/script.js - id: 26158eb8-e0ae-4985-aa91-2f4a652f8ccb + script: https://umami.pivoine.art/script.js + id: 26158eb8-e0ae-4985-aa91-2f4a652f8ccb # ⚡️ DANGER ZONE ⚡️ # ---------------- # This is an _experimental_ feature. # Only use if you know what Service Workers are and how they can impact your site! offline: - enabled: false - cache_version: 13 + enabled: false + cache_version: 13 precache_assets: - - /assets/img/swipe.svg + - /assets/img/swipe.svg optional_front_matter: remove_originals: true @@ -250,4 +250,4 @@ compress_html: startings: [] sass: - style: compressed \ No newline at end of file + style: compressed