Skip to content

Commit

Permalink
Add better encapsulation for SEO snippets
Browse files Browse the repository at this point in the history
  • Loading branch information
desko27 committed Mar 1, 2020
1 parent c7948d9 commit c7e8fec
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 25 deletions.
Original file line number Diff line number Diff line change
@@ -1,31 +1,18 @@
import React from 'react'

import CommonMetaTags from '../components/seo/CommonMetaTags'
import GameTierlist from '../components/templates/GameTierlist'
import CommonMetaTags from '../../components/seo/CommonMetaTags'
import GameTierlist from '../../components/templates/GameTierlist'

const getSquaredLetter =
letter => {
if (letter === '-') return '➖'
if (letter === '+') return '✚'
const unicode = String.fromCharCode(55356)
const squared = String.fromCharCode(56688 + letter.charCodeAt() - 65)
return `${unicode}${squared}`
}
const getSquaredLetters =
string => string.split('').map(getSquaredLetter).join('')
import { getTitle, getDescription } from './seo'

export default gameSlug => {
const TierlistPage = ({ gameData, nextGameSlug, prevGameSlug }) => {
const title = `✅ Smash Tier List 🔥 ${gameData.shortName} 🎮`
const description = gameData.rosterGroupedByTier.slice(0, 5).map(
({ tier, characters }) =>
`${getSquaredLetters(tier.name)} ${characters.slice(0, 3).map(c => c.name).join(' ')}` +
(characters.length > 3 ? '...' : '')
).join(' ')

return (
<>
<CommonMetaTags title={title} description={description} />
<CommonMetaTags
title={getTitle(gameData)}
description={getDescription(gameData)}
/>
<GameTierlist
gameData={gameData}
nextGameSlug={nextGameSlug}
Expand Down
18 changes: 18 additions & 0 deletions page-factories/game-tierlist/seo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const getSquaredLetter =
letter => {
if (letter === '-') return '➖'
if (letter === '+') return '✚'
const unicode = String.fromCharCode(55356)
const squared = String.fromCharCode(56688 + letter.charCodeAt() - 65)
return `${unicode}${squared}`
}
const getSquaredLetters =
string => string.split('').map(getSquaredLetter).join('')

export const getTitle = gameData => `✅ Smash Tier List 🔥 ${gameData.shortName} 🎮`

export const getDescription = gameData => gameData.rosterGroupedByTier.slice(0, 5).map(
({ tier, characters }) =>
`${getSquaredLetters(tier.name)} ${characters.slice(0, 3).map(c => c.name).join(' ')}` +
(characters.length > 3 ? '...' : '')
).join(' ')
2 changes: 1 addition & 1 deletion pages/index.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import makeGameTierlistPage from '../page-factories/makeGameTierlistPage'
import makeGameTierlistPage from '../page-factories/game-tierlist/makeGameTierlistPage'
export default makeGameTierlistPage('ssbu')
2 changes: 1 addition & 1 deletion pages/ssb.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import makeGameTierlistPage from '../page-factories/makeGameTierlistPage'
import makeGameTierlistPage from '../page-factories/game-tierlist/makeGameTierlistPage'
export default makeGameTierlistPage('ssb')
2 changes: 1 addition & 1 deletion pages/ssb4.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import makeGameTierlistPage from '../page-factories/makeGameTierlistPage'
import makeGameTierlistPage from '../page-factories/game-tierlist/makeGameTierlistPage'
export default makeGameTierlistPage('ssb4')
2 changes: 1 addition & 1 deletion pages/ssbb.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import makeGameTierlistPage from '../page-factories/makeGameTierlistPage'
import makeGameTierlistPage from '../page-factories/game-tierlist/makeGameTierlistPage'
export default makeGameTierlistPage('ssbb')
2 changes: 1 addition & 1 deletion pages/ssbm.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import makeGameTierlistPage from '../page-factories/makeGameTierlistPage'
import makeGameTierlistPage from '../page-factories/game-tierlist/makeGameTierlistPage'
export default makeGameTierlistPage('ssbm')

0 comments on commit c7e8fec

Please sign in to comment.