Commit Graph

337 Commits

Author SHA1 Message Date
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
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
gitea-actions[bot] e939e90733 chore(version): pre-release bump to 01.03.07-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 7s
2026-06-23 16:03:42 +00:00
gitea-actions[bot] d4c22ebdbf chore(version): auto-bump patch 01.03.06-dev [skip ci] 2026-06-23 16:03:32 +00:00
Jonathan Miller 5724a1545e Merge remote-tracking branch 'origin/dev' into dev
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Blocked by required conditions
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Blocked by required conditions
Joomla: Extension CI / PHPStan Analysis (pull_request) Blocked by required conditions
Joomla: Extension CI / Build RC Pre-Release (pull_request) Blocked by required conditions
Universal: PR Check / Build RC Package (pull_request) Blocked by required conditions
Universal: PR Check / Report Issues (pull_request) Blocked by required conditions
Generic: Repo Health / Scripts governance (pull_request) Blocked by required conditions
Generic: Repo Health / Repository health (pull_request) Blocked by required conditions
Generic: Repo Health / Report Issues (pull_request) Blocked by required conditions
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 3s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 9s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 9s
Universal: Auto Version Bump / Version Bump (push) Successful in 11s
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 23s
2026-06-23 11:02:45 -05:00
Jonathan Miller a04dbfd732 chore: normalize workflow CRLF to LF 2026-06-23 10:59:35 -05:00
Jonathan Miller bc06710fdd Merge remote-tracking branch 'origin/main' into dev
# Conflicts:
#	CHANGELOG.md
#	README.md
#	source/packages/com_mokoog/mokoog.xml
#	source/packages/plg_content_mokoog/mokoog.xml
#	source/packages/plg_system_mokoog/mokoog.xml
#	source/packages/plg_webservices_mokoog/mokoog.xml
#	source/pkg_mokoog.xml
2026-06-23 10:55:38 -05:00
gitea-actions[bot] 07b296db61 chore(version): pre-release bump to 01.03.05-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 39s
2026-06-23 15:47:35 +00:00
gitea-actions[bot] 6a0ee812d8 chore(version): auto-bump patch 01.03.04-dev [skip ci] 2026-06-23 15:47:22 +00:00
Jonathan Miller fcfa6838e5 fix: address PR #82 review findings
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Blocked by required conditions
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Blocked by required conditions
Joomla: Extension CI / PHPStan Analysis (pull_request) Blocked by required conditions
Joomla: Extension CI / Build RC Pre-Release (pull_request) Blocked by required conditions
Universal: PR Check / Build RC Package (pull_request) Blocked by required conditions
Universal: PR Check / Report Issues (pull_request) Blocked by required conditions
Generic: Repo Health / Scripts governance (pull_request) Blocked by required conditions
Generic: Repo Health / Repository health (pull_request) Blocked by required conditions
Generic: Repo Health / Report Issues (pull_request) Blocked by required conditions
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 14s
Universal: Auto Version Bump / Version Bump (push) Successful in 16s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 15s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 54s
- Only emit og:video:secure_url for HTTPS URLs (review #1)
- Only emit og:video:width/height for direct files, not embeds (review #2)
- Add server-side http/https scheme validation on og_video save (review #3)
- Consolidate duplicate com_mokoshop product blocks into one (review #4)
- Fix stale com_virtuemart reference in SQL comment (review #5)
- Use COM_MOKOOG_* language keys in tag.xml instead of plugin keys (review #6)
2026-06-23 10:46:58 -05:00
gitea-actions[bot] 908e1d3e1b chore(version): pre-release bump to 01.03.03-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 29s
2026-06-23 15:37:27 +00:00
gitea-actions[bot] 9539bb44c2 chore(version): auto-bump patch 01.03.02-dev [skip ci] 2026-06-23 15:37:17 +00:00
Jonathan Miller 5b29690d34 feat: add og:video support and Pinterest rich pin tags
Universal: Auto Version Bump / Version Bump (push) Successful in 16s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
- Add og:video meta tags with per-article video URL field and auto
  MIME type detection for YouTube/Vimeo/direct files. Includes DB
  migration for og_video column. (closes #59)
- Add Pinterest rich pin tags: article:tag from Joomla content tags
  on article pages, product:availability from MokoSuiteShop stock
  quantity on product pages. (closes #60)
2026-06-23 10:36:04 -05:00
Jonathan Miller 881bb0a2ae feat: add fediverse:creator tag, character counters, LinkedIn preview
- Add fediverse:creator meta tag for Mastodon/Fediverse author
  attribution — first extension on any CMS to support this (closes #57)
- Add live character count indicators with green/yellow/red color
  coding on OG title, description, SEO title, and meta description
  fields in the article/menu editor (closes #58)
- Add LinkedIn social preview card alongside existing Facebook and
  Twitter/X previews in the editor (closes #61)
2026-06-23 10:36:04 -05:00
Jonathan Miller e9b34522d3 chore: remove Makefile
Build automation handled by CI workflows. Closes #81
2026-06-23 10:36:03 -05:00
jmiller 9aeb588937 chore: sync auto-release.yml from Template-Generic [skip ci] 2026-06-22 00:35:27 +00:00
jmiller 9cdc7915a3 chore: sync repo-health.yml from Template-Generic [skip ci] 2026-06-21 22:55:46 +00:00
jmiller 72ffaded49 chore: sync pr-check.yml from Template-Generic [skip ci] 2026-06-21 22:55:45 +00:00
gitea-actions[bot] 7d1a939b6a chore(version): pre-release bump to 01.03.01-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 5s
2026-06-21 22:55:44 +00:00
jmiller 23f6fe12a0 chore: sync issue-branch.yml from Template-Generic [skip ci] 2026-06-21 22:55:44 +00:00
jmiller 4c1d630673 chore: sync auto-bump.yml from Template-Generic [skip ci] 2026-06-21 22:55:42 +00:00
gitea-actions[bot] 6a3f9c126e chore(version): auto-bump patch 01.02.04-dev [skip ci] 2026-06-21 22:55:32 +00:00
Jonathan Miller ddb378a042 chore: remove automation/ directory
Universal: Auto Version Bump / Version Bump (push) Successful in 10s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 14s
2026-06-21 17:54:50 -05:00
gitea-actions[bot] 560c7458c6 chore: promote changelog [Unreleased] → [01.03.00] 2026-06-21 22:28:20 +00:00
gitea-actions[bot] e39b617464 chore(release): build 01.03.00 [skip ci]
Publish to Composer / Publish Package (release) Successful in 38s
2026-06-21 22:28:14 +00:00
gitea-actions[bot] 20b62b95d8 chore(version): pre-release bump to 01.02.03-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 6s
2026-06-21 22:27:35 +00:00
gitea-actions[bot] 437a23cec2 chore(version): auto-bump patch 01.02.02-dev [skip ci] 2026-06-21 22:27:19 +00:00
jmiller dac22fdcc4 fix: restore updateservers to package manifest (#55) 2026-06-21 22:25:04 +00:00
Jonathan Miller 68eab6fdb2 Merge remote-tracking branch 'origin/main' into dev
Universal: PR Check / Branch Policy (pull_request) Successful in 3s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 10s
Universal: PR Check / Validate PR (pull_request) Failing after 11s
Universal: PR Check / Secret Scan (pull_request) Successful in 15s
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 11s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 1m48s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 1m43s
Universal: Auto Version Bump / Version Bump (push) Successful in 15s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 19s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 24s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
# Conflicts:
#	.mokogitea/workflows/issue-branch.yml
#	CHANGELOG.md
#	README.md
#	source/packages/com_mokoog/mokoog.xml
#	source/packages/plg_content_mokoog/mokoog.xml
#	source/packages/plg_system_mokoog/mokoog.xml
#	source/packages/plg_webservices_mokoog/mokoog.xml
#	source/pkg_mokoog.xml
2026-06-21 17:24:32 -05:00
gitea-actions[bot] b033cfe4e2 chore(version): pre-release bump to 01.02.01-dev [skip ci]
Publish to Composer / Publish Package (release) Successful in 4s
2026-06-21 22:22:24 +00:00
gitea-actions[bot] e86bb5906b chore(version): auto-bump patch 01.01.02-dev [skip ci] 2026-06-21 22:22:14 +00:00
jmiller b310ddfab2 fix: restore updateservers to package manifest for Joomla update site registration
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 14s
2026-06-21 22:21:48 +00:00
jmiller fa12fa5937 chore: sync security-audit.yml from Template-Generic [skip ci] 2026-06-21 22:03:15 +00:00
jmiller b52867614c chore: sync repo-health.yml from Template-Generic [skip ci] 2026-06-21 22:03:14 +00:00
jmiller b140bc9000 chore: sync pr-check.yml from Template-Generic [skip ci] 2026-06-21 22:03:13 +00:00