switch to svelte-highlight; fix devShell

This commit is contained in:
mei (ckie) 2024-10-05 21:45:39 +03:00
parent 64683030a7
commit 826449e72a
Signed by: ckie
GPG key ID: 13E79449C0525215
7 changed files with 118 additions and 10 deletions

BIN
bun.lockb

Binary file not shown.

View file

@ -9,7 +9,11 @@
let pkgs = import nixpkgs { inherit system; }; let pkgs = import nixpkgs { inherit system; };
in { in {
# For local development... # For local development...
devShell = pkgs.mkShell { buildInputs = with pkgs; [ bun ]; }; devShell = pkgs.mkShell {
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [ pkgs.stdenv.cc.cc.lib ];
buildInputs = with pkgs; [ bun ];
};
# ... and remote deployment. # ... and remote deployment.
# packages = {}; # packages = {};

View file

@ -28,6 +28,6 @@
"type": "module", "type": "module",
"dependencies": { "dependencies": {
"@sveltejs/enhanced-img": "^0.3.8", "@sveltejs/enhanced-img": "^0.3.8",
"prismjs": "^1.29.0" "svelte-highlight": "^7.7.0"
} }
} }

15
src/lib/Highlight.svelte Normal file
View file

@ -0,0 +1,15 @@
<script>
import Highlight from "svelte-highlight";
import "$lib/hljs.css";
export let language;
export let code;
export let slice = true;
let renderedCode;
$: renderedCode = code.replace(/#<hidden>[^]*?#<\/hidden>/, "");
</script>
<div class="whitespace-pre-wrap font-mono">
<Highlight {language} code={renderedCode} />
</div>

86
src/lib/hljs.css Normal file
View file

@ -0,0 +1,86 @@
pre code.hljs {
display: block;
overflow-x: auto;
}
/*!
Theme: floral.systems
Description: github theme modified
Base: https://unpkg.com/svelte-highlight@7.7.0/styles/github.css
*/
.hljs {
color: #24292e;
}
.hljs-doctag,
.hljs-keyword,
.hljs-literal,
.hljs-meta .hljs-keyword,
.hljs-template-tag,
.hljs-template-variable,
.hljs-type,
.hljs-variable.language_ {
color: theme(colors.coral.600);
}
.hljs-title,
.hljs-title.class_,
.hljs-title.class_.inherited__,
.hljs-title.function_ {
color: #6f42c1;
}
.hljs-attr,
.hljs-attribute,
.hljs-meta,
.hljs-number,
.hljs-operator,
.hljs-variable,
.hljs-selector-attr,
.hljs-selector-class,
.hljs-selector-id {
color: theme(colors.teal.700);
}
.hljs-regexp,
.hljs-string,
.hljs-meta .hljs-string {
color: theme(colors.coral.700);
}
.hljs-built_in,
.hljs-symbol {
color: theme(colors.coral.500);
}
.hljs-comment,
.hljs-code,
.hljs-formula {
color: #6a737d;
}
.hljs-name,
.hljs-quote,
.hljs-selector-tag,
.hljs-selector-pseudo {
color: #22863a;
}
.hljs-subst {
color: #24292e;
}
.hljs-section {
color: #005cc5;
font-weight: bold;
}
.hljs-bullet {
color: #735c0f;
}
.hljs-emphasis {
color: #24292e;
font-style: italic;
}
.hljs-strong {
color: #24292e;
font-weight: bold;
}
.hljs-addition {
color: #22863a;
background-color: #f0fff4;
}
.hljs-deletion {
color: #b31d28;
background-color: #ffeef0;
}

View file

@ -1,5 +1,7 @@
<script> <script>
import Prism from "prismjs"; import Highlight from "$lib/Highlight.svelte";
import nix from "svelte-highlight/languages/nix";
import demo1 from "./demo1/vm.nix?raw"; import demo1 from "./demo1/vm.nix?raw";
</script> </script>
@ -33,15 +35,15 @@
<h2 class="border-t-2 border-teal-800 w-fit"> <h2 class="border-t-2 border-teal-800 w-fit">
{DISTRO} — our linux distribution {DISTRO} — our linux distribution
</h2> </h2>
<div class="grid grid-cols-[1fr,auto,1fr] gap-2"> <div class="grid grid-cols-[1.15fr,auto,1fr] gap-2 items-end">
<div class="clear-left text-xl"> <div class="clear-left text-xl">
Gain certainty in your deployed system configuration by Gain certainty in your deployed system configuration by
replacing your opaque state with code. replacing your opaque state with code.
<div class="whitespace-pre-wrap font-mono text-sm bg-blue-50 p-2 rounded-md drop-shadow"> <div class="text-sm bg-blue-50 p-2 rounded-md drop-shadow">
{@html Prism.highlight(demo1.replace(/#<slice>[^]*?#<\/slice>/,""), Prism.languages["javascript"], "nix")} <Highlight language={nix} code={demo1} />
</div> </div>
</div> </div>
<div class="text-4xl flex justify-center items-center"> <div class="text-4xl flex justify-center items-center h-full">
</div> </div>
<div class="float-right drop-shadow flex flex-col rounded"> <div class="float-right drop-shadow flex flex-col rounded">

View file

@ -4,10 +4,11 @@ with import <nixpkgs> { }; nixos
enable = true; enable = true;
httpd.virtualHost.hostName = "localhost:3000"; httpd.virtualHost.hostName = "localhost:3000";
httpd.virtualHost.adminAddr = "root@example.com"; httpd.virtualHost.adminAddr = "root@example.com";
passwordFile = pkgs.writeText "password" "correcthorsebatterystaple"; passwordFile =
pkgs.writeText "password" "correcthorsebatterystaple";
}; };
networking.firewall.allowedTCPPorts = [ 80 ];#<slice> networking.firewall.allowedTCPPorts = [ 80 ];#<hidden>
users.users.root.openssh.authorizedKeys.keys = [ users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH3uTwzSSMAPg84fwbNp2cq9+BdLFeA1VzDGth4zCAbz https://ckie.dev" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH3uTwzSSMAPg84fwbNp2cq9+BdLFeA1VzDGth4zCAbz https://ckie.dev"
@ -16,5 +17,5 @@ with import <nixpkgs> { }; nixos
enable = true; enable = true;
settings.PermitRootLogin = "yes"; settings.PermitRootLogin = "yes";
}; };
#</slice> #</hidden>
} }