f1c6eb8f6e
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.
5.0 KiB
5.0 KiB
Changelog
All notable changes to MokoSuiteOpenGraph will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Security
- Fix JSON-LD XSS vulnerability via
</script>injection in content data (#34) - Add ACL permission checks to Batch and ImportExport controllers (#37)
- Add CSV import file type, MIME type, size, and content_type validation (#35)
- Fix multilingual data corruption in content plugin load/save (#41)
Added
- Fediverse/Mastodon
fediverse:creatormeta tag — first extension on any CMS to support this (#57) - Live character count indicators on OG title, OG description, SEO title, meta description fields with color-coded warnings (#58)
- LinkedIn social preview card in article/menu editor alongside Facebook and Twitter/X previews (#61)
og:videometa tag support with per-article video URL field, auto-detect MIME type for YouTube/Vimeo/direct files (#59)- Pinterest rich pin tags:
article:tagfrom Joomla content tags,product:availabilityfrom MokoSuiteShop stock (#60) - FAQ JSON-LD schema with auto-detection from article h3/h4 headings (#62)
- HowTo JSON-LD schema with auto-detection from ordered lists (#63)
- Event JSON-LD schema with per-article event fields (dates, venue, tickets) (#64)
- LocalBusiness JSON-LD schema with global plugin configuration (#65)
- Recipe JSON-LD schema with per-article fields (times, ingredients, nutrition) (#66)
- VideoObject JSON-LD schema for articles with video URLs (#67)
- SEO content scoring panel with 7 checks and pass/fail indicators (#68)
- Discord, Mastodon, and Slack social preview cards in editor (#69)
- Custom JSON-LD schema builder — per-article textarea for any schema.org type (#70)
- AI-powered meta tag generation with Claude and OpenAI API support (#71)
- XML sitemap generation on article save, respects noindex directives (#72)
- OG coverage dashboard in tag manager with coverage percentage (#73)
- Per-platform image resizing: Twitter 1200x600, Pinterest 1000x1500, WhatsApp 400x400 (#74)
- PHPUnit test suite with 16 unit tests for JsonLdBuilder (#75)
- OpenAPI 3.0 specification for REST API (#80)
- Site-wide default OG title and description plugin parameters
- Discord embed color via
theme-colormeta tag (color picker in plugin config) - LinkedIn article tags:
article:published_time,article:modified_time,article:author og:image:widthandog:image:heightfor faster social preview renderingonMokoOGAfterRenderevent for third-party plugin extensibility- Joomla Web Services API for OG tags — full CRUD at
/api/v1/mokoog/tags(#27) - Live social preview in article/menu editors (Facebook and Twitter/X card mockups) (#3)
- CSV import/export for bulk OG tag management (#12)
- OG image text overlay generator (#7)
- Multilingual OG tag support with per-language records (#11)
- JSON-LD structured data: Article, Product, WebPage, BreadcrumbList schemas (#6)
- Social platform debugger quick links (Facebook, LinkedIn, Google) (#9)
- MokoSuiteShop product OG tag support with pricing meta and JSON-LD Product schema (#53)
- WhatsApp and Telegram link preview optimization (#10)
- Category-level OG tag support (#4)
- Batch OG tag generation for existing articles (#1)
- Auto-resize OG images to 1200x630px with center crop (#2)
- SEO meta tag management: title, description, robots, canonical URL (#8)
- Per-article and per-menu-item OG fields in the editor
- Auto-generation of OG tags from article content, title, and images
- Default fallback image configuration
- Admin tag manager component with filtering, search, and pagination
- Facebook App ID and Telegram channel support
- Database table
#__mokoog_tagswith multilingual unique key
Fixed
- Add exception logging to BatchController batch skip (#76)
- Align form maxlength attributes with DB schema limits (#77)
- Add
strip_tags()input sanitization on OG text fields (#79) - Only emit
og:video:secure_urlfor HTTPS URLs - Only emit
og:video:width/heightfor direct files, not embeds - Consolidate duplicate MokoSuiteShop product blocks
- Fix stale
com_virtuemartreference in SQL comment - Use component language keys for og_video field in tag.xml
Changed
- Consolidated article DB queries into single cached lookup — 5 queries reduced to 1 (#38)
- Dynamic
og:image:width/og:image:heightfrom actual image dimensions instead of hardcoded (#39) - Replace GD
@error suppression withLog::add()warnings (#49) - TagTable::check() validates og_type, field lengths, canonical_url, robots directives (#43)
- CSV import/export now includes language column for multilingual support (#52)
- Batch process limit capped at 200 per request (#42)
- Canonical URL replacement uses public
getHeadData()/setHeadData()API (#39) - Language-aware queries on
loadOgDataByType()andloadOgDataByMenu()(#47)
Removed
- Removed dead ContentType adapters (K2, VirtueMart, HikaShop) — not targeting these platforms (#36)
- Removed
<updateservers>from package manifest — managed externally (#44) - Removed deploy-manual.yml workflow