feat: robots.txt editor and tester screen

- golem15.seo.robots singleton (UI-SPEC C10): staging callout and the
  served file (P4); the plugin's own extension adds the editor, the
  tester and the AI bots tab, saved to the robots row with history
- field type robotstxt (E4, live lint, size meter; Decode refuses over
  500 KB) and widget golem15-seo-robotstester (E5) on robots_test, which
  tests the unsaved text and switches through grobotstxt
- saving rules that block a noindex address answers robots.blocks_noindex
This commit is contained in:
2026-10-27 11:51:41 +01:00
parent 3dd936202f
commit 51413fbda4
21 changed files with 1336 additions and 26 deletions

16
models/robots/fields.yaml Normal file
View File

@@ -0,0 +1,16 @@
# robots.txt screen (UI-SPEC C10), tab robots.txt: the staging callout and
# the served file (P4). The plugin's own form extension on the robots
# controller adds the editor (E4) and the tester (E5) between them, and the
# AI bots tab.
fields:
staging:
type: partial
path: staging
span: full
tab: golem15.seo::lang.robots.tab_file
served:
label: golem15.seo::lang.robots.served
type: partial
path: robots_served
span: full
tab: golem15.seo::lang.robots.tab_file