From 729a87b86985f133c0c2c66edac0226f38284f43 Mon Sep 17 00:00:00 2001 From: Nacho Serra Date: Tue, 18 Aug 2026 13:52:23 +0200 Subject: [PATCH] [19.0][ADD] website_blog_schema_org: Inject BlogPosting JSON-LD into blog posts --- website_blog_schema_org/README.rst | 145 ++++++ website_blog_schema_org/__init__.py | 1 + website_blog_schema_org/__manifest__.py | 13 + website_blog_schema_org/models/__init__.py | 1 + website_blog_schema_org/models/blog_post.py | 57 ++ website_blog_schema_org/pyproject.toml | 3 + .../readme/CONTRIBUTORS.md | 2 + website_blog_schema_org/readme/DESCRIPTION.md | 27 + website_blog_schema_org/readme/INSTALL.md | 6 + website_blog_schema_org/readme/USAGE.md | 4 + .../static/description/icon.png | Bin 0 -> 10254 bytes .../static/description/index.html | 489 ++++++++++++++++++ website_blog_schema_org/tests/__init__.py | 1 + .../tests/test_blog_post.py | 43 ++ .../views/blog_post_templates.xml | 15 + 15 files changed, 807 insertions(+) create mode 100644 website_blog_schema_org/README.rst create mode 100644 website_blog_schema_org/__init__.py create mode 100644 website_blog_schema_org/__manifest__.py create mode 100644 website_blog_schema_org/models/__init__.py create mode 100644 website_blog_schema_org/models/blog_post.py create mode 100644 website_blog_schema_org/pyproject.toml create mode 100644 website_blog_schema_org/readme/CONTRIBUTORS.md create mode 100644 website_blog_schema_org/readme/DESCRIPTION.md create mode 100644 website_blog_schema_org/readme/INSTALL.md create mode 100644 website_blog_schema_org/readme/USAGE.md create mode 100644 website_blog_schema_org/static/description/icon.png create mode 100644 website_blog_schema_org/static/description/index.html create mode 100644 website_blog_schema_org/tests/__init__.py create mode 100644 website_blog_schema_org/tests/test_blog_post.py create mode 100644 website_blog_schema_org/views/blog_post_templates.xml diff --git a/website_blog_schema_org/README.rst b/website_blog_schema_org/README.rst new file mode 100644 index 0000000000..d437f32bba --- /dev/null +++ b/website_blog_schema_org/README.rst @@ -0,0 +1,145 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +=============================== +Website Blog Schema.org JSON-LD +=============================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:8278fba613e989bd9de78cadfd1d5a61f4b079fa81a4db585d93c48dd6c6d2b8 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fwebsite-lightgray.png?logo=github + :target: https://github.com/OCA/website/tree/19.0/website_blog_schema_org + :alt: OCA/website +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/website-19-0/website-19-0-website_blog_schema_org + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/website&target_branch=19.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds structured ``schema.org/BlogPosting`` JSON-LD metadata +to every published Odoo Website blog post. + +Why it matters +-------------- + +Search engines understand HTML, but they understand structured data even +better. By embedding a JSON-LD block in each blog post, you help Google +and other crawlers surface rich results such as headline, author, +publication date, modification date, publisher and featured image. + +The module does not change the visual design of your blog; it only +injects an invisible ``