Pi66

merodi
A markdown-based static site generator.
git clone https://git.pi66.xyz/merodi

← back to log

fix: improve temporary progress output

author: pi66
date: 2026-07-21 16:14
hash: fbd2630f861200dcfb16b439d7064163fd201581

Diffstat:

M

src/build.py
2 ++++-----

M

src/log.py
7 +++++++++++++-----------------
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
diff --git a/src/build.py b/src/build.py
index 9dacc87..87afdef 100644
--- a/src/build.py
+++ b/src/build.py
@@ -185,8 +185,8 @@ def compile_file(md_file, html_dest, config=None, plugins=None, force: bool = Fa
             return None

     md_content = read_md_content(md_file)
-    info(f"Building {GRAY(md_file)}...")
     result = compile_page(md_content, html_dest, config, plugins)
+    info(f"Building {GRAY(md_file)}...")
     hook_call("on_page_built", md_file, html_dest)
     return result

diff --git a/src/log.py b/src/log.py
index 1f93128..c12d3f5 100644
--- a/src/log.py
+++ b/src/log.py
@@ -1,7 +1,7 @@
 from . import settings

-def info(message: str, title="INFO"):
-    print(f"{BLUE(f'[{title}]:')} {message}")
+def info(message: str, title="INFO", **kwarg):
+    print(f"{BLUE(f'[{title}]:')} {message}", **kwarg, flush=True)

 def warn(message: str):
     print(f"{YELLOW('[WARN]:')} {message}")
@@ -13,9 +13,8 @@ def die(err: str, status_code: int = 1, exit_from_code=True):
 def progress(iterable, label="Progress"):
     total = len(iterable)
     for i, item in enumerate(iterable, 1):
-        print(f"\r\033[K{BLUE(f'[{label}]:')} [{i}/{total}]", end="", flush=True)
+        print(f"{BLUE(f'[{label}]')}: [{i}/{total}]", end="\r", flush=True)
         yield item
-    print()

 def YELLOW(text):
     if settings.NO_COLOR: return text