remark-inline-links
Advanced tools
{ | ||
"name": "remark-inline-links", | ||
"version": "6.0.0", | ||
"version": "6.0.1", | ||
"description": "remark plugin to transform references and definitions into normal links and images", | ||
@@ -49,3 +49,3 @@ "license": "MIT", | ||
"remark-cli": "^10.0.0", | ||
"remark-preset-wooorm": "^8.0.0", | ||
"remark-preset-wooorm": "^9.0.0", | ||
"rimraf": "^3.0.0", | ||
@@ -55,3 +55,3 @@ "tape": "^5.0.0", | ||
"typescript": "^4.0.0", | ||
"xo": "^0.43.0" | ||
"xo": "^0.46.0" | ||
}, | ||
@@ -58,0 +58,0 @@ "scripts": { |
138
readme.md
@@ -11,19 +11,49 @@ # remark-inline-links | ||
[**remark**][remark] plugin to transform references and definitions into normal | ||
**[remark][]** plugin to change references and definitions into normal | ||
links and images. | ||
## Note! | ||
## Contents | ||
This plugin is ready for the new parser in remark | ||
([`remarkjs/remark#536`](https://github.com/remarkjs/remark/pull/536)). | ||
The current and previous versions of the plugin work with the current and | ||
previous versions of remark. | ||
* [What is this?](#what-is-this) | ||
* [When should I use this?](#when-should-i-use-this) | ||
* [Install](#install) | ||
* [Use](#use) | ||
* [API](#api) | ||
* [`unified().use(remarkInlineLinks)`](#unifieduseremarkinlinelinks) | ||
* [Types](#types) | ||
* [Compatibility](#compatibility) | ||
* [Security](#security) | ||
* [Related](#related) | ||
* [Contribute](#contribute) | ||
* [License](#license) | ||
## What is this? | ||
This package is a [unified][] ([remark][]) plugin to turn references | ||
(`[text][id]`, `![alt][id]`) and definitions (`[id]: url`) into links | ||
(`[text](url)`) and images (``). | ||
**unified** is a project that transforms content with abstract syntax trees | ||
(ASTs). | ||
**remark** adds support for markdown to unified. | ||
**mdast** is the markdown AST that remark uses. | ||
This is a remark plugin that transforms mdast. | ||
## When should I use this? | ||
This project is useful when you want to transform markdown and prefer that it | ||
uses links and images. | ||
“Normal” links and images are well known whereas references and definitions | ||
are somewhat uncommon. | ||
Long URLs in source code can make reading markdown difficult though. | ||
Two different plugins, [`remark-defsplit`][remark-defsplit] and | ||
[`remark-reference-links`][remark-reference-links], do the inverse: turn | ||
links and images into references and definitions. | ||
## Install | ||
This package is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c): | ||
Node 12+ is needed to use it and it must be `import`ed instead of `require`d. | ||
This package is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c). | ||
In Node.js (version 12.20+, 14.14+, or 16.0+), install with [npm][]: | ||
[npm][]: | ||
```sh | ||
@@ -33,5 +63,19 @@ npm install remark-inline-links | ||
In Deno with [Skypack][]: | ||
```js | ||
import remarkInlineLinks from 'https://cdn.skypack.dev/remark-inline-links@6?dts' | ||
``` | ||
In browsers with [Skypack][]: | ||
```html | ||
<script type="module"> | ||
import remarkInlineLinks from 'https://cdn.skypack.dev/remark-inline-links@6?min' | ||
</script> | ||
``` | ||
## Use | ||
Say we have the following file, `example.md`: | ||
Say we have the following file `example.md`: | ||
@@ -46,20 +90,21 @@ ```markdown | ||
And our module, `example.js`, looks as follows: | ||
And our module `example.js` looks as follows: | ||
```js | ||
import fs from 'node:fs' | ||
import remark from 'remark' | ||
import {read} from 'to-vfile' | ||
import {remark} from 'remark' | ||
import remarkInlineLinks from 'remark-inline-links' | ||
const buf = fs.readFileSync('example.md') | ||
main() | ||
remark() | ||
.use(remarkInlineLinks) | ||
.process(buf) | ||
.then((file) => { | ||
console.log(String(file)) | ||
}) | ||
async function main() { | ||
const file = await remark() | ||
.use(remarkInlineLinks) | ||
.process(await read('example.md')) | ||
console.log(String(file)) | ||
} | ||
``` | ||
Now, running `node example` yields: | ||
Now running `node example.js` yields: | ||
@@ -79,20 +124,35 @@ ```markdown | ||
Plugin to transform references and definitions into normal links and images. | ||
Plugin to change references and definitions into normal links and images. | ||
There are no options. | ||
## Types | ||
This package is fully typed with [TypeScript][]. | ||
There are no extra exported types. | ||
## Compatibility | ||
Projects maintained by the unified collective are compatible with all maintained | ||
versions of Node.js. | ||
As of now, that is Node.js 12.20+, 14.14+, and 16.0+. | ||
Our projects sometimes work with older versions, but this is not guaranteed. | ||
This plugin works with `unified` version 3+ and `remark` version 4+. | ||
## Security | ||
Use of `remark-inline-links` does not involve [**rehype**][rehype] | ||
([**hast**][hast]) or user content so there are no openings for | ||
[cross-site scripting (XSS)][xss] attacks. | ||
Use of `remark-inline-links` does not involve **[rehype][]** (**[hast][]**) or | ||
user content so there are no openings for [cross-site scripting (XSS)][xss] | ||
attacks. | ||
## Related | ||
* [`remark-reference-links`](https://github.com/remarkjs/remark-reference-links) | ||
— Reverse of `remark-inline-links`, thus rewriting normal links and images | ||
into references and definitions | ||
* [`remark-defsplit`](https://github.com/eush77/remark-defsplit) | ||
— Practically the same as `remark-reference-links`, but with | ||
URI-based identifiers instead of numerical ones | ||
* [`remark-unlink`](https://github.com/eush77/remark-unlink) | ||
— Remove all links, references and definitions | ||
* [`remark-reference-links`][remark-reference-links] | ||
— change links and images to references with separate definitions, | ||
w/ IDs based on hostnames of URLs | ||
* [`remark-defsplit`][remark-defsplit] | ||
— change links and images to references with separate definitions, | ||
w/ numeric IDs | ||
* [`remark-unlink`](https://github.com/remarkjs/remark-unlink) | ||
— remove all links, references, and definitions | ||
@@ -143,2 +203,4 @@ ## Contribute | ||
[skypack]: https://www.skypack.dev | ||
[health]: https://github.com/remarkjs/.github | ||
@@ -158,6 +220,14 @@ | ||
[unified]: https://github.com/unifiedjs/unified | ||
[xss]: https://en.wikipedia.org/wiki/Cross-site_scripting | ||
[typescript]: https://www.typescriptlang.org | ||
[rehype]: https://github.com/rehypejs/rehype | ||
[hast]: https://github.com/syntax-tree/hast | ||
[remark-defsplit]: https://github.com/remarkjs/remark-defsplit | ||
[remark-reference-links]: https://github.com/remarkjs/remark-reference-links |
11437
20.75%228
44.3%