marked-prismjs-linenumber 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs CHANGED
@@ -22,7 +22,7 @@ function highlightWithLineNumbers(code, lang = 'plaintext') {
22
22
  const lineCount = code.split('\n').length;
23
23
  const rowsSpans = '<span></span>'.repeat(lineCount);
24
24
  const rowsWrapper = `<span aria-hidden="true" class="line-numbers-rows">${rowsSpans}</span>`;
25
- return `<pre class="line-numbers language-${lang}"><code class="language-${lang}">${highlightedCode}${rowsWrapper}</code></pre>`;
25
+ return `<pre class="line-numbers language-${lang}"><code class="language-${lang}">${highlightedCode}</code>${rowsWrapper}</pre>`;
26
26
  }
27
27
 
28
28
  const renderer = {
package/index.d.ts CHANGED
@@ -7,15 +7,13 @@ export interface MarkedCodeArgs {
7
7
  lang?: string;
8
8
  }
9
9
 
10
- export const renderer: {
11
- code(args: MarkedCodeArgs): string;
12
- };
13
-
14
- export function init(options?: PrismJsLineNumberOptions): void;
10
+ export interface MarkedExtension {
11
+ renderer: {
12
+ code(args: MarkedCodeArgs): string;
13
+ };
14
+ }
15
15
 
16
- declare const _default: {
17
- renderer: typeof renderer;
18
- init: typeof init;
19
- };
16
+ declare function linenumber(options?: PrismJsLineNumberOptions): MarkedExtension;
20
17
 
21
- export default _default;
18
+ export { linenumber };
19
+ export default linenumber;
package/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import mod from './index.cjs';
2
- export const renderer = mod.renderer;
3
- export const init = mod.init;
4
- export default mod;
1
+ import linenumber from './index.cjs';
2
+
3
+ export default linenumber;
4
+ export { linenumber };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "marked-prismjs-linenumber",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "description": "Return HTML with prismjs line-number structure",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.mjs",
package/readme.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # marked-prismjs-linenumber
2
2
 
3
- > A [marked](https://marked.js.org/) renderer that highlights Markdown code blocks with [Prism.js](https://prismjs.com/) and renders line numbers — just like the `line-numbers` plugin, but produced straight from the Markdown parser.
3
+ > A [marked](https://marked.js.org/) extension that highlights Markdown code blocks with [Prism.js](https://prismjs.com/) and renders line numbers — just like the `line-numbers` plugin, but produced straight from the Markdown parser.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/marked-prismjs-linenumber.svg)](https://www.npmjs.com/package/marked-prismjs-linenumber)
6
6
  [![license](https://img.shields.io/npm/l/marked-prismjs-linenumber.svg)](./LICENSE)
@@ -42,18 +42,19 @@ npm install marked prismjs marked-prismjs-linenumber
42
42
 
43
43
  ## Usage
44
44
 
45
- ### 1. Register the renderer
45
+ ### 1. Register the extension
46
46
 
47
47
  ```js
48
48
  import { marked } from 'marked';
49
- import { renderer, init } from 'marked-prismjs-linenumber';
49
+ import linenumber from 'marked-prismjs-linenumber';
50
50
 
51
- // Optional: preload Prism grammars you need.
52
- // Anything not loaded falls back to escaped plain text.
53
- init({ languages: ['javascript', 'typescript', 'css', 'bash', 'json'] });
54
-
55
- // Hook the renderer into marked.
56
- marked.use({ renderer });
51
+ marked.use(
52
+ linenumber({
53
+ // Optional: preload Prism grammars you need.
54
+ // Anything not loaded falls back to escaped plain text.
55
+ languages: ['javascript', 'typescript', 'css', 'bash', 'json'],
56
+ })
57
+ );
57
58
 
58
59
  const markdown = `
59
60
  # Example
@@ -82,38 +83,30 @@ The code block above is rendered as:
82
83
  </pre>
83
84
  ```
84
85
 
85
- [Effect display](https://yz0012.github.io/y_z00blog/Post/%E6%9D%82%E9%A1%B9/%E8%A1%8C%E5%8F%B7%E7%A4%BA%E4%BE%8B.html)
86
-
87
86
  Each `<span></span>` inside `.line-numbers-rows` becomes one line number via the Prism line-numbers CSS.
88
87
 
89
88
  ## API
90
89
 
91
- ### `init(options?)`
90
+ ### `linenumber(options?)`
92
91
 
93
- Loads Prism language grammars before rendering. Call it once at startup.
92
+ Creates a `marked` extension. Pass it directly to `marked.use(...)`.
94
93
 
95
94
  | Option | Type | Default | Description |
96
95
  | --- | --- | --- | --- |
97
96
  | `languages` | `string[]` | — | Language names or aliases to load via `prismjs/components/index.js`. |
98
97
 
99
98
  ```js
100
- init({ languages: ['javascript', 'python', 'go'] });
99
+ import { marked } from 'marked';
100
+ import linenumber from 'marked-prismjs-linenumber';
101
+
102
+ marked.use(linenumber({ languages: ['javascript', 'python', 'go'] }));
101
103
  ```
102
104
 
103
105
  If a language is not loaded, or an unknown `lang` is used in a fenced code block, the renderer escapes the raw code and outputs it as plain text.
104
106
 
105
- ### `renderer`
106
-
107
- A `marked` renderer object exposing a single `code({ text, lang })` method. Pass it to `marked.use({ renderer })`.
108
-
109
- ```js
110
- import { marked } from 'marked';
111
- import { renderer } from 'marked-prismjs-linenumber';
112
-
113
- marked.use({ renderer });
114
- ```
107
+ The extension overrides the `code({ text, lang })` renderer:
115
108
 
116
109
  | Parameter | Type | Default | Description |
117
110
  | --- | --- | --- | --- |
118
- | `code` | `string` | — | The source code to highlight. |
111
+ | `text` | `string` | — | The source code to highlight. |
119
112
  | `lang` | `string` | `'plaintext'` | Prism language name or alias. |