WIP books

This commit is contained in:
Mats Rauhala 2019-06-04 23:48:25 +03:00
parent 1ab9c3af46
commit 2e9a9155f8
14 changed files with 79 additions and 5 deletions

2
attributions.md Normal file
View File

@ -0,0 +1,2 @@
- Book by rivercon from the Noun Project
- [Git logo](https://git-scm.com/downloads/logos) by Jason Long

7
books.xml Normal file
View File

@ -0,0 +1,7 @@
<books>
<book>
<date>2019-05-28</date>
<title>Uppo-Nallen talviturkki</title>
<status>read</status>
</book>
</books>

View File

@ -0,0 +1,5 @@
---
title: Uppo-Nalle ja Nukku-Ukko
status: reading
---

View File

@ -0,0 +1,4 @@
---
title: The Fractal Prince
status: reading
---

View File

@ -0,0 +1,4 @@
---
title: Uppo-Nalle ja Nukku-Ukko
status: reading
---

View File

@ -0,0 +1,5 @@
---
title: Uppo-Nallen talviturkki
status: read
---

View File

@ -51,6 +51,15 @@ article .header {
text-decoration: none; text-decoration: none;
} }
.icon {
width: 2.4rem;
height: 2.4rem;
display: inline-flex;
align-self: center;
top: .40em;
position: relative;
}
@media (max-width: 319px) { @media (max-width: 319px) {
body { body {
width: 90%; width: 90%;

1
images/book_read.svg Normal file
View File

@ -0,0 +1 @@
<svg id="read" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="0 0 56 70" style="enable-background:new 0 0 56 56;" xml:space="preserve"><path d="M48.2026367,4.003418c0-0.5522461-0.4477539-1-1-1H17.7766724C17.7706909,3.0032959,17.7657471,3,17.7597656,3 s-0.0109253,0.0032959-0.0169067,0.003418h-4.8380737c-2.8188477,0-5.1118164,2.4799805-5.1118164,5.5288086v38.4257812 c0,0.0093994,0.005127,0.0172119,0.0053711,0.0265503C7.8088379,50.3031616,10.303833,53,13.3701172,53h33.8369141 c0.3862305,0,0.737793-0.2226562,0.9033203-0.5712891c0.1655273-0.3491211,0.1152344-0.762207-0.1289062-1.0615234 c-2.0512695-2.5102539-2.0512695-6.296875,0-8.8071289c0.2003784-0.2456665,0.262085-0.5665894,0.1891479-0.8672485 c0.0089111-0.053772,0.0320435-0.102356,0.0320435-0.1586304V4.003418z M46.2026367,40.9272461H18.7597656V5.003418h27.4428711 V40.9272461z M12.9047852,5.003418h3.8549805v35.9238281h-3.3896484c-1.3610229,0-2.6083374,0.5328979-3.5771484,1.4140625 V8.5322266C9.7929688,6.5864258,11.1889648,5.003418,12.9047852,5.003418z M45.3833008,51H13.3701172 c-1.9702148,0-3.5727539-1.8105469-3.5727539-4.0361328s1.6025391-4.0366211,3.5727539-4.0366211h32.0131836 C44.1420898,45.4414062,44.1420898,48.4858398,45.3833008,51z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

1
images/book_reading.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -6,10 +6,11 @@ let
shell = pkgs.buildEnv { shell = pkgs.buildEnv {
name = "site-shell"; name = "site-shell";
paths = []; paths = [];
buildInputs = [ buildInputs = with haskellPackages; [
haskellPackages.ghcid ghcid
haskellPackages.hasktags hasktags
(haskellPackages.ghcWithHoogle (h: site.buildInputs ++ site.propagatedBuildInputs)) cabal-install
(ghcWithHoogle (h: site.buildInputs ++ site.propagatedBuildInputs))
]; ];
}; };

View File

@ -12,5 +12,8 @@ executable site
build-depends: base == 4.* build-depends: base == 4.*
, hakyll >= 4.10 , hakyll >= 4.10
, time , time
, xml-conduit
, xml-lens
, lens
ghc-options: -threaded ghc-options: -threaded
default-language: Haskell2010 default-language: Haskell2010

23
site.hs
View File

@ -5,6 +5,10 @@ import Hakyll
import Data.List (sortBy, sortOn) import Data.List (sortBy, sortOn)
import Data.Time (formatTime, defaultTimeLocale) import Data.Time (formatTime, defaultTimeLocale)
data Book =
Book { title :: String
, date :: Day
, status :: String }
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
main :: IO () main :: IO ()
@ -31,6 +35,13 @@ main = hakyllWith defaultConfiguration{ deployCommand = "ipfs add -Q -r _site" }
>>= loadAndApplyTemplate "templates/default.html" defaultContext >>= loadAndApplyTemplate "templates/default.html" defaultContext
>>= relativizeUrls >>= relativizeUrls
match "books/*" $ do
route $ setExtension "html"
compile $ pandocCompiler
>>= loadAndApplyTemplate "templates/post.html" postCtx
>>= loadAndApplyTemplate "templates/default.html" postCtx
>>= relativizeUrls
match "posts/incomplete/*" $ do match "posts/incomplete/*" $ do
route $ setExtension "html" route $ setExtension "html"
compile $ pandocCompiler compile $ pandocCompiler
@ -52,6 +63,18 @@ main = hakyllWith defaultConfiguration{ deployCommand = "ipfs add -Q -r _site" }
>>= loadAndApplyTemplate "templates/default.html" postCtx >>= loadAndApplyTemplate "templates/default.html" postCtx
>>= relativizeUrls >>= relativizeUrls
create ["books.html"] $ do
route idRoute
compile $ do
books <- reverse <$> loadAll "books/*"
let ctx = listField "books" postCtx (pure books) <>
constField "title" "Books" <>
defaultContext
makeItem ""
>>= loadAndApplyTemplate "templates/books.html" ctx
>>= loadAndApplyTemplate "templates/default.html" ctx
>>= relativizeUrls
create ["guides.html"] $ do create ["guides.html"] $ do
route idRoute route idRoute
compile $ do compile $ do

9
templates/books.html Normal file
View File

@ -0,0 +1,9 @@
A collection of books I have read lately.
<ul class="books">
$for(books)$
<li>
<img src="/images/book_$status$.svg" class="icon" /><a href="$url$">$title$</a> - $date$
</li>
$endfor$
</ul>

View File

@ -28,7 +28,7 @@
<footer> <footer>
Site proudly generated by Site proudly generated by
<a href="http://jaspervdj.be/hakyll">Hakyll</a> <a href="http://jaspervdj.be/hakyll">Hakyll</a><br />
</footer> </footer>
</body> </body>
</html> </html>