{"id":13483883,"url":"https://github.com/micromark/micromark-extension-directive","last_synced_at":"2025-10-10T17:45:43.048Z","repository":{"id":46790099,"uuid":"306368216","full_name":"micromark/micromark-extension-directive","owner":"micromark","description":"micromark extension to support generic directives (`:cite[smith04]`)","archived":false,"fork":false,"pushed_at":"2025-03-14T10:18:01.000Z","size":188,"stargazers_count":33,"open_issues_count":0,"forks_count":17,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-09-13T20:20:41.311Z","etag":null,"topics":["directive","extension","generic","micromark","micromark-extension"],"latest_commit_sha":null,"homepage":"https://unifiedjs.com","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/micromark.png","metadata":{"funding":{"github":"unifiedjs","open_collective":"unified","thanks_dev":"u/gh/micromark"},"files":{"readme":"readme.md","changelog":null,"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,"zenodo":null}},"created_at":"2020-10-22T14:44:24.000Z","updated_at":"2025-08-07T03:07:36.000Z","dependencies_parsed_at":"2024-10-02T02:30:27.637Z","dependency_job_id":"031a300f-d005-4ab6-8e15-d8d7f087ebd2","html_url":"https://github.com/micromark/micromark-extension-directive","commit_stats":{"total_commits":59,"total_committers":2,"mean_commits":29.5,"dds":"0.016949152542372836","last_synced_commit":"b8a6ad478d5d958d8b921610ecf8d502faa07dec"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/micromark/micromark-extension-directive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micromark%2Fmicromark-extension-directive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micromark%2Fmicromark-extension-directive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micromark%2Fmicromark-extension-directive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micromark%2Fmicromark-extension-directive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micromark","download_url":"https://codeload.github.com/micromark/micromark-extension-directive/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micromark%2Fmicromark-extension-directive/sbom","scorecard":{"id":642947,"data":{"date":"2025-08-11","repo":{"name":"github.com/micromark/micromark-extension-directive","commit":"d19906200feba667b351ce60ee511f6204b662e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/bb.yml:5: update your workflow using https://app.stepsecurity.io/secureworkflow/micromark/micromark-extension-directive/bb.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:6: update your workflow using https://app.stepsecurity.io/secureworkflow/micromark/micromark-extension-directive/main.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:7: update your workflow using https://app.stepsecurity.io/secureworkflow/micromark/micromark-extension-directive/main.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/micromark/micromark-extension-directive/main.yml/main?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/main.yml:11","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/bb.yml:1","Warn: no topLevel permission defined: .github/workflows/main.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: license:0","Info: FSF or OSI recognized license: MIT License: license:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/micromark/.github/security.md:1","Info: Found linked content: github.com/micromark/.github/security.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/micromark/.github/security.md:1","Info: Found text in security policy: github.com/micromark/.github/security.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}}]},"last_synced_at":"2025-08-21T11:19:19.492Z","repository_id":46790099,"created_at":"2025-08-21T11:19:19.492Z","updated_at":"2025-08-21T11:19:19.492Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004821,"owners_count":26083784,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"}},"keywords":["directive","extension","generic","micromark","micromark-extension"],"created_at":"2024-07-31T17:01:16.440Z","updated_at":"2025-10-10T17:45:43.003Z","avatar_url":"https://github.com/micromark.png","language":"JavaScript","funding_links":["https://github.com/sponsors/unifiedjs","https://opencollective.com/unified","https://thanks.dev/u/gh/micromark"],"categories":["JavaScript"],"sub_categories":[],"readme":"# micromark-extension-directive\n\n[![Build][build-badge]][build]\n[![Coverage][coverage-badge]][coverage]\n[![Downloads][downloads-badge]][downloads]\n[![Size][size-badge]][size]\n[![Sponsors][sponsors-badge]][collective]\n[![Backers][backers-badge]][collective]\n[![Chat][chat-badge]][chat]\n\n[micromark][] extensions to support [directives][prop] (`:cite[smith04]` and\nsuch).\n\n## Contents\n\n* [What is this?](#what-is-this)\n* [When to use this](#when-to-use-this)\n* [Install](#install)\n* [Use](#use)\n* [API](#api)\n  * [`directive()`](#directive)\n  * [`directiveHtml(options?)`](#directivehtmloptions)\n  * [`Directive`](#directive-1)\n  * [`Handle`](#handle)\n  * [`HtmlOptions`](#htmloptions)\n* [Authoring](#authoring)\n* [HTML](#html)\n* [CSS](#css)\n* [Syntax](#syntax)\n* [Compatibility](#compatibility)\n* [Security](#security)\n* [Related](#related)\n* [Contribute](#contribute)\n* [License](#license)\n\n## What is this?\n\nThis package contains two extensions that add support for directive syntax in\nmarkdown to [`micromark`][micromark].\n\n## When to use this\n\nThis project is useful when you want to solve the need for an infinite number\nof potential extensions to markdown in a single markdown-esque way.\n\nYou can use these extensions when you are working with [`micromark`][micromark]\nalready.\n\nWhen you need a syntax tree,\nyou can combine this package with\n[`mdast-util-directive`][mdast-util-directive].\n\nAll these packages are used [`remark-directive`][remark-directive],\nwhich focusses on making it easier to transform content by abstracting these\ninternals away.\n\n## Install\n\nThis package is [ESM only][esm].\nIn Node.js (version 16+),\ninstall with [npm][]:\n\n[npm][]:\n\n```sh\nnpm install micromark-extension-directive\n```\n\nIn Deno with [`esm.sh`][esmsh]:\n\n```js\nimport {directive, directiveHtml} from 'https://esm.sh/micromark-extension-directive@4'\n```\n\nIn browsers with [`esm.sh`][esmsh]:\n\n```html\n\u003cscript type=\"module\"\u003e\n  import {directive, directiveHtml} from 'https://esm.sh/micromark-extension-directive@4?bundle'\n\u003c/script\u003e\n```\n\n## Use\n\nSay our document `example.md` contains:\n\n```markdown\nA lovely language know as :abbr[HTML]{title=\"HyperText Markup Language\"}.\n```\n\n…and our module `example.js` looks as follows:\n\n```js\n/**\n * @import {Handle} from 'micromark-extension-directive'\n * @import {CompileContext} from 'micromark-util-types'\n */\n\nimport fs from 'node:fs/promises'\nimport {micromark} from 'micromark'\nimport {directive, directiveHtml} from 'micromark-extension-directive'\n\nconst output = micromark(await fs.readFile('example.md'), {\n  extensions: [directive()],\n  htmlExtensions: [directiveHtml({abbr})]\n})\n\nconsole.log(output)\n\n/**\n * @this {CompileContext}\n * @type {Handle}\n * @returns {false | undefined}\n */\nfunction abbr(d) {\n  if (d.type !== 'textDirective') return false\n\n  this.tag('\u003cabbr')\n\n  if (d.attributes \u0026\u0026 'title' in d.attributes) {\n    this.tag(' title=\"' + this.encode(d.attributes.title) + '\"')\n  }\n\n  this.tag('\u003e')\n  this.raw(d.label || '')\n  this.tag('\u003c/abbr\u003e')\n}\n```\n\n…now running `node example.js` yields:\n\n```html\n\u003cp\u003eA lovely language know as \u003cabbr title=\"HyperText Markup Language\"\u003eHTML\u003c/abbr\u003e.\u003c/p\u003e\n```\n\n## API\n\nThis package exports the identifiers [`directive`][api-directive] and\n[`directiveHtml`][api-directive-html].\nThere is no default export.\nIt exports the [TypeScript][] types\n[`Directive`][api-directive-type],\n[`Handle`][api-handle],\nand [`HtmlOptions`][api-html-options].\n\nThe export map supports the [`development` condition][development].\nRun `node --conditions development module.js` to get instrumented dev code.\nWithout this condition,\nproduction code is loaded.\n\n### `directive()`\n\nCreate an extension for `micromark` to enable directive syntax.\n\n###### Returns\n\nExtension for `micromark` that can be passed in `extensions`,\nto enable directive syntax\n([`Extension`][micromark-extension]).\n\n### `directiveHtml(options?)`\n\nCreate an extension for `micromark` to support directives when serializing to\nHTML.\n\n\u003e 👉 **Note**:\n\u003e this uses KaTeX to render math.\n\n###### Parameters\n\n* `options`\n  ([`HtmlOptions`][api-html-options], default: `{}`)\n  — configuration\n\n###### Returns\n\nExtension for `micromark` that can be passed in `htmlExtensions`,\nto support directives when serializing to HTML\n([`HtmlExtension`][micromark-html-extension]).\n\n### `Directive`\n\nStructure representing a directive (TypeScript type).\n\n###### Fields\n\n* `type`\n  (`'containerDirective'`, `'leafDirective'`, or `'textDirective'`)\n  — kind\n* `name`\n  (`string`)\n  — name of directive\n* `label`\n  (`string` or `undefined`)\n  — compiled HTML content that was in `[brackets]`\n* `attributes`\n  (`Record\u003cstring, string\u003e` or `undefined`)\n  — object w/ HTML attributes\n* `content`\n  (`string` or `undefined`)\n  — compiled HTML content inside container directive\n\n### `Handle`\n\nHandle a directive (TypeScript type).\n\n###### Parameters\n\n* `this` ([`CompileContext`][micromark-compile-context])\n  — current context\n* `directive` ([`Directive`][api-directive-type])\n  — directive\n\n###### Returns\n\nSignal whether the directive was handled\n(`boolean`, default: `true`).\nYield `false` to let the fallback (a special handle for `'*'`) handle it.\n\n### `HtmlOptions`\n\nConfiguration (TypeScript type).\n\n\u003e 👉 **Note**:\n\u003e the special field `'*'` can be used to specify a fallback handle to handle\n\u003e all otherwise unhandled directives.\n\n###### Type\n\n```ts\ntype HtmlOptions = Record\u003cstring, Handle\u003e\n```\n\n## Authoring\n\nWhen authoring markdown with directives,\nkeep in mind that they don’t work in most places.\nOn your own site it can be great!\n\n## HTML\n\nYou can define how directives are turned into HTML.\nIf directives are not handled,\nthey do not emit anything.\n\n## CSS\n\nHow to display directives is left as an exercise for the reader.\n\n## Syntax\n\nThe syntax looks like this:\n\n```markdown\nDirectives in text can form with a single colon,\nsuch as :cite[smith04].\nTheir syntax is `:name[label]{attributes}`.\n\nLeafs (block without content) can form by using two colons:\n\n::youtube[Video of a cat in a box]{vid=01ab2cd3efg}\n\nTheir syntax is `::name[label]{attributes}` on its own line.\n\nContainers (blocks with content) can form by using three colons:\n\n:::spoiler\nHe dies.\n:::\n\nThe `name` part is required.\nThe characters can be alphanumerical, `-`, and `_`.\n`-` or `_` cannot end a name.\n\nThe `[label]` part is optional (`:x` and `:x[]` are equivalent)†.\nWhen used,\nit can include text constructs such as emphasis and so on: `x[a *b* c]`.\n\nThe `{attributes}` part is optional (`:x` and `:x{}` are equivalent)†.\nWhen used,\nit is handled like HTML attributes, such as that `{a}`, `{a=\"\"}`, and `{a=''}`\nbut also `{a=b}`, `{a=\"b\"}`, and `{a='b'}` are equivalent.\nShortcuts are available for `id=` (`{#readme}` for `{id=readme}`) and\n`class` (`{.big}` for `{class=big}`).\nWhen multiple ids are found,\nthe last is used; when multiple classes are found,\nthey are combined:\n`{.red class=green .blue}` is equivalent to\n`{.red .green .blue}` and `{class=\"red green blue\"}`.\n\n† there is one case where a name must be followed by an empty label or empty\nattributes:\na *text* directive that only has a name,\ncannot be followed by a colon.\nSo,\n`:red:` doesn’t work.\nUse either `:red[]` or `:red{}` instead.\nThe reason for this is to allow GitHub emoji (gemoji) and directives to coexist.\n\nContainers can be nested by using more colons outside:\n\n::::spoiler\nHe dies.\n\n:::spoiler\nShe is born.\n:::\n::::\n\nThe closing fence must include the same or more colons as the opening.\nIf no closing is found,\nthe container runs to the end of its parent container\n(block quote, list item, document, or other container).\n\n::::spoiler\nThese three are not enough to close\n:::\nSo this line is also part of the container.\n```\n\nNote that while other implementations are sometimes loose in what they allow,\nthis implementation mimics CommonMark as closely as possible:\n\n* whitespace is not allowed between colons and name (~~`: a`~~),\n  name and label (~~`:a []`~~),\n  name and attributes (~~`:a {}`~~),\n  or label and attributes (~~`:a[] {}`~~)\n  — because it’s not allowed in links either\n  (~~`[] ()`~~)\n* no trailing colons allowed on the opening fence of a container\n  (~~`:::a:::`~~)\n  — because it’s not allowed in fenced code either\n* the label and attributes in a leaf or container cannot include line endings\n  (~~`::a[b\\nc]`~~)\n  — because it’s not allowed in fenced code either\n\n## Compatibility\n\nProjects maintained by the unified collective are compatible with maintained\nversions of Node.js.\n\nWhen we cut a new major release,\nwe drop support for unmaintained versions of Node.\nThis means we try to keep the current release line,\n`micromark-extension-directive@4`,\ncompatible with Node.js 16.\n\nThis package works with `micromark` version `4` and later.\n\n## Security\n\nThis package is safe assuming that you write safe handlers.\nAny vulnerability in your code could open you to a\n[cross-site scripting (XSS)][xss] attack.\n\n## Related\n\n* [`remark-directive`][remark-directive]\n  — remark plugin to support directives\n* [`mdast-util-directive`][mdast-util-directive]\n  — mdast utility to support directives\n\n## Contribute\n\nSee [`contributing.md` in `micromark/.github`][contributing] for ways to get\nstarted.\nSee [`support.md`][support] for ways to get help.\n\nThis project has a [code of conduct][coc].\nBy interacting with this repository,\norganization,\nor community you agree to abide by its terms.\n\n## License\n\n[MIT][license] © [Titus Wormer][author]\n\n\u003c!-- Definitions --\u003e\n\n[api-directive]: #directive\n\n[api-directive-html]: #directivehtmloptions\n\n[api-directive-type]: #directive-1\n\n[api-handle]: #handle\n\n[api-html-options]: #htmloptions\n\n[author]: https://wooorm.com\n\n[backers-badge]: https://opencollective.com/unified/backers/badge.svg\n\n[build]: https://github.com/micromark/micromark-extension-directive/actions\n\n[build-badge]: https://github.com/micromark/micromark-extension-directive/workflows/main/badge.svg\n\n[chat]: https://github.com/micromark/micromark/discussions\n\n[chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg\n\n[coc]: https://github.com/micromark/.github/blob/main/code-of-conduct.md\n\n[collective]: https://opencollective.com/unified\n\n[contributing]: https://github.com/micromark/.github/blob/main/contributing.md\n\n[coverage]: https://codecov.io/github/micromark/micromark-extension-directive\n\n[coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark-extension-directive.svg\n\n[development]: https://nodejs.org/api/packages.html#packages_resolving_user_conditions\n\n[downloads]: https://www.npmjs.com/package/micromark-extension-directive\n\n[downloads-badge]: https://img.shields.io/npm/dm/micromark-extension-directive.svg\n\n[esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c\n\n[esmsh]: https://esm.sh\n\n[license]: license\n\n[mdast-util-directive]: https://github.com/syntax-tree/mdast-util-directive\n\n[micromark]: https://github.com/micromark/micromark\n\n[micromark-compile-context]: https://github.com/micromark/micromark/blob/41e3c4c/packages/micromark-util-types/index.js#L457\n\n[micromark-extension]: https://github.com/micromark/micromark#syntaxextension\n\n[micromark-html-extension]: https://github.com/micromark/micromark#htmlextension\n\n[npm]: https://docs.npmjs.com/cli/install\n\n[prop]: https://talk.commonmark.org/t/generic-directives-plugins-syntax/444\n\n[remark-directive]: https://github.com/remarkjs/remark-directive\n\n[size]: https://bundlejs.com/?q=micromark-extension-directive\n\n[size-badge]: https://img.shields.io/badge/dynamic/json?label=minzipped%20size\u0026query=$.size.compressedSize\u0026url=https://deno.bundlejs.com/?q=micromark-extension-directive\n\n[sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg\n\n[support]: https://github.com/micromark/.github/blob/main/support.md\n\n[typescript]: https://www.typescriptlang.org\n\n[xss]: https://en.wikipedia.org/wiki/Cross-site_scripting\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicromark%2Fmicromark-extension-directive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicromark%2Fmicromark-extension-directive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicromark%2Fmicromark-extension-directive/lists"}