fix(core): update
This commit is contained in:
parent
4557000629
commit
c0db06fc18
@ -12,46 +12,63 @@ export const setupMetaInformation = async (metaObjectArg: IMetaObject) => {
|
|||||||
document.title = metaObjectArg.title;
|
document.title = metaObjectArg.title;
|
||||||
addMetaTag('description', metaObjectArg.description);
|
addMetaTag('description', metaObjectArg.description);
|
||||||
addMetaTag('google', 'notranslate');
|
addMetaTag('google', 'notranslate');
|
||||||
addMetaTag('revisited-after', '1 days');
|
addMetaTag('revisit-after', '1 days');
|
||||||
metaObjectArg.canonicalDomain ? addLinkTag('canonical', metaObjectArg.canonicalDomain) : null;
|
metaObjectArg.canonicalDomain ? addLinkTag('canonical', metaObjectArg.canonicalDomain) : null;
|
||||||
|
|
||||||
if (metaObjectArg.ldCompany) {
|
if (metaObjectArg.ldCompany) {
|
||||||
addCompanyJsonLD(metaObjectArg.ldCompany)
|
addCompanyInfo(metaObjectArg.ldCompany);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const addMetaTag = async (linkNameArg: string, contentArg: string) => {
|
const addMetaTag = async (metaNameArg: string, contentArg: string) => {
|
||||||
const metaElement = document.createElement('meta');
|
const metaElement = document.createElement('meta');
|
||||||
metaElement.name = linkNameArg;
|
metaElement.name = metaNameArg;
|
||||||
metaElement.content = contentArg;
|
metaElement.content = contentArg;
|
||||||
document.getElementsByTagName('head')[0].appendChild(metaElement);
|
document.getElementsByTagName('head')[0].appendChild(metaElement);
|
||||||
};
|
};
|
||||||
|
|
||||||
const addLinkTag = async (relArg, hrefArg) => {
|
const addLinkTag = async (relArg, hrefArg): Promise<Element> => {
|
||||||
const link = !!document.querySelector("link[rel='canonical']")
|
const link = !!document.querySelector("link[rel='canonical']")
|
||||||
? document.querySelector("link[rel='canonical']")
|
? document.querySelector("link[rel='canonical']")
|
||||||
: document.createElement('link');
|
: document.createElement('link');
|
||||||
link.setAttribute('rel', relArg);
|
link.setAttribute('rel', relArg);
|
||||||
link.setAttribute('href', hrefArg);
|
link.setAttribute('href', hrefArg);
|
||||||
document.head.appendChild(link);
|
document.head.appendChild(link);
|
||||||
|
return link;
|
||||||
};
|
};
|
||||||
|
|
||||||
const addCompanyJsonLD = async (companyDataArg: plugins.tsclass.business.ICompany) => {
|
const addOpenGraphProperty = async (
|
||||||
|
propertyNameArg: string,
|
||||||
|
contentArg: string
|
||||||
|
): Promise<Element> => {
|
||||||
|
const openGraphElement = document.createElement('meta');
|
||||||
|
openGraphElement.name = propertyNameArg;
|
||||||
|
openGraphElement.content = contentArg;
|
||||||
|
document.getElementsByTagName('head')[0].appendChild(openGraphElement);
|
||||||
|
return openGraphElement;
|
||||||
|
};
|
||||||
|
|
||||||
|
const addCompanyInfo = async (
|
||||||
|
companyDataArg: plugins.tsclass.business.ICompany
|
||||||
|
): Promise<Element[]> => {
|
||||||
|
const returnElementArray: Element[] = [];
|
||||||
|
|
||||||
|
// lets care about linked data
|
||||||
const companyLd = {
|
const companyLd = {
|
||||||
"@context": "https://schema.org",
|
'@context': 'https://schema.org',
|
||||||
"@type": "Corporation",
|
'@type': 'Corporation',
|
||||||
"name": companyDataArg.name,
|
name: companyDataArg.name,
|
||||||
"alternateName": companyDataArg.name.replace(' GmbH', ''),
|
alternateName: companyDataArg.name.replace(' GmbH', ''),
|
||||||
"url": companyDataArg.contact.website,
|
url: companyDataArg.contact.website,
|
||||||
"logo": companyDataArg.contact.logoUrl,
|
logo: companyDataArg.contact.logoUrl,
|
||||||
"contactPoint": {
|
contactPoint: {
|
||||||
"@type": "ContactPoint",
|
'@type': 'ContactPoint',
|
||||||
"telephone": companyDataArg.contact.phone,
|
telephone: companyDataArg.contact.phone,
|
||||||
"contactType": "customer service",
|
contactType: 'customer service',
|
||||||
"areaServed": "DE",
|
areaServed: 'DE',
|
||||||
"availableLanguage": ["en","German"]
|
availableLanguage: ['en', 'German']
|
||||||
},
|
},
|
||||||
"sameAs": []
|
sameAs: []
|
||||||
};
|
};
|
||||||
|
|
||||||
if (companyDataArg.contact.facebookUrl) {
|
if (companyDataArg.contact.facebookUrl) {
|
||||||
@ -66,4 +83,23 @@ const addCompanyJsonLD = async (companyDataArg: plugins.tsclass.business.ICompan
|
|||||||
jsonLdElement.type = 'application/ld+json';
|
jsonLdElement.type = 'application/ld+json';
|
||||||
jsonLdElement.text = JSON.stringify(companyLd);
|
jsonLdElement.text = JSON.stringify(companyLd);
|
||||||
document.querySelector('head').appendChild(jsonLdElement);
|
document.querySelector('head').appendChild(jsonLdElement);
|
||||||
|
returnElementArray.push(jsonLdElement);
|
||||||
|
|
||||||
|
// lets care about open graph
|
||||||
|
returnElementArray.push(await addOpenGraphProperty('og:type', 'business.business'));
|
||||||
|
returnElementArray.push(await addOpenGraphProperty('og:title', companyDataArg.name));
|
||||||
|
returnElementArray.push(await addOpenGraphProperty('og:url', companyDataArg.contact.website));
|
||||||
|
returnElementArray.push(await addOpenGraphProperty('og:imge', companyDataArg.contact.logoUrl));
|
||||||
|
returnElementArray.push(
|
||||||
|
await addOpenGraphProperty(
|
||||||
|
'business:contact_data:street_address',
|
||||||
|
`${companyDataArg.contact.address.streetName} ${companyDataArg.contact.address.houseNumber}`
|
||||||
|
)
|
||||||
|
);
|
||||||
|
returnElementArray.push(await addOpenGraphProperty('business:contact_data:locality', companyDataArg.contact.address.postalCode));
|
||||||
|
returnElementArray.push(await addOpenGraphProperty('business:contact_data:region', companyDataArg.contact.address.city));
|
||||||
|
returnElementArray.push(await addOpenGraphProperty('business:contact_data:postal_code', companyDataArg.contact.address.postalCode));
|
||||||
|
returnElementArray.push(await addOpenGraphProperty('business:contact_data:country_name', companyDataArg.contact.address.country));
|
||||||
|
|
||||||
|
return returnElementArray;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user