Mark up entry permalink pages with OpenGraph garbage too
This commit is contained in:
parent
47fe00a8b8
commit
2956550a6c
4 changed files with 14 additions and 1 deletions
|
@ -264,3 +264,7 @@ unsafeHandler = Unsafe.fakeHandlerGetLogger appLogger
|
||||||
-- https://github.com/yesodweb/yesod/wiki/Sending-email
|
-- https://github.com/yesodweb/yesod/wiki/Sending-email
|
||||||
-- https://github.com/yesodweb/yesod/wiki/Serve-static-files-from-a-separate-domain
|
-- https://github.com/yesodweb/yesod/wiki/Serve-static-files-from-a-separate-domain
|
||||||
-- https://github.com/yesodweb/yesod/wiki/i18n-messages-in-the-scaffolding
|
-- https://github.com/yesodweb/yesod/wiki/i18n-messages-in-the-scaffolding
|
||||||
|
userProfile :: User -> Route App
|
||||||
|
userProfile user
|
||||||
|
| userUsername user == siteUsername compileTimeAppSettings = HomeR
|
||||||
|
| otherwise = error "Multiple profile pages are not yet supported"
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{-# LANGUAGE NoImplicitPrelude #-}
|
{-# LANGUAGE NoImplicitPrelude #-}
|
||||||
|
{-# LANGUAGE QuasiQuotes #-}
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
module Handler.Entries where
|
module Handler.Entries where
|
||||||
|
|
||||||
|
@ -33,8 +34,16 @@ renderEntry :: (Entity Entry) -> Handler Html
|
||||||
renderEntry entry = do
|
renderEntry entry = do
|
||||||
let correctRoute = entryR entry
|
let correctRoute = entryR entry
|
||||||
actualRoute <- getCurrentRoute
|
actualRoute <- getCurrentRoute
|
||||||
|
author <- getCached . entryAuthorId $ entityVal entry
|
||||||
when (actualRoute /= Just correctRoute) $
|
when (actualRoute /= Just correctRoute) $
|
||||||
redirectWith movedPermanently301 correctRoute
|
redirectWith movedPermanently301 correctRoute
|
||||||
defaultLayout $ do
|
defaultLayout $ do
|
||||||
setTitle . toHtml . entryTitle . entityVal $ entry
|
setTitle . toHtml . entryTitle . entityVal $ entry
|
||||||
|
toWidgetHead [hamlet|
|
||||||
|
<meta property="og:title" content=#{entryTitle $ entityVal entry}>
|
||||||
|
<meta property="og:type" content="article">
|
||||||
|
<meta property="og:description" content=#{entryContent $ entityVal entry}>
|
||||||
|
<meta property="article:author" content=@{userProfile $ entityVal author}>
|
||||||
|
<meta property="article:section" content=#{K.pluralise $ entryKind $ entityVal entry}>
|
||||||
|
|]
|
||||||
hEntry entry
|
hEntry entry
|
||||||
|
|
|
@ -39,6 +39,7 @@ hCard (Entity userId user) = do
|
||||||
<meta name="author" content=#{userFullName user}>
|
<meta name="author" content=#{userFullName user}>
|
||||||
<link rel="author" href=@{HomeR}>
|
<link rel="author" href=@{HomeR}>
|
||||||
<meta property="og:type" content="profile">
|
<meta property="og:type" content="profile">
|
||||||
|
<meta property="og:title" content="#{userFullName user}">
|
||||||
<meta property="og:description" content=#{userNote user}>
|
<meta property="og:description" content=#{userNote user}>
|
||||||
<meta property="og:image" content=@{staticR ["img", userAvatar user]}>
|
<meta property="og:image" content=@{staticR ["img", userAvatar user]}>
|
||||||
<meta property="profile:first_name" content=#{firstName}>
|
<meta property="profile:first_name" content=#{firstName}>
|
||||||
|
|
|
@ -6,7 +6,6 @@ $doctype 5
|
||||||
<meta name="generator" content="#{packageName package} #{packageVersion package}">
|
<meta name="generator" content="#{packageName package} #{packageVersion package}">
|
||||||
|
|
||||||
<title>#{fullTitle}
|
<title>#{fullTitle}
|
||||||
<meta property="og:title" content=#{fullTitle}>
|
|
||||||
$maybe route <- mcurrentRoute
|
$maybe route <- mcurrentRoute
|
||||||
<link rel="canonical" href=@{route}>
|
<link rel="canonical" href=@{route}>
|
||||||
<meta property="og:url" content=@{route}>
|
<meta property="og:url" content=@{route}>
|
||||||
|
|
Loading…
Reference in a new issue