Compare commits
No commits in common. "8263d01b8644a9d26dfb44a65c79b98f50e64270" and "67fb3f8871efcefed419dbf160f14faf6c393316" have entirely different histories.
8263d01b86
...
67fb3f8871
|
@ -30,7 +30,6 @@ handleRecipeDir recipesDir outputDir htmlTemplate indexName recipeSubDirs name =
|
||||||
imageFilenames <-
|
imageFilenames <-
|
||||||
listDirectory dir
|
listDirectory dir
|
||||||
& filterDepGenM (hasExtension (inject ["jpg"]))
|
& filterDepGenM (hasExtension (inject ["jpg"]))
|
||||||
& onToken sort
|
|
||||||
htmlBodyImages <- forDepGenM imageFilenames $ \filename -> do
|
htmlBodyImages <- forDepGenM imageFilenames $ \filename -> do
|
||||||
path <- joinPaths dir filename
|
path <- joinPaths dir filename
|
||||||
path `copyTo` outputDir
|
path `copyTo` outputDir
|
||||||
|
@ -150,7 +149,7 @@ generateSite = do
|
||||||
-- Handle images
|
-- Handle images
|
||||||
imgDir <- inject "img"
|
imgDir <- inject "img"
|
||||||
makeDir $ joinPaths outputDir imgDir
|
makeDir $ joinPaths outputDir imgDir
|
||||||
forM_ ["mad-icon.png", "mad-logo.png", "julekalender.png", "platte.jpg", "køkken.jpg"] $ \name ->
|
forM_ ["mad-icon.png", "mad-logo.png"] $ \name ->
|
||||||
joinPaths imgDir (inject name) `copyTo` outputDir
|
joinPaths imgDir (inject name) `copyTo` outputDir
|
||||||
|
|
||||||
-- Handle fonts
|
-- Handle fonts
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
{-# LANGUAGE GADTs #-}
|
{-# LANGUAGE GADTs #-}
|
||||||
{-# LANGUAGE FunctionalDependencies #-}
|
{-# LANGUAGE FunctionalDependencies #-}
|
||||||
|
|
||||||
-- | Combinators for generating a list of dependencies between calculations, to
|
|
||||||
-- be executed later in DependencyRunner.
|
|
||||||
module Byg.DependencyGenerator
|
module Byg.DependencyGenerator
|
||||||
( DepGenM
|
( DepGenM
|
||||||
, DepGenM'
|
, DepGenM'
|
||||||
|
|
|
@ -1,11 +1,4 @@
|
||||||
{-# LANGUAGE MonoLocalBinds #-}
|
{-# LANGUAGE MonoLocalBinds #-}
|
||||||
|
|
||||||
-- | Run the actual operations from the generated dependencies from DependencyGenerator.
|
|
||||||
--
|
|
||||||
-- This does not work fully as intended right now (computes more than strictly
|
|
||||||
-- needed) and needs to be rewritten in a more testable way. The idea is to only
|
|
||||||
-- evaluate something if a future operation depends on it, which is reflected in
|
|
||||||
-- the ValueExistence type.
|
|
||||||
module Byg.DependencyRunner
|
module Byg.DependencyRunner
|
||||||
( DepRunM
|
( DepRunM
|
||||||
, runDeps
|
, runDeps
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
-- | All byg functions.
|
|
||||||
module Byg.Functions
|
module Byg.Functions
|
||||||
( module Byg.Functions.Image
|
( module Byg.Functions.Image
|
||||||
, module Byg.Functions.Pandoc
|
, module Byg.Functions.Pandoc
|
||||||
|
|
|
@ -23,10 +23,7 @@ runPandoc m = case P.runPure m of
|
||||||
|
|
||||||
readMarkdown :: TokenableTo Text a => a -> DepGenM (Token Pandoc)
|
readMarkdown :: TokenableTo Text a => a -> DepGenM (Token Pandoc)
|
||||||
readMarkdown = onToken $ runPandoc . P.readMarkdown settings
|
readMarkdown = onToken $ runPandoc . P.readMarkdown settings
|
||||||
where settings = P.def { P.readerExtensions = P.extensionsFromList
|
where settings = P.def { P.readerExtensions = P.extensionsFromList [ P.Ext_raw_html ] }
|
||||||
[ P.Ext_raw_html
|
|
||||||
, P.Ext_escaped_line_breaks
|
|
||||||
] }
|
|
||||||
|
|
||||||
writeHtml :: TokenableTo Pandoc a => a -> DepGenM (Token Text)
|
writeHtml :: TokenableTo Pandoc a => a -> DepGenM (Token Text)
|
||||||
writeHtml = onToken $ runPandoc . P.writeHtml5String P.def
|
writeHtml = onToken $ runPandoc . P.writeHtml5String P.def
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
-- | All byg types.
|
|
||||||
module Byg.Types
|
module Byg.Types
|
||||||
( module Byg.Types.Token
|
( module Byg.Types.Token
|
||||||
, module Byg.Types.Value
|
, module Byg.Types.Value
|
||||||
, module Byg.Types.Functions
|
, module Byg.Types.Functions
|
||||||
, module Byg.Types.Date
|
, module Byg.Types.Date
|
||||||
, module Byg.Types.Dependency
|
, Dependency
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Byg.Types.Token
|
import Byg.Types.Token
|
||||||
import Byg.Types.Value
|
import Byg.Types.Value
|
||||||
import Byg.Types.Functions
|
import Byg.Types.Functions
|
||||||
import Byg.Types.Date
|
import Byg.Types.Date
|
||||||
import Byg.Types.Dependency
|
import Byg.Types.Dependency (Dependency)
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
-- | Date functions.
|
|
||||||
module Byg.Types.Date
|
module Byg.Types.Date
|
||||||
( Date(..)
|
( Date(..)
|
||||||
, formatDate
|
, formatDate
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
{-# LANGUAGE GADTs #-}
|
{-# LANGUAGE GADTs #-}
|
||||||
|
|
||||||
-- | Keeps track of the graph of calculation dependencies.
|
|
||||||
module Byg.Types.Dependency
|
module Byg.Types.Dependency
|
||||||
( Action(..)
|
( Action(..)
|
||||||
, F(..)
|
, F(..)
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
{-# LANGUAGE FunctionalDependencies #-}
|
{-# LANGUAGE FunctionalDependencies #-}
|
||||||
|
|
||||||
-- | Calculation function types.
|
|
||||||
module Byg.Types.Functions
|
module Byg.Types.Functions
|
||||||
( IsFunctionIO(..)
|
( IsFunctionIO(..)
|
||||||
) where
|
) where
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
{-# LANGUAGE GADTs #-}
|
{-# LANGUAGE GADTs #-}
|
||||||
|
|
||||||
-- | Tokens represent future values.
|
|
||||||
module Byg.Types.Token
|
module Byg.Types.Token
|
||||||
( Token(..)
|
( Token(..)
|
||||||
) where
|
) where
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
{-# LANGUAGE MonoLocalBinds #-}
|
{-# LANGUAGE MonoLocalBinds #-}
|
||||||
|
|
||||||
-- | Small wrapper over the Dynamic type.
|
|
||||||
module Byg.Types.Value
|
module Byg.Types.Value
|
||||||
( Value(..)
|
( Value(..)
|
||||||
, toValue
|
, toValue
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
BIN
img/køkken.jpg
BIN
img/køkken.jpg
Binary file not shown.
Before Width: | Height: | Size: 125 KiB |
BIN
img/platte.jpg
BIN
img/platte.jpg
Binary file not shown.
Before Width: | Height: | Size: 113 KiB |
12
om.md
12
om.md
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
Jeg håber at du kan blive inspireret af de retter jeg har fundet på.
|
Jeg håber at du kan blive inspireret af de retter jeg har fundet på.
|
||||||
|
|
||||||
![Mig der holder en platte med hjemmesidens adresse på](/img/platte.jpg)
|
|
||||||
|
|
||||||
|
|
||||||
## Samarbejde?
|
## Samarbejde?
|
||||||
|
|
||||||
|
@ -17,26 +15,24 @@ Da jeg i 2012 flyttede hjemmefra for at studere i København, begyndte jeg også
|
||||||
|
|
||||||
## Retter
|
## Retter
|
||||||
|
|
||||||
Klik på [Alle retter](/retter/)-fanen i toppen af siden for at se alle mine madretter.
|
Klik på [Retter](/retter/)-fanen i toppen af siden for at se alle mine madretter.
|
||||||
|
|
||||||
|
|
||||||
## Atom-feed
|
## Atom-feed
|
||||||
|
|
||||||
Klik på [Feed](/atom.xml)-fanen i toppen af siden for at tilgå et Atom-feed med madretterne. (Læs mere om Atom på [RFC 4287](https://datatracker.ietf.org/doc/html/rfc4287).)
|
Klik på [Feed](/atom.xml)-fanen i toppen af siden for at tilgå et Atom-feed med madretterne.
|
||||||
|
|
||||||
|
|
||||||
## Licens
|
## Licens
|
||||||
|
|
||||||
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><span property="dct:title">Niels' mad</span> af <span property="cc:attributionName">Niels G. W. Serup</span> er licenseret under <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.da" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY-SA 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1" alt=""></a>.</p>
|
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><span property="dct:title">Niels' mad</span> af <span property="cc:attributionName">Niels G. W. Serup</span> er licenseret under <a href="https://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY-SA 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1" alt=""></a></p>
|
||||||
|
|
||||||
|
|
||||||
## Hjemmesidegenerator
|
## Hjemmesidegenerator
|
||||||
|
|
||||||
For at lave denne madblog var jeg nødt til at skrive en ny statisk hjemmesidegenerator i programmeringssproget Haskell. Den har fokus på ergonomisk afhængighedsnedskrivning og effektiv regenerering af kun det nødvendige. Den er ikke helt færdig. Se mere her:
|
For at lave denne madblog var jeg nødt til at skrive en ny statisk hjemmesidegenerator i programmeringssproget Haskell. Den har fokus på ergonomisk afhængighedsnedskrivning og effektiv generering af kun det nødvendige. Se mere her:
|
||||||
|
|
||||||
|
|
||||||
## English
|
## English
|
||||||
|
|
||||||
Hi, this is my food blog in Danish, but feel free to browse around even if you're new to the language. You can also look at the pictures.
|
Hi, this is my food blog in Danish, but feel free to browse around even if you're new to the language. You can also look at the pictures.
|
||||||
|
|
||||||
![Mit gamle køkken](/img/køkken.jpg)
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.2 MiB |
|
@ -1,25 +0,0 @@
|
||||||
# Olivenkage
|
|
||||||
|
|
||||||
*Oprindelig dato: 2012*
|
|
||||||
|
|
||||||
## Ingredienser
|
|
||||||
- Oliven i glas
|
|
||||||
- Æg
|
|
||||||
|
|
||||||
## Inspirationer
|
|
||||||
- Længsler efter middelhavsstrøg
|
|
||||||
- "Think different"-kampagnesloganet fra Apple
|
|
||||||
|
|
||||||
## Opskrift
|
|
||||||
1. Bland sammen.
|
|
||||||
|
|
||||||
## Baggrund
|
|
||||||
Overrask dine venner med denne nyklassiker. Som penselsstrøg på panden formes æggene, og med velsmagende olivenbidder brydes monotonien, så der er to smage.
|
|
||||||
|
|
||||||
Under stegningen ændrer ens udvalgte oliven tekstur så de føles lidt anderledes at spise end hvis man spiser dem direkte ud af glasset.
|
|
||||||
|
|
||||||
Denne ret er essencen af følgende citat:
|
|
||||||
|
|
||||||
> Smil, og verden smiller til dig
|
|
||||||
>
|
|
||||||
> *Indsendt til <https://www.udvalgte-ordsprog.dk/kendte-citater.htm>*
|
|
22
style.css
22
style.css
|
@ -128,25 +128,3 @@ p.image {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
blockquote {
|
|
||||||
background-color: #dddd31;
|
|
||||||
padding: 10px;
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
em {
|
|
||||||
display: block;
|
|
||||||
text-align: right;
|
|
||||||
color: grey;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#julekalender {
|
|
||||||
height: 100px;
|
|
||||||
background-image: url('img/julekalender.png');
|
|
||||||
background-position: center;
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
<title>Niels' mad</title>
|
<title>Niels' mad</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="julekalender"></div>
|
|
||||||
<header><a href="/"> Niels' mad </a></header>
|
<header><a href="/"> Niels' mad </a></header>
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
|
|
Loading…
Reference in New Issue