switch to svelte-highlight; fix devShell
This commit is contained in:
parent
64683030a7
commit
826449e72a
|
@ -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 = {};
|
||||||
|
|
|
@ -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
15
src/lib/Highlight.svelte
Normal 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
86
src/lib/hljs.css
Normal 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;
|
||||||
|
}
|
|
@ -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">
|
||||||
|
|
|
@ -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>
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue