BaryoDev / BaryoDev/barakoCMS

Delivery emits no structured data, so an article is not eligible for news placements

Open
#567 0 comments 0 reactions 0 assignees View on GitHub
core enhancement
Dominant language
C#
Stars
6
Forks
7
Avg merge
4h 42m
Merged PRs (30d)
307

Description

A news site is read by Google News, Discover, Facebook and Slack before it is read by a person, and every one of them wants structured data. Delivery emits none. `Features/Seo` covers titles and descriptions; there is no `schema.org` JSON-LD anywhere.

Without it an article is a generic web page: no headline, no author, no publish date, no section, no image, and no eligibility for the placements that carry news traffic.

## What to add

A JSON-LD block on delivery responses, built from the content type's field mapping rather than from hard-coded field names. Which field is the headline, which is the author, which is the publish date, and which type to emit (`Article`, `NewsArticle`, `Product`, `Event`) is per content type and belongs on the definition.

`ContentTypeDefinition` already carries the field list, and `FieldTypeRegistry` already has the types this needs, including `datetime`, `richtext` and `reference`.

## What it must not become

A second copy of the masking rules. The block goes through `PublicDelivery.ToPublic` like every other public read, or a masked field leaks into the structured data where nobody thinks to look for it.

## Done when

- A content type can declare its `schema.org` type and which field fills each role.
- The delivery response carries valid JSON-LD, checked against Google's structured data test or an offline validator in CI.
- A masked field never appears in the block, proven by a test.
- A content type that declares nothing emits nothing, rather than guessing.

Contributor guide

Open the contributing guide

Research direction

Start by reading ContentTypeDefinition and FieldTypeRegistry to see how field mappings and supported types are represented. Trace delivery responses through PublicDelivery.ToPublic and review Features/Seo for existing delivery conventions. Done means declared schema metadata produces validated JSON-LD, masking is preserved, tests cover masked fields, and undeclared types emit nothing.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.