Merge branch 'main' into dev
This commit is contained in:
@@ -20,7 +20,7 @@ concurrency:
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
generate-doc-options:
|
||||
run-nix-build:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
@@ -40,16 +40,13 @@ jobs:
|
||||
name: website
|
||||
path: ./out
|
||||
|
||||
deploy-docs:
|
||||
needs: generate-doc-options
|
||||
deploy-site:
|
||||
needs: run-nix-build
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Get nix build output
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
@@ -57,13 +54,13 @@ jobs:
|
||||
path: './out'
|
||||
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v3
|
||||
uses: actions/configure-pages@v5
|
||||
|
||||
- name: Upload GH pages artifact
|
||||
uses: actions/upload-pages-artifact@v1
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: './out'
|
||||
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v2
|
||||
uses: actions/deploy-pages@v4
|
||||
|
||||
@@ -6,8 +6,6 @@ on:
|
||||
branches: [main, release**]
|
||||
pull_request:
|
||||
branches: [main, release**]
|
||||
# Don't run on draft PR's, see: https://github.com/orgs/community/discussions/25722#discussioncomment-3248917
|
||||
types: [opened, synchronize, reopened, ready_for_review]
|
||||
# Allows us to run the workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
# Nixarr
|
||||
|
||||

|
||||
|
||||
This is a Nixos module that aims to make the installation and management of
|
||||
|
||||
@@ -1,225 +0,0 @@
|
||||
{
|
||||
"text-color": "#282828",
|
||||
"background-color": "#fbf1c7",
|
||||
"line-number-color": "#3c3836",
|
||||
"line-number-background-color": "#fbf1c7",
|
||||
"text-styles": {
|
||||
"Alert": {
|
||||
"text-color": "#9d0006",
|
||||
"background-color": null,
|
||||
"bold": true,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Annotation": {
|
||||
"text-color": "#b16286",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Attribute": {
|
||||
"text-color": "#076678",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"BaseN": {
|
||||
"text-color": "#b57614",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"BuiltIn": {
|
||||
"text-color": "#8f3f71",
|
||||
"background-color": null,
|
||||
"bold": true,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Char": {
|
||||
"text-color": "#98971a",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Comment": {
|
||||
"text-color": "#7c6f64",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"CommentVar": {
|
||||
"text-color": "#7c6f64",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Constant": {
|
||||
"text-color": "#cc241d",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"ControlFlow": {
|
||||
"text-color": "#282828",
|
||||
"background-color": null,
|
||||
"bold": true,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"DataType": {
|
||||
"text-color": "#458588",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"DecVal": {
|
||||
"text-color": "#458588",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Documentation": {
|
||||
"text-color": "#98971a",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Error": {
|
||||
"text-color": "#9d0006",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": true
|
||||
},
|
||||
"Extension": {
|
||||
"text-color": "#458588",
|
||||
"background-color": null,
|
||||
"bold": true,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Float": {
|
||||
"text-color": "#b57614",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Function": {
|
||||
"text-color": "#b16286",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Import": {
|
||||
"text-color": "#d65d0e",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Information": {
|
||||
"text-color": "#d65d0e",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Keyword": {
|
||||
"text-color": "#282828",
|
||||
"background-color": null,
|
||||
"bold": true,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Normal": {
|
||||
"text-color": "#282828",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Operator": {
|
||||
"text-color": "#282828",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Other": {
|
||||
"text-color": "#79740e",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Preprocessor": {
|
||||
"text-color": "#79740e",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"RegionMarker": {
|
||||
"text-color": "#076678",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"SpecialChar": {
|
||||
"text-color": "#79740e",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"SpecialString": {
|
||||
"text-color": "#79740e",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"String": {
|
||||
"text-color": "#98971a",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Variable": {
|
||||
"text-color": "#076678",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"VerbatimString": {
|
||||
"text-color": "#9d0006",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
},
|
||||
"Warning": {
|
||||
"text-color": "#b57614",
|
||||
"background-color": null,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"underline": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
code {
|
||||
background-color: var(--bg);
|
||||
border-radius: 5em / 10em;
|
||||
padding-left: 0.3em;
|
||||
padding-right: 0.3em;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="1em" height="1em" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.7285 3.88396C17.1629 2.44407 19.2609 2.41383 20.4224 3.57981C21.586 4.74798 21.5547 6.85922 20.1194 8.30009L17.6956 10.7333C17.4033 11.0268 17.4042 11.5017 17.6976 11.794C17.9911 12.0863 18.466 12.0854 18.7583 11.7919L21.1821 9.35869C23.0934 7.43998 23.3334 4.37665 21.4851 2.5212C19.6346 0.663551 16.5781 0.905664 14.6658 2.82536L9.81817 7.69182C7.90688 9.61053 7.66692 12.6739 9.51519 14.5293C9.80751 14.8228 10.2824 14.8237 10.5758 14.5314C10.8693 14.2391 10.8702 13.7642 10.5779 13.4707C9.41425 12.3026 9.44559 10.1913 10.8809 8.75042L15.7285 3.88396Z" fill="#282828"/>
|
||||
<path d="M14.4851 9.47074C14.1928 9.17728 13.7179 9.17636 13.4244 9.46868C13.131 9.76101 13.1301 10.2359 13.4224 10.5293C14.586 11.6975 14.5547 13.8087 13.1194 15.2496L8.27178 20.1161C6.83745 21.556 4.73937 21.5863 3.57791 20.4203C2.41424 19.2521 2.44559 17.1408 3.88089 15.6999L6.30473 13.2667C6.59706 12.9732 6.59614 12.4984 6.30268 12.206C6.00922 11.9137 5.53434 11.9146 5.24202 12.2081L2.81818 14.6413C0.906876 16.5601 0.666916 19.6234 2.51519 21.4789C4.36567 23.3365 7.42221 23.0944 9.33449 21.1747L14.1821 16.3082C16.0934 14.3895 16.3334 11.3262 14.4851 9.47074Z" fill="#282828"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -1,15 +0,0 @@
|
||||
-- Adds anchor links to headings with IDs.
|
||||
|
||||
function Header (h)
|
||||
if h.identifier ~= '' then
|
||||
-- an empty link to this header
|
||||
local anchor_link = pandoc.Link(
|
||||
{}, -- content
|
||||
'#' .. h.identifier, -- href
|
||||
'', -- title
|
||||
{class = 'anchor', ['aria-hidden'] = 'true'} -- attributes
|
||||
)
|
||||
h.content:insert(1, anchor_link)
|
||||
return h
|
||||
end
|
||||
end
|
||||
@@ -1,10 +0,0 @@
|
||||
-- Change each untagged codeblock in the document to a "nix" code block.
|
||||
|
||||
function CodeBlock(block)
|
||||
-- Check if the code block does not have a language specified.
|
||||
if block.classes[1] == nil then
|
||||
-- Set the language of the code block to "nix".
|
||||
block.classes[1] = "nix"
|
||||
end
|
||||
return block
|
||||
end
|
||||
@@ -1,10 +0,0 @@
|
||||
-- Changes all level 2 headers to level 3
|
||||
|
||||
function Header(elem)
|
||||
-- Check if the header is of level 2
|
||||
if elem.level == 2 then
|
||||
-- Change the header level to 3
|
||||
elem.level = 3
|
||||
end
|
||||
return elem
|
||||
end
|
||||
@@ -1,39 +0,0 @@
|
||||
-- pandoc_indent_nix_blocks.lua
|
||||
-- This Pandoc Lua filter indents all lines in code blocks by 2 spaces
|
||||
-- TODO: This indents _all_ code blocks, not just example and default...
|
||||
|
||||
--if dump_debug then
|
||||
-- local debug_file = io.open("pandoc_debug.log", "a")
|
||||
--end
|
||||
--
|
||||
--function debug(msg)
|
||||
-- if debug_file then
|
||||
-- debug_file:write(msg .. "\n")
|
||||
-- end
|
||||
--end
|
||||
|
||||
function CodeBlock(block)
|
||||
-- Check if the code block language is unmarked
|
||||
if #block.classes == 0 then
|
||||
-- Split the block text into lines
|
||||
local lines = {}
|
||||
for line in block.text:gmatch("[^\r\n]+") do
|
||||
table.insert(lines, line)
|
||||
end
|
||||
|
||||
-- Indent each line by 2 spaces
|
||||
for i, line in ipairs(lines) do
|
||||
lines[i] = " " .. line
|
||||
end
|
||||
|
||||
-- Join the lines back together and update the block text
|
||||
block.text = table.concat(lines, '\n')
|
||||
|
||||
-- Return the modified block
|
||||
return block
|
||||
end
|
||||
end
|
||||
|
||||
return {
|
||||
{CodeBlock = CodeBlock}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
-- Changes "Example" and "Default" section fenced code blocks into "nix" tagged code blocks
|
||||
|
||||
function Para(elem)
|
||||
-- Check if the first element of the paragraph is Emph (italic)
|
||||
if #elem.content >= 1 and elem.content[1].t == "Emph" then
|
||||
-- Convert the first element to plain text to check its content
|
||||
local firstText = pandoc.utils.stringify(elem.content[1])
|
||||
local isExample = firstText:find("^Example:")
|
||||
local isDefault = firstText:find("^Default:")
|
||||
|
||||
-- Check if the text starts with "Declared by:"
|
||||
if isExample or isDefault then
|
||||
local newElems = {}
|
||||
for i, el in ipairs(elem.content) do
|
||||
if el.t == "Code" then
|
||||
-- Convert inline code to fenced code block and add it to new elements
|
||||
-- Note: This will be outside the paragraph due to block-level constraint
|
||||
local addedSpaces = string.gsub(el.text, "^", " ");
|
||||
table.insert(newElems, pandoc.CodeBlock(addedSpaces, pandoc.Attr("", {"nix"})))
|
||||
else
|
||||
-- Keep other elements as inline, to be added to a new paragraph
|
||||
table.insert(newElems, el)
|
||||
end
|
||||
end
|
||||
-- Replace paragraph with new elements (mixing inline and block-level elements isn't directly possible, so this part needs rethinking)
|
||||
return newElems
|
||||
end
|
||||
end
|
||||
-- Otherwise, return the paragraph unmodified
|
||||
return elem
|
||||
end
|
||||
@@ -1,17 +0,0 @@
|
||||
-- Removed "Declared by:" paragraphs. TODO: Make them link to the GH repo instead
|
||||
|
||||
function Para(elem)
|
||||
-- Check if the first element of the paragraph is Emph (italic)
|
||||
if #elem.content >= 1 and elem.content[1].t == "Emph" then
|
||||
-- Convert the first element to plain text to check its content
|
||||
local firstText = pandoc.utils.stringify(elem.content[1])
|
||||
|
||||
-- Check if the text starts with "Declared by:"
|
||||
if firstText:find("^Declared by:") then
|
||||
-- Return an empty block to remove this paragraph
|
||||
return {}
|
||||
end
|
||||
end
|
||||
-- Otherwise, return the paragraph unmodified
|
||||
return elem
|
||||
end
|
||||
@@ -1,47 +0,0 @@
|
||||
-- Remove junk module.args section of the nix documentation
|
||||
|
||||
-- This function checks if a string starts with a given start string
|
||||
function starts_with(str, start)
|
||||
return str:sub(1, #start) == start
|
||||
end
|
||||
|
||||
-- This recursive function traverses the AST and removes sections based on the header condition
|
||||
function remove_sections(elements, condition)
|
||||
local result = {}
|
||||
local skip_level = nil -- Define skip_level outside the loop, initialized to nil
|
||||
|
||||
for _, el in ipairs(elements) do
|
||||
if el.t == "Header" then
|
||||
-- Check if we are currently skipping sections and this header is of equal or higher level
|
||||
if skip_level and el.level <= skip_level then
|
||||
skip_level = nil -- Stop skipping sections
|
||||
end
|
||||
|
||||
-- If skip_level is nil, check if this header starts a new section to skip
|
||||
if not skip_level and condition(el) then
|
||||
skip_level = el.level -- Start skipping sections
|
||||
else
|
||||
table.insert(result, el) -- Add the header to results if not skipping
|
||||
end
|
||||
elseif not skip_level then
|
||||
table.insert(result, el) -- Add non-header elements if not skipping
|
||||
end
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
-- The Pandoc filter function to apply our custom logic
|
||||
function Pandoc(doc)
|
||||
-- Define the condition function to be used for identifying sections to remove
|
||||
local condition = function(header)
|
||||
-- Assuming the header's actual text is in the 'content' array and in the first element
|
||||
local header_text = pandoc.utils.stringify(header.content)
|
||||
return starts_with(header_text, "_module.args")
|
||||
end
|
||||
|
||||
-- Apply the removal function to the document blocks
|
||||
doc.blocks = remove_sections(doc.blocks, condition)
|
||||
|
||||
return doc
|
||||
end
|
||||
@@ -1,47 +0,0 @@
|
||||
-- Remove the "util-nixarr" sections from the docs
|
||||
|
||||
-- This function checks if a string starts with a given start string
|
||||
function starts_with(str, start)
|
||||
return str:sub(1, #start) == start
|
||||
end
|
||||
|
||||
-- This recursive function traverses the AST and removes sections based on the header condition
|
||||
function remove_sections(elements, condition)
|
||||
local result = {}
|
||||
local skip_level = nil -- Define skip_level outside the loop, initialized to nil
|
||||
|
||||
for _, el in ipairs(elements) do
|
||||
if el.t == "Header" then
|
||||
-- Check if we are currently skipping sections and this header is of equal or higher level
|
||||
if skip_level and el.level <= skip_level then
|
||||
skip_level = nil -- Stop skipping sections
|
||||
end
|
||||
|
||||
-- If skip_level is nil, check if this header starts a new section to skip
|
||||
if not skip_level and condition(el) then
|
||||
skip_level = el.level -- Start skipping sections
|
||||
else
|
||||
table.insert(result, el) -- Add the header to results if not skipping
|
||||
end
|
||||
elseif not skip_level then
|
||||
table.insert(result, el) -- Add non-header elements if not skipping
|
||||
end
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
-- The Pandoc filter function to apply our custom logic
|
||||
function Pandoc(doc)
|
||||
-- Define the condition function to be used for identifying sections to remove
|
||||
local condition = function(header)
|
||||
-- Assuming the header's actual text is in the 'content' array and in the first element
|
||||
local header_text = pandoc.utils.stringify(header.content)
|
||||
return starts_with(header_text, "util-nixarr")
|
||||
end
|
||||
|
||||
-- Apply the removal function to the document blocks
|
||||
doc.blocks = remove_sections(doc.blocks, condition)
|
||||
|
||||
return doc
|
||||
end
|
||||
@@ -1,26 +0,0 @@
|
||||
addEventListener('DOMContentLoaded', () => {
|
||||
const fullpath = location.origin + location.pathname.replace(/\/$/, "");
|
||||
|
||||
document.querySelectorAll('nav a').forEach((el) => {
|
||||
const url = new URL(el.href);
|
||||
const fullurl = url.origin + url.pathname.replace(/\/$/, "");
|
||||
const onHome = fullpath === location.origin
|
||||
const urlIsHome = fullurl === location.origin
|
||||
|
||||
//console.log("fullurl", fullurl);
|
||||
//console.log("fullpath", fullpath);
|
||||
//console.log("locationpathname", location.pathname);
|
||||
//console.log("urlpathname", url.pathname);
|
||||
//console.log("onhome", onHome);
|
||||
//console.log("urlIsHome", urlIsHome);
|
||||
//console.log("")
|
||||
|
||||
if (onHome && fullurl === fullpath) {
|
||||
el.classList.add('active');
|
||||
}
|
||||
// The startsWith is for subpages
|
||||
else if (!urlIsHome && fullpath.startsWith(fullurl)) {
|
||||
el.classList.add('active');
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1,461 +0,0 @@
|
||||
/*
|
||||
* I add this to html files generated with pandoc.
|
||||
*/
|
||||
|
||||
:root {
|
||||
--bg: #fbf1c7;
|
||||
--bgt: #fbf1c7;
|
||||
--bge: #fbf8e4;
|
||||
--bg0: #f9f5d7;
|
||||
--fg0: #282828;
|
||||
--ltred: #cc241d;
|
||||
--ltgreen: #98971a;
|
||||
--ltyellow: #d79921;
|
||||
--ltblue: #458588;
|
||||
--ltpurple: #b16286;
|
||||
--ltaqua: #689da6;
|
||||
--ltorange: #d65d0e;
|
||||
--ltgrey: #7c6f64;
|
||||
--dkred: #9d0006;
|
||||
--dkgreen: #79740e;
|
||||
--dkyellow: #b57614;
|
||||
--dkblue: #076678;
|
||||
--dkpurple: #8f3f71;
|
||||
--dkaqua: #427b58;
|
||||
--dkgrey: #3c3836;
|
||||
}
|
||||
|
||||
html {
|
||||
/* font-size: 100%; */
|
||||
/* overflow-y: scroll; */
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
color: var(--fg0);
|
||||
font-family: century_supra_a, Georgia, serif;
|
||||
font-size: 16px;
|
||||
line-height: 1.7;
|
||||
background: var(--bge);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
main {
|
||||
min-height: 100vh;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#header {
|
||||
background-color: #066678;
|
||||
padding: 0.3rem 0;
|
||||
color: #faf8e4;
|
||||
border-bottom: 1px solid #458587;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
nav {
|
||||
color: #faf8e4;
|
||||
background-color: #054c5a;
|
||||
}
|
||||
|
||||
nav .content {
|
||||
display: flex;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
nav a {
|
||||
color: #458587;
|
||||
text-decoration: none;
|
||||
font-size: 1em;
|
||||
padding: 0.15em 1em;
|
||||
}
|
||||
|
||||
nav a:visited {
|
||||
color: #458587;
|
||||
}
|
||||
|
||||
nav a:hover {
|
||||
background-color: var(--dkblue);
|
||||
color: var(--bg);
|
||||
}
|
||||
|
||||
nav a.active {
|
||||
background-color: #458587;
|
||||
color: #faf8e4 !important;
|
||||
}
|
||||
|
||||
footer {
|
||||
height: 2rem;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
background-color: #03333b;
|
||||
border-top: 0.5rem solid #458587;
|
||||
color: #faf8e4;
|
||||
display: flex;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
footer .content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1em;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.content {
|
||||
margin: auto;
|
||||
padding: 0 0.5rem;
|
||||
max-width: 50rem;
|
||||
}
|
||||
|
||||
.content-wrap {
|
||||
padding-bottom: 4rem;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--ltblue);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: var(--dkblue);
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: var(--ltblue);
|
||||
}
|
||||
|
||||
a:active {
|
||||
color: var(--ltblue);
|
||||
}
|
||||
|
||||
a:focus {
|
||||
outline: thin dotted;
|
||||
}
|
||||
|
||||
a code {
|
||||
text-decoration-line: underline;
|
||||
}
|
||||
|
||||
strong a {
|
||||
text-decoration-line: underline;
|
||||
color: var(--fg0);
|
||||
}
|
||||
|
||||
strong a:hover {
|
||||
text-decoration-line: underline;
|
||||
color: var(--fg0);
|
||||
}
|
||||
|
||||
strong a:visited {
|
||||
text-decoration-line: underline;
|
||||
color: var(--fg0);
|
||||
}
|
||||
|
||||
*::-moz-selection {
|
||||
/* background: var(--ltred); */
|
||||
background: rgba(255, 255, 0, 0.3);
|
||||
color: var(--fg0);
|
||||
}
|
||||
|
||||
*::selection {
|
||||
background: rgba(255, 255, 0, 0.3);
|
||||
color: var(--fg0);
|
||||
}
|
||||
|
||||
a::-moz-selection {
|
||||
background: rgba(255, 255, 0, 0.3);
|
||||
color: var(--ltblue);
|
||||
}
|
||||
|
||||
a::selection {
|
||||
background: rgba(255, 255, 0, 0.3);
|
||||
color: var(--ltblue);
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: var(--fg0);
|
||||
line-height: 125%;
|
||||
/* margin-top: 1em; */
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.25em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
color: var(--ltgrey);
|
||||
margin: 0;
|
||||
padding-left: 3em;
|
||||
border-left: 0.5em var(--fg0) solid;
|
||||
}
|
||||
|
||||
hr {
|
||||
display: block;
|
||||
height: 2px;
|
||||
border: 0;
|
||||
border-top: 1px solid #aaa;
|
||||
border-bottom: 1px solid #eee;
|
||||
margin: 1em 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
pre, code, kbd, samp {
|
||||
color: var(--fg0);
|
||||
font-family: monospace, monospace;
|
||||
_font-family: 'courier new', monospace;
|
||||
font-size: 0.98em;
|
||||
}
|
||||
|
||||
pre {
|
||||
white-space: pre;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
b, strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
ins {
|
||||
background: #ff9;
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
mark {
|
||||
background: #ff0;
|
||||
color: #000;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
sub, sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
margin: 1em 0;
|
||||
padding: 0 0 0 2em;
|
||||
}
|
||||
|
||||
li p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
ul ul, ol ol {
|
||||
margin: .3em 0;
|
||||
}
|
||||
|
||||
dl {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: bold;
|
||||
margin-bottom: .8em;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin: 0 0 .8em 2em;
|
||||
}
|
||||
|
||||
dd:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
figure {
|
||||
display: block;
|
||||
text-align: center;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
figure img {
|
||||
border: none;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
figcaption {
|
||||
font-size: 0.8em;
|
||||
font-style: italic;
|
||||
margin: 0 0 .8em;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-bottom: 2em;
|
||||
border-bottom: 1px solid #ddd;
|
||||
border-right: 1px solid #ddd;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table th {
|
||||
padding: .2em 1em;
|
||||
background-color: #eee;
|
||||
border-top: 1px solid #ddd;
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
|
||||
table td {
|
||||
padding: .2em 1em;
|
||||
border-top: 1px solid #ddd;
|
||||
border-left: 1px solid #ddd;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.author {
|
||||
font-size: 1.2em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media print {
|
||||
* {
|
||||
background: transparent !important;
|
||||
color: black !important;
|
||||
filter: none !important;
|
||||
-ms-filter: none !important;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
.content {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
|
||||
a, a:visited {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
border-bottom: 1px solid black;
|
||||
}
|
||||
|
||||
a[href]:after {
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
abbr[title]:after {
|
||||
content: " (" attr(title) ")";
|
||||
}
|
||||
|
||||
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
|
||||
content: "";
|
||||
}
|
||||
|
||||
pre, blockquote {
|
||||
border: 1px solid #999;
|
||||
padding-right: 1em;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
tr, img {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
@page :left {
|
||||
margin: 15mm 20mm 15mm 10mm;
|
||||
}
|
||||
|
||||
@page :right {
|
||||
margin: 15mm 10mm 15mm 20mm;
|
||||
}
|
||||
|
||||
p, h2, h3 {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
|
||||
h2, h3 {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
}
|
||||
|
||||
/* show the anchor links in headings if one hovers over the heading. */
|
||||
.anchor::before {
|
||||
content: url("/docs/pandoc/link.svg");
|
||||
display: inline-block;
|
||||
font-size: 1em;
|
||||
left: -1.5em;
|
||||
line-height: 1.5;
|
||||
opacity: 0.15;
|
||||
position: relative;
|
||||
width: 0em;
|
||||
}
|
||||
.anchor:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
h1:hover > .anchor::before,
|
||||
h2:hover > .anchor::before,
|
||||
h3:hover > .anchor::before,
|
||||
h4:hover > .anchor::before,
|
||||
h5:hover > .anchor::before,
|
||||
h6:hover > .anchor::before {
|
||||
opacity: 1;
|
||||
}
|
||||
/* end: heading anchor links */
|
||||
@@ -1,114 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$" $if(dir)$ dir="$dir$" $endif$>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
|
||||
<!-- Favicons -->
|
||||
<!-- For all browsers -->
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/docs/img/favicons/32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/docs/img/favicons/16x16.png">
|
||||
<!-- For Google and Android -->
|
||||
<link rel="icon" type="image/png" sizes="48x48" href="/docs/img/favicons/48x48.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="/docs/img/favicons/192x192.png">
|
||||
<!-- For iPad -->
|
||||
<link rel="apple-touch-icon" type="image/png" sizes="167x167" href="/docs/img/favicons/167x167.png">
|
||||
<!-- For iPhone -->
|
||||
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="/docs/img/favicons/180x180.png">
|
||||
|
||||
$for(author-meta)$
|
||||
<meta name="author" content="$author-meta$" />
|
||||
$endfor$
|
||||
$if(date-meta)$
|
||||
<meta name="dcterms.date" content="$date-meta$" />
|
||||
$endif$
|
||||
$if(keywords)$
|
||||
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
|
||||
$endif$
|
||||
$if(description-meta)$
|
||||
<meta name="description" content="$description-meta$" />
|
||||
$endif$
|
||||
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
|
||||
<style>
|
||||
$styles.html()$
|
||||
</style>
|
||||
$for(css)$
|
||||
<link rel="stylesheet" href="$css$" />
|
||||
$endfor$
|
||||
$for(header-includes)$
|
||||
$header-includes$
|
||||
$endfor$
|
||||
$if(math)$
|
||||
$if(mathjax)$
|
||||
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
||||
$endif$
|
||||
$math$
|
||||
$endif$
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script src="/docs/pandoc/script.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<main>
|
||||
<header id="header">
|
||||
<div class="content">
|
||||
Nixarr
|
||||
</div>
|
||||
</header>
|
||||
<nav>
|
||||
<div class="content">
|
||||
<a href="/">Home</a>
|
||||
<a href="/options.html">Options</a>
|
||||
<a href="/wiki">Wiki</a>
|
||||
<a href="https://github.com/rasmus-kirk/nixarr">Github</a>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="content content-wrap">
|
||||
$for(include-before)$
|
||||
$include-before$
|
||||
$endfor$
|
||||
$if(title)$
|
||||
<header id="title-block-header">
|
||||
<h1 class="title">$title$</h1>
|
||||
$if(subtitle)$
|
||||
<p class="subtitle">$subtitle$</p>
|
||||
$endif$
|
||||
$for(author)$
|
||||
<p class="author">$author$</p>
|
||||
$endfor$
|
||||
$if(abstract)$
|
||||
<div class="abstract">
|
||||
<div class="abstract-title">$abstract-title$</div>
|
||||
$abstract$
|
||||
</div>
|
||||
$endif$
|
||||
</header>
|
||||
$endif$
|
||||
$if(toc)$
|
||||
<nav id="$idprefix$TOC" role="doc-toc">
|
||||
$if(toc-title)$
|
||||
<h2 id="$idprefix$toc-title">$toc-title$</h2>
|
||||
$endif$
|
||||
$table-of-contents$
|
||||
</nav>
|
||||
$endif$
|
||||
$body$
|
||||
$for(include-after)$
|
||||
$include-after$
|
||||
$endfor$
|
||||
</div>
|
||||
<footer>
|
||||
<div class="content">
|
||||
$if(date)$
|
||||
<div>$date$</div>
|
||||
$endif$
|
||||
</div>
|
||||
</footer>
|
||||
</main>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Generated
+28
-7
@@ -2,11 +2,11 @@
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1736657626,
|
||||
"narHash": "sha256-FWlPMUzp0lkQBdhKlPqtQdqmp+/C+1MBiEytaYfrCTY=",
|
||||
"lastModified": 1741402956,
|
||||
"narHash": "sha256-y2hByvBM03s9T2fpeLjW6iprbxnhV9mJMmSwCHc41ZQ=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2f9e2f85cb14a46410a1399aa9ea7ecf433e422e",
|
||||
"rev": "ed0b1881565c1ffef490c10d663d4f542031dad3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -36,16 +36,17 @@
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-sonarr": "nixpkgs-sonarr",
|
||||
"vpnconfinement": "vpnconfinement"
|
||||
"vpnconfinement": "vpnconfinement",
|
||||
"website-builder": "website-builder"
|
||||
}
|
||||
},
|
||||
"vpnconfinement": {
|
||||
"locked": {
|
||||
"lastModified": 1731209328,
|
||||
"narHash": "sha256-b3jggBHZh20jUfBxoaIvew23czsw82zBc0aKxtkF3g8=",
|
||||
"lastModified": 1740921534,
|
||||
"narHash": "sha256-orXe3m04DLTW3I19VVanClzpqeq7adnDTqKAD7aPbA8=",
|
||||
"owner": "Maroka-chan",
|
||||
"repo": "VPN-Confinement",
|
||||
"rev": "74e6fd47804b5ca69187200efbb14cf1ecb9ea07",
|
||||
"rev": "5eb7dc3e901f4dbb085eb37f5785473a9ae78bc4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -53,6 +54,26 @@
|
||||
"repo": "VPN-Confinement",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"website-builder": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741594814,
|
||||
"narHash": "sha256-YPAIywsWZVhQuy/cPJLi3PiWgoWDrqvQCBytXeSQYCk=",
|
||||
"owner": "rasmus-kirk",
|
||||
"repo": "website-builder",
|
||||
"rev": "e0239195b33103a4923011d8e96ef39a3397631b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rasmus-kirk",
|
||||
"repo": "website-builder",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
@@ -6,12 +6,17 @@
|
||||
nixpkgs-sonarr.url = "github:nixos/nixpkgs/328abff1f7a707dc8da8e802f724f025521793ea";
|
||||
|
||||
vpnconfinement.url = "github:Maroka-chan/VPN-Confinement";
|
||||
|
||||
website-builder.url = "github:rasmus-kirk/website-builder";
|
||||
website-builder.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
nixpkgs,
|
||||
nixpkgs-sonarr,
|
||||
vpnconfinement,
|
||||
website-builder,
|
||||
self,
|
||||
...
|
||||
} @ inputs: let
|
||||
# Systems supported
|
||||
@@ -45,8 +50,56 @@
|
||||
};
|
||||
});
|
||||
|
||||
packages = forAllSystems ({pkgs}: {
|
||||
default = pkgs.callPackage ./mkDocs.nix {inherit inputs;};
|
||||
packages = forAllSystems ({pkgs}: let
|
||||
website = website-builder.lib {
|
||||
pkgs = pkgs;
|
||||
src = "${self}";
|
||||
timestamp = self.lastModified;
|
||||
headerTitle = "Nixarr";
|
||||
standalonePages = [
|
||||
{
|
||||
title = "Nixarr - Media Server Nixos Module";
|
||||
inputFile = ./README.md;
|
||||
outputFile = "index.html";
|
||||
}
|
||||
];
|
||||
includedDirs = ["docs"];
|
||||
articleDirs = ["docs/wiki"];
|
||||
navbar = [
|
||||
{
|
||||
title = "Home";
|
||||
location = "/";
|
||||
}
|
||||
{
|
||||
title = "Options";
|
||||
location = "/nixos-options";
|
||||
}
|
||||
{
|
||||
title = "Wiki";
|
||||
location = "/wiki";
|
||||
}
|
||||
{
|
||||
title = "Github";
|
||||
location = "https://github.com/rasmus-kirk/nixarr";
|
||||
}
|
||||
];
|
||||
favicons = {
|
||||
# For all browsers
|
||||
"16x16" = "/docs/img/favicons/16x16.png";
|
||||
"32x32" = "/docs/img/favicons/32x32.png";
|
||||
# For Google and Android
|
||||
"48x48" = "/docs/img/favicons/48x48.png";
|
||||
"192x192" = "/docs/img/favicons/192x192.png";
|
||||
# For iPad
|
||||
"167x167" = "/docs/img/favicons/167x167.png";
|
||||
# For iPhone
|
||||
"180x180" = "/docs/img/favicons/180x180.png";
|
||||
};
|
||||
nixosModules = ./nixarr;
|
||||
};
|
||||
in {
|
||||
default = website.package;
|
||||
debug = website.loop;
|
||||
});
|
||||
|
||||
formatter = forAllSystems ({pkgs}: pkgs.alejandra);
|
||||
|
||||
-100
@@ -1,100 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
nixosOptionsDoc,
|
||||
...
|
||||
}: let
|
||||
evalNixos = lib.evalModules {
|
||||
specialArgs = {inherit pkgs;};
|
||||
modules = [
|
||||
{
|
||||
config._module.check = false;
|
||||
}
|
||||
./nixarr
|
||||
];
|
||||
};
|
||||
optionsDocNixos = nixosOptionsDoc {
|
||||
inherit (evalNixos) options;
|
||||
};
|
||||
in
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "nixdocs2html";
|
||||
src = ./.;
|
||||
buildInputs = with pkgs; [pandoc];
|
||||
phases = ["unpackPhase" "buildPhase"];
|
||||
buildPhase = ''
|
||||
tmpdir=$(mktemp -d)
|
||||
|
||||
mkdir -p $out
|
||||
cp -r docs docs/wiki $out
|
||||
|
||||
# Generate md docs
|
||||
cat ${optionsDocNixos.optionsCommonMark} > "$tmpdir"/nixos-options.md
|
||||
|
||||
buildwiki () {
|
||||
file_path="$1"
|
||||
filename=$(basename -- "$file_path")
|
||||
dir_path=$(dirname "$file_path" | sed 's|^docs/||')
|
||||
filename_no_ext="''${filename%.*}"
|
||||
|
||||
mkdir -p "$out"/"$dir_path"
|
||||
|
||||
pandoc \
|
||||
--standalone \
|
||||
--metadata date="$(date -u '+%Y-%m-%d - %H:%M:%S %Z')" \
|
||||
--highlight-style docs/pandoc/gruvbox.theme \
|
||||
--lua-filter docs/pandoc/lua/anchor-links.lua \
|
||||
--css /docs/pandoc/style.css \
|
||||
--css /docs/pandoc/inline-code-style.css \
|
||||
--template docs/pandoc/template.html \
|
||||
-V lang=en \
|
||||
-V --mathjax \
|
||||
-f markdown+smart \
|
||||
-o $out/"$dir_path"/"$filename_no_ext".html \
|
||||
"$file_path"
|
||||
}
|
||||
|
||||
# Make home page
|
||||
sed '1d' README.md > "$tmpdir/readme.md"
|
||||
pandoc \
|
||||
--metadata title="Nixarr - Media Server Nixos Module" \
|
||||
--metadata date="$(date -u '+%Y-%m-%d - %H:%M:%S %Z')" \
|
||||
--standalone \
|
||||
--highlight-style docs/pandoc/gruvbox.theme \
|
||||
--template docs/pandoc/template.html \
|
||||
--css docs/pandoc/style.css \
|
||||
-V lang=en \
|
||||
-V --mathjax \
|
||||
-f markdown+smart \
|
||||
-o $out/index.html \
|
||||
"$tmpdir/readme.md"
|
||||
|
||||
# Make wiki pages
|
||||
find docs/wiki -type f -name "*.md" | while IFS= read -r file; do
|
||||
buildwiki "$file"
|
||||
done
|
||||
|
||||
# Make options
|
||||
cd $out
|
||||
pandoc \
|
||||
--standalone \
|
||||
--metadata title="Nixarr - Option Documentation" \
|
||||
--metadata date="$(date -u '+%Y-%m-%d - %H:%M:%S %Z')" \
|
||||
--highlight-style docs/pandoc/gruvbox.theme \
|
||||
--template docs/pandoc/template.html \
|
||||
--css docs/pandoc/style.css \
|
||||
--lua-filter docs/pandoc/lua/indent-code-blocks.lua \
|
||||
--lua-filter docs/pandoc/lua/anchor-links.lua \
|
||||
--lua-filter docs/pandoc/lua/code-default-to-nix.lua \
|
||||
--lua-filter docs/pandoc/lua/remove-utils.lua \
|
||||
--lua-filter docs/pandoc/lua/headers-lvl2-to-lvl3.lua \
|
||||
--lua-filter docs/pandoc/lua/remove-declared-by.lua \
|
||||
--lua-filter docs/pandoc/lua/inline-to-fenced-nix.lua \
|
||||
--lua-filter docs/pandoc/lua/remove-module-args.lua \
|
||||
-V lang=en \
|
||||
-V --mathjax \
|
||||
-f markdown+smart \
|
||||
-o $out/options.html \
|
||||
"$tmpdir"/nixos-options.md
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user