1
0

Compare commits

...

3 Commits

14 changed files with 111 additions and 86 deletions

View File

@ -1,19 +0,0 @@
---
title: About
language: "en"
logosub: About me
---
Nullam imperdiet sodales orci vitae molestie. Nunc quam orci, pharetra a
rhoncus vitae, eleifend id felis. Suspendisse potenti. Etiam vitae urna orci.
Quisque pellentesque dignissim felis, egestas tempus urna luctus vitae. In hac
habitasse platea dictumst. Morbi fringilla mattis odio, et mattis tellus
accumsan vitae.
1. Amamus Unicode 碁
2. Interdum nex magna.
Vivamus eget mauris sit amet nulla laoreet lobortis. Nulla in diam elementum
risus convallis commodo. Cras vehicula varius dui vitae facilisis. Proin
elementum libero eget leo aliquet quis euismod orci vestibulum. Duis rhoncus
lorem consequat tellus vestibulum aliquam. Quisque orci orci, malesuada porta
blandit et, interdum nec magna.

View File

@ -41,7 +41,7 @@ $endfor$
</tr> </tr>
$for(fielddays)$ $for(fielddays)$
<tr> <tr>
<td>$date$</td> <td>$formatted_date$</td>
<td><a href="$url$">$title$</a><br/>$if(pota-locator)$<strong>POTA</strong>: $pota-locator$ $endif$ $if(wwff-locator)$<strong>WW-FF</strong>: $wwff-locator$ $endif$</td> <td><a href="$url$">$title$</a><br/>$if(pota-locator)$<strong>POTA</strong>: $pota-locator$ $endif$ $if(wwff-locator)$<strong>WW-FF</strong>: $wwff-locator$ $endif$</td>
<td class="d-none d-md-table-cell">$mode$ - $bands$ - $antenna$ antenna<br/>$transceiver$</td> <td class="d-none d-md-table-cell">$mode$ - $bands$ - $antenna$ antenna<br/>$transceiver$</td>
<td class="d-none d-md-table-cell">$total-unique-qso$</td> <td class="d-none d-md-table-cell">$total-unique-qso$</td>

View File

@ -41,7 +41,7 @@ $endfor$
</tr> </tr>
$for(fielddays)$ $for(fielddays)$
<tr> <tr>
<td>$date$</td> <td>$formatted_date$</td>
<td><a href="$url$">$title$</a><br/>$if(pota-locator)$<strong>POTA</strong>: $pota-locator$ $endif$ $if(wwff-locator)$<strong>WW-FF</strong>: $wwff-locator$ $endif$</td> <td><a href="$url$">$title$</a><br/>$if(pota-locator)$<strong>POTA</strong>: $pota-locator$ $endif$ $if(wwff-locator)$<strong>WW-FF</strong>: $wwff-locator$ $endif$</td>
<td class="d-none d-md-table-cell">$mode$ - $bands$ - $antenna$ アンテナ<br/>$transceiver$</td> <td class="d-none d-md-table-cell">$mode$ - $bands$ - $antenna$ アンテナ<br/>$transceiver$</td>
<td class="d-none d-md-table-cell">$total-unique-qso$</td> <td class="d-none d-md-table-cell">$total-unique-qso$</td>

View File

@ -41,7 +41,7 @@ $endfor$
</tr> </tr>
$for(fielddays)$ $for(fielddays)$
<tr> <tr>
<td>$date$</td> <td>$formatted_date$</td>
<td><a href="$url$">$title$</a><br/>$if(pota-locator)$<strong>POTA</strong>: $pota-locator$ $endif$ $if(wwff-locator)$<strong>WW-FF</strong>: $wwff-locator$ $endif$</td> <td><a href="$url$">$title$</a><br/>$if(pota-locator)$<strong>POTA</strong>: $pota-locator$ $endif$ $if(wwff-locator)$<strong>WW-FF</strong>: $wwff-locator$ $endif$</td>
<td class="d-none d-md-table-cell">$mode$ - $bands$ - $antenna$ antenne<br/>$transceiver$</td> <td class="d-none d-md-table-cell">$mode$ - $bands$ - $antenna$ antenne<br/>$transceiver$</td>
<td class="d-none d-md-table-cell">$total-unique-qso$</td> <td class="d-none d-md-table-cell">$total-unique-qso$</td>

View File

@ -35,10 +35,11 @@ main = hakyll $ do
identifier <- getUnderlying identifier <- getUnderlying
metadata <- getMetadata identifier metadata <- getMetadata identifier
let language = lookupString "language" metadata let language = lookupString "language" metadata
let lang = fromMaybe "en" language
pandocCompiler pandocCompiler
>>= loadAndApplyTemplate "templates/post.html" (postCtx language) >>= loadAndApplyTemplate "templates/post.html" (postCtx lang)
>>= loadAndApplyTemplate "templates/default.html" (postCtx language) >>= loadAndApplyTemplate "templates/default.html" (postCtx lang)
>>= relativizeUrls >>= relativizeUrls
match "events/*" $ do match "events/*" $ do
@ -47,10 +48,11 @@ main = hakyll $ do
identifier <- getUnderlying identifier <- getUnderlying
metadata <- getMetadata identifier metadata <- getMetadata identifier
let language = lookupString "language" metadata let language = lookupString "language" metadata
let lang = fromMaybe "en" language
pandocCompiler pandocCompiler
>>= loadAndApplyTemplate "templates/event.html" (postCtx language) >>= loadAndApplyTemplate "templates/event.html" (postCtx lang)
>>= loadAndApplyTemplate "templates/default.html" (postCtx language) >>= loadAndApplyTemplate "templates/default.html" (postCtx lang)
>>= relativizeUrls >>= relativizeUrls
match "pages/en/japan/language/**" $ do match "pages/en/japan/language/**" $ do
@ -59,10 +61,11 @@ main = hakyll $ do
identifier <- getUnderlying identifier <- getUnderlying
metadata <- getMetadata identifier metadata <- getMetadata identifier
let language = lookupString "language" metadata let language = lookupString "language" metadata
let lang = fromMaybe "en" language
pandocCompiler pandocCompiler
>>= loadAndApplyTemplate "templates/japan-language-note.html" (postCtx language) >>= loadAndApplyTemplate "templates/japan-language-note.html" (postCtx lang)
>>= loadAndApplyTemplate "templates/default.html" (postCtx language) >>= loadAndApplyTemplate "templates/default.html" (postCtx lang)
>>= relativizeUrls >>= relativizeUrls
match "pages/*/plamo/equipment/**" $ do match "pages/*/plamo/equipment/**" $ do
@ -71,10 +74,11 @@ main = hakyll $ do
identifier <- getUnderlying identifier <- getUnderlying
metadata <- getMetadata identifier metadata <- getMetadata identifier
let language = lookupString "language" metadata let language = lookupString "language" metadata
let lang = fromMaybe "en" language
pandocCompiler pandocCompiler
>>= loadAndApplyTemplate "templates/equipment.html" (postCtx language) >>= loadAndApplyTemplate "templates/equipment.html" (postCtx lang)
>>= loadAndApplyTemplate "templates/default.html" (postCtx language) >>= loadAndApplyTemplate "templates/default.html" (postCtx lang)
>>= relativizeUrls >>= relativizeUrls
match "pages/*/plamo/model-kits/**" $ do match "pages/*/plamo/model-kits/**" $ do
@ -83,16 +87,17 @@ main = hakyll $ do
identifier <- getUnderlying identifier <- getUnderlying
metadata <- getMetadata identifier metadata <- getMetadata identifier
let language = lookupString "language" metadata let language = lookupString "language" metadata
let lang = fromMaybe "en" language
let dateValue = lookupString "date" metadata let dateValue = lookupString "date" metadata
purchaseDateValue = lookupString "purchase_date" metadata purchaseDateValue = lookupString "purchase_date" metadata
formattedPurchaseDate = maybe "" formatDate purchaseDateValue formattedPurchaseDate = maybe "" (formatDate lang) purchaseDateValue
modelKitTemplate = modelKitTemplate =
if dateValue == Just "1990-01-01" if dateValue == Just "1990-01-01"
then "templates/model-kit-not-ready.html" then "templates/model-kit-not-ready.html"
else "templates/model-kit.html" else "templates/model-kit.html"
extendedCtx = constField "formatted_purchase_date" formattedPurchaseDate <> (postCtx language) extendedCtx = constField "formatted_purchase_date" formattedPurchaseDate <> (postCtx lang)
pandocCompiler pandocCompiler
>>= loadAndApplyTemplate modelKitTemplate extendedCtx >>= loadAndApplyTemplate modelKitTemplate extendedCtx
@ -105,10 +110,11 @@ main = hakyll $ do
identifier <- getUnderlying identifier <- getUnderlying
metadata <- getMetadata identifier metadata <- getMetadata identifier
let language = lookupString "language" metadata let language = lookupString "language" metadata
let lang = fromMaybe "en" language
pandocCompiler pandocCompiler
>>= loadAndApplyTemplate "templates/radio.html" (postCtx language) >>= loadAndApplyTemplate "templates/radio.html" (postCtx lang)
>>= loadAndApplyTemplate "templates/default.html" (postCtx language) >>= loadAndApplyTemplate "templates/default.html" (postCtx lang)
>>= relativizeUrls >>= relativizeUrls
match "pages/*/software/**" $ do match "pages/*/software/**" $ do
@ -117,10 +123,11 @@ main = hakyll $ do
identifier <- getUnderlying identifier <- getUnderlying
metadata <- getMetadata identifier metadata <- getMetadata identifier
let language = lookupString "language" metadata let language = lookupString "language" metadata
let lang = fromMaybe "en" language
pandocCompiler pandocCompiler
-- >>= loadAndApplyTemplate "templates/software-post.html" (postCtx language) -- >>= loadAndApplyTemplate "templates/software-post.html" (postCtx lang)
>>= loadAndApplyTemplate "templates/default.html" (postCtx language) >>= loadAndApplyTemplate "templates/default.html" (postCtx lang)
>>= relativizeUrls >>= relativizeUrls
create ["archive.html"] $ do create ["archive.html"] $ do
@ -133,7 +140,7 @@ main = hakyll $ do
posts <- recentFirst =<< loadAll "posts/*" posts <- recentFirst =<< loadAll "posts/*"
let archiveCtx = let archiveCtx =
listField "posts" (postCtx language) (return posts) <> listField "posts" (postCtx lang) (return posts) <>
constField "title" "Archives" <> constField "title" "Archives" <>
constField "language" lang <> constField "language" lang <>
langDict lang <> langDict lang <>
@ -151,19 +158,16 @@ main = hakyll $ do
]) $ do ]) $ do
route idRoute route idRoute
compile $ do compile $ do
-- ident <- getUnderlying
-- language <- getMetadataField' ident "language"
identifier <- getUnderlying identifier <- getUnderlying
metadata <- getMetadata identifier metadata <- getMetadata identifier
let language = lookupString "language" metadata let language = lookupString "language" metadata
let lang = fromMaybe "en" language let lang = fromMaybe "en" language
let urla = "pages/" ++ lang ++ "/plamo/model-kits/**" let url = "pages/" ++ lang ++ "/plamo/model-kits/**"
kits <- recentFirst =<< loadAll (fromGlob (urla)) kits <- recentFirst =<< loadAll (fromGlob (url))
let plamoCtx = let plamoCtx =
listField "kits" kitCtx (return kits) <> listField "kits" (kitCtx lang) (return kits) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -187,7 +191,7 @@ main = hakyll $ do
notes <- loadAll "pages/en/japan/language/notes/*" notes <- loadAll "pages/en/japan/language/notes/*"
let japanCtx = let japanCtx =
listField "notes" (postCtx language) (return notes) <> listField "notes" (postCtx lang) (return notes) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -213,8 +217,8 @@ main = hakyll $ do
fielddays <- recentFirst fielddays fielddays <- recentFirst fielddays
let radioCtx = let radioCtx =
listField "antenna" (postCtx language) (return antenna) <> listField "antenna" (postCtx lang) (return antenna) <>
listField "fielddays" (postCtx language) (return fielddays) <> listField "fielddays" (postCtx lang) (return fielddays) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -239,7 +243,7 @@ main = hakyll $ do
projects <- recentFirst projects projects <- recentFirst projects
let softwareCtx = let softwareCtx =
listField "projects" (postCtx language) (return projects) <> listField "projects" (postCtx lang) (return projects) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -263,7 +267,7 @@ main = hakyll $ do
blazorPages <- loadAll "pages/en/software/code/blazor/*" blazorPages <- loadAll "pages/en/software/code/blazor/*"
let softwareCtx = let softwareCtx =
listField "blazorPages" (postCtx language) (return blazorPages) <> listField "blazorPages" (postCtx lang) (return blazorPages) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -287,7 +291,7 @@ main = hakyll $ do
elmPages <- loadAll "pages/en/software/code/elm/*" elmPages <- loadAll "pages/en/software/code/elm/*"
let softwareCtx = let softwareCtx =
listField "elmPages" (postCtx language) (return elmPages) <> listField "elmPages" (postCtx lang) (return elmPages) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -311,7 +315,7 @@ main = hakyll $ do
haskellPages <- loadAll "pages/en/software/code/haskell/*" haskellPages <- loadAll "pages/en/software/code/haskell/*"
let softwareCtx = let softwareCtx =
listField "haskellPages" (postCtx language) (return haskellPages) <> listField "haskellPages" (postCtx lang) (return haskellPages) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -335,7 +339,7 @@ main = hakyll $ do
equipment <- loadAll $ (fromGlob ("pages/" ++ lang ++ "/plamo/equipment/*")) equipment <- loadAll $ (fromGlob ("pages/" ++ lang ++ "/plamo/equipment/*"))
let equipmentCtx = let equipmentCtx =
listField "equipment" (postCtx language) (return equipment) <> listField "equipment" (postCtx lang) (return equipment) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -393,8 +397,8 @@ main = hakyll $ do
let indexCtx = let indexCtx =
-- (<> is the modern version of `mappend`.) -- (<> is the modern version of `mappend`.)
listField "posts" (postCtx language) (return posts) <> listField "posts" (postCtx lang) (return posts) <>
listField "events" (postCtx language) (return events) <> listField "events" (postCtx lang) (return events) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -413,29 +417,69 @@ staticPageContext =
langDict "en" <> langDict "en" <>
defaultContext defaultContext
formatDate :: String -> String localeFor :: String -> TimeLocale
formatDate s = localeFor "nl" = dutchLocale
localeFor "jp" = japaneseLocale
localeFor _ = defaultTimeLocale
dutchLocale :: TimeLocale
dutchLocale = defaultTimeLocale
{ months =
[ ("januari", "jan"), ("februari", "feb"), ("maart", "mrt")
, ("april", "apr"), ("mei", "mei"), ("juni", "jun")
, ("juli", "jul"), ("augustus", "aug"), ("september", "sep")
, ("oktober", "okt"), ("november", "nov"), ("december", "dec")
]
}
japaneseLocale :: TimeLocale
japaneseLocale = defaultTimeLocale
{ months =
[ ("1月","1月"), ("2月","2月"), ("3月","3月")
, ("4月","4月"), ("5月","5月"), ("6月","6月")
, ("7月","7月"), ("8月","8月"), ("9月","9月")
, ("10月","10月"), ("11月","11月"), ("12月","12月")
]
}
formatStringFor :: String -> String
formatStringFor "en" = "%e %B %Y"
formatStringFor "nl" = "%e %B %Y"
formatStringFor "jp" = "%Y年 %m月 %e日"
formatStringFor _ = "%e %B %Y"
formatDate :: String -> String -> String
formatDate lang s =
case parseTimeM True defaultTimeLocale "%Y-%m-%d" s :: Maybe Day of case parseTimeM True defaultTimeLocale "%Y-%m-%d" s :: Maybe Day of
Just day -> formatTime defaultTimeLocale "%e %B %Y" day Just day -> formatTime (localeFor lang) (formatStringFor lang) day
Nothing -> s Nothing -> s
postCtx :: Maybe String -> Context String postCtx :: String -> Context String
postCtx language = postCtx language =
let lang = fromMaybe "en" language let
in -- Custom field for formatted date
formattedDateField :: Context String
formattedDateField = field "formatted_date" $ \item -> do
-- Get the metadata for this item
meta <- getMetadata (itemIdentifier item)
let mDate = lookupString "date" meta
return $ maybe "" (formatDate language) mDate
in -- Keep the original "date" field.
dateField "date" "%e %B %Y" <> dateField "date" "%e %B %Y" <>
constField "language" lang <> constField "language" language <>
langDict lang <> formattedDateField <>
langDict language <>
defaultContext defaultContext
kitCtx :: Context String kitCtx :: String -> Context String
kitCtx = kitCtx language =
(field "formatted_purchase_date" $ \item -> do (field "formatted_purchase_date" $ \item -> do
metadata <- getMetadata (itemIdentifier item) metadata <- getMetadata (itemIdentifier item)
let purchaseDateValue = lookupString "purchase_date" metadata let purchaseDateValue = lookupString "purchase_date" metadata
return $ maybe "" formatDate purchaseDateValue return $ maybe "" (formatDate language) purchaseDateValue
) )
<> postCtx Nothing <> (postCtx language)
isUpcoming :: UTCTime -> Item a -> Compiler Bool isUpcoming :: UTCTime -> Item a -> Compiler Bool
isUpcoming cutoff item = do isUpcoming cutoff item = do

View File

@ -1,6 +1,6 @@
<article> <article>
<section class="header"> <section class="header">
Posted on $date$ Posted on $formatted_date$
$if(author)$ $if(author)$
by $author$ by $author$
$endif$ $endif$

View File

@ -1,7 +1,7 @@
<ul> <ul>
$for(events)$ $for(events)$
<li> <li>
$date$ - <a href="$url$">$title$</a> $formatted_date$ - <a href="$url$">$title$</a>
</li> </li>
$endfor$ $endfor$
</ul> </ul>

View File

@ -5,46 +5,46 @@
</section> </section>
<section> <section>
<hr/> <hr/>
Model information <h2>$table-plamo-model-info$</h2>
<table class="table table-striped-columns"> <table class="table table-striped-columns">
$if(model_name)$ $if(model_name)$
<tr><td>Model</td><td>$model_name$</td></tr> <tr><td>$table-plamo-model$</td><td>$model_name$</td></tr>
$endif$ $endif$
$if(scale)$ $if(scale)$
<tr><td>Scale</td><td>$scale$</td></tr> <tr><td>$table-plamo-scale$</td><td>$scale$</td></tr>
$endif$ $endif$
$if(series)$ $if(series)$
<tr><td>Series</td><td>$series$</td></tr> <tr><td>$table-plamo-series$</td><td>$series$</td></tr>
$endif$ $endif$
$if(manufacturer)$ $if(manufacturer)$
<tr><td>Manufacturer</td><td>$manufacturer$</td></tr> <tr><td>$table-plamo-manufacturer$</td><td>$manufacturer$</td></tr>
$endif$ $endif$
$if(release)$ $if(release)$
<tr><td>Release year</td><td>$release$</td></tr> <tr><td>$table-plamo-release-year$</td><td>$release$</td></tr>
$endif$ $endif$
$if(number)$ $if(number)$
<tr> <tr>
<td>Kit number</td><td><a class="external" aria-label="scalemates dot com (opens external site in new tab)" href="https://www.scalemates.com/search.php?fkSECTION%5B%5D=All&q=$number$*" target="_blank" rel="noopener noreferrer">$number$</a></td> <td>$table-plamo-kit-number$</td><td><a class="external" aria-label="scalemates dot com (opens external site in new tab)" href="https://www.scalemates.com/search.php?fkSECTION%5B%5D=All&q=$number$*" target="_blank" rel="noopener noreferrer">$number$</a></td>
</tr> </tr>
$endif$ $endif$
</table> </table>
Purchase information <h2>$table-plamo-purchase-information$</h2>
<table class="table table-striped-columns"> <table class="table table-striped-columns">
$if(purchase_date)$ $if(purchase_date)$
<tr><td>Date</td><td>$formatted_purchase_date$</td></tr> <tr><td>$table-plamo-date$</td><td>$formatted_purchase_date$</td></tr>
$endif$ $endif$
$if(price)$ $if(price)$
<tr><td>Price</td><td>$price$</td></tr> <tr><td>$table-plamo-price$</td><td>$price$</td></tr>
$endif$ $endif$
$if(purchase_store)$ $if(purchase_store)$
<tr><td>Store</td><td>$purchase_store$</td></tr> <tr><td>$table-plamo-store$</td><td>$purchase_store$</td></tr>
$endif$ $endif$
$if(purchase_venue)$ $if(purchase_venue)$
<tr><td>Venue</td><td>$purchase_venue$</td></tr> <tr><td>$table-plamo-venue$</td><td>$purchase_venue$</td></tr>
$endif$ $endif$
$if(purchase_location)$ $if(purchase_location)$
<tr><td>Location</td><td>$purchase_location$</td></tr> <tr><td>$table-plamo-location$</td><td>$purchase_location$</td></tr>
$endif$ $endif$
</table> </table>

View File

@ -1,7 +1,7 @@
<article> <article>
<section class="header"> <section class="header">
<a href="/$language$/plamo.html" class="back-link">$text-plamo-back$</a><br/> <a href="/$language$/plamo.html" class="back-link">$text-plamo-back$</a><br/>
<span class="text-body-secondary">Posted on: $date$</span> <span class="text-body-secondary">Posted on: $formatted_date$</span>
</section> </section>
<section> <section>
<hr/> <hr/>

View File

@ -9,7 +9,7 @@
<div class="col-6 col-md-8"> <div class="col-6 col-md-8">
<div class="card-body"> <div class="card-body">
<p class="card-text fs-xs-smaller"> <p class="card-text fs-xs-smaller">
<em class="text-body-secondary">$date$</em><br/> <em class="text-body-secondary">$formatted_date$</em><br/>
$model_name$<br/> $model_name$<br/>
<span class="badge rounded-pill text-bg-secondary ms-4 text-center">$scale$</span><br/> <span class="badge rounded-pill text-bg-secondary ms-4 text-center">$scale$</span><br/>
$if(series)$ $if(series)$

View File

@ -1,7 +1,7 @@
<ul> <ul>
$for(posts)$ $for(posts)$
<li> <li>
<a href="$url$">$title$</a> - $date$ <a href="$url$">$title$</a> - $formatted_date$
</li> </li>
$endfor$ $endfor$
</ul> </ul>

View File

@ -1,6 +1,6 @@
<article> <article>
<section class="header"> <section class="header">
Posted on $date$ Posted on $formatted_date$
$if(author)$ $if(author)$
by $author$ by $author$
$endif$ $endif$

View File

@ -1,7 +1,7 @@
<article> <article>
<section class="header"> <section class="header">
<a href="/$language$/radio.html" class="back-link">$text-radio-back$</a><br/> <a href="/$language$/radio.html" class="back-link">$text-radio-back$</a><br/>
Posted on $date$ Posted on $formatted_date$
</section> </section>
<section> <section>
$body$ $body$

View File

@ -1,7 +1,7 @@
<ul> <ul>
$for(posts)$ $for(posts)$
<li> <li>
<a href="$url$">$title$</a> - $date$ $formatted_date$ - <a href="$url$">$title$</a>
</li> </li>
$endfor$ $endfor$
</ul> </ul>