1
0

Compare commits

..

No commits in common. "39e59c91afa343588a9422fe13bc35a24880d8e5" and "8059296e7363813abb1fd01d5a9afe8f2fe14b03" have entirely different histories.

14 changed files with 86 additions and 111 deletions

19
portfolio/about.rst Normal file
View File

@ -0,0 +1,19 @@
---
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>$formatted_date$</td> <td>$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>$formatted_date$</td> <td>$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>$formatted_date$</td> <td>$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,11 +35,10 @@ 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 lang) >>= loadAndApplyTemplate "templates/post.html" (postCtx language)
>>= loadAndApplyTemplate "templates/default.html" (postCtx lang) >>= loadAndApplyTemplate "templates/default.html" (postCtx language)
>>= relativizeUrls >>= relativizeUrls
match "events/*" $ do match "events/*" $ do
@ -48,11 +47,10 @@ 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 lang) >>= loadAndApplyTemplate "templates/event.html" (postCtx language)
>>= loadAndApplyTemplate "templates/default.html" (postCtx lang) >>= loadAndApplyTemplate "templates/default.html" (postCtx language)
>>= relativizeUrls >>= relativizeUrls
match "pages/en/japan/language/**" $ do match "pages/en/japan/language/**" $ do
@ -61,11 +59,10 @@ 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 lang) >>= loadAndApplyTemplate "templates/japan-language-note.html" (postCtx language)
>>= loadAndApplyTemplate "templates/default.html" (postCtx lang) >>= loadAndApplyTemplate "templates/default.html" (postCtx language)
>>= relativizeUrls >>= relativizeUrls
match "pages/*/plamo/equipment/**" $ do match "pages/*/plamo/equipment/**" $ do
@ -74,11 +71,10 @@ 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 lang) >>= loadAndApplyTemplate "templates/equipment.html" (postCtx language)
>>= loadAndApplyTemplate "templates/default.html" (postCtx lang) >>= loadAndApplyTemplate "templates/default.html" (postCtx language)
>>= relativizeUrls >>= relativizeUrls
match "pages/*/plamo/model-kits/**" $ do match "pages/*/plamo/model-kits/**" $ do
@ -87,17 +83,16 @@ 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 lang) purchaseDateValue formattedPurchaseDate = maybe "" formatDate 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 lang) extendedCtx = constField "formatted_purchase_date" formattedPurchaseDate <> (postCtx language)
pandocCompiler pandocCompiler
>>= loadAndApplyTemplate modelKitTemplate extendedCtx >>= loadAndApplyTemplate modelKitTemplate extendedCtx
@ -110,11 +105,10 @@ 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 lang) >>= loadAndApplyTemplate "templates/radio.html" (postCtx language)
>>= loadAndApplyTemplate "templates/default.html" (postCtx lang) >>= loadAndApplyTemplate "templates/default.html" (postCtx language)
>>= relativizeUrls >>= relativizeUrls
match "pages/*/software/**" $ do match "pages/*/software/**" $ do
@ -123,11 +117,10 @@ 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 lang) -- >>= loadAndApplyTemplate "templates/software-post.html" (postCtx language)
>>= loadAndApplyTemplate "templates/default.html" (postCtx lang) >>= loadAndApplyTemplate "templates/default.html" (postCtx language)
>>= relativizeUrls >>= relativizeUrls
create ["archive.html"] $ do create ["archive.html"] $ do
@ -140,7 +133,7 @@ main = hakyll $ do
posts <- recentFirst =<< loadAll "posts/*" posts <- recentFirst =<< loadAll "posts/*"
let archiveCtx = let archiveCtx =
listField "posts" (postCtx lang) (return posts) <> listField "posts" (postCtx language) (return posts) <>
constField "title" "Archives" <> constField "title" "Archives" <>
constField "language" lang <> constField "language" lang <>
langDict lang <> langDict lang <>
@ -158,16 +151,19 @@ 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 url = "pages/" ++ lang ++ "/plamo/model-kits/**" let urla = "pages/" ++ lang ++ "/plamo/model-kits/**"
kits <- recentFirst =<< loadAll (fromGlob (url)) kits <- recentFirst =<< loadAll (fromGlob (urla))
let plamoCtx = let plamoCtx =
listField "kits" (kitCtx lang) (return kits) <> listField "kits" kitCtx (return kits) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -191,7 +187,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 lang) (return notes) <> listField "notes" (postCtx language) (return notes) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -217,8 +213,8 @@ main = hakyll $ do
fielddays <- recentFirst fielddays fielddays <- recentFirst fielddays
let radioCtx = let radioCtx =
listField "antenna" (postCtx lang) (return antenna) <> listField "antenna" (postCtx language) (return antenna) <>
listField "fielddays" (postCtx lang) (return fielddays) <> listField "fielddays" (postCtx language) (return fielddays) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -243,7 +239,7 @@ main = hakyll $ do
projects <- recentFirst projects projects <- recentFirst projects
let softwareCtx = let softwareCtx =
listField "projects" (postCtx lang) (return projects) <> listField "projects" (postCtx language) (return projects) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -267,7 +263,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 lang) (return blazorPages) <> listField "blazorPages" (postCtx language) (return blazorPages) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -291,7 +287,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 lang) (return elmPages) <> listField "elmPages" (postCtx language) (return elmPages) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -315,7 +311,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 lang) (return haskellPages) <> listField "haskellPages" (postCtx language) (return haskellPages) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -339,7 +335,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 lang) (return equipment) <> listField "equipment" (postCtx language) (return equipment) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -397,8 +393,8 @@ main = hakyll $ do
let indexCtx = let indexCtx =
-- (<> is the modern version of `mappend`.) -- (<> is the modern version of `mappend`.)
listField "posts" (postCtx lang) (return posts) <> listField "posts" (postCtx language) (return posts) <>
listField "events" (postCtx lang) (return events) <> listField "events" (postCtx language) (return events) <>
langDict lang <> langDict lang <>
defaultContext defaultContext
@ -417,69 +413,29 @@ staticPageContext =
langDict "en" <> langDict "en" <>
defaultContext defaultContext
localeFor :: String -> TimeLocale formatDate :: String -> String
localeFor "nl" = dutchLocale formatDate s =
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 (localeFor lang) (formatStringFor lang) day Just day -> formatTime defaultTimeLocale "%e %B %Y" day
Nothing -> s Nothing -> s
postCtx :: String -> Context String postCtx :: Maybe String -> Context String
postCtx language = postCtx language =
let let lang = fromMaybe "en" language
-- Custom field for formatted date in
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" language <> constField "language" lang <>
formattedDateField <> langDict lang <>
langDict language <>
defaultContext defaultContext
kitCtx :: String -> Context String kitCtx :: Context String
kitCtx language = kitCtx =
(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 language) purchaseDateValue return $ maybe "" formatDate purchaseDateValue
) )
<> (postCtx language) <> postCtx Nothing
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 $formatted_date$ Posted on $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>
$formatted_date$ - <a href="$url$">$title$</a> $date$ - <a href="$url$">$title$</a>
</li> </li>
$endfor$ $endfor$
</ul> </ul>

View File

@ -5,46 +5,46 @@
</section> </section>
<section> <section>
<hr/> <hr/>
<h2>$table-plamo-model-info$</h2> Model information
<table class="table table-striped-columns"> <table class="table table-striped-columns">
$if(model_name)$ $if(model_name)$
<tr><td>$table-plamo-model$</td><td>$model_name$</td></tr> <tr><td>Model</td><td>$model_name$</td></tr>
$endif$ $endif$
$if(scale)$ $if(scale)$
<tr><td>$table-plamo-scale$</td><td>$scale$</td></tr> <tr><td>Scale</td><td>$scale$</td></tr>
$endif$ $endif$
$if(series)$ $if(series)$
<tr><td>$table-plamo-series$</td><td>$series$</td></tr> <tr><td>Series</td><td>$series$</td></tr>
$endif$ $endif$
$if(manufacturer)$ $if(manufacturer)$
<tr><td>$table-plamo-manufacturer$</td><td>$manufacturer$</td></tr> <tr><td>Manufacturer</td><td>$manufacturer$</td></tr>
$endif$ $endif$
$if(release)$ $if(release)$
<tr><td>$table-plamo-release-year$</td><td>$release$</td></tr> <tr><td>Release year</td><td>$release$</td></tr>
$endif$ $endif$
$if(number)$ $if(number)$
<tr> <tr>
<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> <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>
</tr> </tr>
$endif$ $endif$
</table> </table>
<h2>$table-plamo-purchase-information$</h2> Purchase information
<table class="table table-striped-columns"> <table class="table table-striped-columns">
$if(purchase_date)$ $if(purchase_date)$
<tr><td>$table-plamo-date$</td><td>$formatted_purchase_date$</td></tr> <tr><td>Date</td><td>$formatted_purchase_date$</td></tr>
$endif$ $endif$
$if(price)$ $if(price)$
<tr><td>$table-plamo-price$</td><td>$price$</td></tr> <tr><td>Price</td><td>$price$</td></tr>
$endif$ $endif$
$if(purchase_store)$ $if(purchase_store)$
<tr><td>$table-plamo-store$</td><td>$purchase_store$</td></tr> <tr><td>Store</td><td>$purchase_store$</td></tr>
$endif$ $endif$
$if(purchase_venue)$ $if(purchase_venue)$
<tr><td>$table-plamo-venue$</td><td>$purchase_venue$</td></tr> <tr><td>Venue</td><td>$purchase_venue$</td></tr>
$endif$ $endif$
$if(purchase_location)$ $if(purchase_location)$
<tr><td>$table-plamo-location$</td><td>$purchase_location$</td></tr> <tr><td>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: $formatted_date$</span> <span class="text-body-secondary">Posted on: $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">$formatted_date$</em><br/> <em class="text-body-secondary">$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> - $formatted_date$ <a href="$url$">$title$</a> - $date$
</li> </li>
$endfor$ $endfor$
</ul> </ul>

View File

@ -1,6 +1,6 @@
<article> <article>
<section class="header"> <section class="header">
Posted on $formatted_date$ Posted on $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 $formatted_date$ Posted on $date$
</section> </section>
<section> <section>
$body$ $body$

View File

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