{"adoption": {"forks": 302, "observed_at": "2026-08-28T04:07:06.448256+00:00", "stars": 2640}, "canonical_url": "https://ross.abutalabs.com/products/flexmark-java", "card": {"archived": false, "artifact_type": "library", "description": "CommonMark/Markdown Java parser with source level AST. CommonMark 0.28, emulation of: pegdown, kramdown, markdown.pl, MultiMarkdown. With HTML to MD, MD to PDF, MD to DOCX  conversion modules.", "domain": ["parsers", "documentation", "developer-tools", "text-editors"], "enriched": true, "function": ["parser", "markdown", "templating", "pdf", "serialization"], "health_score": 30, "homepage": null, "language": "Java", "license": "BSD-2-Clause", "license_family": "permissive", "maturity": "stable", "member_repos": ["vsch/flexmark-java"], "name": "vsch/flexmark-java", "platform": ["jvm", "cross-platform"], "pushed_at": "2025-04-16T19:07:12+00:00", "repo": "vsch/flexmark-java", "stars": 2640, "tags": ["commonmark", "markdown-parser", "markdown-to-html", "html-to-markdown", "markdown-to-pdf", "markdown-to-docx", "pegdown-emulation", "ast", "extensible"], "topics": ["commonmark", "pegdown", "java", "markdown-parser", "markdown-processor", "markdown-conversion", "markdown-flavors", "markdown", "markdown-to-html", "html-to-markdown", "markdown-to-pdf"], "urls": [], "use_cases": ["parse markdown into an AST in Java", "convert markdown to HTML", "convert HTML back to markdown", "render markdown documents to PDF", "convert markdown to DOCX", "replace pegdown with a faster markdown parser", "emulate kramdown or MultiMarkdown rendering in Java"], "what_it_is": "flexmark-java is a fast, extensible Java parser for CommonMark/Markdown that produces a source-position-aware AST and renders HTML, with emulation modes for pegdown, kramdown, markdown.pl, and MultiMarkdown. It also ships conversion modules for HTML to Markdown, Markdown to PDF, and Markdown to DOCX.", "when_to_avoid": ["you need a Markdown parser in a non-JVM language", "you only need simple Markdown rendering and a lighter-weight library suffices", "you need strict compliance with a newer CommonMark spec than 0.28"], "when_to_choose": ["you need a high-performance, CommonMark-compliant Markdown parser on the JVM", "you need detailed source positions in the AST for editor tooling or syntax highlighting", "you need to mimic the output of other Markdown processors like pegdown or kramdown", "you need Markdown conversion to HTML, PDF, or DOCX in a Java application"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/flexmark-java", "repo": "vsch/flexmark-java", "role": "main", "score": 39}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:19:08.657224+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "646ce2e97060d14ed3bb54bb98b29bb3ec761bedea75a1c57f3bbb33920ec2ea", "fetched_at": "2026-08-28T04:07:06.448256+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vsch/flexmark-java"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:19:08.657224+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "646ce2e97060d14ed3bb54bb98b29bb3ec761bedea75a1c57f3bbb33920ec2ea", "fetched_at": "2026-08-28T04:07:06.448256+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vsch/flexmark-java"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:19:08.657224+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "646ce2e97060d14ed3bb54bb98b29bb3ec761bedea75a1c57f3bbb33920ec2ea", "fetched_at": "2026-08-28T04:07:06.448256+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vsch/flexmark-java"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:19:08.657224+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "646ce2e97060d14ed3bb54bb98b29bb3ec761bedea75a1c57f3bbb33920ec2ea", "fetched_at": "2026-08-28T04:07:06.448256+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vsch/flexmark-java"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:19:08.657224+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "646ce2e97060d14ed3bb54bb98b29bb3ec761bedea75a1c57f3bbb33920ec2ea", "fetched_at": "2026-08-28T04:07:06.448256+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vsch/flexmark-java"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:19:08.657224+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "646ce2e97060d14ed3bb54bb98b29bb3ec761bedea75a1c57f3bbb33920ec2ea", "fetched_at": "2026-08-28T04:07:06.448256+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vsch/flexmark-java"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:06.448256+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:19:08.657224+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "646ce2e97060d14ed3bb54bb98b29bb3ec761bedea75a1c57f3bbb33920ec2ea", "fetched_at": "2026-08-28T04:07:06.448256+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vsch/flexmark-java"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:19:08.657224+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "646ce2e97060d14ed3bb54bb98b29bb3ec761bedea75a1c57f3bbb33920ec2ea", "fetched_at": "2026-08-28T04:07:06.448256+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vsch/flexmark-java"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:19:08.657224+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "646ce2e97060d14ed3bb54bb98b29bb3ec761bedea75a1c57f3bbb33920ec2ea", "fetched_at": "2026-08-28T04:07:06.448256+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vsch/flexmark-java"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:19:08.657224+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "646ce2e97060d14ed3bb54bb98b29bb3ec761bedea75a1c57f3bbb33920ec2ea", "fetched_at": "2026-08-28T04:07:06.448256+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vsch/flexmark-java"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 16, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3875, "days_push": 504, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 39, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}