diff --git a/Makefile b/Makefile index d6d821e..cf807c5 100644 --- a/Makefile +++ b/Makefile @@ -37,8 +37,10 @@ build: $(OUTPUT) $(BUILDDIR)/%.html: $(PAGESDIR)/%.md $(TEMPLATE) $(LANGFILTER) $(LAANTAS_SCRIPT) @echo "[pandoc] $<" mkdir -p $(dir $@) + mkdir -p $(basename $@) LAANTAS_SCRIPT="$(LAANTAS_SCRIPT)" \ - DIRNAME="$(subst $(PAGESDIR),$(BUILDDIR),$(dir $<))" \ + DIRNAME="$(basename $@)" \ + FILENAME="$@" \ pandoc -s --toc --template $(TEMPLATE) -o $@ $< \ --filter $(LANGFILTER) diff --git a/langfilter/LaantasImage.hs b/langfilter/LaantasImage.hs index 48c10c1..fc8ff5b 100644 --- a/langfilter/LaantasImage.hs +++ b/langfilter/LaantasImage.hs @@ -92,12 +92,15 @@ toTitle = Text.filter \c -> c /= '\\' && c /= '#' makeImage :: Image -> IO Inline makeImage (Image {..}) = do - exe <- getEnv "LAANTAS_SCRIPT" - dir <- getEnv "DIRNAME" + exe <- getEnv "LAANTAS_SCRIPT" + parent <- dropFileName <$> getEnv "FILENAME" + dir <- getEnv "DIRNAME" + let fullFile = dir file + let relFile = Text.pack $ makeRelative parent fullFile callProcess exe ["-S", show size, "-K", show stroke, "-W", show width, - "-C", Text.unpack color, "-t", Text.unpack text, "-o", dir file] - pure $ Pandoc.Image ("", ["scr","laantas"], []) [] (Text.pack file, title) + "-C", Text.unpack color, "-t", Text.unpack text, "-o", fullFile] + pure $ Pandoc.Image ("", ["scr","laantas"], []) [] (relFile, title) weirdUrl :: Char -> Bool weirdUrl c = c `elem` ("#\\?&_/.ยท,{} " :: String)