Untrack wiki files
parent
8ce25ec22d
commit
5fd5686fd4
|
@ -1,34 +0,0 @@
|
||||||
NOTES := $(wildcard *.md)
|
|
||||||
AUXFILES := ./img/
|
|
||||||
|
|
||||||
target=wiki
|
|
||||||
exports=$(NOTES:.md=.html)
|
|
||||||
|
|
||||||
WIKI_DIR=/home/h/.wiki
|
|
||||||
|
|
||||||
%.html : %.md
|
|
||||||
pandoc \
|
|
||||||
-f markdown+latex_macros-yaml_metadata_block+abbreviations+emoji+pipe_tables \
|
|
||||||
-t html5 \
|
|
||||||
-c pandoc.css \
|
|
||||||
--citeproc \
|
|
||||||
--metadata-file=meta.yaml \
|
|
||||||
--template=$(WIKI_DIR)/template \
|
|
||||||
--bibliography $(WIKI_DIR)/references.bib \
|
|
||||||
--resource-path=$(WIKI_DIR)/img/ \
|
|
||||||
--lua-filter=$(WIKI_DIR)/filters/html-links.lua \
|
|
||||||
--lua-filter=$(WIKI_DIR)/filters/tikz.lua \
|
|
||||||
--lua-filter=$(WIKI_DIR)/filters/zotero.lua \
|
|
||||||
--lua-filter=$(WIKI_DIR)/lua-filters/diagram-generator/diagram-generator.lua \
|
|
||||||
--lua-filter=$(WIKI_DIR)/lua-filters/lilypond/lilypond.lua \
|
|
||||||
--toc \
|
|
||||||
--markdown-headings=atx \
|
|
||||||
--extract-media=img \
|
|
||||||
--strip-comments \
|
|
||||||
--file-scope \
|
|
||||||
-s -o "$@" "$<"
|
|
||||||
|
|
||||||
.PHONY: all clean
|
|
||||||
|
|
||||||
all: $(exports)
|
|
||||||
clean: rm $(exports)
|
|
|
@ -1,9 +0,0 @@
|
||||||
function Link(el)
|
|
||||||
--Replace markdown extension with html extension
|
|
||||||
if string.match(el.target, '.md$') then
|
|
||||||
el.target = string.gsub(el.target, "%.md", "")
|
|
||||||
--Add html extension
|
|
||||||
el.target = el.target .. '.html'
|
|
||||||
end
|
|
||||||
return el
|
|
||||||
end
|
|
|
@ -1,63 +0,0 @@
|
||||||
local system = require 'pandoc.system'
|
|
||||||
|
|
||||||
local tikz_doc_template = [[
|
|
||||||
\documentclass{standalone}[border=0.2cm]
|
|
||||||
\usepackage{tikz}
|
|
||||||
\usetikzlibrary{automata, positioning, arrows.meta}
|
|
||||||
\begin{document}
|
|
||||||
%s
|
|
||||||
\end{document}
|
|
||||||
]]
|
|
||||||
|
|
||||||
local function tikz2image(src, filetype, outfile)
|
|
||||||
system.with_temporary_directory('tikz2image', function (tmpdir)
|
|
||||||
system.with_working_directory(tmpdir, function()
|
|
||||||
local f = io.open('tikz.tex', 'w')
|
|
||||||
f:write(tikz_doc_template:format(src))
|
|
||||||
f:close()
|
|
||||||
os.execute('pdflatex tikz.tex')
|
|
||||||
if filetype == 'pdf' then
|
|
||||||
os.rename('tikz.pdf', outfile)
|
|
||||||
else
|
|
||||||
os.execute('pdf2svg tikz.pdf ' .. outfile)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
extension_for = {
|
|
||||||
html = 'svg',
|
|
||||||
html4 = 'svg',
|
|
||||||
html5 = 'svg',
|
|
||||||
latex = 'pdf',
|
|
||||||
beamer = 'pdf' }
|
|
||||||
|
|
||||||
local function file_exists(name)
|
|
||||||
local f = io.open(name, 'r')
|
|
||||||
if f ~= nil then
|
|
||||||
io.close(f)
|
|
||||||
return true
|
|
||||||
else
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function starts_with(start, str)
|
|
||||||
return str:sub(1, #start) == start
|
|
||||||
end
|
|
||||||
|
|
||||||
function RawBlock(el)
|
|
||||||
if starts_with('\\begin{tikzpicture}', el.text) then
|
|
||||||
local filetype = extension_for[FORMAT] or 'svg'
|
|
||||||
local fbasename = pandoc.sha1(el.text) .. '.' .. filetype
|
|
||||||
-- Save to './img' if it does not exist yet
|
|
||||||
local fname = system.get_working_directory() .. '/img/' .. fbasename
|
|
||||||
if not file_exists(fname) then
|
|
||||||
tikz2image(el.text, filetype, fname)
|
|
||||||
end
|
|
||||||
-- Return `<img src="img/<file-name>" />` wrapped in a paragraph
|
|
||||||
return pandoc.Para({pandoc.Image({}, 'img/' .. fbasename)})
|
|
||||||
else
|
|
||||||
return el
|
|
||||||
end
|
|
||||||
end
|
|
File diff suppressed because it is too large
Load Diff
207
.wiki/pandoc.css
207
.wiki/pandoc.css
|
@ -1,207 +0,0 @@
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
src: /* font might be installed locally */ local('Inter');
|
|
||||||
/* TODO: fallback to url imports */
|
|
||||||
}
|
|
||||||
|
|
||||||
*,
|
|
||||||
*:before,
|
|
||||||
*:after {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
color: #ccc;
|
|
||||||
background: #111;
|
|
||||||
font-family: Inter, serif;
|
|
||||||
font-size: 1rem;
|
|
||||||
line-height: 1.5;
|
|
||||||
padding: 3.2rem;
|
|
||||||
margin: 0 auto;
|
|
||||||
max-width: 48rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
font-weight: normal;
|
|
||||||
margin-top: 1.6rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h4 {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin: 0.4rem 0;
|
|
||||||
max-width: 32rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
p + h1,
|
|
||||||
p + h2,
|
|
||||||
p + h3,
|
|
||||||
p + h4 {
|
|
||||||
margin-top: 1.6rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 + p,
|
|
||||||
h1 + ul,
|
|
||||||
h1 + ol {
|
|
||||||
margin-top: 1.2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 + p,
|
|
||||||
h2 + ul,
|
|
||||||
h2 + ol {
|
|
||||||
margin-top: 0.8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 + p,
|
|
||||||
h3 + ul,
|
|
||||||
h3 + ol {
|
|
||||||
margin-top: 0.4rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h4 + p,
|
|
||||||
h4 + ul,
|
|
||||||
h4 + ol {
|
|
||||||
margin-top: 0.4rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
p + p {
|
|
||||||
margin-top: 0.8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
td {
|
|
||||||
padding: 0.4rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
padding: 0.4rem 0;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul,
|
|
||||||
ol {
|
|
||||||
list-style-position: outside;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
margin-bottom: 0.8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul ul,
|
|
||||||
ol ol,
|
|
||||||
ul ol,
|
|
||||||
ol ul {
|
|
||||||
padding-left: 0.8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure > img {
|
|
||||||
filter: hue-rotate(180deg) invert(1);
|
|
||||||
mix-blend-mode: screen;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Minimal scrollbars */
|
|
||||||
::-webkit-scrollbar {
|
|
||||||
width: 0.2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar-thumb {
|
|
||||||
background: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
border: none;
|
|
||||||
border-top: 1px solid #222;
|
|
||||||
margin: 0.8rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
figcaption {
|
|
||||||
text-align: right;
|
|
||||||
font-size: 10px;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Tables */
|
|
||||||
|
|
||||||
table {
|
|
||||||
border-collapse: collapse;
|
|
||||||
min-width: 16rem;
|
|
||||||
margin: 0.8rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
th,
|
|
||||||
td {
|
|
||||||
padding: 0.8rem;
|
|
||||||
padding-left: 0.2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
border-bottom: 1px solid #222;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Footnotes */
|
|
||||||
|
|
||||||
.footnote-ref {
|
|
||||||
color: #888;
|
|
||||||
font-size: 0.8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* References and citations */
|
|
||||||
|
|
||||||
.citation {
|
|
||||||
font-size: 0.8rem;
|
|
||||||
color: #555;
|
|
||||||
transition: 0.15s cubic-bezier(0.19, 1, 0.22, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.references {
|
|
||||||
color: #555;
|
|
||||||
border-top: 1px solid #222;
|
|
||||||
padding: 1.6rem;
|
|
||||||
margin: 1.6rem 0;
|
|
||||||
transition: 0.15s cubic-bezier(0.19, 1, 0.22, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.citation:hover,
|
|
||||||
.references:hover {
|
|
||||||
color: #888;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-grid {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-grid > ul,
|
|
||||||
.list-grid > ol {
|
|
||||||
flex: 1 0 16rem;
|
|
||||||
padding: 1.6rem 0;
|
|
||||||
border-top: 1px solid #222;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
#
|
|
||||||
# Script to create a markdown file containing links to all filenames prefixed
|
|
||||||
# with "<prefix>-":
|
|
||||||
#
|
|
||||||
# Example usage: generate-md-index "book" "Books" "my-books.md"
|
|
||||||
#
|
|
||||||
# Creates a file my-books.md in the wiki with a title of "Books" This file
|
|
||||||
# contains titled links to every markdown file starting with "books-"
|
|
||||||
|
|
||||||
wiki="$HOME/.wiki"
|
|
||||||
prefix="$1"
|
|
||||||
title="$2"
|
|
||||||
filename="$3"
|
|
||||||
|
|
||||||
if [ $# == 2 ]; then
|
|
||||||
echo "$0 <prefix> <title> <filename>"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
find "$wiki"/"$prefix"-*.md -printf "%f\n" > "$wiki/scripts/$prefix/$prefix-links"
|
|
||||||
find "$wiki"/"$prefix"-*.md -exec head -n 1 {} \; > "$wiki/scripts/$prefix/$prefix-titles"
|
|
||||||
|
|
||||||
sed -i -e 's/^/(/' "$wiki/scripts/$prefix/$prefix-links" -e 's/$/)/' # Wrap links in parentheses
|
|
||||||
sed -i -e 's/^/[/' "$wiki/scripts/$prefix/$prefix-titles" -e 's/$/]/' # Wrap titles in square brackets
|
|
||||||
sed -i -e 's/^\[#\ /* \[/' "$wiki/scripts/$prefix/$prefix-titles" # Remove '#' and add list bullet
|
|
||||||
|
|
||||||
echo -e "# $title\n" > "$wiki/$filename" # Clear file and add markdown title
|
|
||||||
paste "$wiki/scripts/$prefix/$prefix-titles" "$wiki/scripts/$prefix/$prefix-links" -d "" >> "$wiki/$filename" # Concatenate & append to file
|
|
||||||
paste "$wiki/scripts/$prefix/$prefix-titles" "$wiki/scripts/$prefix/$prefix-links" -d ""
|
|
Loading…
Reference in New Issue