jmiller
6cc08927e7
chore: sync ci-generic.yml from Template-Generic [skip ci]
2026-06-27 20:44:50 +00:00
jmiller
ed715b5db8
chore: sync rc-revert.yml from Template-Generic [skip ci]
2026-06-27 05:32:30 +00:00
jmiller
5d02db24d5
chore: sync pre-release.yml from Template-Generic [skip ci]
2026-06-27 00:49:26 +00:00
jmiller
e6ade9033d
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-25 19:47:01 +00:00
jmiller
76845f78f2
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-25 19:47:00 +00:00
jmiller
b68d3f6481
chore: sync ci-issue-reporter.yml from Template-Generic [skip ci]
2026-06-25 19:46:59 +00:00
jmiller
3110d7eb75
chore: sync workflow-sync-trigger.yml from Template-Generic [skip ci]
2026-06-25 17:11:55 +00:00
jmiller
e285b8e770
chore: sync version-set.yml from Template-Generic [skip ci]
2026-06-25 17:11:54 +00:00
jmiller
0997a875d6
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-25 17:11:54 +00:00
jmiller
baf67e18e6
chore: sync pre-release.yml from Template-Generic [skip ci]
2026-06-25 17:11:53 +00:00
jmiller
cf6b1286b5
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-25 17:11:53 +00:00
jmiller
c1f560704b
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-25 17:11:52 +00:00
jmiller
52edde00c9
chore: sync deploy-manual.yml from Template-Generic [skip ci]
2026-06-25 17:11:51 +00:00
jmiller
759af6b237
chore: sync cleanup.yml from Template-Generic [skip ci]
2026-06-25 17:11:51 +00:00
jmiller
e0112d770a
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-06-25 17:11:50 +00:00
jmiller
5544878cf2
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-25 17:11:49 +00:00
jmiller
bd551bffda
chore: sync version-set.yml from Template-Generic [skip ci]
2026-06-24 11:51:16 +00:00
jmiller
48eeb9631f
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-06-24 11:51:14 +00:00
gitea-actions[bot]
281e742b54
chore(version): pre-release bump to 01.04.08-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 8s
2026-06-23 18:28:10 +00:00
jmiller
2e3331170f
chore: remove security-audit.yml -- handled by MokoGitea
2026-06-23 18:27:30 +00:00
gitea-actions[bot]
8de243b181
chore(version): pre-release bump to 01.04.07-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 8s
2026-06-23 18:21:17 +00:00
gitea-actions[bot]
9793bd4031
chore(version): pre-release bump to 01.04.06-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 7s
2026-06-23 18:07:08 +00:00
jmiller
a9fc5d2cf1
chore: remove security-audit.yml -- handled by MokoGitea
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 29s
2026-06-23 18:05:38 +00:00
Jonathan Miller
f1c6eb8f6e
docs: update CHANGELOG and README for v2.0 release
...
Universal: Auto Version Bump / Version Bump (push) Successful in 25s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 26s
Add all v2.0 features: 11+ JSON-LD types, 6 preview cards, AI
generation, XML sitemap, per-platform images, SEO scoring, PHPUnit
tests, OpenAPI spec, coverage dashboard, custom schema builder.
2026-06-23 13:05:25 -05:00
jmiller
a578ac3bb3
chore: remove deploy-manual.yml -- no longer needed
Universal: Auto Version Bump / Version Bump (push) Successful in 13s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 28s
2026-06-23 18:00:09 +00:00
gitea-actions[bot]
cf783c6b83
chore(version): pre-release bump to 01.04.05-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 37s
2026-06-23 17:54:40 +00:00
gitea-actions[bot]
bc6ce4397f
chore(version): auto-bump patch 01.04.04-dev [skip ci]
2026-06-23 17:54:31 +00:00
Jonathan Miller
49d644566a
feat: add custom schema, AI generation, XML sitemap, platform images
...
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 11s
- Custom JSON-LD schema builder: per-article textarea for arbitrary
structured data with JSON validation. Closes #70
- AI-powered meta generation: Generate with AI buttons for OG title
and description, supports Claude and OpenAI APIs. Closes #71
- XML sitemap: auto-generates sitemap.xml on article save, respects
noindex directives. Closes #72
- Per-platform image resizing: Twitter 1200x600, Pinterest 1000x1500,
WhatsApp 400x400 alongside default Facebook 1200x630. Closes #74
- DB migration 01.05.00: adds custom_schema column
2026-06-23 12:54:01 -05:00
Jonathan Miller
cbebaecc22
test: add PHPUnit test suite with JsonLdBuilder unit tests
...
16 unit tests covering FAQ, HowTo, Event, Recipe, LocalBusiness,
and VideoObject schema builders plus toScriptTag XSS escaping.
Closes #75
2026-06-23 12:54:00 -05:00
Jonathan Miller
e7b0af1fca
docs: add OpenAPI 3.0 spec for REST API
...
Documents the /api/v1/mokoog/tags endpoints with full request/response
schemas, authentication, and examples. Closes #80
2026-06-23 12:53:59 -05:00
Jonathan Miller
2088b3f13f
feat: add OG coverage dashboard to tag manager
...
Shows coverage percentage, article count with/without OG tags,
and counts of missing title, description, and image fields.
Closes #73
2026-06-23 12:53:59 -05:00
Jonathan Miller
f649858fcd
feat: add SEO content scoring panel to article editor
...
JavaScript-based SEO analysis with 7 checks (OG title, description,
image, SEO title, meta description, title length, description
length). Shows pass/fail dots and overall score. Closes #68
2026-06-23 12:53:58 -05:00
jmiller
4699686f26
chore: sync deploy-manual.yml from Template-Generic [skip ci]
2026-06-23 17:51:20 +00:00
jmiller
a7fe881d84
chore: remove deprecated .mokogitea/workflows/composer-publish.yml [skip ci]
2026-06-23 17:37:50 +00:00
jmiller
ab02de34f4
chore: remove deprecated .mokogitea/workflows/update-server.yml [skip ci]
2026-06-23 17:37:47 +00:00
jmiller
64d9a97db1
chore: remove deprecated .mokogitea/workflows/deploy-manual.yml [skip ci]
2026-06-23 17:37:44 +00:00
gitea-actions[bot]
7a38025b5e
chore(version): pre-release bump to 01.04.03-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 7s
2026-06-23 17:20:08 +00:00
gitea-actions[bot]
e530ca821e
chore(version): auto-bump patch 01.04.02-dev [skip ci]
2026-06-23 17:19:49 +00:00
Jonathan Miller
872074cd5b
feat: add FAQ, HowTo, Event, and Recipe JSON-LD schema types
...
Universal: Auto Version Bump / Version Bump (push) Successful in 10s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 23s
- FAQ: auto-detects h3/h4 + paragraph patterns, outputs FAQPage (#62 )
- HowTo: auto-detects ordered lists, outputs HowTo with steps (#63 )
- Event: per-article fields (dates, venue, tickets), event_data JSON
column, outputs Event schema (#64 )
- Recipe: per-article fields (times, ingredients, nutrition),
recipe_data JSON column, outputs Recipe schema (#66 )
- DB migration 01.04.00: adds event_data and recipe_data columns
Closes #62 , closes #63 , closes #64 , closes #66
2026-06-23 12:19:37 -05:00
gitea-actions[bot]
c871b7d30d
chore(version): pre-release bump to 01.04.01-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 4s
2026-06-23 16:33:35 +00:00
gitea-actions[bot]
641eee753a
chore(version): auto-bump patch 01.03.08-dev [skip ci]
2026-06-23 16:33:26 +00:00
Jonathan Miller
44d9daf3bc
feat: add LocalBusiness JSON-LD schema type
...
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 11s
Adds configurable LocalBusiness structured data with address,
contact, geo coordinates, and opening hours. Enabled via plugin
parameters. Closes #65
2026-06-23 11:30:45 -05:00
Jonathan Miller
96eea6060f
feat: add Discord, Mastodon, and Slack preview cards to editor
...
Shows how shared links will appear on Discord (dark theme with
accent bar), Mastodon (rounded card), and Slack (compact unfurl)
alongside the existing Facebook, Twitter, and LinkedIn previews.
Closes #69
2026-06-23 11:28:37 -05:00
Jonathan Miller
aeea65423c
feat: add VideoObject JSON-LD schema for video content
...
Outputs VideoObject structured data when an article has a video URL
set, enabling Google video rich results. Closes #67
2026-06-23 11:28:37 -05:00
Jonathan Miller
b4d5b73d15
fix: code quality improvements ( #76 , #77 , #78 , #79 )
...
- Add exception logging to BatchController batch skip (#76 )
- Align form maxlength with DB schema limits (#77 )
- applySeoTags() already uses public API — no change needed (#78 )
- Add strip_tags() input sanitization on OG text fields (#79 )
2026-06-23 11:28:36 -05:00
jmiller
3ba1c3ead4
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-23 16:05:23 +00:00
jmiller
4c091805ee
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-23 16:05:22 +00:00
jmiller
0d4e7785a3
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-23 16:05:21 +00:00
jmiller
6f13a10a34
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-23 16:05:18 +00:00
gitea-actions[bot]
5f1e44e66b
chore: promote changelog [Unreleased] → [01.04.00]
2026-06-23 16:04:28 +00:00