Skip to content

Commit

Permalink
Merge pull request #31 from krymtkts/feature/refactor-path
Browse files Browse the repository at this point in the history
Path Refactoring
  • Loading branch information
krymtkts committed Jul 29, 2023
2 parents 86bda10 + bfd4311 commit 9e8e361
Show file tree
Hide file tree
Showing 4 changed files with 323 additions and 265 deletions.
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
"type": "module",
"scripts": {
"postinstall": "dotnet tool restore",
"dev": "dotnet fsi ./dev-server.fsx",
"build": "dotnet fable src --runScript"
"serve": "dotnet fsi ./dev-server.fsx",
"build": "dotnet fable src --runScript",
"dev": "npm run build dev && npm run serve"
},
"version": "1.0.0",
"devDependencies": {
Expand Down
142 changes: 29 additions & 113 deletions src/App.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2,118 +2,34 @@ module App

open StaticWebGenerator

type Mode =
| Development
| Production
render
{ stage = dev
lang = "ja"
siteName = "Blog Title"
description = "Blog Description"
siteUrl = "https://krymtkts.github.io"
pathRoot = "/blog-fable"
copyright = "2023 krymtkts"
favicon = "/img/favicon.ico"

src = "contents"
dst = "docs"

postsRoot = "/posts"
postsTitle = "Posts"
pagesRoot = "/pages"
paesTitle = "Pages"
tagsRoot = "/tags"
tagsTitle = "Tags"
archivesRoot = "/archives"
archivesTitle = "Archives"

feed = "feed"

additionalNavs =
[ Link
{ text = "About Me"
path = "/pages/about.html"
sitemap = No } ]

let private render stage =
promise {
let siteName = "Blog Title"
let description = "Blog Description"
let copyright = "2023 krymtkts"

let navi =
[ Title
{ text = siteName
path = "/blog-fable/index.html"
sitemap = Yes "1.0" }
Link
{ text = "Archives"
path = "/blog-fable/archives.html"
sitemap = Yes "0.9" }
Link
{ text = "Tags"
path = "/blog-fable/tags.html"
sitemap = Yes "0.9" }
Link
{ text = "About Me"
path = "/blog-fable/pages/about.html"
sitemap = No }
Link
{ text = "RSS"
path = "/blog-fable/feed.xml"
sitemap = No } ]

let navbar, navSitemap = generateNavbar navi

let devInjection, devScript =
match stage with
| Development ->
Some("/blog-fable/live-reload.js"), [ ("js/live-reload.js", "docs/blog-fable/live-reload.js") ]
| Production -> None, []

let site: FixedSiteContent =
{ lang = "ja"
navbar = navbar
name = siteName
title = siteName
description = description
url = "https://krymtkts.github.io/blog-fable"
copyright = copyright
favicon = "/blog-fable/img/favicon.ico"
devInjection = devInjection }

let renderPostAndPages = renderMarkdowns site "/blog-fable/tags"
let! metaPosts = renderPostAndPages "contents/posts" "docs/blog-fable/posts"
let! metaPages = renderPostAndPages "contents/pages" "docs/blog-fable/pages"

do! renderIndex site "/blog-fable/tags" metaPosts "docs/blog-fable/index.html"

let archiveDefs =
[ Posts
{ title = "Posts"
metas = metaPosts
root = "/blog-fable/posts"
priority = "0.8" }
Pages
{ title = "Pages"
metas = metaPages
root = "/blog-fable/pages"
priority = "0.8" } ]

let! archiveLocs = renderArchives site archiveDefs "docs/blog-fable/archives.html"

let tagDef =
{ title = "Tags"
metas = Seq.concat [ metaPosts; metaPages ]
root = "/blog-fable/tags"
postRoot = "/blog-fable/posts"
priority = "0.9" }

let! tagLocs = renderTags site tagDef "docs/blog-fable/tags.html"
do! render404 site "docs/blog-fable/404.html"

do!
renderSitemap
"https://krymtkts.github.io"
"docs/blog-fable/sitemap.xml"
(Seq.concat [ navSitemap
tagLocs
archiveLocs ])

do!
renderFeed
{ title = siteName
description = description
link = "https://krymtkts.github.io/blog-fable"
feed = "/feed.xml"
generator = "blog-fable"
postRoot = "/posts"
posts = metaPosts }
"docs/blog-fable/feed.xml"

do!
copyResources
<| [ ("contents/img/favicon.ico", "docs/blog-fable/img/favicon.ico") ]
@ devScript

printfn "Render complete!"
}
|> ignore

let dev =
match List.ofSeq argv with
| [ _; _; mode ] when mode = "dev" -> Development
| _ -> Production

render dev
5 changes: 3 additions & 2 deletions src/Common.fs
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@ module Misc =
name: string
title: string
description: string
pathRoot: string
url: string
copyright: string
favicon: string
Expand Down Expand Up @@ -245,10 +246,10 @@ module Misc =
| Some src ->
Html.script [ prop.lang "javascript"
prop.type' "text/javascript"
prop.src src ]
prop.src $"{site.pathRoot}{src}" ]
| None -> null ] ]

let getDistPath (source: string) (dir: string) =
let getDestinationPath (source: string) (dir: string) =
Directory.leaf source
|> Util.mdToHtml
|> Directory.join2 dir
Expand Down

0 comments on commit 9e8e361

Please sign in to comment.