blob: 7f394b0326527fcadf3d02b3af592ce13366f69e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
Who this is for:
Danilo is a developer and blogger running a bilingual (IT/EN) Hugo site at danix.xyz. He maintains a PyQt6 desktop app called my-publisher that centralizes his blog publishing workflow, and is continuing to extend it post-v1.4.
What we covered:
npm build integration was planned and implemented this session. The blog repo uses Tailwind CSS and npm run build compiles main.css to main.min.css. A new NpmWorker (workers/npm_worker.py) was created following the existing HugoWorker pattern: QObject + QProcess, emits log_line(str) and finished(bool). HugoPanel (ui/hugo_panel.py) was updated to sequence npm run build before starting hugo server when Avvia is clicked, and a new "Build CSS" button was added to allow manual Tailwind rebuilds while the server is already running. Button states are managed across four states: idle, building, running, rebuilding. All 34 tests pass. Changes were committed, pushed to master, and tagged v1.5.
What was confirmed:
NpmWorker follows the exact same QObject+QProcess pattern as HugoWorker. Sequential order was chosen: build completes before hugo starts. If build fails before hugo was ever started, the UI returns to idle state and Avvia is re-enabled. The blog repo package.json lives at the same path as config.blog_repo, so no new config fields were needed. Closing the app while hugo is running triggers stop_server() via closeEvent in main_window.py, which calls terminate() + waitForFinished(3000) on the QProcess. v1.5 is live on origin/master.
Still in progress:
Nothing was left open in this session.
Next steps:
Remaining TODO items include: (1) transart backend availability check using OLLAMA_HOST — validate before translation starts or disable the translate button with a popup; (2) font size spinner in SetupDialog — add QSpinBox, save via Config.save(), re-apply with app.setFont(); (3) article editor language flag in the sidebar; (4) manage static pages in addition to articles.
|