{"id":17602396,"url":"https://github.com/liolle/mdparser","last_synced_at":"2026-02-19T07:31:26.092Z","repository":{"id":257864999,"uuid":"860235502","full_name":"liolle/mdParser","owner":"liolle","description":"markdown parser","archived":false,"fork":false,"pushed_at":"2025-04-07T21:18:59.000Z","size":152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T22:27:12.427Z","etag":null,"topics":["markdown","npm-package","parser","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@edllx/md-parser","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liolle.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-20T04:22:47.000Z","updated_at":"2025-04-07T21:19:02.000Z","dependencies_parsed_at":"2024-12-10T12:50:45.515Z","dependency_job_id":null,"html_url":"https://github.com/liolle/mdParser","commit_stats":{"total_commits":87,"total_committers":2,"mean_commits":43.5,"dds":"0.13793103448275867","last_synced_commit":"8667358c9566195e4276fff389552bcd6631fbb6"},"previous_names":["liolle/mdparser"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liolle%2FmdParser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liolle%2FmdParser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liolle%2FmdParser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liolle%2FmdParser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liolle","download_url":"https://codeload.github.com/liolle/mdParser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248739997,"owners_count":21154248,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["markdown","npm-package","parser","typescript"],"created_at":"2024-10-22T13:08:09.301Z","updated_at":"2025-04-13T15:42:02.324Z","avatar_url":"https://github.com/liolle.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## mdParser\n\nGenerate an\n[Abstract Syntax Tree ](https://en.wikipedia.org/wiki/Abstract_syntax_tree) from\na Markdown file, providing a structured representation that you can manipulate\nor render in various formats such as HTML, plain text, or any custom output.\n\n## Installation\n\n```bash\nnpm install @edllx/md-parser\n```\n\n## Features\n\n| Name           |          |              |          |\n| -------------- | -------- | ------------ | -------- |\n| Heading        | \u0026#x2705; | Tables       | \u0026#x274c; |\n| Unordered list | \u0026#x2705; | Ordered list | \u0026#x2705; |\n| Bold           | \u0026#x2705; | Quotes       | \u0026#x274c; |\n| Italic         | \u0026#x2705; | Unicode      | \u0026#x274c; |\n| Links          | \u0026#x2705; |              |          |\n| Inline code    | \u0026#x2705; |              |          |\n| Code block     | \u0026#x2705; |              |          |\n\n## Usage\n\n```ts\nimport { Factory, tokenize, Token } from '@edllx/md-parser';\n\nconst tokens: Token[] = tokenize(`## Header2`);\n\nconst root: Token = Factory.ROOT(tokens);\n```\n\n### Create and adapter\n\nHere is an\n[example](https://github.com/liolle/mdPreviewer/blob/main/src/components/preview/mdadapter.tsx)\n\n```ts\nimport {\n  Token,\n  TokenCompiler,\n  Word,\n  NewLine,\n  Paragraph,\n  LinkToken,\n  Heading,\n  ListToken,\n  Decoration,\n  InlineCode,\n  CodeToken,\n  CheckBoxToken,\n} from '@edllx/md-parser';\n\nimport { JSXElement } from 'solid-js';\n\n/**\n    interface TokenCompiler\u003cT\u003e {\n        compile: (token: Token) =\u003e T;\n    }\n**/\n\nexport class TokenToTsxAdapter implements TokenCompiler\u003cJSXElement\u003e {\n  compile(token: Token) {\n    return this.#recursiveCompile(token);\n  }\n\n  #recursiveCompile(token: Token): JSXElement {\n    switch (true) {\n      case token instanceof Word:\n        return \u003cspan\u003eTODO\u003c/span\u003e;\n\n      case token instanceof NewLine:\n        return \u003cspan\u003eTODO\u003c/span\u003e;\n\n      case token instanceof Paragraph:\n        return \u003cspan\u003eTODO\u003c/span\u003e;\n\n      case token instanceof LinkToken:\n        return \u003cspan\u003eTODO\u003c/span\u003e;\n\n      case token instanceof ListToken:\n        return \u003cspan\u003eTODO\u003c/span\u003e;\n\n      case token instanceof Heading:\n        return \u003cspan\u003eTODO\u003c/span\u003e;\n\n      case token instanceof Decoration:\n        return \u003cspan\u003eTODO\u003c/span\u003e;\n\n      case token instanceof InlineCode:\n        return \u003cspan\u003eTODO\u003c/span\u003e;\n\n      case token instanceof CodeToken:\n        return \u003cspan\u003eTODO\u003c/span\u003e;\n\n      default:\n        return \u003cspan\u003eTODO\u003c/span\u003e;\n    }\n  }\n}\n```\n\n### use the adapter\n\n```ts\nimport { Factory, tokenize, Token } from '@edllx/md-parser';\nimport { JSXElement } from 'solid-js';\nimport { TokenToTsxAdapter } from 'path-to-adapter';\n\nconst compiler = new TokenToTsxAdapter();\nconst tokens: Token[] = tokenize(`## Header2`);\nconst root: Token = Factory.ROOT(tokens);\nconst component: JSXElement = compiler.compile(root);\n```\n\n[Demo](https://md-viewer.kodevly.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliolle%2Fmdparser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliolle%2Fmdparser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliolle%2Fmdparser/lists"}