| 15-journal-plugin |
02 |
plugins |
| journal |
| cabana |
| mlmarkdown |
| goldmark |
| bonfire |
| admin |
| import-export |
|
| phase |
provides |
| 15-01 |
sm-journal-plugin ID golem15.journal Requires golem15.translate, squashed golem15_journal_* schema, host gitlink + TestBootUserTranslateJournal |
|
|
| Posts/Categories/Tags YAML admin with mltext/mlmarkdown and FormatHTML on save |
| HasPermissions/HasNavigation/HasSettings; journal-icon.svg embedded in AdminFS |
| journal:export-posts and journal:import-posts plus Posts toolbar access_import_export |
|
|
| tokens |
tasks |
commits |
| 22500 |
3 |
6 |
|
8d7979f87e |
4ff98f7de85a6404987373ad5630b17fc5542ade |
d09583ef2825e5fa73b7d5e4cca953834a018c6e |
| added |
patterns |
| github.com/yuin/goldmark v1.8.6 (plugin FormatHTML) |
|
| Admin YAML embed file-by-file; NavigationItem has no IconSvg so journal-icon.svg is go:embed in AdminFS |
| preset is valid only on type: text; post/category mltext slugs omit preset |
| PHP journal:export-posts/import-posts are JSON-per-slug files, not Winter CSV; toolbar HasAdminActions names are not create/delete |
| Host gitlink is a nested clone; bump via file:// fetch with protocol.file.allow=always |
|
|
| created |
modified |
| ../sm-journal-plugin/admin.go |
| ../sm-journal-plugin/admin_permissions.go |
| ../sm-journal-plugin/admin_navigation.go |
| ../sm-journal-plugin/assets/images/journal-icon.svg |
| ../sm-journal-plugin/classes/format_html.go |
| ../sm-journal-plugin/controllers/posts.go |
| ../sm-journal-plugin/controllers/categories.go |
| ../sm-journal-plugin/controllers/tags.go |
| ../sm-journal-plugin/console/export_posts.go |
| ../sm-journal-plugin/console/import_posts.go |
| ../sm-journal-plugin/console/columns.go |
| ../sm-journal-plugin/posts_admin_smoke_test.go |
|
| ../sm-journal-plugin/plugin.go |
| ../sm-journal-plugin/models/post.go |
| ../sm-journal-plugin/models/post/fields.yaml |
| ../sm-journal-plugin/README.md |
| ../sm-grzybyfunkcjonalne-app/boot_test.go |
| ../sm-grzybyfunkcjonalne-app/plugins/golem15/journal |
|
|
| D-11 is a no-op: post content is mlmarkdown; cabana.RenderMarkdown is not edited; FormatHTML lives in the plugin with goldmark Footnote+Table+WithAttribute plus rejectUnsafe |
| user_id is WritableForeignKey; FormBeforeCreate stamps it when empty; without access_other_posts List/FormExtendQuery restrict to principal user_id (fail-closed) |
| publish without access_publish returns ForbiddenError; toolbar import uses the same guard |
| CLI is JSON files per slug (--path, --dry-run, --force) matching PHP ExportPosts/ImportPosts; PostExport/PostImport column names are the shared field list, not a CSV framework |
| Toolbar extra buttons exportPosts/importPosts require golem15.journal.access_import_export; names are not create or delete |
|
| Compiled journal admin: HasAdminControllers + file-by-file YAML embed + SVG in AdminFS |
| FilterCategories expands NestedTree children via nest_left/nest_right; switch published uses column: published |
| HasCommands registers PHP command names; HasAdminActions toolbar reuses console.ExportToDir/ImportFromDir |
|
| D-04 |
| D-06 |
| D-08 |
| D-10 |
| D-11 |
| D-13 |
|
| id |
description |
requirement |
verification |
human_judgment |
| D1 |
Posts admin YAML with mltext/mlmarkdown, FormatHTML on save, nav SVG embed, access_posts and author/publish guards |
D-04 |
| kind |
ref |
status |
| integration |
../sm-journal-plugin#TestPostsFormCompiles |
pass |
|
| kind |
ref |
status |
| integration |
../sm-journal-plugin#TestPostsAdminCreateSmoke |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
| D2 |
Categories, Tags, and settings singleton registered; host cabana.Activate sees golem15.journal.posts|categories|tags and settings code journal |
D-04 |
| kind |
ref |
status |
| integration |
../sm-grzybyfunkcjonalne-app#TestBootUserTranslateJournal |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
| D3 |
journal:export-posts and journal:import-posts registered; Posts toolbar exportPosts/importPosts require golem15.journal.access_import_export |
D-13 |
| kind |
ref |
status |
| unit |
../sm-journal-plugin#TestJournalCommands |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
| D4 |
Post content YAML type is mlmarkdown; title/slug/excerpt are mltext; cabana markdown types were not re-added |
D-10 |
| kind |
ref |
status |
| other |
../sm-journal-plugin/models/post/fields.yaml |
pass |
|
|
false |
|
| id |
description |
requirement |
verification |
human_judgment |
| D5 |
No Winter.Pages menu types and no dashboard widget in plugin.go or admin_navigation.go; README stays application-neutral |
D-13 |
| kind |
ref |
status |
| other |
../sm-journal-plugin/plugin.go |
pass |
|
|
false |
|
|
75min |
2026-10-06 |
complete |