Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removal of redundant attributes and parse-rules from decision node-specs #410

Merged
merged 10 commits into from
Apr 29, 2024
Merged
161 changes: 7 additions & 154 deletions addon/plugins/standard-template-plugin/utils/nodes.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { getRdfaAttrs, NodeSpec, rdfaAttrSpec } from '@lblod/ember-rdfa-editor';
import {
getRdfaContentElement,
hasRdfaContentChild,
renderRdfaAware,
sharedRdfaNodeSpec,
} from '@lblod/ember-rdfa-editor/core/schema';
Expand Down Expand Up @@ -33,12 +32,6 @@ export const besluit_title: NodeSpec = {
editable: true,
attrs: {
...rdfaAttrSpec({ rdfaAware }),
property: {
default: 'eli:title',
},
datatype: {
default: 'xsd:string',
},
},
toDOM(node) {
return renderRdfaAware({
Expand All @@ -58,30 +51,13 @@ export const besluit_title: NodeSpec = {
tag: 'h1,h2,h3,h4,h5',
getAttrs(element: HTMLElement) {
const rdfaAttrs = getRdfaAttrs(element, { rdfaAware });
if (
hasBacklink(rdfaAttrs, ELI('title')) &&
hasRdfaContentChild(element)
) {
if (hasBacklink(rdfaAttrs, ELI('title'))) {
return rdfaAttrs;
}
return false;
},
contentElement: getRdfaContentElement,
},
// Compatibility with pre-RDFa-aware HTML
{
tag: 'h1,h2,h3,h4,h5',
getAttrs(element: HTMLElement) {
if (hasRDFaAttribute(element, 'property', ELI('title'))) {
const rdfaAttrs = getRdfaAttrs(element, { rdfaAware });
return {
...rdfaAttrs,
subject: element.getAttribute('resource'),
};
}
return false;
},
},
],
};

Expand All @@ -94,12 +70,6 @@ export const description: NodeSpec = {
editable: true,
attrs: {
...rdfaAttrSpec({ rdfaAware }),
property: {
default: 'eli:description',
},
datatype: {
default: 'xsd:string',
},
},
toDOM(node) {
return renderRdfaAware({
Expand All @@ -117,26 +87,13 @@ export const description: NodeSpec = {
tag: 'div,p',
getAttrs(element: HTMLElement) {
const rdfaAttrs = getRdfaAttrs(element, { rdfaAware });
if (
hasBacklink(rdfaAttrs, ELI('description')) &&
hasRdfaContentChild(element)
) {
if (hasBacklink(rdfaAttrs, ELI('description'))) {
return rdfaAttrs;
}
return false;
},
contentElement: getRdfaContentElement,
},
// Compatibility with pre-RDFa-aware HTML
{
tag: 'div,p',
getAttrs(element: HTMLElement) {
if (hasRDFaAttribute(element, 'property', ELI('description'))) {
return getRdfaAttrs(element, { rdfaAware });
}
return false;
},
},
],
};

Expand All @@ -148,12 +105,6 @@ export const motivering: NodeSpec = {
editable: true,
attrs: {
...rdfaAttrSpec({ rdfaAware }),
property: {
default: 'besluit:motivering',
},
lang: {
default: 'nl',
},
},
toDOM(node) {
return renderRdfaAware({
Expand All @@ -171,26 +122,13 @@ export const motivering: NodeSpec = {
tag: 'div',
getAttrs(element: HTMLElement) {
const rdfaAttrs = getRdfaAttrs(element, { rdfaAware });
if (
hasBacklink(rdfaAttrs, BESLUIT('motivering')) &&
hasRdfaContentChild(element)
) {
if (hasBacklink(rdfaAttrs, BESLUIT('motivering'))) {
return rdfaAttrs;
}
return false;
},
contentElement: getRdfaContentElement,
},
// Compatibility with pre-RDFa-aware HTML
{
tag: 'div',
getAttrs(element: HTMLElement) {
if (hasRDFaAttribute(element, 'property', BESLUIT('motivering'))) {
return getRdfaAttrs(element, { rdfaAware });
}
return false;
},
},
],
};

Expand All @@ -203,12 +141,6 @@ export const article_container: NodeSpec = {
editable: true,
attrs: {
...rdfaAttrSpec({ rdfaAware }),
property: {
default: 'prov:value',
},
datatype: {
default: 'xsd:string',
},
},
toDOM(node) {
return renderRdfaAware({
Expand All @@ -226,28 +158,14 @@ export const article_container: NodeSpec = {
tag: 'div',
getAttrs(element: HTMLElement) {
const rdfaAttrs = getRdfaAttrs(element, { rdfaAware });
if (
hasBacklink(rdfaAttrs, PROV('value')) &&
hasRdfaContentChild(element)
) {
if (hasBacklink(rdfaAttrs, PROV('value'))) {
return rdfaAttrs;
}
return false;
},
context: 'besluit/',
contentElement: getRdfaContentElement,
},
// Compatibility with pre-RDFa-aware HTML
{
tag: 'div',
getAttrs(element: HTMLElement) {
if (hasRDFaAttribute(element, 'property', PROV('value'))) {
return getRdfaAttrs(element, { rdfaAware });
}
return false;
},
context: 'besluit/',
},
],
};

Expand All @@ -259,10 +177,6 @@ export const besluit_article: NodeSpec = {
editable: true,
attrs: {
...rdfaAttrSpec({ rdfaAware }),
typeof: {
default: BESLUIT('Artikel').prefixed,
},
subject: {},
},
toDOM(node) {
return renderRdfaAware({
Expand All @@ -282,32 +196,14 @@ export const besluit_article: NodeSpec = {
const rdfaAttrs = getRdfaAttrs(element, { rdfaAware });
if (
hasBacklink(rdfaAttrs, ELI('has_part')) &&
hasOutgoingNamedNodeTriple(
rdfaAttrs,
RDF('type'),
BESLUIT('Artikel'),
) &&
hasRdfaContentChild(element)
hasOutgoingNamedNodeTriple(rdfaAttrs, RDF('type'), BESLUIT('Artikel'))
) {
return rdfaAttrs;
}
return false;
},
contentElement: getRdfaContentElement,
},
// Compatibility with pre-RDFa-aware HTML
{
tag: 'div',
getAttrs(element: HTMLElement) {
if (
hasRDFaAttribute(element, 'property', ELI('has_part')) &&
hasRDFaAttribute(element, 'typeof', BESLUIT('Artikel'))
) {
return getRdfaAttrs(element, { rdfaAware });
}
return false;
},
},
],
};

Expand Down Expand Up @@ -436,9 +332,6 @@ export const besluit_article_content: NodeSpec = {
editable: true,
attrs: {
...rdfaAttrSpec({ rdfaAware }),
datatype: {
default: 'xsd:string',
},
},
toDOM(node) {
return renderRdfaAware({
Expand All @@ -456,28 +349,14 @@ export const besluit_article_content: NodeSpec = {
tag: 'div',
getAttrs(element: HTMLElement) {
const rdfaAttrs = getRdfaAttrs(element, { rdfaAware });
if (
hasBacklink(rdfaAttrs, PROV('value')) &&
hasRdfaContentChild(element)
) {
if (hasBacklink(rdfaAttrs, PROV('value'))) {
return getRdfaAttrs(element, { rdfaAware });
}
return false;
},
contentElement: getRdfaContentElement,
context: 'besluit_article/',
},
// Compatibility with pre-RDFa-aware HTML
{
tag: 'div',
getAttrs(element: HTMLElement) {
if (hasRDFaAttribute(element, 'property', PROV('value'))) {
return getRdfaAttrs(element, { rdfaAware });
}
return false;
},
context: 'besluit_article//',
},
],
};

Expand All @@ -491,10 +370,6 @@ export const besluit: NodeSpec = {
canSplit: false,
attrs: {
...rdfaAttrSpec({ rdfaAware }),
typeof: {
default: 'besluit:Besluit ext:BesluitNieuweStijl',
},
subject: {},
},
toDOM(node) {
return renderRdfaAware({
Expand All @@ -514,38 +389,16 @@ export const besluit: NodeSpec = {
const rdfaAttrs = getRdfaAttrs(element, { rdfaAware });
if (
hasBacklink(rdfaAttrs, PROV('generated')) &&
hasOutgoingNamedNodeTriple(
rdfaAttrs,
RDF('type'),
BESLUIT('Besluit'),
) &&
hasRdfaContentChild(element)
hasOutgoingNamedNodeTriple(rdfaAttrs, RDF('type'), BESLUIT('Besluit'))
) {
return {
typeof: element.getAttribute('typeof'),
...rdfaAttrs,
};
}
return false;
},
contentElement: getRdfaContentElement,
},
// Compatibility with pre-RDFa-aware HTML
{
tag: 'div',
getAttrs(element: HTMLElement) {
if (
hasRDFaAttribute(element, 'property', PROV('generated')) &&
hasRDFaAttribute(element, 'typeof', BESLUIT('Besluit'))
) {
return {
typeof: element.getAttribute('typeof'),
...getRdfaAttrs(element, { rdfaAware }),
};
}
return false;
},
},
],
};

Expand Down