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>
|
||||
Date: Thu, 12 Dec 2024 17:04:45 +0100
|
||||
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
|
||||
filter
|
||||
head
|
||||
getExe
|
||||
;
|
||||
inherit (lib.strings)
|
||||
sanitizeDerivationName
|
||||
|
@ -71,21 +72,34 @@ let
|
|||
name = "<${innerPath}>";
|
||||
url = "${translate-info.url}${innerPath}";
|
||||
};
|
||||
result = json.generate "options-extranix.json" {
|
||||
result' = json.generate "options-extranix-fileDesc.json" {
|
||||
last_update = "-/-";
|
||||
options = mapAttrsToList (title: val: {
|
||||
inherit title;
|
||||
inherit (val)
|
||||
type
|
||||
readOnly
|
||||
description
|
||||
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 "";
|
||||
default = val.default.text or "";
|
||||
declarations = map path-translation val.declarations;
|
||||
}) 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
|
||||
result;
|
||||
|
||||
|
|
|
@ -10,13 +10,15 @@ stdenv.mkDerivation {
|
|||
src = fetchFromGitHub {
|
||||
owner = "mipmip";
|
||||
repo = "hugo-theme-extranix-options-search";
|
||||
rev = "1b5cdc63b3127ab81aed2736b0dea7ed09b7ec72";
|
||||
hash = "sha256-oowopWC9JdZIex548S0W91MIPSDCaJ3isuNLfesjT9U=";
|
||||
rev = "3252b5bd98adcbbe629327d72c8416c25014a0d6";
|
||||
hash = "sha256-XV7Js1KaBiWv9qao8iyzQ546nT1KkwCtvyAs++oeXFo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./0001-fix-pretty-no-defaults.patch
|
||||
./0001-revert-don-t-parse-md-in-js.patch
|
||||
./0002-chore-remove-useless-dependencies.patch
|
||||
./0003-feat-separate-HTML-description-of-MD-description.patch
|
||||
./0004-fix-indentation-of-ul.patch
|
||||
];
|
||||
|
||||
installPhase =
|
||||
|
|
Loading…
Reference in a new issue