{"id":860,"url":"https://github.com/syntax-tree/awesome-syntax-tree","name":"awesome-syntax-tree","description":"Curated list of awesome syntax-tree, unist, hast, xast, mdast, esast, nlcst resources","projects_count":69,"last_synced_at":"2026-04-23T01:00:34.803Z","repository":{"id":36180982,"uuid":"188994543","full_name":"syntax-tree/awesome-syntax-tree","owner":"syntax-tree","description":"Curated list of awesome syntax-tree, unist, hast, xast, mdast, esast, nlcst resources","archived":false,"fork":false,"pushed_at":"2024-10-04T11:55:23.000Z","size":34,"stargazers_count":121,"open_issues_count":0,"forks_count":3,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-04-07T10:03:02.979Z","etag":null,"topics":["awesome","awesome-list","hast","mdast","nlcst","syntax-tree","unified","unist","xast"],"latest_commit_sha":null,"homepage":"https://unifiedjs.com","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/syntax-tree.png","metadata":{"funding":{"github":"unifiedjs","open_collective":"unified","thanks_dev":"u/gh/syntax-tree"},"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2019-05-28T09:11:15.000Z","updated_at":"2026-04-03T07:23:33.000Z","dependencies_parsed_at":"2024-01-11T19:17:28.966Z","dependency_job_id":"dff0c4e8-a65d-4f7d-bf65-76409c4b77a1","html_url":"https://github.com/syntax-tree/awesome-syntax-tree","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/syntax-tree/awesome-syntax-tree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syntax-tree%2Fawesome-syntax-tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syntax-tree%2Fawesome-syntax-tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syntax-tree%2Fawesome-syntax-tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syntax-tree%2Fawesome-syntax-tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syntax-tree","download_url":"https://codeload.github.com/syntax-tree/awesome-syntax-tree/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syntax-tree%2Fawesome-syntax-tree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32161325,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T17:06:48.269Z","status":"ssl_error","status_checked_at":"2026-04-22T17:06:19.037Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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"}},"readme":"\u003c!--lint disable no-html maximum-line-length--\u003e\n\n# awesome syntax-tree [![awesome][awesome-badge]][self]\n\n[\u003cimg align=\"right\" alt src=\"https://raw.githubusercontent.com/syntax-tree/unist/1310d30/logo-square.svg?sanitize=true\" width=\"200\"\u003e](https://unifiedjs.com)\n\n\u003e A curated list of awesome syntax-tree,\n\u003e **[unist][]**,\n\u003e **[mdast][]** (markdown),\n\u003e **[hast][]** (HTML),\n\u003e **[xast][]** (XML),\n\u003e **[esast][]** (JS),\n\u003e and **[nlcst][]** (prose) resources.\n\n**syntax-tree** is an organization housing **[unist][]** and its main\nimplementations **[mdast][]**,\n**[hast][]**,\n**[xast][]**,\n**[esast][]**,\nand **[nlcst][]**.\n**[unist][]** is a specification for syntax trees that comes with a big\necosystem of utilities in JavaScript for working with those trees.\nOn top of **[unist][]** and its implementations sits the rest of\n**[unified][]** that does all kinds of things to process content.\n\n## Contents\n\n* [Official](#official)\n* [unist utilities](#unist-utilities)\n* [mdast utilities](#mdast-utilities)\n* [hast utilities](#hast-utilities)\n* [xast utilities](#xast-utilities)\n* [esast utilities](#esast-utilities)\n* [nlcst utilities](#nlcst-utilities)\n* [Related lists](#related-lists)\n* [License](#license)\n\n## Official\n\n* [syntax-tree](https://github.com/syntax-tree) - Organization.\n* [unist](https://github.com/syntax-tree/unist) - **unist** specification.\n* [mdast](https://github.com/syntax-tree/mdast) - **mdast** (markdown) specification.\n* [hast](https://github.com/syntax-tree/hast) - **hast** (HTML) specification.\n* [xast](https://github.com/syntax-tree/xast) - **xast** (XML) specification.\n* [esast](https://github.com/syntax-tree/esast) - **esast** (JS) specification.\n* [nlcst](https://github.com/syntax-tree/nlcst) - **nlcst** (prose) specification.\n* [unified](https://github.com/unifiedjs/unified) - Ecosystem.\n* [unifiedjs.com](https://unifiedjs.com) - Ecosystem website.\n\n## unist utilities\n\n* [unist-builder](https://github.com/syntax-tree/unist-builder) - Create trees with a nice syntax.\n* [unist-util-is](https://github.com/syntax-tree/unist-util-is) - Check if a node passes a test.\n* [unist-util-visit](https://github.com/syntax-tree/unist-util-visit) - Visit nodes.\n* [unist-util-map](https://github.com/syntax-tree/unist-util-map) - Create a new tree by mapping all nodes.\n* [unist-util-filter](https://github.com/syntax-tree/unist-util-filter) - Create a new tree with nodes that pass a filter.\n* [unist-util-remove](https://github.com/syntax-tree/unist-util-remove) - Remove nodes from a tree.\n* [unist-util-select](https://github.com/syntax-tree/unist-util-select) - Select nodes with CSS-like selectors.\n* [unist-util-inspect](https://github.com/syntax-tree/unist-util-inspect) - Inspect nodes.\n* [unist-util-assert](https://github.com/syntax-tree/unist-util-assert) - Assert nodes.\n\n[Find more utilities »](https://github.com/syntax-tree/unist#list-of-utilities)\n\n## mdast utilities\n\n* [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) - Transform to hast.\n* [mdast-util-to-nlcst](https://github.com/syntax-tree/mdast-util-to-nlcst) - Transform to nlcst.\n* [mdast-util-to-string](https://github.com/syntax-tree/mdast-util-to-string) - Get the plain text content of a node.\n* [mdast-util-definitions](https://github.com/syntax-tree/mdast-util-definitions) - Find definitions.\n* [mdast-util-toc](https://github.com/syntax-tree/mdast-util-toc) - Generate a Table of Contents.\n* [mdast-normalize-headings](https://github.com/syntax-tree/mdast-normalize-headings) - Fix heading depths.\n* [mdast-util-heading-range](https://github.com/syntax-tree/mdast-util-heading-range) - Use heading as ranges.\n* [mdast-zone](https://github.com/syntax-tree/mdast-zone) - Use comments as ranges and markers.\n* [mdast-util-assert](https://github.com/syntax-tree/mdast-util-assert) - Assert nodes.\n\n[Find more utilities »](https://github.com/syntax-tree/mdast#list-of-utilities)\n\n## hast utilities\n\n* [hastscript](https://github.com/syntax-tree/hastscript) - Create trees with a nice syntax.\n* [hast-util-from-dom](https://github.com/syntax-tree/hast-util-from-dom) - Transform from a DOM tree.\n* [hast-util-from-text](https://github.com/syntax-tree/hast-util-from-text) - Set plain-text content.\n* [hast-util-to-dom](https://github.com/syntax-tree/hast-util-to-dom) - Transform to a DOM tree.\n* [hast-util-to-jsx-runtime](https://github.com/syntax-tree/hast-util-to-jsx-runtime) - Transform to preact, react, solid, svelte, vue, etc.\n* [hast-util-to-html](https://github.com/syntax-tree/hast-util-to-html) - Transform to an HTML string.\n* [hast-util-to-mdast](https://github.com/syntax-tree/hast-util-to-mdast) - Transform to mdast.\n* [hast-util-to-nlcst](https://github.com/syntax-tree/hast-util-to-nlcst) - Transform to nlcst.\n* [hast-util-to-text](https://github.com/syntax-tree/hast-util-to-text) - Get plain-text content.\n* [hast-util-to-xast](https://github.com/syntax-tree/hast-util-to-xast) - Transform to xast.\n* [hast-util-find-and-replace](https://github.com/syntax-tree/hast-util-find-and-replace) - Find and replace text in a tree.\n* [hast-util-sanitize](https://github.com/syntax-tree/hast-util-sanitize) - Sanitize a tree.\n* [hast-util-select](https://github.com/syntax-tree/hast-util-select) - `querySelector`, `querySelectorAll`, and `matches`.\n* [hast-util-has-property](https://github.com/syntax-tree/hast-util-has-property) - Check if a node has a property.\n* [hast-util-is-element](https://github.com/syntax-tree/hast-util-is-element) - Check if a node is a (certain) element.\n* [hast-util-assert](https://github.com/syntax-tree/hast-util-assert) - Assert nodes.\n\n[Find more utilities »](https://github.com/syntax-tree/hast#list-of-utilities)\n\n## xast utilities\n\n* [xastscript](https://github.com/syntax-tree/xastscript) - Create xast trees.\n* [xast-util-feed](https://github.com/syntax-tree/xast-util-feed) - Build a feed (RSS, Atom).\n* [xast-util-from-xml](https://github.com/syntax-tree/xast-util-from-xml) - Transform from an XML string.\n* [xast-util-sitemap](https://github.com/syntax-tree/xast-util-sitemap) - Build a sitemap.\n* [xast-util-to-xml](https://github.com/syntax-tree/xast-util-to-xml) - Transform to an XML string.\n\n[Find more utilities »](https://github.com/syntax-tree/xast#list-of-utilities)\n\n## esast utilities\n\n* [estree-util-attach-comments](https://github.com/syntax-tree/estree-util-attach-comments) - Attach comments to the tree.\n* [estree-util-build-jsx](https://github.com/syntax-tree/estree-util-build-jsx) - Turn JSX into function calls.\n* [esast-util-from-js](https://github.com/syntax-tree/esast-util-from-js) - Transform from a JavaScript string.\n* [estree-util-to-js](https://github.com/syntax-tree/estree-util-to-js) - Transform to a JavaScript string.\n* [estree-util-value-to-estree](https://github.com/remcohaszing/estree-util-value-to-estree) - Turn a JavaScript value into an estree expression\n\n[Find more utilities »](https://github.com/syntax-tree/esast#list-of-utilities)\n\n## nlcst utilities\n\n* [nlcst-search](https://github.com/syntax-tree/nlcst-search) - Search for patterns in a tree.\n* [nlcst-to-string](https://github.com/syntax-tree/nlcst-to-string) - Transform to a string.\n* [nlcst-is-literal](https://github.com/syntax-tree/nlcst-is-literal) - Check if a node is meant literally.\n* [nlcst-normalize](https://github.com/syntax-tree/nlcst-normalize) - Normalize a word for easier comparison.\n* [nlcst-test](https://github.com/syntax-tree/nlcst-test) - Assert nodes.\n\n[Find more utilities »](https://github.com/syntax-tree/nlcst#list-of-utilities)\n\n## Related lists\n\n* [awesome unified](https://github.com/unifiedjs/awesome-unified)\n* [awesome remark](https://github.com/remarkjs/awesome-remark)\n* [awesome rehype](https://github.com/rehypejs/awesome-rehype)\n* [awesome retext](https://github.com/retextjs/awesome-retext)\n* [awesome mdx](https://github.com/mdx-js/awesome)\n\n## License\n\n[![CC-BY][license-badge]][license] © [Titus Wormer][author]\n\n\u003c!-- Definitions. --\u003e\n\n[author]: https://wooorm.com\n\n[awesome-badge]: https://awesome.re/badge.svg\n\n[esast]: https://github.com/syntax-tree/esast\n\n[hast]: https://github.com/syntax-tree/hast\n\n[license-badge]: https://mirrors.creativecommons.org/presskit/buttons/80x15/svg/by.svg\n\n[license]: https://creativecommons.org/licenses/by/4.0/\n\n[mdast]: https://github.com/syntax-tree/mdast\n\n[nlcst]: https://github.com/syntax-tree/nlcst\n\n[self]: https://github.com/remarkjs/awesome-remark\n\n[unified]: https://github.com/unifiedjs/unified\n\n[unist]: https://github.com/syntax-tree/unist\n\n[xast]: https://github.com/syntax-tree/xast\n","created_at":"2024-01-04T17:38:46.764Z","updated_at":"2026-04-23T01:00:34.803Z","primary_language":"JavaScript","list_of_lists":false,"displayable":true,"categories":["Official","unist utilities","hast utilities","Related lists","esast utilities","mdast utilities","xast utilities","nlcst utilities"],"sub_categories":[],"projects_url":"https://awesome.ecosyste.ms/api/v1/lists/syntax-tree%2Fawesome-syntax-tree/projects"}