@electron/lint-roller 2.3.0 → 3.0.0

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.
@@ -1,27 +1,19 @@
1
- "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var _DocsWorkspace_onDidChangeMarkdownDocument, _DocsWorkspace_onDidCreateMarkdownDocument, _DocsWorkspace_onDidDeleteMarkdownDocument, _MarkdownLinkComputer_instances, _MarkdownLinkComputer_getInlineLinks, _MarkdownLinkComputer_getReferenceLinks, _MarkdownLinkComputer_getLinkDefinitions;
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.getCodeBlocks = exports.MarkdownLinkComputer = exports.DocsWorkspace = exports.MarkdownParser = void 0;
10
- const fs = require("node:fs");
11
- const path = require("node:path");
12
- const glob = require("glob");
13
- const MarkdownIt = require("markdown-it");
14
- const vscode_markdown_languageservice_1 = require("@dsanders11/vscode-markdown-languageservice");
15
- const vscode_languageserver_1 = require("vscode-languageserver");
16
- const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
17
- const vscode_uri_1 = require("vscode-uri");
18
- const helpers_1 = require("./helpers");
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import * as glob from 'glob';
4
+ import MarkdownIt from 'markdown-it';
5
+ import { githubSlugifier, resolveInternalDocumentLink, HrefKind, MdLinkKind, } from '@dsanders11/vscode-markdown-languageservice';
6
+ import { visit } from 'unist-util-visit';
7
+ import { fromMarkdown } from 'mdast-util-from-markdown';
8
+ import { Emitter } from 'vscode-languageserver';
9
+ import { TextDocument } from 'vscode-languageserver-textdocument';
10
+ import { URI } from 'vscode-uri';
19
11
  // Helper function from `vscode-markdown-languageservice` codebase
20
12
  function tryDecodeUri(str) {
21
13
  try {
22
14
  return decodeURI(str);
23
15
  }
24
- catch (_a) {
16
+ catch {
25
17
  return str;
26
18
  }
27
19
  }
@@ -29,14 +21,14 @@ function tryDecodeUri(str) {
29
21
  function createHref(sourceDocUri, link, workspace) {
30
22
  if (/^[a-z-][a-z-]+:/i.test(link)) {
31
23
  // Looks like a uri
32
- return { kind: vscode_markdown_languageservice_1.HrefKind.External, uri: vscode_uri_1.URI.parse(tryDecodeUri(link)) };
24
+ return { kind: HrefKind.External, uri: URI.parse(tryDecodeUri(link)) };
33
25
  }
34
- const resolved = (0, vscode_markdown_languageservice_1.resolveInternalDocumentLink)(sourceDocUri, link, workspace);
26
+ const resolved = resolveInternalDocumentLink(sourceDocUri, link, workspace);
35
27
  if (!resolved) {
36
28
  return undefined;
37
29
  }
38
30
  return {
39
- kind: vscode_markdown_languageservice_1.HrefKind.Internal,
31
+ kind: HrefKind.Internal,
40
32
  path: resolved.resource,
41
33
  fragment: resolved.linkFragment,
42
34
  };
@@ -51,39 +43,30 @@ function positionToRange(position) {
51
43
  };
52
44
  }
53
45
  const mdIt = MarkdownIt({ html: true });
54
- class MarkdownParser {
55
- constructor() {
56
- this.slugifier = vscode_markdown_languageservice_1.githubSlugifier;
57
- }
46
+ export class MarkdownParser {
47
+ slugifier = githubSlugifier;
58
48
  async tokenize(document) {
59
49
  return mdIt.parse(document.getText(), {});
60
50
  }
61
51
  }
62
- exports.MarkdownParser = MarkdownParser;
63
- class DocsWorkspace {
52
+ export class DocsWorkspace {
53
+ documentCache;
54
+ root;
55
+ globs;
56
+ ignoreGlobs;
64
57
  constructor(root, globs, ignoreGlobs = []) {
65
- //
66
- // These events are defined to fulfill the interface, but are never emitted
67
- // by this implementation since it's not meant for watching a workspace
68
- //
69
- _DocsWorkspace_onDidChangeMarkdownDocument.set(this, new vscode_languageserver_1.Emitter());
70
- this.onDidChangeMarkdownDocument = __classPrivateFieldGet(this, _DocsWorkspace_onDidChangeMarkdownDocument, "f").event;
71
- _DocsWorkspace_onDidCreateMarkdownDocument.set(this, new vscode_languageserver_1.Emitter());
72
- this.onDidCreateMarkdownDocument = __classPrivateFieldGet(this, _DocsWorkspace_onDidCreateMarkdownDocument, "f").event;
73
- _DocsWorkspace_onDidDeleteMarkdownDocument.set(this, new vscode_languageserver_1.Emitter());
74
- this.onDidDeleteMarkdownDocument = __classPrivateFieldGet(this, _DocsWorkspace_onDidDeleteMarkdownDocument, "f").event;
75
58
  this.documentCache = new Map();
76
59
  this.root = root;
77
60
  this.globs = globs;
78
61
  this.ignoreGlobs = ignoreGlobs;
79
62
  }
80
63
  get workspaceFolders() {
81
- return [vscode_uri_1.URI.file(this.root)];
64
+ return [URI.file(this.root)];
82
65
  }
83
66
  async getAllMarkdownDocuments() {
84
67
  const files = this.globs.flatMap((pattern) => glob.sync(pattern, { ignore: this.ignoreGlobs, absolute: true, cwd: this.root }));
85
68
  for (const file of files) {
86
- const document = vscode_languageserver_textdocument_1.TextDocument.create(vscode_uri_1.URI.file(file).toString(), 'markdown', 1, fs.readFileSync(file, 'utf8'));
69
+ const document = TextDocument.create(URI.file(file).toString(), 'markdown', 1, fs.readFileSync(file, 'utf8'));
87
70
  this.documentCache.set(file, document);
88
71
  }
89
72
  return this.documentCache.values();
@@ -100,10 +83,10 @@ class DocsWorkspace {
100
83
  async openMarkdownDocument(resource) {
101
84
  if (!this.documentCache.has(resource.fsPath)) {
102
85
  try {
103
- const document = vscode_languageserver_textdocument_1.TextDocument.create(resource.toString(), 'markdown', 1, fs.readFileSync(resource.fsPath, 'utf8'));
86
+ const document = TextDocument.create(resource.toString(), 'markdown', 1, fs.readFileSync(resource.fsPath, 'utf8'));
104
87
  this.documentCache.set(resource.fsPath, document);
105
88
  }
106
- catch (_a) {
89
+ catch {
107
90
  return undefined;
108
91
  }
109
92
  }
@@ -119,122 +102,125 @@ class DocsWorkspace {
119
102
  async readDirectory() {
120
103
  throw new Error('Not implemented');
121
104
  }
105
+ //
106
+ // These events are defined to fulfill the interface, but are never emitted
107
+ // by this implementation since it's not meant for watching a workspace
108
+ //
109
+ #onDidChangeMarkdownDocument = new Emitter();
110
+ onDidChangeMarkdownDocument = this.#onDidChangeMarkdownDocument.event;
111
+ #onDidCreateMarkdownDocument = new Emitter();
112
+ onDidCreateMarkdownDocument = this.#onDidCreateMarkdownDocument.event;
113
+ #onDidDeleteMarkdownDocument = new Emitter();
114
+ onDidDeleteMarkdownDocument = this.#onDidDeleteMarkdownDocument.event;
122
115
  }
123
- exports.DocsWorkspace = DocsWorkspace;
124
- _DocsWorkspace_onDidChangeMarkdownDocument = new WeakMap(), _DocsWorkspace_onDidCreateMarkdownDocument = new WeakMap(), _DocsWorkspace_onDidDeleteMarkdownDocument = new WeakMap();
125
- class MarkdownLinkComputer {
116
+ export class MarkdownLinkComputer {
117
+ workspace;
126
118
  constructor(workspace) {
127
- _MarkdownLinkComputer_instances.add(this);
128
119
  this.workspace = workspace;
129
120
  }
130
121
  async getAllLinks(document) {
131
- const { fromMarkdown } = (await (0, helpers_1.dynamicImport)('mdast-util-from-markdown'));
132
122
  const tree = fromMarkdown(document.getText());
133
123
  const links = [
134
- ...(await __classPrivateFieldGet(this, _MarkdownLinkComputer_instances, "m", _MarkdownLinkComputer_getInlineLinks).call(this, document, tree)),
135
- ...(await __classPrivateFieldGet(this, _MarkdownLinkComputer_instances, "m", _MarkdownLinkComputer_getReferenceLinks).call(this, document, tree)),
136
- ...(await __classPrivateFieldGet(this, _MarkdownLinkComputer_instances, "m", _MarkdownLinkComputer_getLinkDefinitions).call(this, document, tree)),
124
+ ...(await this.#getInlineLinks(document, tree)),
125
+ ...(await this.#getReferenceLinks(document, tree)),
126
+ ...(await this.#getLinkDefinitions(document, tree)),
137
127
  ];
138
128
  return links;
139
129
  }
140
- }
141
- exports.MarkdownLinkComputer = MarkdownLinkComputer;
142
- _MarkdownLinkComputer_instances = new WeakSet(), _MarkdownLinkComputer_getInlineLinks = async function _MarkdownLinkComputer_getInlineLinks(document, tree) {
143
- const { visit } = (await (0, helpers_1.dynamicImport)('unist-util-visit'));
144
- const documentUri = vscode_uri_1.URI.parse(document.uri);
145
- const links = [];
146
- visit(tree, (node) => node.type === 'link', (node) => {
147
- const link = node;
148
- const href = createHref(documentUri, link.url, this.workspace);
149
- if (href) {
150
- const range = positionToRange(link.position);
151
- // NOTE - These haven't been implemented properly, but their
152
- // values aren't used for the link linting use-case
153
- const targetRange = range;
154
- const hrefRange = range;
155
- const fragmentRange = undefined;
156
- links.push({
157
- kind: vscode_markdown_languageservice_1.MdLinkKind.Link,
158
- href,
159
- source: {
160
- hrefText: link.url,
161
- resource: documentUri,
162
- range,
163
- targetRange,
164
- hrefRange,
165
- fragmentRange,
166
- pathText: link.url.split('#')[0],
167
- },
168
- });
169
- }
170
- });
171
- return links;
172
- }, _MarkdownLinkComputer_getReferenceLinks = async function _MarkdownLinkComputer_getReferenceLinks(document, tree) {
173
- const { visit } = (await (0, helpers_1.dynamicImport)('unist-util-visit'));
174
- const links = [];
175
- visit(tree, (node) => ['imageReference', 'linkReference'].includes(node.type), (node) => {
176
- const link = node;
177
- const range = positionToRange(link.position);
178
- // NOTE - These haven't been implemented properly, but their
179
- // values aren't used for the link linting use-case
180
- const targetRange = range;
181
- const hrefRange = range;
182
- links.push({
183
- kind: vscode_markdown_languageservice_1.MdLinkKind.Link,
184
- href: {
185
- kind: vscode_markdown_languageservice_1.HrefKind.Reference,
186
- ref: link.label,
187
- },
188
- source: {
189
- hrefText: link.label,
190
- resource: vscode_uri_1.URI.parse(document.uri),
191
- range,
192
- targetRange,
193
- hrefRange,
194
- fragmentRange: undefined,
195
- pathText: link.label,
196
- },
130
+ async #getInlineLinks(document, tree) {
131
+ const documentUri = URI.parse(document.uri);
132
+ const links = [];
133
+ visit(tree, (node) => node.type === 'link', (node) => {
134
+ const link = node;
135
+ const href = createHref(documentUri, link.url, this.workspace);
136
+ if (href) {
137
+ const range = positionToRange(link.position);
138
+ // NOTE - These haven't been implemented properly, but their
139
+ // values aren't used for the link linting use-case
140
+ const targetRange = range;
141
+ const hrefRange = range;
142
+ const fragmentRange = undefined;
143
+ links.push({
144
+ kind: MdLinkKind.Link,
145
+ href,
146
+ source: {
147
+ hrefText: link.url,
148
+ resource: documentUri,
149
+ range,
150
+ targetRange,
151
+ hrefRange,
152
+ fragmentRange,
153
+ pathText: link.url.split('#')[0],
154
+ },
155
+ });
156
+ }
197
157
  });
198
- });
199
- return links;
200
- }, _MarkdownLinkComputer_getLinkDefinitions = async function _MarkdownLinkComputer_getLinkDefinitions(document, tree) {
201
- const { visit } = (await (0, helpers_1.dynamicImport)('unist-util-visit'));
202
- const documentUri = vscode_uri_1.URI.parse(document.uri);
203
- const links = [];
204
- visit(tree, (node) => node.type === 'definition', (node) => {
205
- const definition = node;
206
- const href = createHref(documentUri, definition.url, this.workspace);
207
- if (href) {
208
- const range = positionToRange(definition.position);
158
+ return links;
159
+ }
160
+ async #getReferenceLinks(document, tree) {
161
+ const links = [];
162
+ visit(tree, (node) => ['imageReference', 'linkReference'].includes(node.type), (node) => {
163
+ const link = node;
164
+ const range = positionToRange(link.position);
209
165
  // NOTE - These haven't been implemented properly, but their
210
166
  // values aren't used for the link linting use-case
211
167
  const targetRange = range;
212
168
  const hrefRange = range;
213
- const fragmentRange = undefined;
214
169
  links.push({
215
- kind: vscode_markdown_languageservice_1.MdLinkKind.Definition,
216
- href,
217
- ref: {
218
- range,
219
- text: definition.label,
170
+ kind: MdLinkKind.Link,
171
+ href: {
172
+ kind: HrefKind.Reference,
173
+ ref: link.label,
220
174
  },
221
175
  source: {
222
- hrefText: definition.url,
223
- resource: documentUri,
176
+ hrefText: link.label,
177
+ resource: URI.parse(document.uri),
224
178
  range,
225
179
  targetRange,
226
180
  hrefRange,
227
- fragmentRange,
228
- pathText: definition.url.split('#')[0],
181
+ fragmentRange: undefined,
182
+ pathText: link.label,
229
183
  },
230
184
  });
231
- }
232
- });
233
- return links;
234
- };
235
- async function getCodeBlocks(content) {
236
- const { fromMarkdown } = (await (0, helpers_1.dynamicImport)('mdast-util-from-markdown'));
237
- const { visit } = (await (0, helpers_1.dynamicImport)('unist-util-visit'));
185
+ });
186
+ return links;
187
+ }
188
+ async #getLinkDefinitions(document, tree) {
189
+ const documentUri = URI.parse(document.uri);
190
+ const links = [];
191
+ visit(tree, (node) => node.type === 'definition', (node) => {
192
+ const definition = node;
193
+ const href = createHref(documentUri, definition.url, this.workspace);
194
+ if (href) {
195
+ const range = positionToRange(definition.position);
196
+ // NOTE - These haven't been implemented properly, but their
197
+ // values aren't used for the link linting use-case
198
+ const targetRange = range;
199
+ const hrefRange = range;
200
+ const fragmentRange = undefined;
201
+ links.push({
202
+ kind: MdLinkKind.Definition,
203
+ href,
204
+ ref: {
205
+ range,
206
+ text: definition.label,
207
+ },
208
+ source: {
209
+ hrefText: definition.url,
210
+ resource: documentUri,
211
+ range,
212
+ targetRange,
213
+ hrefRange,
214
+ fragmentRange,
215
+ pathText: definition.url.split('#')[0],
216
+ },
217
+ });
218
+ }
219
+ });
220
+ return links;
221
+ }
222
+ }
223
+ export async function getCodeBlocks(content) {
238
224
  const tree = fromMarkdown(content);
239
225
  const codeBlocks = [];
240
226
  visit(tree, (node) => node.type === 'code', (node) => {
@@ -242,5 +228,4 @@ async function getCodeBlocks(content) {
242
228
  });
243
229
  return codeBlocks;
244
230
  }
245
- exports.getCodeBlocks = getCodeBlocks;
246
231
  //# sourceMappingURL=markdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../lib/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../lib/markdown.ts"],"names":[],"mappings":"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"}
package/lib/markdown.ts CHANGED
@@ -2,7 +2,7 @@ import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
3
 
4
4
  import * as glob from 'glob';
5
- import * as MarkdownIt from 'markdown-it';
5
+ import MarkdownIt from 'markdown-it';
6
6
  import {
7
7
  githubSlugifier,
8
8
  resolveInternalDocumentLink,
@@ -17,16 +17,14 @@ import {
17
17
  MdLink,
18
18
  MdLinkKind,
19
19
  } from '@dsanders11/vscode-markdown-languageservice';
20
+ import { visit } from 'unist-util-visit';
21
+ import { fromMarkdown } from 'mdast-util-from-markdown';
20
22
  import { Emitter, Range } from 'vscode-languageserver';
21
23
  import { TextDocument } from 'vscode-languageserver-textdocument';
22
24
  import { URI } from 'vscode-uri';
23
25
 
24
- import { dynamicImport } from './helpers';
25
-
26
26
  import type { Code, Definition, ImageReference, Link, LinkReference } from 'mdast';
27
- import type { fromMarkdown as FromMarkdownFunction } from 'mdast-util-from-markdown';
28
27
  import type { Node, Position } from 'unist';
29
- import type { visit as VisitFunction } from 'unist-util-visit';
30
28
 
31
29
  export type { Code };
32
30
 
@@ -186,10 +184,6 @@ export class MarkdownLinkComputer implements IMdLinkComputer {
186
184
  }
187
185
 
188
186
  async getAllLinks(document: ITextDocument): Promise<MdLink[]> {
189
- const { fromMarkdown } = (await dynamicImport('mdast-util-from-markdown')) as {
190
- fromMarkdown: typeof FromMarkdownFunction;
191
- };
192
-
193
187
  const tree = fromMarkdown(document.getText());
194
188
 
195
189
  const links = [
@@ -202,10 +196,6 @@ export class MarkdownLinkComputer implements IMdLinkComputer {
202
196
  }
203
197
 
204
198
  async #getInlineLinks(document: ITextDocument, tree: Node): Promise<MdLink[]> {
205
- const { visit } = (await dynamicImport('unist-util-visit')) as {
206
- visit: typeof VisitFunction;
207
- };
208
-
209
199
  const documentUri = URI.parse(document.uri);
210
200
  const links: MdLink[] = [];
211
201
 
@@ -246,10 +236,6 @@ export class MarkdownLinkComputer implements IMdLinkComputer {
246
236
  }
247
237
 
248
238
  async #getReferenceLinks(document: ITextDocument, tree: Node): Promise<MdLink[]> {
249
- const { visit } = (await dynamicImport('unist-util-visit')) as {
250
- visit: typeof VisitFunction;
251
- };
252
-
253
239
  const links: MdLink[] = [];
254
240
 
255
241
  visit(
@@ -287,10 +273,6 @@ export class MarkdownLinkComputer implements IMdLinkComputer {
287
273
  }
288
274
 
289
275
  async #getLinkDefinitions(document: ITextDocument, tree: Node): Promise<MdLink[]> {
290
- const { visit } = (await dynamicImport('unist-util-visit')) as {
291
- visit: typeof VisitFunction;
292
- };
293
-
294
276
  const documentUri = URI.parse(document.uri);
295
277
  const links: MdLink[] = [];
296
278
 
@@ -336,13 +318,6 @@ export class MarkdownLinkComputer implements IMdLinkComputer {
336
318
  }
337
319
 
338
320
  export async function getCodeBlocks(content: string): Promise<Code[]> {
339
- const { fromMarkdown } = (await dynamicImport('mdast-util-from-markdown')) as {
340
- fromMarkdown: typeof FromMarkdownFunction;
341
- };
342
- const { visit } = (await dynamicImport('unist-util-visit')) as {
343
- visit: typeof VisitFunction;
344
- };
345
-
346
321
  const tree = fromMarkdown(content);
347
322
 
348
323
  const codeBlocks: Code[] = [];
@@ -1,5 +1,3 @@
1
- import { addError, filterTokens } from 'markdownlint/helpers';
2
-
3
1
  import { fromMarkdown } from 'mdast-util-from-markdown';
4
2
  import { visit } from 'unist-util-visit';
5
3
 
@@ -11,7 +9,9 @@ export const tags = ['brackets'];
11
9
  const UNESCAPED_REGEX = /(?<!\\)<(?!\s)/g;
12
10
 
13
11
  function EMD002(params, onError) {
14
- filterTokens(params, 'inline', (token) => {
12
+ const tokens = params.parsers.markdownit.tokens.filter((token) => token.type === 'inline');
13
+
14
+ for (const token of tokens) {
15
15
  for (const childToken of token.children) {
16
16
  // childToken.line has the raw content, but may also contain
17
17
  // more content than just childToken.content. Since we need
@@ -41,19 +41,17 @@ function EMD002(params, onError) {
41
41
  const matches = rawContent.matchAll(UNESCAPED_REGEX);
42
42
 
43
43
  for (const match of matches) {
44
- addError(
45
- onError,
46
- childToken.lineNumber,
47
- 'Unescaped opening angle bracket',
48
- undefined,
49
- [node.position.start.offset + 1 + match.index, 1],
50
- );
44
+ onError({
45
+ lineNumber: childToken.lineNumber,
46
+ detail: 'Unescaped opening angle bracket',
47
+ range: [node.position.start.offset + 1 + match.index, 1],
48
+ });
51
49
  }
52
50
  },
53
51
  );
54
52
  }
55
53
  }
56
- });
54
+ }
57
55
  }
58
56
 
59
57
  export { EMD002 as function };
@@ -1,5 +1,3 @@
1
- import { addError, filterTokens } from 'markdownlint/helpers';
2
-
3
1
  import { fromMarkdown } from 'mdast-util-from-markdown';
4
2
  import { visit } from 'unist-util-visit';
5
3
 
@@ -11,7 +9,9 @@ export const tags = ['braces'];
11
9
  const UNESCAPED_REGEX = /(?<!\\){/g;
12
10
 
13
11
  function EMD003(params, onError) {
14
- filterTokens(params, 'inline', (token) => {
12
+ const tokens = params.parsers.markdownit.tokens.filter((token) => token.type === 'inline');
13
+
14
+ for (const token of tokens) {
15
15
  for (const childToken of token.children) {
16
16
  // childToken.line has the raw content, but may also contain
17
17
  // more content than just childToken.content. Since we need
@@ -40,16 +40,17 @@ function EMD003(params, onError) {
40
40
  const matches = rawContent.matchAll(UNESCAPED_REGEX);
41
41
 
42
42
  for (const match of matches) {
43
- addError(onError, childToken.lineNumber, 'Unescaped opening curly brace', undefined, [
44
- node.position.start.offset + 1 + match.index,
45
- 1,
46
- ]);
43
+ onError({
44
+ lineNumber: childToken.lineNumber,
45
+ detail: 'Unescaped opening curly brace',
46
+ range: [node.position.start.offset + 1 + match.index, 1],
47
+ });
47
48
  }
48
49
  },
49
50
  );
50
51
  }
51
52
  }
52
- });
53
+ }
53
54
  }
54
55
 
55
56
  export { EMD003 as function };
@@ -0,0 +1,31 @@
1
+ export const names = ['EMD004', 'no-newline-in-links'];
2
+ export const description = 'Newlines inside link text';
3
+ export const tags = ['newline', 'links'];
4
+ export const parser = 'markdownit';
5
+
6
+ function EMD004(params, onError) {
7
+ const tokens = params.parsers.markdownit.tokens.filter((token) => token.type === 'inline');
8
+
9
+ for (const token of tokens) {
10
+ const { children } = token;
11
+ let { lineNumber } = token;
12
+ let inLink = false;
13
+ for (const child of children) {
14
+ const { type } = child;
15
+ if (type === 'link_open') {
16
+ inLink = true;
17
+ } else if (type === 'link_close') {
18
+ inLink = false;
19
+ } else if (type === 'softbreak') {
20
+ if (inLink) {
21
+ onError({ lineNumber });
22
+ break;
23
+ } else {
24
+ lineNumber++;
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }
30
+
31
+ export { EMD004 as function };
@@ -0,0 +1,5 @@
1
+ import * as EMD002 from './emd002.mjs';
2
+ import * as EMD003 from './emd003.mjs';
3
+ import * as EMD004 from './emd004.mjs';
4
+
5
+ export default [EMD002, EMD003, EMD004];