feat: added script to convert events to PDF
This commit is contained in:
parent
86067ce426
commit
e4337e4b48
8 changed files with 556 additions and 2 deletions
102
_scripts/format_events.sh
Normal file
102
_scripts/format_events.sh
Normal file
|
@ -0,0 +1,102 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
root="$PWD"
|
||||
|
||||
folder="Events"
|
||||
folder_html="html_${folder}"
|
||||
folder_pdf="pdf_${folder}"
|
||||
|
||||
function build_html() {
|
||||
# used to match **
|
||||
shopt -s globstar
|
||||
|
||||
# cleanup the last run (if there was one)
|
||||
rm -rf "$folder_html"
|
||||
mkdir "$folder_html"
|
||||
|
||||
cd $folder
|
||||
|
||||
root_html="$PWD"
|
||||
|
||||
# loop through each year worth of data
|
||||
# the globbing is to only get ones that have a handover folder
|
||||
for year in **/; do
|
||||
# skip symlinks
|
||||
[ -L "''${year%/}" ] && continue
|
||||
|
||||
# copy in teh config for this folder
|
||||
cp "../_scripts/md_toml/_${folder}.md.toml" ./.md.toml
|
||||
|
||||
year_string=$(echo "$year" | cut -f1 -d"/")
|
||||
sed -i -e "s/AAAAAAA/$year_string/" ./.md.toml
|
||||
|
||||
# convert teh handovers
|
||||
cargo-bfom
|
||||
|
||||
# copy in teh relevent files
|
||||
cp -R _Templates/* "./${folder}_html"
|
||||
# no need to have the template in the output
|
||||
rm -f ./${folder}_html/_template.md
|
||||
rm -f ./${folder}_html/event.html
|
||||
rm -f .md.toml
|
||||
|
||||
# make the final folder
|
||||
mkdir -p "$root/$folder_html/$year_string"
|
||||
|
||||
# copy everything to teh final folder
|
||||
cp -R ./${folder}_html/* "$root/$folder_html/$year_string"
|
||||
|
||||
# remove teh temp folder
|
||||
rm -rf "./${folder}_html"
|
||||
|
||||
# return to root
|
||||
cd "$root_html"
|
||||
done
|
||||
|
||||
# undo the globbing
|
||||
shopt -u globstar
|
||||
|
||||
# back to root
|
||||
cd $root
|
||||
}
|
||||
|
||||
|
||||
function build_pdf() {
|
||||
# used to match **
|
||||
shopt -s globstar
|
||||
|
||||
# wipe and reset past runs
|
||||
rm -rf "$folder_pdf"
|
||||
mkdir "$folder_pdf"
|
||||
|
||||
cd "$folder_html"
|
||||
|
||||
for file in **/*.html; do
|
||||
# only deal with files
|
||||
if [ -f "$file" ]; then
|
||||
|
||||
# .html => .pdf
|
||||
output="../$folder_pdf/${file/.html/".pdf"}"
|
||||
|
||||
echo $output
|
||||
|
||||
# have someplace for it to go
|
||||
mkdir -p $(dirname $output)
|
||||
|
||||
wkhtmltopdf -q --enable-local-file-access --no-stop-slow-scripts "$file" "$output" 2>>../errors.log &
|
||||
fi
|
||||
done
|
||||
|
||||
shopt -u globstar
|
||||
cd $root
|
||||
|
||||
# wait for background tasks to complete
|
||||
wait $(jobs -p)
|
||||
}
|
||||
|
||||
if [[ $1 == "html" ]]; then
|
||||
build_html
|
||||
else
|
||||
build_html
|
||||
build_pdf
|
||||
fi
|
46
_scripts/md_toml/_Events.md.toml
Normal file
46
_scripts/md_toml/_Events.md.toml
Normal file
|
@ -0,0 +1,46 @@
|
|||
|
||||
|
||||
# How many spaces of indentation do you want?
|
||||
# Defaults to 2
|
||||
# Optional
|
||||
indentation = 2
|
||||
|
||||
# Optional
|
||||
src = "./AAAAAAA"
|
||||
|
||||
# Optional
|
||||
dest= "./Events_html"
|
||||
|
||||
# html blocks you dont want to include in teh finished page
|
||||
# Optional
|
||||
html_void = []
|
||||
|
||||
[template]
|
||||
# Templates are hjtml files that teh generated markdown is insereted into.
|
||||
# There are several options on how this is carried out.
|
||||
|
||||
# enable templating
|
||||
# Optional
|
||||
enable = true
|
||||
# Set a base template
|
||||
# Optional
|
||||
general = "./_Templates/event.html"
|
||||
|
||||
# Priority of the _templates to use, first one to match a markdown file is used.
|
||||
# An Empty array below is also valid
|
||||
|
||||
# general: use the general file specified above, if it exists.
|
||||
|
||||
# ajacent: check if there is a template file with the same name as the markdown file ajacent to the markdown file.
|
||||
# ./src/exasmple.md
|
||||
# ./src/example.html
|
||||
|
||||
# folder: a html file with the same name of the folder that the md resides in.
|
||||
# ./src/blog/blog.html
|
||||
# ./src/blog/post1.md
|
||||
|
||||
# default: use an inbuilt html5 template
|
||||
|
||||
|
||||
# Optional
|
||||
order = ["ajacent", "general", "folder", "default"]
|
Loading…
Add table
Add a link
Reference in a new issue