{"_id":"@bernardjoseph/remark-citekey","_rev":"1-7165fab9bbddbf122d55065394ade17b","name":"@bernardjoseph/remark-citekey","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@bernardjoseph/remark-citekey","version":"0.1.0","description":"remark plugin to support Pandoc-style citation keys","license":"MIT","keywords":["cite","citation","pandoc","markdown","remark","unified"],"repository":{"type":"git","url":"git+https://github.com/bernardjoseph/remark-citekey.git"},"author":{"name":"Bernd Rellermeyer","email":"bernd.rellermeyer@t-online.de"},"type":"module","main":"index.js","types":"index.d.ts","dependencies":{"@types/mdast":"^3.0.10","@bernardjoseph/mdast-util-citekey":"^0.1.0","@bernardjoseph/micromark-extension-citekey":"^0.1.0"},"devDependencies":{"@types/tape":"^4.13.2","c8":"^7.13.0","prettier":"^2.8.4","remark":"^14.0.2","remark-cli":"^11.0.0","remark-preset-wooorm":"^9.1.0","rimraf":"^4.4.0","tape":"^5.6.3","type-coverage":"^2.24.1","typescript":"^4.9.5","unified":"^10.1.2","xo":"^0.53.1"},"scripts":{"build":"rimraf --glob \"test/**/*.d.ts\" \"*.d.ts\" && tsc && type-coverage","format":"remark . -qfo && prettier . -w --loglevel warn && xo --fix","test-api":"node --conditions development test.js","test-coverage":"c8 --check-coverage --branches 100 --functions 100 --lines 100 --statements 100 --reporter lcov npm run test-api","test":"npm run build && npm run format && npm run test-coverage"},"prettier":{"tabWidth":2,"useTabs":false,"singleQuote":true,"bracketSpacing":false,"semi":false,"trailingComma":"none"},"xo":{"prettier":true},"remarkConfig":{"plugins":["remark-preset-wooorm"]},"typeCoverage":{"atLeast":100,"detail":true,"strict":true,"ignoreCatch":true},"gitHead":"33a5646535e9b555e2422878ebf78500a80188c7","bugs":{"url":"https://github.com/bernardjoseph/remark-citekey/issues"},"homepage":"https://github.com/bernardjoseph/remark-citekey#readme","_id":"@bernardjoseph/remark-citekey@0.1.0","_nodeVersion":"19.8.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-BMVGd8ZkNjGSsKlCkz+2adYDxsuLtZC7idx+hzJn4zqcURH6HHCPpxbN4quR40BR4RnRMDpvYJmM8GfZYn3KKg==","shasum":"6b3572b32d4403d0d2373212a38b47947f3cf73c","tarball":"https://registry.npmjs.org/@bernardjoseph/remark-citekey/-/remark-citekey-0.1.0.tgz","fileCount":4,"unpackedSize":7591,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCl74sAs+ysLuFQC+XOiccdP5EBJezatRVbmzM7ebYCwIhAK3OA3KSvaPx1oCEybnbx5mquqAcB3xLvFEVjFQDZa3E"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJXUWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGMQ/9GURnZvbHGJwHZKQbJagW5iKAbag0ak0xga5kD4RK1urtyfvO\r\nZVKu+Df+2nEzeSAhjy+Gdu8p5jJ4uN8MaoWoKlx0wQsVsDDMy6gvN6nXsNQE\r\n26FfDKHleqtsag8U5oS8pGkoBMHaGfpawi3zlke6U5NEwfBKERF1LdPihNVi\r\nN93tt45OtAdEp28+lEaY1jfGFqXqaHylfKmQoZu7jgg5NvwNgFUUnCk3zufC\r\nZ9mnN7WNYPI4YoQm6gOpBWxT0feZribA9ebBmamBiglJva/x+m2KGj52E/mn\r\nIa41dGQVtEFw2pFfzcH4NqatzB9DgA8pU4UPk0jbYCQgaeMQAy+KkEZAjT5P\r\ne++yoat0PItaEAgK9ZUaAvDOHAIT9Q4CorXzl6AaPPQoOpf1GFOJlpnRkNoS\r\n8X+4Dd/O35lCaJEesTlHJiE2IpmaTtLWmyj8wNU4vGHJjOdrvf3ATFZdAj9T\r\nhzdL6gjgmlq1hlYvJNLkOCwcP+MR+FWl/c8yETe17K1ZXFoj5merhmaJabme\r\nZ6dziBQ+96LS9w/wGTLNkmxPG2Tool53NOKMoj8y//CrktArGpPqf1v/hNS3\r\nTn4UbNnphPJ398+C8OpXTZCrmL8AtdSO6OqSvxnB/MzuQ3b0a7Y9Wqg+HRE7\r\nc8KuH2KiT1x/GwGkknTPv1EheMqh878UOU4=\r\n=uO+l\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bernardjoseph","email":"bernd.rellermeyer@t-online.de"},"directories":{},"maintainers":[{"name":"bernardjoseph","email":"bernd.rellermeyer@t-online.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/remark-citekey_0.1.0_1680176406267_0.7684928315407833"},"_hasShrinkwrap":false},"0.1.1":{"name":"@bernardjoseph/remark-citekey","version":"0.1.1","description":"remark plugin to support Pandoc-style citation keys","license":"MIT","keywords":["cite","citation","pandoc","markdown","remark","unified"],"repository":{"type":"git","url":"git+https://github.com/bernardjoseph/remark-citekey.git"},"author":{"name":"Bernd Rellermeyer","email":"bernd.rellermeyer@t-online.de"},"type":"module","main":"index.js","types":"index.d.ts","dependencies":{"@types/mdast":"^3.0.10","@bernardjoseph/mdast-util-citekey":"^0.1.0","@bernardjoseph/micromark-extension-citekey":"^0.1.0"},"devDependencies":{"@types/tape":"^4.13.2","c8":"^7.13.0","prettier":"^2.8.4","remark":"^14.0.2","remark-cli":"^11.0.0","remark-preset-wooorm":"^9.1.0","rimraf":"^4.4.0","tape":"^5.6.3","type-coverage":"^2.24.1","typescript":"^4.9.5","unified":"^10.1.2","xo":"^0.53.1"},"scripts":{"build":"rimraf --glob \"test/**/*.d.ts\" \"*.d.ts\" && tsc && type-coverage","format":"remark . -qfo && prettier . -w --loglevel warn && xo --fix","test-api":"node --conditions development test.js","test-coverage":"c8 --check-coverage --branches 100 --functions 100 --lines 100 --statements 100 --reporter lcov npm run test-api","test":"npm run build && npm run format && npm run test-coverage"},"prettier":{"tabWidth":2,"useTabs":false,"singleQuote":true,"bracketSpacing":false,"semi":false,"trailingComma":"none"},"xo":{"prettier":true},"remarkConfig":{"plugins":["remark-preset-wooorm"]},"typeCoverage":{"atLeast":100,"detail":true,"strict":true,"ignoreCatch":true},"gitHead":"33a5646535e9b555e2422878ebf78500a80188c7","bugs":{"url":"https://github.com/bernardjoseph/remark-citekey/issues"},"homepage":"https://github.com/bernardjoseph/remark-citekey#readme","_id":"@bernardjoseph/remark-citekey@0.1.1","_nodeVersion":"19.8.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-HiH/C8xe6zNUPVoMm0PjQiP+l1tt/6n4ogjbvE2eoFTo4LHg/jPNvzxPT+m4mUKpqZW6culFSmleFpI3wCGETA==","shasum":"88867273f5209c713d4b3a608fc664ad70f3c50b","tarball":"https://registry.npmjs.org/@bernardjoseph/remark-citekey/-/remark-citekey-0.1.1.tgz","fileCount":4,"unpackedSize":7636,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFv6oVXCbwVX/aAkMwFv1uw29DJIhfRigMO5msKMhgE3AiA66gwpddyFAT6SdDUYyICTfqrFaHNcocrqWouJicuP/g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJXpSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoHyQ//cCM/4iXWEc2eC5em5uX4f7gTHulE7e1c9oL5TqBilVGBEnsH\r\nkX4XVhk2Umu61nsQ9WRdwoczgMgSbMC0PvHA/05DYEh+iwrHkAbh3KHAZsT/\r\nMC+9SbmrMIGQ0IgOTTK7tFAZ+b3XTFbN1jJOf0RWAa1GUWYpfsI33eYLqP4k\r\nv0nlzL245+nzjaALXDHqJRPmmecrea/H2fWV+hQm2JImNXOsOzX9tJTY7jXu\r\nK+JXpSx1C1A9eYdWS9Rqe8J6GfWsPYfOQ86pvgQqvVoV9bsmw4FVHrZLpHqT\r\nv6A/MLC78Yo3baC5bCvhRTlfH9i8FL6FWhdTFdlLb2CRLizEVlCpEcSU1f3a\r\n6Y7p2+JDnxvx76gmphkMvUxED75SPsL/HssGudzaI9sVY5lNiMNSw1+mUlK9\r\nkMTqe+Zvnux6mEyUKa5BALUJ3/6rrvw0QKXnaMcFz1P1An7ZpLdIYjV/b5qw\r\nZYeXTDzK8Bkla/7butyXdbMKxHNr82KA4obm4S7tvxoFV3aejqYeW4tlY/Y7\r\nz/cDFen/vhul0MzRRd7vU/a3A3WA2Va5fh3ObOgCSHhXOIWlQ/2aT+nwX0E0\r\n8qONR7YV+U3RU9ZGmlxELQ+tI8yff4AXxfp7b24GttE3a/kTtOhjShTOWe1q\r\nHIqysLUXmm7kGQaZFCh+2iuecltxFs8lhA0=\r\n=+xry\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bernardjoseph","email":"bernd.rellermeyer@t-online.de"},"directories":{},"maintainers":[{"name":"bernardjoseph","email":"bernd.rellermeyer@t-online.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/remark-citekey_0.1.1_1680177746332_0.13451165236521345"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-30T11:40:06.166Z","0.1.0":"2023-03-30T11:40:06.413Z","modified":"2023-03-30T12:02:26.642Z","0.1.1":"2023-03-30T12:02:26.476Z"},"maintainers":[{"name":"bernardjoseph","email":"bernd.rellermeyer@t-online.de"}],"description":"remark plugin to support Pandoc-style citation keys","homepage":"https://github.com/bernardjoseph/remark-citekey#readme","keywords":["cite","citation","pandoc","markdown","remark","unified"],"repository":{"type":"git","url":"git+https://github.com/bernardjoseph/remark-citekey.git"},"author":{"name":"Bernd Rellermeyer","email":"bernd.rellermeyer@t-online.de"},"bugs":{"url":"https://github.com/bernardjoseph/remark-citekey/issues"},"license":"MIT","readme":"# remark-citekey\n\n[**remark**][remark] plugin to support [Pandoc][]-style citation keys\n(`@doe99`, `@{smith04}`).\n\n## Install\n\nThis package is [ESM\nonly](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c):\nNode 12+ is needed to use it and it must be `import`ed instead of `require`d.\n\n[npm][]:\n\n```sh\nnpm install remark-citekey\n```\n\n## Use\n\nSay we have the following file, `example.md`:\n\n```markdown\nSee @wadler1989 [sec. 1.3; and @{hughes1990.}, pp. 4].\n```\n\nAnd our module, `example.js`, looks as follows:\n\n```js\nimport {readSync} from 'to-vfile'\nimport {reporter} from 'vfile-reporter'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkCitekey from '@bernardjoseph/remark-citekey'\nimport remarkRehype from 'remark-rehype'\nimport rehypeFormat from 'rehype-format'\nimport rehypeStringify from 'rehype-stringify'\nimport {visit} from 'unist-util-visit'\n\nunified()\n  .use(remarkParse)\n  .use(remarkCitekey)\n  .use(citekeyPlugin)\n  .use(remarkRehype)\n  .use(rehypeFormat)\n  .use(rehypeStringify)\n  .process(readSync('example.md'))\n  .then((file) => {\n    console.error(reporter(file))\n    console.log(String(file))\n  })\n\nfunction citekeyPlugin() {\n  return (tree) => {\n    visit(tree, (node, _, parent) => {\n      if (node.type === 'citekey') {\n        const data = node.data || (node.data = {})\n        data.hName = 'span'\n        data.hProperties = {className: 'citation'}\n      }\n\n      if (node.type === 'citekeyId' && parent.type === 'citekey') {\n        const data = parent.data || (parent.data = {})\n        if (data.hProperties && data.hProperties.className === 'citation')\n          data.hProperties['data-cite'] = node.value\n      }\n    })\n  }\n}\n```\n\nNow, running `node example` yields:\n\n```txt\nno issues found\n```\n\n```html\n<p>See <span class=\"citation\" data-cite=\"wadler1989\">@wadler1989</span> [sec. 1.3; and <span class=\"citation\" data-cite=\"hughes1990.\">@{hughes1990.}</span>, pp. 4].</p>\n```\n\n## API\n\nThis package exports no identifiers.\nThe default export is `remarkCitekey`.\n\n### `unified().use(remarkCitekey[, options])`\n\nConfigures remark so that it can parse and serialize [Pandoc][]-style citation\nkeys.\nSee the [mdast utility for the syntax tree][syntax-tree].\n\n###### `options.strict`\n\nPassed to [`micromark-extension-citekey`][micromark-extension-citekey-options].\n\n## Security\n\nUse of `remark-citekey` does not involve [**rehype**][rehype]\n([**hast**][hast]) or user content so there are no openings for [cross-site\nscripting (XSS)][xss] attacks.\n\n## Related\n\n*   [`unifiedjs/unified`][unified]\n    — interface for processing text using syntax trees\n*   [`remarkjs/remark`][remark]\n    — markdown processor powered by plugins\n*   [`micromark/micromark`][micromark]\n    — the smallest commonmark-compliant markdown parser that exists\n*   [`@bernardjoseph/mdast-util-citekey`][mdast-util-citekey]\n    — mdast utility to support citation keys\n*   [`@bernardjoseph/micromark-extension-citekey`][micromark-extension-citekey]\n    — mdast utility to support citation keys\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, organization, or community you agree to\nabide by its terms.\n\n## License\n\n[MIT][license] © Bernd Rellermeyer\n\n<!-- Definitions -->\n\n[npm]: https://docs.npmjs.com/cli/install\n\n[unified]: https://github.com/unifiedjs/unified\n\n[remark]: https://github.com/remarkjs/remark\n\n[mdast-util-citekey]: https://github.com/bernardjoseph/mdast-util-citekey\n\n[syntax-tree]: https://github.com/bernardjoseph/mdast-util-citekey#syntax-tree\n\n[micromark]: https://github.com/micromark/micromark\n\n[micromark-extension-citekey]: https://github.com/bernardjoseph/micromark-extension-citekey\n\n[micromark-extension-citekey-options]: https://github.com/bernardjoseph/micromark-extension-citekey#optionsstrict\n\n[rehype]: https://github.com/rehypejs/rehype\n\n[hast]: https://github.com/syntax-tree/hast\n\n[xss]: https://en.wikipedia.org/wiki/Cross-site_scripting\n\n[pandoc]: https://pandoc.org\n\n[contributing]: https://github.com/unifiedjs/.github/blob/HEAD/contributing.md\n\n[support]: https://github.com/unifiedjs/.github/blob/HEAD/support.md\n\n[coc]: https://github.com/unifiedjs/.github/blob/HEAD/code-of-conduct.md\n\n[license]: https://github.com/micromark/micromark/blob/main/license\n","readmeFilename":"readme.md"}