44 lines
2.0 KiB
TypeScript
44 lines
2.0 KiB
TypeScript
import * as plugins from './websetup.plugins.js';
|
|
import { Tag } from './websetup.classes.tag.js';
|
|
|
|
export class OpengraphTag extends Tag {
|
|
public static createNewsArticleOgTags(newsArticleArg: plugins.tsclass.content.IArticle) {
|
|
const tagArray: OpengraphTag[] = [];
|
|
tagArray.push(new OpengraphTag('og:url', newsArticleArg.url));
|
|
tagArray.push(new OpengraphTag('og:title', newsArticleArg.title));
|
|
tagArray.push(new OpengraphTag('og:description', newsArticleArg.content));
|
|
tagArray.push(new OpengraphTag('og:image', newsArticleArg.featuredImageUrl));
|
|
return tagArray;
|
|
}
|
|
|
|
public static createProductOgTags(productArg: plugins.tsclass.saas.IProduct) {
|
|
const tagArray: OpengraphTag[] = [];
|
|
tagArray.push(new OpengraphTag('og:type', 'product'));
|
|
tagArray.push(new OpengraphTag('og:url', globalThis.location.href));
|
|
tagArray.push(new OpengraphTag('og:title', `${productArg.name} - ${productArg.slogan}`));
|
|
tagArray.push(new OpengraphTag('og:site_name', productArg.name))
|
|
tagArray.push(new OpengraphTag('og:description', productArg.description));
|
|
tagArray.push(new OpengraphTag('og:image', productArg.logoLink));
|
|
return tagArray;
|
|
}
|
|
|
|
public static createCompanyOgTags(companyArg: plugins.tsclass.business.ICompany) {
|
|
const tagArray: OpengraphTag[] = [];
|
|
tagArray.push(new OpengraphTag('og:type', 'company'));
|
|
tagArray.push(new OpengraphTag('og:url', globalThis.location.href));
|
|
tagArray.push(new OpengraphTag('og:title', `${companyArg.name} - ${companyArg.slogan}`));
|
|
tagArray.push(new OpengraphTag('og:site_name', companyArg.name))
|
|
tagArray.push(new OpengraphTag('og:description', companyArg.description));
|
|
tagArray.push(new OpengraphTag('og:image', companyArg.logoLink));
|
|
return tagArray;
|
|
}
|
|
|
|
constructor(propertyNameArg: string, contentArg: string) {
|
|
super();
|
|
const openGraphElement = document.createElement('meta');
|
|
openGraphElement.setAttribute('property', propertyNameArg);
|
|
openGraphElement.content = contentArg;
|
|
this.elementRef = openGraphElement;
|
|
}
|
|
}
|