Compare commits

..

No commits in common. "eb374d20f553b0f1c1d03e78f320ae7557f5d57c" and "6b49db5801126fdbc2693cb24b2a69b326fc4c39" have entirely different histories.

6 changed files with 7 additions and 13 deletions

1
.gitignore vendored
View File

@ -18,5 +18,4 @@ stack-setup-2.yaml
analytics-charts.md analytics-charts.md
architecture-deep-dive.md architecture-deep-dive.md
devcontainer.org devcontainer.org
.devcontainer/
root.json root.json

View File

@ -6,9 +6,8 @@ A self-contained CLI tool that converts Markdown with Mermaid diagrams into PDF
docster -pdf path/to/file.md docster -pdf path/to/file.md
docster -html path/to/file.md docster -html path/to/file.md
docster -docx path/to/file.md
Mermaid code blocks (```mermaid) will be rendered to SVG (HTML) or PNG (PDF/DOCX) and embedded. Mermaid code blocks (```mermaid) will be rendered to SVG and embedded.
## Installation ## Installation

View File

@ -1,9 +1,9 @@
cabal-version: 3.0 cabal-version: 3.0
name: docster name: docster
version: 0.1.0.0 version: 0.1.0.0
synopsis: A self-contained CLI tool that converts Markdown with Mermaid diagrams to PDF, HTML, or DOCX synopsis: A self-contained CLI tool that converts Markdown with Mermaid diagrams to PDF/HTML
description: Docster converts Markdown documents containing Mermaid diagrams into PDF, HTML, or DOCX files description: Docster converts Markdown documents containing Mermaid diagrams into PDF or HTML files
using Pandoc and Mermaid CLI. It automatically renders Mermaid code blocks to SVG (HTML) or PNG (PDF/DOCX) using Pandoc and Mermaid CLI. It automatically renders Mermaid code blocks to SVG
and embeds them in the output. and embeds them in the output.
homepage: https://github.com/yourusername/docster homepage: https://github.com/yourusername/docster
license: BSD-3-Clause license: BSD-3-Clause
@ -41,7 +41,7 @@ library
process >=1.6 && <1.7, process >=1.6 && <1.7,
hashable >=1.4 && <1.6, hashable >=1.4 && <1.6,
containers >=0.6 && <0.8, containers >=0.6 && <0.8,
pandoc >=3.0 && <3.8, pandoc >=3.0 && <3.2,
pandoc-types >=1.23 && <1.25, pandoc-types >=1.23 && <1.25,
bytestring >=0.11 && <0.13, bytestring >=0.11 && <0.13,
temporary >=1.3 && <1.4, temporary >=1.3 && <1.4,

View File

@ -1,7 +1,7 @@
{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE LambdaCase #-} {-# LANGUAGE LambdaCase #-}
-- | Document compilation functionality for PDF, HTML, and DOCX output -- | Document compilation functionality for PDF and HTML output
module Docster.Compiler module Docster.Compiler
( -- * Compilation Functions ( -- * Compilation Functions
compileToPDF compileToPDF

View File

@ -79,8 +79,6 @@ generateDiagramPaths (DiagramConfig _ (OutputDir outDir) format) (DiagramId diag
in (svgFile, T.pack $ takeFileName svgFile) in (svgFile, T.pack $ takeFileName svgFile)
PDF -> let pngFile = outDir </> diagIdStr <> ".png" PDF -> let pngFile = outDir </> diagIdStr <> ".png"
in (pngFile, T.pack pngFile) in (pngFile, T.pack pngFile)
DOCX -> let pngFile = outDir </> diagIdStr <> ".png"
in (pngFile, T.pack pngFile)
-- | Puppeteer configuration content for disabling sandbox -- | Puppeteer configuration content for disabling sandbox
puppeteerConfigContent :: Text puppeteerConfigContent :: Text
@ -92,7 +90,6 @@ callMermaidProcess format mmdFile outputFile = do
let baseArgs = case format of let baseArgs = case format of
HTML -> ["-i", mmdFile, "-o", outputFile] HTML -> ["-i", mmdFile, "-o", outputFile]
PDF -> ["-i", mmdFile, "-o", outputFile, "--scale", "3"] PDF -> ["-i", mmdFile, "-o", outputFile, "--scale", "3"]
DOCX -> ["-i", mmdFile, "-o", outputFile]
-- Create temporary puppeteer config file -- Create temporary puppeteer config file
result <- bracket result <- bracket

View File

@ -38,7 +38,6 @@ transformDocument config docName (Pandoc meta blocks) = do
case dcOutputFormat config of case dcOutputFormat config of
PDF -> return $ Right $ substituteUnicodeSymbols (Pandoc meta newBlocks) PDF -> return $ Right $ substituteUnicodeSymbols (Pandoc meta newBlocks)
HTML -> return $ Right $ Pandoc meta newBlocks HTML -> return $ Right $ Pandoc meta newBlocks
DOCX -> return $ Right $ Pandoc meta newBlocks
-- | Process a single block with heading tracking state -- | Process a single block with heading tracking state
processBlockStateful :: DiagramConfig -> Block -> TransformM Block processBlockStateful :: DiagramConfig -> Block -> TransformM Block