Ejemplo n.º 1
0
def rename_post() -> None:
    blog_post = get_blog_post_by_id()
    old_slug_path = blog_post.slug_path
    blog_post.name = input(f"Rename post \"{blog_post.name}\" to: ")
    os.rename(old_slug_path, blog_post.slug_path)
    db.commit()
    done()
Ejemplo n.º 2
0
def compile_blog_post(blog_post: BlogPost) -> None:
    print(f"Compiling blog post \"{blog_post.name}\"... ", end="", flush=True)
    if blog_post.include_in_graph:
        lenient_error("Cannot compile graph page individually!")
        return

    compile_post(blog_post)
    done()
Ejemplo n.º 3
0
def compile_all_graph_pages() -> None:
    print("Compiling graph pages...")
    definitions = create_node_definitions()
    if nodes := get_all_nodes().all():
        for node in nodes:
            print(f"Compiling graph page \"{node.name}\"... ", end="", flush=True)
            create_node_interstage(definitions, node)
            compile_post(node)
            done()
        done()
Ejemplo n.º 4
0
def save_changes() -> None:
    print("Saving changes... ", end="")

    try:
        db.commit()
        done()

    except IntegrityError:
        print("Error!\n\n" +
              "This error was caused by invalid data.\n" +
              "You probably created multiple records with non-unique names.")
Ejemplo n.º 5
0
def spellcheck() -> None:
    en_checker = SpellChecker(language="en")
    de_checker = SpellChecker(language="de")
    for post in db.query(BlogPost):
        markdown = read_file(post.markdown_path)
        for i, line in enumerate(markdown.splitlines()):
            words = [re.sub(r"[^a-zA-Z ]", "", word) for word in line.replace("-", " ").split()]
            words = [word for word in words if word]

            unknown_en_words = en_checker.unknown(words)
            unknown_de_words = de_checker.unknown(words)

            unknown_words = [word for word in unknown_en_words if word in unknown_de_words]

            for unknown_word in unknown_words:
                print(f"In \"{post.name}\" (line {i + 1}): Unknown word \"{unknown_word}\".")

    done()
Ejemplo n.º 6
0
def clean_compiler_output() -> None:
    print("Cleaning directory... ", end="")
    if os.path.exists(GENERATED_RESOURCES_PATH):
        rmtree(GENERATED_RESOURCES_PATH)
    os.makedirs(GENERATED_RESOURCES_PATH)
    done()
Ejemplo n.º 7
0
def compile_all_blog_posts() -> None:
    print("Compiling blog posts...")
    if blog_posts := get_all_blog_posts().all():
        for blog_post in blog_posts:
            compile_blog_post(blog_post)
        done()