diff --git a/client/template.js b/client/template.js index 85e313b94..6ee7f9d4a 100644 --- a/client/template.js +++ b/client/template.js @@ -1,28 +1,59 @@ -module.exports = async(name, title = '', props = {})=>{ +const template = async function(name, title='', props = {}){ const HOMEBREWERY_PUBLIC_URL=props.config.publicUrl; - return ` - - - - - - - - - - - - - - - ${title.length ? `${title} - The Homebrewery`: 'The Homebrewery - NaturalCrit'} - - -
${require(`../build/${name}/ssr.js`)(props)}
- - - - -`; + const ogMeta = { + siteName : 'The Homebrewery - Make your Homebrew content look legit!', + title : 'The Homebrewery', + description : 'Homepage', + thumbnail : `${HOMEBREWERY_PUBLIC_URL}/thumbnail.png`, + type : 'website' + }; + + if(props.url.match(/\/share\/|\/edit\//)){ + Object.assign(ogMeta, { + siteName : null, + title : props.brew.title || 'Homebrewery - Untitled Brew', + description : props.brew.description || 'No description.', + thumbnail : props.brew.thumbnail || null, + type : 'article' + }); + } else if(props.url.match(/\/print\/|\/source\//)){ + Object.assign(ogMeta, { + siteName : null, + title : `${props.brew.title} - ${props.url.match(/\/print\/|\/source\//)}` || 'Homebrewery - Untitled Brew', + description : props.brew.description || 'No description.', + thumbnail : props.brew.thumbnail || null, + type : 'article' + }); + } + + const ogTags = []; + Object.entries(ogMeta).forEach(([key, value])=>{ + if(!value) return; + const tag = ``; + ogTags.push(tag); + }); + const ogMetaTags = ogTags.join('\n'); + + + return ` + + + + + + + ${ogMetaTags} + + ${title.length ? `${title} - The Homebrewery`: 'The Homebrewery - NaturalCrit'} + + +
${require(`../build/${name}/ssr.js`)(props)}
+ + + + + `; }; + +module.exports = template; \ No newline at end of file