feat(son/doc): prettier modal-body
This commit is contained in:
parent
f37b392163
commit
73dabbf5f1
7 changed files with 220 additions and 31 deletions
|
@ -1,25 +0,0 @@
|
||||||
From f050ca4374c8c4d9d4fa85e46a1dedaaaedec791 Mon Sep 17 00:00:00 2001
|
|
||||||
From: catvayor <catvayor@katvayor.net>
|
|
||||||
Date: Wed, 11 Dec 2024 15:34:42 +0100
|
|
||||||
Subject: [PATCH] fix: pretty no defaults
|
|
||||||
|
|
||||||
---
|
|
||||||
static/js/script.js | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/static/js/script.js b/static/js/script.js
|
|
||||||
index 56b633b..04234d7 100644
|
|
||||||
--- a/static/js/script.js
|
|
||||||
+++ b/static/js/script.js
|
|
||||||
@@ -293,7 +293,7 @@ var expandOption = function(el){
|
|
||||||
var elDesc = "<h5 style='margin:1em 0 0 0'>Description</h5><div>" + parseDescription(currentSet[el].description) + "</div>";
|
|
||||||
var elType = "<h5 style='margin:1em 0 0 0'>Type</h5><div>" + currentSet[el].type + "</div>";
|
|
||||||
//var elNote = ( currentSet[el].note == "" ? "": "<h5 style='margin:1em 0 0 0'>Note</h5><div>" + currentSet[el].note + "</div>");
|
|
||||||
- var elDefault = "<h5 style='margin:1em 0 0 0'>Default</h5><div><pre style='margin-top:0.5em'>" + currentSet[el].default + "</pre></div>";
|
|
||||||
+ var elDefault = ( currentSet[el].default == "" ? "" : "<h5 style='margin:1em 0 0 0'>Default</h5><div><pre style='margin-top:0.5em'>" + currentSet[el].default + "</pre></div>");
|
|
||||||
var elExample = ( currentSet[el].example == "" ? "" : "<h5 style='margin:1em 0 0 0'>Example</h5><div><pre style='margin-top:0.5em'>" + currentSet[el].example + "</pre></div>");
|
|
||||||
|
|
||||||
//var declared_by_str = currentSet[el].declarations[0].name;
|
|
||||||
--
|
|
||||||
2.47.0
|
|
||||||
|
|
147
machines/kat-son/doc/0001-revert-don-t-parse-md-in-js.patch
Normal file
147
machines/kat-son/doc/0001-revert-don-t-parse-md-in-js.patch
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
From 5e5f68209b3b023fce260c9da1625844ca4d3c22 Mon Sep 17 00:00:00 2001
|
||||||
|
From: catvayor <catvayor@katvayor.net>
|
||||||
|
Date: Mon, 16 Dec 2024 00:11:47 +0100
|
||||||
|
Subject: [PATCH 1/2] revert: don't parse md in js
|
||||||
|
|
||||||
|
---
|
||||||
|
static/js/script.js | 106 +-------------------------------------------
|
||||||
|
1 file changed, 2 insertions(+), 104 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/static/js/script.js b/static/js/script.js
|
||||||
|
index 04234d7..d3ec223 100644
|
||||||
|
--- a/static/js/script.js
|
||||||
|
+++ b/static/js/script.js
|
||||||
|
@@ -27,97 +27,6 @@ function encodeAttr(str) {
|
||||||
|
return (str+'').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>');
|
||||||
|
}
|
||||||
|
|
||||||
|
-/** Parse Markdown into an HTML String. */
|
||||||
|
-function parseMD(md, prevLinks) {
|
||||||
|
- let tokenizer = /((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,
|
||||||
|
- context = [],
|
||||||
|
- out = '',
|
||||||
|
- links = prevLinks || {},
|
||||||
|
- last = 0,
|
||||||
|
- chunk, prev, token, inner, t;
|
||||||
|
-
|
||||||
|
- function tag(token) {
|
||||||
|
- let desc = TAGS[token[1] || ''];
|
||||||
|
- let end = context[context.length-1] == token;
|
||||||
|
- if (!desc) return token;
|
||||||
|
- if (!desc[1]) return desc[0];
|
||||||
|
- if (end) context.pop();
|
||||||
|
- else context.push(token);
|
||||||
|
- return desc[end|0];
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- function flush() {
|
||||||
|
- let str = '';
|
||||||
|
- while (context.length) str += tag(context[context.length-1]);
|
||||||
|
- return str;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- md = md.replace(/^\[(.+?)\]:\s*(.+)$/gm, (s, name, url) => {
|
||||||
|
- links[name.toLowerCase()] = url;
|
||||||
|
- return '';
|
||||||
|
- }).replace(/^\n+|\n+$/g, '');
|
||||||
|
-
|
||||||
|
- while ( (token=tokenizer.exec(md)) ) {
|
||||||
|
- prev = md.substring(last, token.index);
|
||||||
|
- last = tokenizer.lastIndex;
|
||||||
|
- chunk = token[0];
|
||||||
|
- if (prev.match(/[^\\](\\\\)*\\$/)) {
|
||||||
|
- // escaped
|
||||||
|
- }
|
||||||
|
- // Code/Indent blocks:
|
||||||
|
- else if (t = (token[3] || token[4])) {
|
||||||
|
- chunk = '<pre class="code '+(token[4]?'poetry':token[2].toLowerCase())+'"><code'+(token[2] ? ` class="language-${token[2].toLowerCase()}"` : '')+'>'+outdent(encodeAttr(t).replace(/^\n+|\n+$/g, ''))+'</code></pre>';
|
||||||
|
- }
|
||||||
|
- // > Quotes, -* lists:
|
||||||
|
- else if (t = token[6]) {
|
||||||
|
- if (t.match(/\./)) {
|
||||||
|
- token[5] = token[5].replace(/^\d+/gm, '');
|
||||||
|
- }
|
||||||
|
- inner = parse(outdent(token[5].replace(/^\s*[>*+.-]/gm, '')));
|
||||||
|
- if (t=='>') t = 'blockquote';
|
||||||
|
- else {
|
||||||
|
- t = t.match(/\./) ? 'ol' : 'ul';
|
||||||
|
- inner = inner.replace(/^(.*)(\n|$)/gm, '<li>$1</li>');
|
||||||
|
- }
|
||||||
|
- chunk = '<'+t+'>' + inner + '</'+t+'>';
|
||||||
|
- }
|
||||||
|
- // Images:
|
||||||
|
- else if (token[8]) {
|
||||||
|
- chunk = `<img src="${encodeAttr(token[8])}" alt="${encodeAttr(token[7])}">`;
|
||||||
|
- }
|
||||||
|
- // Links:
|
||||||
|
- else if (token[10]) {
|
||||||
|
- out = out.replace('<a>', `<a href="${encodeAttr(token[11] || links[prev.toLowerCase()])}">`);
|
||||||
|
- chunk = flush() + '</a>';
|
||||||
|
- }
|
||||||
|
- else if (token[9]) {
|
||||||
|
- chunk = '<a>';
|
||||||
|
- }
|
||||||
|
- // Headings:
|
||||||
|
- else if (token[12] || token[14]) {
|
||||||
|
- t = 'h' + (token[14] ? token[14].length : (token[13]>'=' ? 1 : 2));
|
||||||
|
- chunk = '<'+t+'>' + parse(token[12] || token[15], links) + '</'+t+'>';
|
||||||
|
- }
|
||||||
|
- // `code`:
|
||||||
|
- else if (token[16]) {
|
||||||
|
- chunk = '<code>'+encodeAttr(token[16])+'</code>';
|
||||||
|
- }
|
||||||
|
- // Inline formatting: *em*, **strong** & friends
|
||||||
|
- else if (token[17] || token[1]) {
|
||||||
|
- chunk = tag(token[17] || '--');
|
||||||
|
- }
|
||||||
|
- out += prev;
|
||||||
|
- out += chunk;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return (out + md.substring(last) + flush()).replace(/^\n+|\n+$/g, '');
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-/*************************
|
||||||
|
- * END MARKDOWN PARSER
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
|
||||||
|
var search, results, allOptions, currentSet = [];
|
||||||
|
var lastUpdate = "?";
|
||||||
|
@@ -254,22 +163,11 @@ var updateOptionsTable = function(options) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-function parseDescription(text){
|
||||||
|
-
|
||||||
|
- text = text.replace(/<https(\s*([^>]*))/gi ,'<a href="https$1"><https$1</a>');
|
||||||
|
- text = text.replace(/\[\]\(#opt-(\s*([^)]*))/gi ,'<strong>$1</strong>').replace(/\)/gi,'');
|
||||||
|
- //[](#opt-wayland.windowManager.hyprland.plugins)
|
||||||
|
- text = text.replace(/\{var\}(\s*([^\n]*))/gi ,'<strong>$1</strong>').replace(/`/gi,'')
|
||||||
|
- text = text.replace(/:::\ \{\.note\}(\s*([^:::]*))/gi ,'<div class="alert alert-info" role="alert">$1</div>').replace(/:::/,'').replace(/\n/g, '<br />')
|
||||||
|
- return text;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
var expandOptionMD = function(el){
|
||||||
|
|
||||||
|
modalTitle.innerHTML = currentSet[el].title;
|
||||||
|
|
||||||
|
- let dhtml = parseMD(currentSet[el].doc);
|
||||||
|
- var elDesc = "<h5 style='margin:1em 0 0 0'>Description</h5><div>" + dhtml + "</div>";
|
||||||
|
+ var elDesc = "<h5 style='margin:1em 0 0 0'>Description</h5><div>" + currentSet[el].doc + "</div>";
|
||||||
|
var elArgs = "<h5 style='margin:1em 0 0 0'>Args</h5><div>" + currentSet[el].args.join(', ') + "</div>";
|
||||||
|
// var elNote = ( currentSet[el].note == "" ? "": "<h5 style='margin:1em 0 0 0'>Note</h5><div>" + currentSet[el].note + "</div>");
|
||||||
|
// var elDefault = "<h5 style='margin:1em 0 0 0'>Default</h5><div><pre style='margin-top:0.5em'>" + currentSet[el].default + "</pre></div>";
|
||||||
|
@@ -290,7 +188,7 @@ var expandOption = function(el){
|
||||||
|
|
||||||
|
//console.log(currentSet[el].description.replace(/:::\ \{\.note\}(\s*([^:::]*))/gi ,'<div class="alert alert-info" role="alert">$1</div>').replace(/:::/,''));
|
||||||
|
|
||||||
|
- var elDesc = "<h5 style='margin:1em 0 0 0'>Description</h5><div>" + parseDescription(currentSet[el].description) + "</div>";
|
||||||
|
+ var elDesc = "<h5 style='margin:1em 0 0 0'>Description</h5><div>" + currentSet[el].description + "</div>";
|
||||||
|
var elType = "<h5 style='margin:1em 0 0 0'>Type</h5><div>" + currentSet[el].type + "</div>";
|
||||||
|
//var elNote = ( currentSet[el].note == "" ? "": "<h5 style='margin:1em 0 0 0'>Note</h5><div>" + currentSet[el].note + "</div>");
|
||||||
|
var elDefault = ( currentSet[el].default == "" ? "" : "<h5 style='margin:1em 0 0 0'>Default</h5><div><pre style='margin-top:0.5em'>" + currentSet[el].default + "</pre></div>");
|
||||||
|
--
|
||||||
|
2.47.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From d32ae9c3386ad1d896d8a54271138111b579d7e7 Mon Sep 17 00:00:00 2001
|
From 957189be0a61f954a1bcfb204f982f59ae6435ea Mon Sep 17 00:00:00 2001
|
||||||
From: catvayor <catvayor@katvayor.net>
|
From: catvayor <catvayor@katvayor.net>
|
||||||
Date: Thu, 12 Dec 2024 17:04:45 +0100
|
Date: Thu, 12 Dec 2024 17:04:45 +0100
|
||||||
Subject: [PATCH 2/2] chore: remove useless dependencies
|
Subject: [PATCH 2/2] chore: remove useless dependencies
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
From b0f6c845280bee20bcc28a136436e000bde8a457 Mon Sep 17 00:00:00 2001
|
||||||
|
From: catvayor <catvayor@katvayor.net>
|
||||||
|
Date: Mon, 16 Dec 2024 11:25:38 +0100
|
||||||
|
Subject: [PATCH] feat: separate HTML description of MD description
|
||||||
|
|
||||||
|
---
|
||||||
|
static/js/script.js | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/static/js/script.js b/static/js/script.js
|
||||||
|
index d3ec223..5d9fc6e 100644
|
||||||
|
--- a/static/js/script.js
|
||||||
|
+++ b/static/js/script.js
|
||||||
|
@@ -188,7 +188,7 @@ var expandOption = function(el){
|
||||||
|
|
||||||
|
//console.log(currentSet[el].description.replace(/:::\ \{\.note\}(\s*([^:::]*))/gi ,'<div class="alert alert-info" role="alert">$1</div>').replace(/:::/,''));
|
||||||
|
|
||||||
|
- var elDesc = "<h5 style='margin:1em 0 0 0'>Description</h5><div>" + currentSet[el].description + "</div>";
|
||||||
|
+ var elDesc = "<h5 style='margin:1em 0 0 0'>Description</h5><div>" + currentSet[el].descriptionHTML + "</div>";
|
||||||
|
var elType = "<h5 style='margin:1em 0 0 0'>Type</h5><div>" + currentSet[el].type + "</div>";
|
||||||
|
//var elNote = ( currentSet[el].note == "" ? "": "<h5 style='margin:1em 0 0 0'>Note</h5><div>" + currentSet[el].note + "</div>");
|
||||||
|
var elDefault = ( currentSet[el].default == "" ? "" : "<h5 style='margin:1em 0 0 0'>Default</h5><div><pre style='margin-top:0.5em'>" + currentSet[el].default + "</pre></div>");
|
||||||
|
--
|
||||||
|
2.47.0
|
||||||
|
|
26
machines/kat-son/doc/0004-fix-indentation-of-ul.patch
Normal file
26
machines/kat-son/doc/0004-fix-indentation-of-ul.patch
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
From e31e0330b9b012b6e09f8eb6bc670e4336d1aedc Mon Sep 17 00:00:00 2001
|
||||||
|
From: catvayor <catvayor@katvayor.net>
|
||||||
|
Date: Mon, 16 Dec 2024 12:53:27 +0100
|
||||||
|
Subject: [PATCH] fix: indentation of <ul>
|
||||||
|
|
||||||
|
---
|
||||||
|
static/css/nucleus.css | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/static/css/nucleus.css b/static/css/nucleus.css
|
||||||
|
index a4674a8..9ada521 100644
|
||||||
|
--- a/static/css/nucleus.css
|
||||||
|
+++ b/static/css/nucleus.css
|
||||||
|
@@ -533,7 +533,8 @@ p {
|
||||||
|
|
||||||
|
ul, ol {
|
||||||
|
margin-top: 1.7rem;
|
||||||
|
- margin-bottom: 1.7rem; }
|
||||||
|
+ margin-bottom: 1.7rem;
|
||||||
|
+ margin-left: 1rem; }
|
||||||
|
ul ul, ul ol, ol ul, ol ol {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0; }
|
||||||
|
--
|
||||||
|
2.47.0
|
||||||
|
|
|
@ -20,6 +20,7 @@ let
|
||||||
attrNames
|
attrNames
|
||||||
filter
|
filter
|
||||||
head
|
head
|
||||||
|
getExe
|
||||||
;
|
;
|
||||||
inherit (lib.strings)
|
inherit (lib.strings)
|
||||||
sanitizeDerivationName
|
sanitizeDerivationName
|
||||||
|
@ -71,21 +72,34 @@ let
|
||||||
name = "<${innerPath}>";
|
name = "<${innerPath}>";
|
||||||
url = "${translate-info.url}${innerPath}";
|
url = "${translate-info.url}${innerPath}";
|
||||||
};
|
};
|
||||||
result = json.generate "options-extranix.json" {
|
result' = json.generate "options-extranix-fileDesc.json" {
|
||||||
last_update = "-/-";
|
last_update = "-/-";
|
||||||
options = mapAttrsToList (title: val: {
|
options = mapAttrsToList (title: val: {
|
||||||
inherit title;
|
inherit title;
|
||||||
inherit (val)
|
inherit (val)
|
||||||
type
|
type
|
||||||
readOnly
|
readOnly
|
||||||
description
|
|
||||||
loc
|
loc
|
||||||
|
description
|
||||||
;
|
;
|
||||||
|
descriptionHTML = pkgs.runCommand "option-${title}.html" { } ''
|
||||||
|
${getExe pkgs.pandoc} -f markdown ${pkgs.writeText "option-${title}.md" val.description} > $out
|
||||||
|
'';
|
||||||
example = val.example.text or "";
|
example = val.example.text or "";
|
||||||
default = val.default.text or "";
|
default = val.default.text or "";
|
||||||
declarations = map path-translation val.declarations;
|
declarations = map path-translation val.declarations;
|
||||||
}) filtered-opts;
|
}) filtered-opts;
|
||||||
};
|
};
|
||||||
|
result =
|
||||||
|
pkgs.runCommand "options-extranix.json"
|
||||||
|
{
|
||||||
|
nativeBuildInputs = [ pkgs.jq ];
|
||||||
|
}
|
||||||
|
''
|
||||||
|
jq -r '.options[].descriptionHTML | "--rawfile\n" + . + "\n" + .' ${result'} | xargs \
|
||||||
|
jq -c '.options |= map(.descriptionHTML as $desc | .descriptionHTML |= $ARGS.named.[$desc])' ${result'} \
|
||||||
|
> $out
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
result;
|
result;
|
||||||
|
|
||||||
|
|
|
@ -10,13 +10,15 @@ stdenv.mkDerivation {
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mipmip";
|
owner = "mipmip";
|
||||||
repo = "hugo-theme-extranix-options-search";
|
repo = "hugo-theme-extranix-options-search";
|
||||||
rev = "1b5cdc63b3127ab81aed2736b0dea7ed09b7ec72";
|
rev = "3252b5bd98adcbbe629327d72c8416c25014a0d6";
|
||||||
hash = "sha256-oowopWC9JdZIex548S0W91MIPSDCaJ3isuNLfesjT9U=";
|
hash = "sha256-XV7Js1KaBiWv9qao8iyzQ546nT1KkwCtvyAs++oeXFo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./0001-fix-pretty-no-defaults.patch
|
./0001-revert-don-t-parse-md-in-js.patch
|
||||||
./0002-chore-remove-useless-dependencies.patch
|
./0002-chore-remove-useless-dependencies.patch
|
||||||
|
./0003-feat-separate-HTML-description-of-MD-description.patch
|
||||||
|
./0004-fix-indentation-of-ul.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
installPhase =
|
installPhase =
|
||||||
|
|
Loading…
Reference in a new issue