import React from 'react' import Helmet from 'react-helmet' import PropTypes from 'prop-types' import { StaticQuery, graphql } from 'gatsby' function truncate(n, useWordBoundary) { if (this.length <= n) { return this } const subString = this.substr(0, n - 1) return ( (useWordBoundary ? subString.substr(0, subString.lastIndexOf(' ')) : subString) + '...' ) } const query = graphql` query { dataYaml { title tagline description url email img { childImageSharp { resize(width: 980) { src } } } social { Email Blog Twitter GitHub Dribbble } gpg addressbook } } ` const SEO = ({ project }) => ( { const meta = data.dataYaml const title = project.title || meta.title const tagline = meta.tagline const description = project.description ? truncate.apply(project.description, [320, true]) : truncate.apply(meta.description, [320, true]) const image = project.img ? project.img.childImageSharp.twitterImage.src : meta.img.childImageSharp.resize.src const url = project.slug ? `${meta.url}${project.slug}` : meta.url return ( {title} {/* General tags */} {/* OpenGraph tags */} {/* Twitter Card tags */} ) }} /> ) SEO.propTypes = { project: PropTypes.object } SEO.defaultProps = { project: {} } export default SEO