{"id":22281185,"url":"https://github.com/zestedesavoir/zmarkdown","last_synced_at":"2025-05-15T01:08:43.588Z","repository":{"id":42207311,"uuid":"85119741","full_name":"zestedesavoir/zmarkdown","owner":"zestedesavoir","description":"Live demo: https://zestedesavoir.github.io/zmarkdown/","archived":false,"fork":false,"pushed_at":"2025-03-01T13:04:16.000Z","size":12352,"stargazers_count":228,"open_issues_count":26,"forks_count":52,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-05-14T05:11:40.178Z","etag":null,"topics":["markdown","rehype","remark"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/zestedesavoir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-MIT","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2017-03-15T20:51:49.000Z","updated_at":"2025-05-11T18:22:04.000Z","dependencies_parsed_at":"2023-12-10T12:31:11.936Z","dependency_job_id":"230e870e-b5bd-4eeb-8069-40eb3b193190","html_url":"https://github.com/zestedesavoir/zmarkdown","commit_stats":{"total_commits":1133,"total_committers":39,"mean_commits":29.05128205128205,"dds":0.4492497793468667,"last_synced_commit":"6508e7e4b0a286d23c0b2ae242a12a6b9aaf6389"},"previous_names":[],"tags_count":1268,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zestedesavoir%2Fzmarkdown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zestedesavoir%2Fzmarkdown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zestedesavoir%2Fzmarkdown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zestedesavoir%2Fzmarkdown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zestedesavoir","download_url":"https://codeload.github.com/zestedesavoir/zmarkdown/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254254042,"owners_count":22039792,"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","rehype","remark"],"created_at":"2024-12-03T16:15:51.188Z","updated_at":"2025-05-15T01:08:38.580Z","avatar_url":"https://github.com/zestedesavoir.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# ZMarkdown\n\n  [![Build Status][build-badge]][build-status]\n  [![Coverage Status][coverage-badge]][coverage-status]\n\nThis repository contains all the plugins for ZMarkdown, the Markdown engine powering [Zeste de Savoir][zds].\n\nIt is a collection of packages extending the [**remark** processor][processor] and its [**MDAST**][mdast] syntax tree, [**rehype**][rehype] (for HTML processing) and [**textr**][textr] (text transformation framework).\nIt also provides [**MDAST**][mdast] to LaTeX compilation via [**rebber**][rebber] (and its [plugins][rebber-plugins]).\n\nCurrently, all the plugins provided only work for remark versions **lesser than** 13.0.0 (i.e. previous to [**micromark**][micromark]). While we intend to switch to the new system, no due date has been planned, and it requires a significant amount of work, so please be patient, or, even better, help us making the switch!\n\n## Install\n\n### Prerequisites\n\n* node \u003e= 18\n* npm \u003e= 9\n\n### Installation\n\n1. `git clone git@github.com:zestedesavoir/zmarkdown.git`\n1. `npm install`\n\nThis project uses [Jest][jest] for testing. It is recommended to use the locally installed version using `npx`, and run Jest in watch mode when developing `npx jest --watch --notify` (`--notify` sends desktop notifications when tests run).\n\n### Useful commands\n\n* `npm run test` : tests all packages.\n* `npm run clean` : clears local dependencies, reinstalls the project and runs all tests.\n* `npm run lint` : runs [eslint][eslint] to check the syntax of the full codebase.\n* `npm run build` : builds packages using [babel][babel].\n* `npm run build -- --scope=\u003cpackage\u003e` : same as above, but builds only `\u003cpackage\u003e`.\n\n## Packages\n\n* [**mdast-util-split-by-heading**][mdast-util-split-by-heading]\n\n  A MDAST tool to split a markdown tree into list of subtrees representing the chapters. It relies on heading depth.\n\n* [**rebber**][rebber]\n\n  transformation of MDAST into `latex` code. This code must be included inside a custom latex to be compiled.\n  Have a look at `https://github.com/zestedesavoir/latex-template/blob/master/zmdocument.cls` to get a working example.\n\n* [**remark-abbr**][remark-abbr]\n\n  This plugin parses `*[ABBR]: abbr definition` and then replace all ABBR instance in text with a new MDAST node so that `rehype` can parse it into `abbr` html tag.\n\n* [**rehype-footnotes-title**][rehype-footnotes-title]\n\n  This plugin adds a `title` attribute to the footnote links, mainly for accessibility purpose.\n\n* [**rehype-html-blocks**][rehype-html-blocks]\n\n  This plugin wraps (multi-line) raw HTML in `p`.\n\n* [**remark-align**][remark-align]\n\n  This plugin parses custom Markdown syntax to center- or right-align elements.\n\n* [**remark-captions**][remark-captions]\n\n  Allow to add caption to such element as image, table or blockquote.\n\n* [**remark-comments**][remark-comments]\n\n  This plugin parses custom Markdown syntax for Markdown source comments.\n\n* [**remark-custom-blocks**][remark-custom-blocks]\n\n  This plugin parses custom Markdown syntax to create new custom blocks.\n\n* [**remark-emoticons**][remark-emoticons]\n\n  This plugins replaces ASCII emoticons with associated image. Compatible with [rehype][rehype]\n\n* [**remark-escape-escaped**][remark-escape-escaped]\n\n  This plugin escapes HTML entities from Markdown input.\n\n* [**remark-grid-tables**][remark-grid-tables]\n\n  This plugin parses custom Markdown syntax to describe tables.\n\n* [**remark-heading-shift**][remark-heading-shift]\n\n  Allows to shift heading to custimize the way you will integrate the generated tree inside your application.\n\n* [**remark-heading-trailing-spaces**][remark-heading-trailing-spaces]\n\n  This plugin removes trailing spaces from Markdown headers.\n\n* [**remark-iframes**][remark-iframes]\n\n  Allows to add `iframe` inclusion through `!(url)` code.\n\n* [**remark-kbd**][remark-kbd]\n\n  This plugin parses custom Markdown syntax to handle keyboard keys.\n\n* [**remark-numbered-footnotes**][remark-numbered-footnotes]\n\n  This plugin changes how [mdast][mdast] footnotes are displayed by using sequential numbers as footnote references instead of user-specified strings.\n\n* [**remark-sub-super**][remark-sub-super]\n\n  This plugin parses custom Markdown syntax to handle subscript and superscript.\n\n* [**typographic-colon**][typographic-colon]\n\n  Micro module to fix a common typographic issue that is hard to fix with most keyboard layouts.\n\n* [**typographic-permille**][typographic-permille]\n\n  Micro module to replace `%o` with `‰` and optionally replace the preceding space.\n\n* [**zmarkdown**][zmarkdown]\n\n  Fully integrated package to be used in [zeste de savoir website](https://zestedesavoir.com)\n\n## License\n\n[MIT][license] © [Zeste de Savoir][zds]\n\n\u003c!-- Definitions --\u003e\n\n[build-badge]: https://travis-ci.com/zestedesavoir/zmarkdown.svg?branch=master\n[build-status]: https://travis-ci.com/zestedesavoir/zmarkdown\n[coverage-badge]: https://coveralls.io/repos/github/zestedesavoir/zmarkdown/badge.svg?branch=master\n\n[coverage-status]: https://coveralls.io/github/zestedesavoir/zmarkdown?branch=master\n[license]: https://github.com/zestedesavoir/zmarkdown/blob/master/LICENSE-MIT\n\n[processor]: https://github.com/remarkjs/remark/blob/master/packages/remark\n[mdast]: https://github.com/wooorm/mdast\n[micromark]: https://github.com/micromark/micromark\n[pyzmd]: https://github.com/zestedesavoir/Python-ZMarkdown\n[zds]: https://zestedesavoir.com\n[rehype]: https://github.com/rehypejs/rehype\n[textr]: https://github.com/A/textr\n[jest]: https://facebook.github.io/jest/\n[eslint]: https://github.com/eslint/eslint\n[babel]: https://github.com/babel/babel\n\n[mdast-util-split-by-heading]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/mdast-util-split-by-heading#mdast-util-split-by-heading--\n[rebber]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/rebber#rebber--\n[rebber-plugins]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/rebber-plugins#rebber-plugins--\n[remark-abbr]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-abbr#remark-abbr--\n[rehype-footnotes-title]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/rehype-footnotes-title#rehype-footnotes-title--\n[rehype-html-blocks]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/rehype-html-blocks#rehype-html-blocks--\n[remark-align]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-align#remark-align--\n[remark-captions]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-captions#remark-captions--\n[remark-comments]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-comments#remark-comments--\n[remark-custom-blocks]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-custom-blocks#remark-custom-blocks--\n[remark-emoticons]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-emoticons#remark-emoticons--\n[remark-escape-escaped]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-escape-escaped#remark-escape-escaped--\n[remark-grid-tables]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-grid-tables#remark-grid-tables--\n[remark-heading-shift]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-heading-shift#remark-heading-shift--\n[remark-heading-trailing-spaces]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-heading-trailing-spaces#remark-heading-trailing-spaces--\n[remark-iframes]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-iframes#remark-iframes--\n[remark-kbd]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-kbd#remark-kbd--\n[remark-numbered-footnotes]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-numbered-footnotes#remark-numbered-footnotes--\n[remark-sub-super]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-sub-super#remark-sub-super--\n[typographic-colon]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/typographic-colon#typographic-colon--\n[typographic-permille]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/typographic-permille#typographic-permille--\n[zmarkdown]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/zmarkdown#zmarkdown--\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzestedesavoir%2Fzmarkdown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzestedesavoir%2Fzmarkdown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzestedesavoir%2Fzmarkdown/lists"}