Complete installation setup and fix browser sandbox issue
- Add complete installation instructions including ghcup setup - Create install-deps.sh script for system dependencies - Fix GHC version compatibility (base >=4.18 instead of 4.21) - Add puppeteer config to disable sandboxing for mermaid CLI - Update Mermaid module to use puppeteer config file 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
fe3e599909
commit
4ae2321cfd
51
README.md
51
README.md
@ -11,26 +11,49 @@ Mermaid code blocks (```mermaid) will be rendered to SVG and embedded.
|
||||
|
||||
## Installation
|
||||
|
||||
### Build and install to PATH
|
||||
### Prerequisites
|
||||
|
||||
First install the required system dependencies:
|
||||
|
||||
```bash
|
||||
./install-deps.sh
|
||||
```
|
||||
|
||||
### Install Haskell toolchain
|
||||
|
||||
Install ghcup (Haskell toolchain installer):
|
||||
|
||||
```bash
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
|
||||
source ~/.ghcup/env
|
||||
```
|
||||
|
||||
Install specific GHC and Cabal versions:
|
||||
|
||||
```bash
|
||||
ghcup install ghc 9.12.2
|
||||
ghcup install cabal 3.16.0.0
|
||||
ghcup set ghc 9.12.2
|
||||
ghcup set cabal 3.16.0.0
|
||||
```
|
||||
|
||||
### Install Mermaid CLI
|
||||
|
||||
```bash
|
||||
npm install -g @mermaid-js/mermaid-cli
|
||||
```
|
||||
|
||||
### Build and install docster
|
||||
|
||||
```bash
|
||||
cabal install --installdir=$HOME/.local/bin
|
||||
```
|
||||
|
||||
Make sure `~/.local/bin` is in your PATH. Add to your shell config if needed:
|
||||
|
||||
```bash
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
## Requirements
|
||||
|
||||
- GHC + Cabal (via ghcup)
|
||||
- Pandoc
|
||||
- TeX Live (for PDF)
|
||||
- Mermaid CLI (`npm install -g @mermaid-js/mermaid-cli`)
|
||||
|
||||
### specific versions
|
||||
|
||||
source ~/.ghcup/env && ghcup install ghc 9.12.2
|
||||
source ~/.ghcup/env && ghcup install cabal 3.16.0.0
|
||||
source ~/.ghcup/env && ghcup install hls 2.11.0.0
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
|
@ -34,7 +34,7 @@ library
|
||||
Docster.Compiler
|
||||
hs-source-dirs: src
|
||||
build-depends:
|
||||
base >=4.21 && <5,
|
||||
base >=4.18 && <5,
|
||||
text >=2.0 && <2.2,
|
||||
filepath >=1.4 && <1.6,
|
||||
directory >=1.3 && <1.4,
|
||||
@ -52,7 +52,7 @@ executable docster
|
||||
main-is: Main.hs
|
||||
hs-source-dirs: app
|
||||
build-depends:
|
||||
base >=4.21 && <5,
|
||||
base >=4.18 && <5,
|
||||
text >=2.0 && <2.2,
|
||||
docster
|
||||
default-language: Haskell2010
|
||||
|
2
install-deps.sh
Normal file
2
install-deps.sh
Normal file
@ -0,0 +1,2 @@
|
||||
sudo apt update
|
||||
sudo apt install -y build-essential libgmp-dev libffi-dev zlib1g-dev texlive-latex-base texlive-fonts-recommended texlive-latex-extra texlive-xetex
|
3
puppeteer-config.json
Normal file
3
puppeteer-config.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["--no-sandbox", "--disable-setuid-sandbox"]
|
||||
}
|
@ -80,9 +80,10 @@ generateDiagramPaths (DiagramConfig (SourceDir sourceDir) format) (DiagramId dia
|
||||
-- | Call mermaid CLI process with appropriate arguments
|
||||
callMermaidProcess :: OutputFormat -> FilePath -> FilePath -> IO (Either DocsterError ())
|
||||
callMermaidProcess format mmdFile outputFile = do
|
||||
let args = case format of
|
||||
let baseArgs = case format of
|
||||
HTML -> ["-i", mmdFile, "-o", outputFile]
|
||||
PDF -> ["-i", mmdFile, "-o", outputFile, "--scale", "3"]
|
||||
args = baseArgs ++ ["--puppeteerConfigFile", "puppeteer-config.json"]
|
||||
|
||||
result <- catch
|
||||
(callProcess (T.unpack mermaidCommand) args >> return (Right ()))
|
||||
|
Loading…
x
Reference in New Issue
Block a user