diff --git a/.bundle/config b/.bundle/config index 30169af..bec3c85 100644 --- a/.bundle/config +++ b/.bundle/config @@ -1,3 +1,4 @@ --- BUNDLE_PATH: "vendor/cache" BUNDLE_CACHE_ALL: "false" +BUNDLE_FORCE_RUBY_PLATFORM: "true" diff --git a/Gemfile b/Gemfile index be6ac8e..220ee9f 100644 --- a/Gemfile +++ b/Gemfile @@ -2,6 +2,6 @@ source "https://rubygems.org" -gem "jekyll", "~> 4.2.2" +gem "jekyll", "~> 4.3" gem "minima", git: "https://github.com/jekyll/minima", ref: "10124515953527c8990a2de99ae4ddb2a81ffee3" gem "webrick", "~> 1.8" diff --git a/Gemfile.lock b/Gemfile.lock index d14ad19..a8bff89 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -21,28 +21,31 @@ GEM eventmachine (1.2.7) ffi (1.16.3) forwardable-extended (2.6.0) + google-protobuf (4.26.1) + rake (>= 13) http_parser.rb (0.8.0) i18n (1.14.4) concurrent-ruby (~> 1.0) - jekyll (4.2.2) + jekyll (4.3.3) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) i18n (~> 1.0) - jekyll-sass-converter (~> 2.0) + jekyll-sass-converter (>= 2.0, < 4.0) jekyll-watch (~> 2.0) - kramdown (~> 2.3) + kramdown (~> 2.3, >= 2.3.1) kramdown-parser-gfm (~> 1.0) liquid (~> 4.0) - mercenary (~> 0.4.0) + mercenary (>= 0.3.6, < 0.5) pathutil (~> 0.9) - rouge (~> 3.0) + rouge (>= 3.0, < 5.0) safe_yaml (~> 1.0) - terminal-table (~> 2.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) jekyll-feed (0.17.0) jekyll (>= 3.7, < 5.0) - jekyll-sass-converter (2.2.0) - sassc (> 2.0.1, < 3.0) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) jekyll-seo-tag (2.8.0) jekyll (>= 3.8, < 5.0) jekyll-watch (2.2.1) @@ -59,47 +62,26 @@ GEM pathutil (0.16.2) forwardable-extended (~> 2.6) public_suffix (5.0.5) + rake (13.2.1) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) rexml (3.2.6) - rouge (3.30.0) + rouge (4.2.1) safe_yaml (1.0.5) - sassc (2.4.0) - ffi (~> 1.9) - terminal-table (2.0.0) - unicode-display_width (~> 1.1, >= 1.1.1) - unicode-display_width (1.8.0) + sass-embedded (1.75.0) + google-protobuf (>= 3.25, < 5.0) + rake (>= 13.0.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.5.0) webrick (1.8.1) PLATFORMS - aarch64-linux - aarch64-linux-android - aarch64-linux-gnu - aarch64-linux-musl - aarch64-mingw-ucrt - arm-linux-androideabi - arm-linux-gnueabihf - arm-linux-musleabihf - arm64-darwin - riscv64-linux-android - riscv64-linux-gnu - riscv64-linux-musl ruby - x86-cygwin - x86-linux - x86-linux-android - x86-linux-gnu - x86-linux-musl - x86-mingw-ucrt - x86_64-cygwin - x86_64-darwin - x86_64-linux-android - x86_64-linux-gnu - x86_64-linux-musl DEPENDENCIES - jekyll (~> 4.2.2) + jekyll (~> 4.3) minima! webrick (~> 1.8) diff --git a/flake.nix b/flake.nix index 944280f..6af057f 100644 --- a/flake.nix +++ b/flake.nix @@ -21,7 +21,7 @@ { formatter = pkgs.nixfmt-rfc-style; packages.default = pkgs.artemist-blog; - shells.default = pkgs.mkShell { + devShells.default = pkgs.mkShell { buildInputs = pkgs.artemist-blog.buildInputs ++ (with pkgs; [ bundix ]); }; } @@ -30,6 +30,18 @@ overlays.default = final: prev: { artemist-blog = let + dartSass = + final.fetchurl + ({ + x86_64-linux = { + url = "https://github.com/sass/dart-sass/releases/download/1.75.0/dart-sass-1.75.0-linux-x64.tar.gz"; + hash = "sha256-FTvUgQ+7YiD/F1nU1pQbzirNcfspMDua2bxuzjnDDig="; + }; + aarch64-linux = { + url = "https://github.com/sass/dart-sass/releases/download/1.75.0/dart-sass-1.75.0-linux-arm64.tar.gz"; + hash = "sha256-OXkxW2Vz1vWsV3eXPmY+nrijSGwSY3X3Kv6tKmfOmPs="; + }; + }).${final.stdenv.hostPlatform.system}; jekyllEnv = final.bundlerEnv { name = "artemist-blog-env"; inherit (final) ruby; @@ -37,12 +49,14 @@ gemfile = ./Gemfile; lockfile = ./Gemfile.lock; gemset = ./gemset.nix; + + gemConfig.sass-embedded = attrs: { DART_SASS = dartSass; }; }; in final.stdenv.mkDerivation { name = "artemist-blog"; src = ./.; - buildInputs = with final; [ jekyllEnv ]; + buildInputs = [ jekyllEnv ]; buildPhase = '' bundle exec jekyll build diff --git a/gemset.nix b/gemset.nix index ea425f1..855c510 100644 --- a/gemset.nix +++ b/gemset.nix @@ -74,6 +74,17 @@ }; version = "2.6.0"; }; + google-protobuf = { + dependencies = [ "rake" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "14s40yxj35vixx9pvpnbrkz9z7ga3m7vcy72yll1flnn3cirl1aj"; + type = "gem"; + }; + version = "4.26.1"; + }; "http_parser.rb" = { groups = [ "default" ]; platforms = [ ]; @@ -111,15 +122,16 @@ "rouge" "safe_yaml" "terminal-table" + "webrick" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0dpvkd7i9szkps2acxbdqajn4qc9sqxxy80f3rf5dra1vj7yrhpp"; + sha256 = "0638cvpmk3py1w2dxpav6l0c854y6l94b6gyc2aa16i7r897z64a"; type = "gem"; }; - version = "4.2.2"; + version = "4.3.3"; }; jekyll-feed = { dependencies = [ "jekyll" ]; @@ -133,15 +145,15 @@ version = "0.17.0"; }; jekyll-sass-converter = { - dependencies = [ "sassc" ]; + dependencies = [ "sass-embedded" ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "077xkkkb592vg8kxdia9jwsaz1bc70lkpf4hdvazjqphn5hlz2bi"; + sha256 = "00n9v19h0qgjijygfdkdh2gwpmdlz49nw1mqk6fnp43f317ngrz2"; type = "gem"; }; - version = "2.2.0"; + version = "3.0.0"; }; jekyll-seo-tag = { dependencies = [ "jekyll" ]; @@ -259,6 +271,16 @@ }; version = "5.0.5"; }; + rake = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6"; + type = "gem"; + }; + version = "13.2.1"; + }; rb-fsevent = { groups = [ "default" ]; platforms = [ ]; @@ -295,10 +317,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1dnfkrk8xx2m8r3r9m2p5xcq57viznyc09k7r3i4jbm758i57lx3"; + sha256 = "1zd1pdldi6h8x27dqim7cy8m69xr01aw5c8k1zhkz497n4np6wgk"; type = "gem"; }; - version = "3.30.0"; + version = "4.2.1"; }; safe_yaml = { groups = [ "default" ]; @@ -310,16 +332,19 @@ }; version = "1.0.5"; }; - sassc = { - dependencies = [ "ffi" ]; + sass-embedded = { + dependencies = [ + "google-protobuf" + "rake" + ]; groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c"; + sha256 = "1qcjrndq8nmda3mvj7pvss8ndhrr4aiw05cln0db5cgqiygmzczb"; type = "gem"; }; - version = "2.4.0"; + version = "1.75.0"; }; terminal-table = { dependencies = [ "unicode-display_width" ]; @@ -327,20 +352,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "18rbrh464ysqbdv53iwj0r8frshn65566kyj044cp3x9c2754jwh"; + sha256 = "14dfmfjppmng5hwj7c5ka6qdapawm3h6k9lhn8zj001ybypvclgr"; type = "gem"; }; - version = "2.0.0"; + version = "3.0.2"; }; unicode-display_width = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2"; + sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky"; type = "gem"; }; - version = "1.8.0"; + version = "2.5.0"; }; webrick = { groups = [ "default" ];