Skip to content

Repository files navigation

deghosting

To make the blog 💯 less haunted.

Requirements

If you use Nix, a flake-based dev shell provides all of the above (plus gopls, air for hot reloading, and editor language servers):

nix develop

Build & run

just build          # build the binary into ./bin/deghosting
just run [args...]   # build and run, passing through arguments
just install         # install into $GOBIN / $GOPATH/bin

Development

just fmt        # format with golangci-lint formatters (gofumpt + goimports)
just fmt-check  # show formatting diffs without writing
just lint       # run golangci-lint
just test       # run the test suite
just test-race  # run tests with the race detector and coverage
just tidy       # go mod tidy + verify
just check      # fmt-check + lint + test
just clean      # remove build artifacts

Run just with no arguments to list all available recipes.

Testing

Tests use Go's standard testing package. Prefer table-driven tests with named cases, keep CLI tests close to the run(args, stdin, stdout, stderr) entrypoint, and reserve shelling out for behavior that cannot be covered in-process. Run just test for normal changes and just test-race when touching concurrency, shared state, or I/O-heavy code.

Project layout

cmd/deghosting/       CLI entrypoint
internal/cli/         CLI parsing and input/output validation
internal/deghosting/  conversion orchestration and Ghost-to-Zola workflow
internal/download/    concurrent asset download worker pool
internal/ghost/       Ghost export parsing and source data model
internal/zola/        generated Zola post model and Markdown rendering

About

Take a ghost blog output and convert it to markdown files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages