DocFlux is a .NET document conversion toolkit with:
DocFlux.Core: library-first conversion engineDocFlux.Cli: command-line interface (docflux)
The pipeline is format-agnostic:
input format -> DocFlux IR -> output format
- Docs index: docs/README.md
- Architecture: docs/architecture.md
- Supported formats: docs/supported-formats.md
- Jira ADF workflow guide: docs/jira-adf.md
- CLI usage: docs/cli-usage.md
- Development guidelines: docs/development-guidelines.md
- CLI project README: src/DocFlux.Cli/README.md
- Contributing: CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
DocFlux currently supports these format ids:
txtmarkdownhtmlxmladf
See docs/supported-formats.md for behavior and fidelity notes per format.
- Single conversion pipeline for all supported format pairs
- Minimal, extensible IR (document/block/inline tree)
- Graceful degradation for unsupported constructs
- Deterministic output behavior for reliable tests and CI
src/DocFlux.Abstractions/: IR types and contractssrc/DocFlux.Core/: converter, registry, built-in adapterssrc/DocFlux.Cli/: CLI entrypoint and argument handlingtests/DocFlux.Core.Tests/: adapter, converter, CLI and fixture testsdocs/: project documentation (start at docs/README.md)
- .NET SDK 8.0+
dotnet restore
dotnet build DocFlux.sln -c ReleaseRelease build for DocFlux.Cli also stages runnable artifacts into repository-root bin/ and generates bin/docflux.cmd.
If you add that folder to PATH, you can run docflux ... from any console on Windows.
dotnet test DocFlux.sln -c ReleaseInline conversion:
docflux markdown html "# Hello DocFlux"File-based conversion:
docflux markdown adf --input-file ./input.md --output-file ./output.adf.jsonJira workflow (Markdown -> ADF -> Jira REST):
docflux markdown adf --input-file ./issue.md --output-file ./issue.adf.json
curl --request POST \
--url "https://your-domain.atlassian.net/rest/api/3/issue" \
--user "you@example.com:${JIRA_API_TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @payload.jsonSee docs/jira-adf.md for a complete payload example and unknown-node behavior guidance.
Help:
docflux --helpList available formats:
docflux list-formatsFor full CLI details, see docs/cli-usage.md.
using DocFlux.Core.Conversion;
var converter = new DocFluxConverter();
var html = converter.Convert("# Title", "markdown", "html");The test suite includes fixture-based golden tests under:
tests/DocFlux.Core.Tests/Fixtures/cases/tests/DocFlux.Core.Tests/Fixtures/cases.json
This ensures richer real-world cases remain stable across changes.
See:
CONTRIBUTING.mddocs/development-guidelines.md
See SECURITY.md for reporting process.
MIT (LICENSE).