Merge branch 'convert'
This commit is contained in:
commit
69bfb3d395
4 changed files with 136 additions and 34 deletions
60
inc/to-html
Normal file
60
inc/to-html
Normal file
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# This file is responsible for generating an html structure of documents
|
||||
# All md files will be converted to html
|
||||
# Everything else will be copied exactly
|
||||
|
||||
# The table of contents will be a nested ul structure
|
||||
# The top level will be the tags, under each tag there will be a list of documents that are tagged with that tag
|
||||
# This will result in doucuments being listed multiple times, once for each tag they are in
|
||||
generate-html-toc(){
|
||||
echo "<nav><ul>"
|
||||
# Loop through each tag
|
||||
listTags --noheader | while read item; do
|
||||
local tag="$(echo "$item" | awk -F ' +' '{print $1}')"
|
||||
local count="$(echo "$item" | awk -F ' +' '{print $2}')"
|
||||
echo "<li>"
|
||||
echo "$tag ($count)"
|
||||
echo "<ul>"
|
||||
echo "SELECT items.filename,items.title
|
||||
FROM items LEFT JOIN links ON items.id = links.itemID
|
||||
LEFT JOIN tags ON links.tagID = tags.id
|
||||
WHERE tags.name = '$(safeSQL "$tag")'
|
||||
GROUP BY items.id;" |
|
||||
sqlite3 "${sqliteFile}" |
|
||||
awk -F '|' '{sub(/\.md/,".html",$1);print "<li><a href=\"" $1 "\">" $2 "</a></li>"}'
|
||||
echo "</ul>"
|
||||
echo "</li>"
|
||||
done
|
||||
echo "</ul></nav>"
|
||||
}
|
||||
|
||||
to-html(){
|
||||
local destination="$1"
|
||||
local preTemplate="/usr/local/share/kb/templates/main.html"
|
||||
local tocFile="$(mktemp)"
|
||||
local templateFile="$(mktemp)"
|
||||
generate-html-toc > "$tocFile"
|
||||
|
||||
# If there is a template in the users .local/share directory, use that
|
||||
[ -e "${XDG_CONFIG_HOME:-$HOME/.config}/kb/templates/main.html" ] &&
|
||||
preTemplate="${XDG_CONFIG_HOME:-$HOME/.config}/kb/templates/main.html"
|
||||
|
||||
# If there is a template in the data directory, use that
|
||||
[ -e "${dataDir}templates/main.html" ] &&
|
||||
preTemplate="${dataDir}templates/main.html"
|
||||
|
||||
|
||||
sed "s#\#TOC\##\${ $tocFile() }#" "$preTemplate" > "$templateFile"
|
||||
|
||||
|
||||
find "$dataDir" -name "*.md" | while read file; do
|
||||
local newFile="${file##*/}"
|
||||
newFile="${newFile/.md/.html}"
|
||||
sed -E 's/\.md( *)\)/.html\1\)/' "$file" |
|
||||
pandoc -f markdown -t html --template "$templateFile" > "$destination/$newFile"
|
||||
done
|
||||
|
||||
rm "$tocFile" "$templateFile"
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue