Select Git revision
abstraktni-seznamy.py
-
Martin Mareš authoredMartin Mareš authored
main.py 3.16 KiB
#!/usr/bin/env python3
import os, sys
import shutil
import argparse
import pathlib
import jk_web.main
import tempfile
from . import formatitko_commands as fc
formatitko_commands = {k:v for k, v in fc.formatitko_commands.items()}
formatitko_commands["head"] = lambda element, context, processor: []
formatitko_commands["tail"] = lambda element, context, processor: []
formatitko_commands["table_of_contents"] = lambda element, context, processor: []
d = pathlib.Path("/".join(__file__.split("/")[:-1]))
web = jk_web.main.web
copy_file = web.copy_file
Page = web.Page
LangPage = web.LangPage
CZ = jk_web.main.CZ
relative_link = web.relative_link
S = web.S
timer = web.timer
html = web.html
base_page = jk_web.main.base_page
with web.Module("bakalarka") as module_bakalarka, web.ctx.add_out_path_prefix(jk_web.main.bakalarka_prefix):
@LangPage(lambda: Page("index.html", short_title="Bakalářská práce", higher_page=jk_web.main.web_projects), CZ)
def web_index():
b = html.Builder()
b.h2("Bakalářská práce: Binární paint shop problém")
with b.ul():
b.li.a(href=relative_link(web_prace))("Práce (web)")
b.li.a(href=relative_link(bakalarka_pdf))("Práce (pdf)")
b.li.a(href=relative_link(web_posudek_vedouci))("Posudek vedoucího")
b.li.a(href=relative_link(web_posudek_oponent))("Posudek oponenta")
b.li.a(href=relative_link(web_prezentace))("Prezentace na obhajobě")
return base_page(b.root)
assert str(web_index) == jk_web.main.web_bakalarka, (str(web_index), jk_web.main.web_bakalarka)
with web.Module("bakalarka-prace"):
bakalarka_pdf = web.ctx.out_path_prefix + "prace.pdf"
web_prace = web.Mpage(d,
"prace",
source="index.md",
bibliography=d/"sample.bib",
page_builder=base_page,
source_code_module=(lambda: ...).__module__,
commands=formatitko_commands,
custom_pdf=bakalarka_pdf,
)
@web.add_job(web.PRIORITY_WRITE)
def gen_bakalarka_pdf():
tmpdirname = tempfile.mkdtemp(dir=web.build_dir)
from .bakalarka import main
main(pathlib.Path(tmpdirname), False)
print(web.copy_file(None, bakalarka_pdf, tmpdirname+"/bakalarka.pdf", add_out_path_prefix=False))
web_prace.higher_page = web_index
web_posudek_vedouci = web.copy_file(d, "posudek_vedouci.pdf")
web_posudek_oponent = web.copy_file(d, "posudek_oponent.pdf")
with web.Module("bakalarka-prezentace"):
web_prezentace = web.ctx.out_path_prefix + "prezentace.pdf"
@web.add_job(web.PRIORITY_GENERATE)
def gen_prezentace():
import subprocess
tmpdirname = tempfile.mkdtemp(dir=web.build_dir)
shutil.copytree(d/"prezentace", tmpdirname+"/prezentace")
subprocess.run(["./build.sh"], cwd=tmpdirname+"/prezentace", check=True)
print(web.copy_file(None, web_prezentace, tmpdirname+"/prezentace/main.pdf", add_out_path_prefix=False))