diff options
| author | Danilo M. <danix@danix.xyz> | 2026-05-03 13:13:46 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-05-03 13:13:46 +0200 |
| commit | e28ebf9f0d2aaa9a6819f5a09cac05953080c1e9 (patch) | |
| tree | b367bfadbb7395dadeffb550854ce205c58283b6 /HANDOFF.md | |
| parent | fa471fc0de8708a1d3fa99cac6e309adb53303fc (diff) | |
| download | publisher-e28ebf9f0d2aaa9a6819f5a09cac05953080c1e9.tar.gz publisher-e28ebf9f0d2aaa9a6819f5a09cac05953080c1e9.zip | |
Chore: updated TODO and HANDOFF.
Diffstat (limited to 'HANDOFF.md')
| -rw-r--r-- | HANDOFF.md | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -1,15 +1,17 @@ Who this is for: - Danilo is a developer and blogger running a bilingual (IT/EN) Hugo site at danix.xyz. He built a PyQt6 desktop GUI called my-publisher to centralize his blog publishing workflow and is now maintaining and extending it post-launch. + 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 currently extending it post-v1.0 launch. What we covered: - We resumed the project in a post-implementation maintenance session. We generated a TODO.md file tracking three known gaps from the initial build (TaxonomyView Categories tab, MissingTranslationView Traduci button, multi-token tag autocomplete) and committed it to git. We added app-wide font size support by adding a font_size field (default 10) to the Config dataclass, saving/loading it via config.toml, and applying it at startup via app.setFont() in main.py. We added a TODO item for a font size spinner in the UI. We created an assets/ directory with the - blogilo.svg icon (copied from the Breeze KDE icon theme) and a my-publisher.desktop file with Exec and Icon paths pointing to /opt/my-publisher for system-wide installation. The user also manually added two more TODO items: draft article visual hints and transart backend availability validation. We pushed all commits and tagged the release as v1.0. + Two features were implemented this session. First, draft article visual hints: added a draft property to the Article dataclass, amber [DRAFT] prefix in article list items, and a DRAFT badge in the article detail header. Second, article list metadata display: added four properties to Article (meta_type, meta_tags, meta_categories, meta_date), then updated the article list to show a two-line row per article with slug+badge on line 1 and type/date/tags/categories on line 2. The two-line rendering required three iterations to fix: setWordWrap failed, setTextElideMode failed, and the final working solution was a custom QStyledItemDelegate that draws both lines directly onto the canvas bypassing Qt elision entirely. The app was tagged v1.1 and pushed to origin. What was confirmed: - All 22 tests pass. The font_size field defaults to 10 and is read from config.toml if present. The desktop file uses /opt/my-publisher paths — the repo at /home/danix/Programming/GIT/my-publisher is the development copy, and the installed copy will live at /opt/my-publisher. Tag v1.0 is pushed to origin (danix_git:publisher). TODO.md now tracks five items total: TaxonomyView Categories tab, MissingTranslationView Traduci button, multi-token tag autocomplete, font size spinner in UI, draft article visual hints, and transart backend availability validation. + All 30 tests pass. The delegate approach (ArticleItemDelegate in ui/articles_view.py) is the correct solution for multi-line QListWidget items in PyQt6. Line 2 metadata is stored in Qt.ItemDataRole.UserRole+1 and drawn in dimmed #888 color. Draft items show amber #f59e0b. + Missing-translation items show red #ff6b6b. The blog's TOML frontmatter uses lowercase keys: type, date, tags, categories. Tag v1.1 is pushed to danix_git:publisher. Still in progress: - None of the TODO items have been implemented yet. The font size is functional but only editable via config.toml — no UI spinner exists yet. The app has been physically copied to /opt/my-publisher. + Nothing was left open in this session. The remaining TODO items from TODO.md are: TaxonomyView Categories tab, MissingTranslationView Traduci button, font size spinner in SetupDialog, multi-token tag autocomplete in FrontmatterEditor, transart backend availability validation, + taxonomy tag rename propagation to articles, and Ctrl+Q keyboard shortcut. Next steps: - Pick any TODO item to implement next. Suggested order by impact: (1) draft article visual hints — visible quality-of-life improvement for daily use; (2) font size spinner in SetupDialog or a Settings dialog; (3) transart backend availability check using OLLAMA_HOST; (4) TaxonomyView Categories tab; (5) MissingTranslationView Traduci button; (6) multi-token tag autocomplete.
\ No newline at end of file + Pick the next TODO item to implement. Suggested order by impact: (1) Ctrl+Q keyboard shortcut — trivial, one line in main_window.py; (2) font size spinner in SetupDialog (ui/setup_dialog.py) — moderate, saves via Config.save() and re-applies with app.setFont(); (3) transart backend + availability check using OLLAMA_HOST; (4) MissingTranslationView Traduci button — wire translate_requested signal per row; (5) TaxonomyView Categories tab; (6) taxonomy tag rename propagation; (7) multi-token tag autocomplete in ui/frontmatter_editor.py.
\ No newline at end of file |
