Skip to content
Snippets Groups Projects
Select Git revision
  • ba207aa260ff18839d27536810a53cf33b71b7e6
  • master default
  • ls2021
  • ls1920
4 results

abstraktni-seznamy.py

Blame
  • 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))