From 77a53e06a588e0134b0321107add708b9ab8fd68 Mon Sep 17 00:00:00 2001 From: rhiannon morris Date: Sat, 24 Jul 2021 03:35:02 +0200 Subject: [PATCH] first --- .gitignore | 3 + .gitmodules | 3 + Makefile | 112 ++++++++++++ blog-meta/all-tags.hs | 108 +++++++++++ blog-meta/blog-meta.cabal | 51 ++++++ blog-meta/lib/Misc.hs | 22 +++ blog-meta/lib/YAML.hs | 52 ++++++ blog-meta/nice-date.hs | 45 +++++ blog-meta/post-lists.hs | 100 +++++++++++ cabal.project | 8 + lang | 1 + posts/index.md | 16 ++ style/counters.css | 66 +++++++ style/page.css | 369 ++++++++++++++++++++++++++++++++++++++ style/paper.png | Bin 0 -> 85055 bytes templates/foot.html | 11 ++ templates/head.html | 24 +++ templates/meta.html | 15 ++ templates/post.html | 46 +++++ templates/postlist.html | 9 + templates/taglist.html | 9 + 21 files changed, 1070 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Makefile create mode 100644 blog-meta/all-tags.hs create mode 100644 blog-meta/blog-meta.cabal create mode 100644 blog-meta/lib/Misc.hs create mode 100644 blog-meta/lib/YAML.hs create mode 100644 blog-meta/nice-date.hs create mode 100644 blog-meta/post-lists.hs create mode 100644 cabal.project create mode 160000 lang create mode 100644 posts/index.md create mode 100644 style/counters.css create mode 100644 style/page.css create mode 100644 style/paper.png create mode 100644 templates/foot.html create mode 100644 templates/head.html create mode 100644 templates/meta.html create mode 100644 templates/post.html create mode 100644 templates/postlist.html create mode 100644 templates/taglist.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d2a6a5a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +dist-newstyle +_build +_tmp diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..b574c1b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lang"] + path = lang + url = https://git.rhiannon.website/rhi/lang diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f6dc4bc --- /dev/null +++ b/Makefile @@ -0,0 +1,112 @@ +HOST ?= rhiannon.website +REMOTE_USER ?= www-data +IDFILE ?= ~/.ssh/xyz +REMOTE_DIR ?= blog + +TMPDIR ?= _tmp +BUILDDIR ?= _build +POSTSDIR ?= posts +TEMPLATEDIR ?= templates + +STATICEXTS := yaml + +POSTS != find $(POSTSDIR) -name '*.md' +STATICS != parallel find $(POSTSDIR) -name '\*.{}' ::: $(STATICEXTS) +OUTPUTPOSTS = \ + $(patsubst $(POSTSDIR)/%.md,$(BUILDDIR)/%.html,$(POSTS)) \ + $(patsubst $(POSTSDIR)/%,$(BUILDDIR)/%,$(STATICS)) \ + $(BUILDDIR)/all-posts.html + +STYLE != find style -type f +OUTPUTSTYLE = $(patsubst %,$(BUILDDIR)/%,$(STYLE)) + +OUTPUT = $(OUTPUTPOSTS) $(OUTPUTSTYLE) + +LANGFILTER = $(TMPDIR)/langfilter +LAANTAS_SCRIPT = $(TMPDIR)/laantas-script +ALL_TAGS = $(TMPDIR)/all-tags +POST_LISTS = $(TMPDIR)/post-lists +NICE_DATE = $(TMPDIR)/nice-date +EXECS = \ + $(LANGFILTER) $(LAANTAS_SCRIPT) \ + $(ALL_TAGS) $(POST_LISTS) $(NICE_DATE) + +CABAL_FLAGS ?= -O -v0 + +.PHONY: all +all: build + +.PHONY: build +build: $(EXECS) $(OUTPUT) + + +POSTDEPS = $(TEMPLATEDIR)/* $(LANGFILTER) $(LAANTAS_SCRIPT) + +$(TMPDIR)/all-tags.md $(TMPDIR)/tags.mk &: $(POSTS) $(ALL_TAGS) + @echo "[all-tags]" + $(ALL_TAGS) $(POSTSDIR) $(TMPDIR)/all-tags.md $(TMPDIR)/tags.mk +build: $(BUILDDIR)/all-tags.html +include $(TMPDIR)/tags.mk + +$(BUILDDIR)/%.html: $(POSTSDIR)/%.md $(POSTDEPS) ; $(call pandoc,post) +$(BUILDDIR)/%.html: $(TMPDIR)/%.md $(POSTDEPS) ; $(call pandoc,meta) + +define pandoc + @echo "[pandoc] $<" + mkdir -p $(dir $@) + mkdir -p $(basename $@) + LAANTAS_SCRIPT="$(LAANTAS_SCRIPT)" \ + DIRNAME="$(basename $@)" \ + FILENAME="$@" \ + pandoc -s --toc --template $(TEMPLATEDIR)/$(1).html -o $@ $< \ + --filter $(LANGFILTER) --filter $(NICE_DATE) --mathjax +endef + + +$(BUILDDIR)/%: $(POSTSDIR)/% ; $(copy) +$(BUILDDIR)/%: $(TMPDIR)/% ; $(copy) +$(BUILDDIR)/%: % ; $(copy) + +define copy + @echo "[copy] $<" + mkdir -p $(dir $@) + cp $< $@ +endef + + +BLOG_META_DEPS != find blog-meta -type f + +$(LANGFILTER): lang/langfilter/* ; $(call cabal-exe) +$(LAANTAS_SCRIPT): lang/laantas-script/* ; $(call cabal-exe) +$(ALL_TAGS): $(BLOG_META_DEPS) ; $(call cabal-exe,blog-meta:) +$(POST_LISTS): $(BLOG_META_DEPS) ; $(call cabal-exe,blog-meta:) +$(NICE_DATE): $(BLOG_META_DEPS) ; $(call cabal-exe,blog-meta:) + +define cabal-exe + @echo "[build] $(notdir $@)" + cabal build $(1)$(notdir $@) $(CABAL_FLAGS) + mkdir -p $(dir $@) + find dist-newstyle -name $(notdir $@) -type f -exec cp {} $(TMPDIR) \; +endef + + +upload: build + @echo "[upload]" + @rsync --recursive --partial --progress --copy-links \ + --compress --human-readable --hard-links --size-only \ + --delete --delete-after \ + --rsh='ssh -l $(REMOTE_USER) -i $(IDFILE)' \ + $(BUILDDIR)/ $(HOST):$(REMOTE_DIR)/ + + + +.PHONY: clean distclean +clean: + @echo "[clean]" + rm -rf $(BUILDDIR) + rm -rf $(TMPDIR) +distclean: clean + @echo "[distclean]" + cabal clean + +.SILENT: diff --git a/blog-meta/all-tags.hs b/blog-meta/all-tags.hs new file mode 100644 index 0000000..7276943 --- /dev/null +++ b/blog-meta/all-tags.hs @@ -0,0 +1,108 @@ +{-# LANGUAGE NamedFieldPuns #-} +module Main (main) where + +import qualified Data.ByteString.Lazy as LazyBS +import Data.Foldable +import Data.Function ((&)) +import qualified Data.Map.Strict as Map +import Data.Set (Set) +import qualified Data.Set as Set +import Data.Text (Text) +import Misc +import qualified System.FilePath.Find as Find +import YAML ((##=), (.!=), (.:)) +import qualified YAML +import System.Environment +import qualified Data.Text.IO as Text +import qualified Data.Text as Text +import Data.Char + + +main :: IO () +main = do + Opts {dir, yaml, make} <- getOptions + files <- Find.findL True (pure True) (Find.extension Find.==? ".md") dir + tags <- traverse getTags files + LazyBS.writeFile yaml $ makeYAML tags + Text.writeFile make $ makeMake tags + +getTags :: FilePath -> IO (Set Text) +getTags file = do + yaml <- YAML.readHeader file + list <- unwrap file $ YAML.parseEither $ + yaml & YAML.withMap "yaml header" \m -> m .: "tags" .!= [] + pure $ Set.fromList list + +makeYAML :: [Set Text] -> LazyBS.ByteString +makeYAML tags = "---\n" <> yaml <> "\n...\n" where + yaml = YAML.encode1 $ YAML.obj + [("title" ##= YAML.str "all tags"), + ("tags" ##= collate tags)] + +makeMake :: [Set Text] -> Text +makeMake tags' = Text.unlines $ build : allPosts : map makeRule tags where + build = Text.unwords $ + "build:" : ["$(BUILDDIR)/" <> t <> ".html" | + t <- ["all-tags", "all-posts"] <> map slug' tags] + makeRule' opt title file = + "$(TMPDIR)/" <> file <> ".md : $(POSTS) $(POST_LISTS)\n\ + \\t@echo \"[post-lists] $<\"\n\ + \\t$(POST_LISTS) " <> opt <> " --out $@ \\\n\ + \\t $(POSTSDIR) \"" <> title <> "\"" + allPosts = makeRule' "" "all posts" "all-posts" + makeRule t = + makeRule' ("--tag \"" <> name t <> "\"") + ("posts tagged ‘" <> name t <> "’") + (slug' t) + slug' (Tag {slug}) = "tag-" <> slug + tags = collate tags' + +data Tag = + Tag { + name :: !Text, + slug :: !Text, + count :: !Int + } + deriving Show + +instance YAML.ToYAML Tag where + toYAML (Tag {name, slug, count}) = YAML.obj $ + [("name" ##= name), ("slug" ##= slug), ("count" ##= count)] + +collate :: [Set Text] -> [Tag] +collate tags₀ = + toList $ fst $ foldl' add1 (mempty, mempty) $ foldMap toList tags₀ + where + add1 (tags, slugs) name + | Map.member name tags = + (Map.adjust incrCount name tags, slugs) + | otherwise = + let tag = makeTag slugs name in + (Map.insert name tag tags, + Set.insert (slug tag) slugs) + makeTag slugs name = + Tag {name, slug = makeSlug slugs name, count = 1} + makeSlug slugs name = head $ filter (`notElem` slugs) candidates where + slug₀ = Text.map toSlugChar name + toSlugChar c + | isAlphaNum c && isAscii c || c == '-' = toLower c + | otherwise = '_' + candidates = slug₀ : [slug₀ <> Text.pack (show i) | i <- [(0 :: Int) ..]] + incrCount t@(Tag {count}) = t {count = succ count} + +data Options = + Opts { + dir :: !FilePath, + yaml :: !FilePath, + make :: !FilePath + } + +getOptions :: IO Options +getOptions = do + args <- getArgs + prog <- getProgName + case args of + [dir, yaml, make] -> pure $ Opts {dir, yaml, make} + _ -> fail $ + "usage: " <> prog <> " DIR YAML MAKE ---\n\ + \ get all tags from posts in DIR and put the results in the given files" diff --git a/blog-meta/blog-meta.cabal b/blog-meta/blog-meta.cabal new file mode 100644 index 0000000..3146d58 --- /dev/null +++ b/blog-meta/blog-meta.cabal @@ -0,0 +1,51 @@ +cabal-version: 2.2 +name: blog-meta +version: 0.1 + +author: rhiannon morris +maintainer: rhiannon morris + +common deps + default-language: Haskell2010 + default-extensions: + BlockArguments, + OverloadedStrings, + OverloadedLists, + NondecreasingIndentation, + ViewPatterns + build-depends: + base ^>= 4.14.2.0, + HsYAML ^>= 0.2.1.0, + bytestring ^>= 0.10.12.0, + containers ^>= 0.6.4.1, + filemanip, + pandoc-types ^>= 1.22, + text ^>= 1.2.4.1, + time ^>= 1.9.3 + ghc-options: -Wall + +common exe + build-depends: blog-meta + ghc-options: -threaded -rtsopts -with-rtsopts=-N + +library + import: deps + hs-source-dirs: lib + exposed-modules: + YAML, + Misc + +executable post-lists + import: deps, exe + hs-source-dirs: . + main-is: post-lists.hs + +executable all-tags + import: deps, exe + hs-source-dirs: . + main-is: all-tags.hs + +executable nice-date + import: deps, exe + hs-source-dirs: . + main-is: nice-date.hs diff --git a/blog-meta/lib/Misc.hs b/blog-meta/lib/Misc.hs new file mode 100644 index 0000000..ed47514 --- /dev/null +++ b/blog-meta/lib/Misc.hs @@ -0,0 +1,22 @@ +module Misc where + +import qualified System.Console.GetOpt as GetOpt +import System.Environment +import System.Exit + +-- | exception on 'Left' +unwrap :: Show a => FilePath -> Either a b -> IO b +unwrap file = either (\x -> fail $ file <> ":" <> show x) return + +getOptionsWith :: (String -> String) -> ([String] -> Maybe a) + -> [GetOpt.OptDescr (a -> a)] -> IO a +getOptionsWith hdr mkDef descrs = do + res <- GetOpt.getOpt GetOpt.Permute descrs <$> getArgs + case res of + (fs, rest, []) | Just def <- mkDef rest -> + return $ foldl (flip ($)) def fs + _ -> do + prog <- getProgName + putStrLn $ GetOpt.usageInfo (hdr prog) descrs + exitFailure + diff --git a/blog-meta/lib/YAML.hs b/blog-meta/lib/YAML.hs new file mode 100644 index 0000000..5f82298 --- /dev/null +++ b/blog-meta/lib/YAML.hs @@ -0,0 +1,52 @@ +module YAML (module YAML) where + +import Data.YAML as YAML +import Data.YAML.Event as YAML (untagged) +import Data.Text (Text) +import qualified Data.Text as Text +import Misc +import Data.ByteString (ByteString) +import qualified Data.ByteString as BS +import qualified Data.ByteString.Lazy as LazyBS +import qualified System.IO as IO + + +str' :: String -> Node () +str' = str . Text.pack + +str :: Text -> Node () +str = Scalar () . SStr + +obj :: Mapping () -> Node () +obj = Mapping () untagged + +(##=) :: (ToYAML b) => Text -> b -> (Node (), Node ()) +(##=) = (#=) + +(#=) :: (ToYAML a, ToYAML b) => a -> b -> (Node (), Node ()) +k #= v = (toYAML k, toYAML v) + +list :: ToYAML a => [a] -> Node () +list = Sequence () untagged . map toYAML + + +-- | read a chunk from the beginning of the file between a +-- @---@ and a @...@. throw an exception if there isn't one +readHeader :: FilePath -> IO (YAML.Node YAML.Pos) +readHeader file = IO.withFile file IO.ReadMode \h -> do + ln <- BS.hGetLine h + if (ln /= "---") then + fail $ file <> ": no header" + else + unwrap file . YAML.decode1 =<< linesUntil "..." h + +-- | read all the lines from a handle until the given terminator. return the +-- lines read, excluding the terminator +linesUntil :: ByteString -> IO.Handle -> IO LazyBS.ByteString +linesUntil end h = go [] where + go acc = do + l <- BS.hGetLine h + if l == end then + return $ LazyBS.fromChunks $ reverse acc + else + go (l <> "\n" : acc) diff --git a/blog-meta/nice-date.hs b/blog-meta/nice-date.hs new file mode 100644 index 0000000..d9e5955 --- /dev/null +++ b/blog-meta/nice-date.hs @@ -0,0 +1,45 @@ +import Text.Pandoc.Definition +import Data.Map.Strict (Map) +import qualified Data.Map.Strict as Map +import Data.Time +import Text.Pandoc.JSON +import Data.Text (Text, unpack, pack) +import Data.Char (toLower) + +main :: IO () +main = toJSONFilter \(Pandoc (Meta m) body) -> do + m' <- niceDate m + pure $ Pandoc (Meta m') body + +niceDate :: Map Text MetaValue -> IO (Map Text MetaValue) +niceDate = Map.alterF reformat "date" + +reformat :: Maybe MetaValue -> IO (Maybe MetaValue) +reformat Nothing = pure Nothing +reformat (Just (toText -> Just txt)) = do + -- extra '-'s in %-m and %-d to allow leading zeroes to be skipped + date <- parseTimeM True defaultTimeLocale "%Y-%-m-%-d" $ unpack txt + let str = formatTime defaultTimeLocale "%A %-e %B %Y" (date :: Day) + pure $ Just $ MetaString $ pack $ map toLower str +reformat (Just d) = fail $ "date is\n" <> show d <> "\nwanted a string" + +toText :: MetaValue -> Maybe Text +toText (MetaString str) = Just str +toText (MetaInlines is) = foldMap inlineText is +toText (MetaBlocks bs) = foldMap blockText bs +toText _ = Nothing + +inlineText :: Inline -> Maybe Text +inlineText (Str txt) = Just txt +inlineText Space = Just " " +inlineText SoftBreak = Just " " +inlineText LineBreak = Just " " +inlineText (RawInline _ txt) = Just txt +inlineText _ = Nothing + +blockText :: Block -> Maybe Text +blockText (Plain is) = foldMap inlineText is +blockText (Para is) = foldMap inlineText is +blockText Null = Just "" +blockText (RawBlock _ txt) = Just txt +blockText _ = Nothing diff --git a/blog-meta/post-lists.hs b/blog-meta/post-lists.hs new file mode 100644 index 0000000..e53f283 --- /dev/null +++ b/blog-meta/post-lists.hs @@ -0,0 +1,100 @@ +import qualified Data.ByteString.Lazy as LazyBS +import Data.Char (toLower) +import Data.Function ((&)) +import Data.List (sortBy) +import Data.Ord (comparing) +import Data.Text (Text) +import qualified Data.Text as Text +import Data.Time +import qualified YAML +import YAML ((.:), (.!=), (##=)) +import qualified System.Console.GetOpt as GetOpt +import qualified System.FilePath.Find as Find +import Misc +import Data.Char (toLower) + +main :: IO () +main = do + Opts title dir tag out <- getOptions + files <- Find.findL True (pure True) (Find.extension Find.==? ".md") dir + infos <- filter (checkTag tag) <$> traverse getInfo files + let content = makeContent title infos + case out of + Nothing -> LazyBS.putStr content + Just fn -> LazyBS.writeFile fn content + +makeContent :: Text -> [PostInfo] -> LazyBS.ByteString +makeContent title is' = "---\n" <> YAML.encode1 val <> "...\n" where + is = sortBy (flip $ comparing infoDate) is' + val = YAML.obj [("title" ##= title), ("posts" ##= is)] + + +checkTag :: Maybe Text -> PostInfo -> Bool +checkTag Nothing _ = True +checkTag (Just t) i = t `elem` infoTags i + + +data Options = + Opts { + optsTitle :: !Text, + optsDir :: !FilePath, + optsTag :: !(Maybe Text), + optsOut :: !(Maybe FilePath) + } + +getOptions :: IO Options +getOptions = getOptionsWith hdr defOpts optDescrs where + hdr prog = "usage: " <> prog <> " [OPTION...] DIR TITLE\n\ + \ --- get info about posts in DIR and use given title" + +optDescrs :: [GetOpt.OptDescr (Options -> Options)] +optDescrs = + [GetOpt.Option "t" ["tag"] + (GetOpt.ReqArg (\t o -> o {optsTag = Just $ Text.pack t}) "TAG") + "list only posts with the given tag", + GetOpt.Option "o" ["out"] + (GetOpt.ReqArg (\f o -> o {optsOut = Just f}) "FILE") + "write output to FILE"] + +defOpts :: [String] -> Maybe Options +defOpts [dir, title] = + Just $ Opts {optsDir = dir, optsTitle = Text.pack title, + optsTag = Nothing, optsOut = Nothing} +defOpts _ = Nothing + + +getInfo :: FilePath -> IO PostInfo +getInfo file = do + yaml <- YAML.readHeader file + unwrap file $ YAML.parseEither $ + yaml & YAML.withMap "title, date, tags" \m -> + Info <$> return (Text.pack file) + <*> m .: "title" + <*> m .: "date" + <*> m .: "tags" .!= [] + +-- | the front matter info we care about +data PostInfo = + Info { + _nfoFile :: Text, + _nfoTitle :: Text, + infoDate :: BlogDate, + infoTags :: [Text] + } + +instance YAML.ToYAML PostInfo where + toYAML (Info file title date tags) = YAML.obj + [("date" ##= date), + ("title" ##= title), + ("tags" ##= tags), + ("file" ##= file)] + +newtype BlogDate = D Day deriving (Eq, Ord) + +instance YAML.FromYAML BlogDate where + parseYAML = YAML.withStr "YYYY-MM-DD" $ + fmap D . parseTimeM True defaultTimeLocale "%F" . Text.unpack + +instance YAML.ToYAML BlogDate where + toYAML (D d) = YAML.str $ Text.pack $ map toLower $ + formatTime defaultTimeLocale "%a %-d %B %Y" d diff --git a/cabal.project b/cabal.project new file mode 100644 index 0000000..c9db746 --- /dev/null +++ b/cabal.project @@ -0,0 +1,8 @@ +packages: + lang/**/*.cabal, + ./blog-meta/blog-meta.cabal + +source-repository-package + type: git + location: https://git.rhiannon.website/rhi/filemanip.git + tag: 0edef8f7bbfe8e210f546e3222b735a32e6055e3 diff --git a/lang b/lang new file mode 160000 index 0000000..3a87859 --- /dev/null +++ b/lang @@ -0,0 +1 @@ +Subproject commit 3a878590c2a15764d5b6e8d4c80bfbc92714f2ae diff --git a/posts/index.md b/posts/index.md new file mode 100644 index 0000000..85c584d --- /dev/null +++ b/posts/index.md @@ -0,0 +1,16 @@ +--- +title: test +tags: [a, b] +date: 2021-07-25 +conlang: laantas +... + +# hello + +im gecs + +:::example +`{#kášńḿł | size=100 ; stroke=4}` +::: + +$$\mathbb{wow},\, \mathcal{MATH}$$ diff --git a/style/counters.css b/style/counters.css new file mode 100644 index 0000000..8dfb591 --- /dev/null +++ b/style/counters.css @@ -0,0 +1,66 @@ +:root { + --section-prefix: ''; +} + +h1::before, h2::before, h3::before, h4::before, h5::before, h6::before { + padding-right: 1ex; +} + +main h1 { + counter-increment: h1; + counter-reset: h2 h3 h4 h5 h6; +} + +main h1::before { + content: var(--section-prefix) counter(h1); +} + +main h2 { + counter-increment: h2; + counter-reset: h3 h4 h5 h6; +} + +main h2::before { + content: var(--section-prefix) counter(h1) '.' counter(h2); +} + +main h3 { + counter-increment: h3; + counter-reset: h4 h5 h6; +} + +main h3::before { + content: var(--section-prefix) counter(h1) '.' counter(h2) '.' counter(h3); +} + +main h4 { + counter-increment: h4; + counter-reset: h5 h6; +} + +main h4::before { + content: var(--section-prefix) + counter(h1) '.' counter(h2) '.' counter(h3) '.' counter(h4); +} + +main h5 { + counter-increment: h5; + counter-reset: h6; +} + +main h5::before { + content: var(--section-prefix) + counter(h1) '.' counter(h2) '.' counter(h3) '.' counter(h4) '.' + counter(h5); +} + +main h6 { + counter-increment: h6; +} + +main h6::before { + content: var(--section-prefix) + counter(h1) '.' counter(h2) '.' counter(h3) '.' counter(h4) '.' + counter(h5) '.' counter(h6); +} + diff --git a/style/page.css b/style/page.css new file mode 100644 index 0000000..de4722f --- /dev/null +++ b/style/page.css @@ -0,0 +1,369 @@ +@import url(fonts/muller/muller.css); +@import url(fonts/junius/junius.css); +@import url(fonts/pragmatapro/pragmatapro.css); + +:root { + --root-col: hsl(30deg, 5%, 26%); + --fg-col: hsl(336deg, 17%, 11%); + --bg-col: hsl(40deg, 91%, 98%); + --link-col: hsl(355deg, 52%, 48%); + + --ipa-font: JuniusX; +} + +:root { + background: var(--root-col); + + font-family: Muller; + font-size: 16pt; + + height: 100vh; +} + +body { + background: url(paper.png), var(--bg-col); + background-blend-mode: multiply; + color: var(--fg-col); + box-shadow: 0 0 5em var(--fg-col); + + max-width: 50em; + min-height: 100%; + margin: 0 auto; + padding: 1em 2em 3em; + + box-sizing: border-box; +} + +header { + text-align: center; +} + +header h1 { + font-size: 350%; + font-weight: 100; + margin-top: 0; +} + +h1, h2, h3, h4, h5, h6 { + margin: 1em 0 0.25em; +} + +h1 { + font-size: 200%; + font-weight: 200; +} + +h2 { + font-size: 180%; + font-weight: 200; +} + +h3 { + font-size: 160%; + font-weight: 200; +} + +h4 { + font-size: 140%; + font-weight: 300; +} + +h5 { + font-size: 120%; + font-weight: 300; +} + +h6 { + font-size: 100%; + font-weight: 400; +} + +header h1 { + margin-bottom: 0.5rem; +} + +hr { + border: 1px solid var(--root-col); + width: 80%; + height: 0; +} + +.meta { + display: flex; + column-gap: 1em; + align-items: baseline; + justify-content: center; +} + +.date { + font-size: 80%; + font-weight: 400; + font-style: italic; + margin-top: 0; +} + +.tags { + font-size: 80%; +} + +.tags ul { + display: inline; + padding: 0; +} + +.tags li { + list-style: none; + display: inline; +} + +.tags li + li { + margin-left: 0.75ex; +} + + +a { + color: var(--link-col); +} + +b, strong { + font-weight: 600; +} + +ul li { + list-style: '— '; +} + +table { + margin: auto; + border-spacing: 0; + border-top: 2px solid var(--root-col); + border-bottom: 2px solid var(--root-col); +} + +th { + font-weight: 500; +} + +thead th { + border-bottom: 1px solid var(--root-col); +} + +td, th { + padding: 0 0.5em; + vertical-align: text-bottom; +} + +code { + font-family: PragmataPro; + font-size: 90%; +} + +pre { + width: min-content; + margin: auto; +} + + +.ipa, .lang, .ebnf-t { + font-family: var(--ipa-font); + + font-feature-settings: + "ccmp", "calt", "liga", "loca", "mark", "mkmk", "ss01"; + /* ss01 to use modern Þþð design, others to make juniusx go brrr + * maybe i can just turn loca off but idk what other regional forms + * it does that i actually want */ + + text-underline-offset: 0.125em; +} + +.ipa { + font-weight: 500; +} + +.lang, .ebnf-t { + font-weight: 700; +} + +.abbr { + font-size: 70%; + font-weight: 500; +} + +.scr { + height: 1.5em; + vertical-align: -40%; + padding-right: 0.5ex; +} + +.gloss .scr { + height: 2em; +} + +:is(.splash, .example) .scr { + height: unset; + display: block; + margin: auto; +} + +.example { + margin: auto; +} + +.example .text { + display: block; + text-align: center; + width: 80%; + margin: 0.75em auto 0; +} + +blockquote { + font-style: italic; +} + + +.letter-list { + margin: 1.25em auto 0; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-around; + width: 80%; + row-gap: 0.5em; + column-gap: 1.5em; +} + +.letter-list + .letter-list { + margin-top: 2.5em; +} + +.letter-list .lang { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.letter-list .scr { + height: 3em; + margin-left: 0.5em; +} + +.letter-list .text { + font-size: 125%; +} + +main nav { + text-align: center; + font-size: 125%; +} + + +#toc > h2 { + font-size: 120%; + font-weight: 300; +} +#toc > ul { + columns: 2; + margin-left: 2em; + margin-right: 2em; +} + +figure:not(.left) { + text-align: center; +} +figure:not(.left) table { + display: inline-table; +} +figure table { + margin: 1em 0.5em; +} +.gloss { + border: none; + text-align: left; +} + +figure ul { + text-align: left; + margin-left: 5em; + margin-right: 5em; + columns: 2; +} +figure li { + break-inside: avoid; +} + +dt { font-weight: 500; float: left; clear: left; } +dd { margin-left: 4em; } + +dt { + break-after: avoid; +} + +dd { + break-before: avoid; +} + +u u { + text-decoration: double underline; +} + +:is(.twocol, .threecol):not(:is(ul, ol) *) { + margin-top: 1em; +} +.twocol { + columns: 2; +} +.threecol { + columns: 3; +} +.twocol :first-child, .threecol :first-child { + margin-top: 0; +} + +footer { + margin: 1.5em auto 1em; + padding-top: 0.5em; + + font-size: 80%; + font-weight: 500; + text-align: center; +} + +.ebnf { + border: none; +} + +.ebnf td { + padding: 0 0.15em; +} + +.ebnf-nt { + font-weight: 500; + color: hsl(155deg, 80%, 30%); + white-space: nowrap; +} + +.ebnf-punc { + color: hsl(25deg, 40%, 30%); +} + +.ebnf-sub, .ebnf-brack { + color: hsl(210deg, 80%, 35%); + font-weight: 500; +} + +.ebnf-brack { + padding: 0 0.05em; +} + +.ebnf-s { + font-style: italic; + color: hsl(330deg, 80%, 30%); +} + +blockquote { + max-width: 70%; + border-left: 1px solid black; + padding-left: 1em; + margin: auto; +} diff --git a/style/paper.png b/style/paper.png new file mode 100644 index 0000000000000000000000000000000000000000..5977961667679963fa3200be4a8f082e430667ce GIT binary patch literal 85055 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 Scu)%f0000 +
+
all posts · + all tags + +$endif$ + +$for(include-after)$ +$include-after$ +$endfor$ diff --git a/templates/head.html b/templates/head.html new file mode 100644 index 0000000..0622dab --- /dev/null +++ b/templates/head.html @@ -0,0 +1,24 @@ + + + + + +$if(show-toc)$ + +$endif$ +$for(css)$ + +$endfor$ + +$for(header-includes)$ +$header-includes$ +$endfor$ +$if(math)$ +$math$ +$endif$ + +$pagetitle$ + +$for(include-before)$ +$include-before$ +$endfor$ diff --git a/templates/meta.html b/templates/meta.html new file mode 100644 index 0000000..4369efe --- /dev/null +++ b/templates/meta.html @@ -0,0 +1,15 @@ +$head()$ + +$if(title)$ +
+

$title$

+
+$endif$ + +$if(posts)$ +$postlist()$ +$elseif(tags)$ +$taglist()$ +$endif$ + +$foot()$ diff --git a/templates/post.html b/templates/post.html new file mode 100644 index 0000000..8a22596 --- /dev/null +++ b/templates/post.html @@ -0,0 +1,46 @@ +$head()$ + +
+ $if(title)$ +

$title$

+ $endif$ +
+ $if(date)$ +

$date$

+ $endif$ + $if(tags)$ + + $endif$ +
+
+
+ + +$if(show-toc)$ + + +$endif$ +
+$body$ + +$if(blah)$ +
+ $for(blah)$ +
$blah.a$ +
$blah.b$ + $endfor$ +
+$endif$ +
+ +$foot()$ diff --git a/templates/postlist.html b/templates/postlist.html new file mode 100644 index 0000000..7aab586 --- /dev/null +++ b/templates/postlist.html @@ -0,0 +1,9 @@ +
+
    + $for(posts)$ +
  • + $it.title$ + ($it.date$) + $endfor$ +
+
diff --git a/templates/taglist.html b/templates/taglist.html new file mode 100644 index 0000000..dd07691 --- /dev/null +++ b/templates/taglist.html @@ -0,0 +1,9 @@ +
+
    + $for(tags)$ +
  • + $it.name$ + ($it.count$) + $endfor$ +
+