import config from '../nuxt.config' const year = new Date().getFullYear() const makeTag = ( tag, tagName = 'meta') => { const attributes = Object.entries(tag).map( ([ name, value ]) => `${name}="${value}"` ).join(' ') return `<${tagName} ${attributes}>` } const mapMetaTag = ( tag ) => { if ( tag.hasOwnProperty('property') ) { return [ `property-${tag.property}`, makeTag(tag) ] } if ( tag.hasOwnProperty('name') ) { return [ `name-${tag.name}`, makeTag(tag) ] } if ( tag.hasOwnProperty('charset') ) { return [ 'charset', makeTag(tag) ] } } const mapLinkTag = ( tag ) => { return [ `type-${tag.type}`, makeTag(tag, 'link') ] } const defaultMeta = Object.fromEntries(config.head.meta.map( mapMetaTag )) const defaultLinkTags = Object.fromEntries(config.head.link.map( mapLinkTag )) class DefaultLayout { generateMetaTags = ( pageMeta = [] ) => { const meta = { ...defaultMeta, ...Object.fromEntries(pageMeta.map(mapMetaTag)) } return Object.values(meta).join('') } generateLinkTags = ( pageLinkTags = [] ) => { const linkTags = { ...defaultLinkTags, ...Object.fromEntries(pageLinkTags.map( mapLinkTag )) } return Object.values( linkTags ).join('') } render({ content, title = null, }) { return /* html */`