mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-16 14:00:13 +01:00
wip
This commit is contained in:
parent
d8bf33dde6
commit
4541ee3dd2
17 changed files with 395 additions and 67 deletions
|
|
@ -7,11 +7,11 @@ up into multiple lines. To set a different maximum length for headings, use
|
||||||
This rule has an exception when there is no whitespace beyond the configured
|
This rule has an exception when there is no whitespace beyond the configured
|
||||||
line length. This allows you to include items such as long URLs without being
|
line length. This allows you to include items such as long URLs without being
|
||||||
forced to break them in the middle. To disable this exception, set the `strict`
|
forced to break them in the middle. To disable this exception, set the `strict`
|
||||||
parameter to `true` and an issue will be reported when any line is too long. To
|
parameter to `true` and a violation will be reported when any line is too long.
|
||||||
warn for lines that are too long and could be fixed but allow long lines
|
To warn for lines that are too long and could be fixed while allowing long lines
|
||||||
without spaces, set the `stern` parameter to `true`.
|
without spaces, set the `stern` parameter to `true`.
|
||||||
|
|
||||||
For example (assuming normal behavior):
|
For example (assuming default behavior):
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
IF THIS LINE IS THE MAXIMUM LENGTH
|
IF THIS LINE IS THE MAXIMUM LENGTH
|
||||||
|
|
@ -26,14 +26,25 @@ mode, the middle two lines above are both violations, but the last is okay.
|
||||||
You have the option to exclude this rule for code blocks, tables, or headings.
|
You have the option to exclude this rule for code blocks, tables, or headings.
|
||||||
To do so, set the `code_blocks`, `tables`, or `headings` parameter(s) to false.
|
To do so, set the `code_blocks`, `tables`, or `headings` parameter(s) to false.
|
||||||
|
|
||||||
Code blocks are included in this rule by default since it is often a
|
Code blocks are included in this rule by default since it is often a requirement
|
||||||
requirement for document readability, and tentatively compatible with code
|
for document readability, and tentatively compatible with code rules. However,
|
||||||
rules. Still, some languages do not lend themselves to short lines.
|
some languages do not lend themselves to short lines.
|
||||||
|
|
||||||
|
By default, this rule treats the number of characters in the line as its length.
|
||||||
|
Many editors render [emoji][emoji-013] and [CJK characters][cjk-characters-013]
|
||||||
|
at *twice* the width of [Latin characters][latin-script-013], so the
|
||||||
|
`wide_characters` parameter can be set to `true` to treat the "visual" width of
|
||||||
|
the line as its length instead.
|
||||||
|
|
||||||
Lines with link/image reference definitions and standalone lines (i.e., not part
|
Lines with link/image reference definitions and standalone lines (i.e., not part
|
||||||
of a paragraph) with only a link/image (possibly using (strong) emphasis) are
|
of a paragraph) with only a link/image (possibly using emphasis) are always
|
||||||
always exempted from this rule (even in `strict` mode) because there is often no
|
exempted from this rule (even in `strict` mode) because there is often no way to
|
||||||
way to split such lines without breaking the URL.
|
split such lines without breaking the URL.
|
||||||
|
|
||||||
Rationale: Extremely long lines can be difficult to work with in some editors.
|
Rationale: Extremely long lines can be difficult to work with in some editors.
|
||||||
|
|
||||||
More information: <https://cirosantilli.com/markdown-style-guide#line-wrapping>.
|
More information: <https://cirosantilli.com/markdown-style-guide#line-wrapping>.
|
||||||
|
|
||||||
|
[cjk-characters-013]: https://en.wikipedia.org/wiki/CJK_characters
|
||||||
|
[emoji-013]: https://en.wikipedia.org/wiki/Emoji
|
||||||
|
[latin-script-013]: https://en.wikipedia.org/wiki/Latin_script
|
||||||
|
|
|
||||||
|
|
@ -47,11 +47,11 @@ not, violations are be reported for whichever style would produce the *fewest*
|
||||||
issues (i.e., whichever style is the closest match).
|
issues (i.e., whichever style is the closest match).
|
||||||
|
|
||||||
Note: Delimiter placement for the `aligned` style is based on visual appearance
|
Note: Delimiter placement for the `aligned` style is based on visual appearance
|
||||||
and not character count. Because editors typically render [emoji][emoji] and
|
and not character count. Because editors typically render [emoji][emoji-060] and
|
||||||
[CJK characters][cjk-characters] at *twice* the width of
|
[CJK characters][cjk-characters-060] at *twice* the width of
|
||||||
[Latin characters][latin-script], this rule takes that into account for tables
|
[Latin characters][latin-script-060], this rule takes that into account for
|
||||||
using the `aligned` style. The following table is correctly formatted and will
|
tables using the `aligned` style. The following table is correctly formatted and
|
||||||
appear aligned in most editors and monospaced fonts:
|
will appear aligned in most editors and monospaced fonts:
|
||||||
|
|
||||||
<!-- markdownlint-capture -->
|
<!-- markdownlint-capture -->
|
||||||
<!-- markdownlint-disable extended-ascii -->
|
<!-- markdownlint-disable extended-ascii -->
|
||||||
|
|
@ -67,7 +67,7 @@ appear aligned in most editors and monospaced fonts:
|
||||||
|
|
||||||
Rationale: Consistent formatting makes it easier to understand a document.
|
Rationale: Consistent formatting makes it easier to understand a document.
|
||||||
|
|
||||||
[cjk-characters]: https://en.wikipedia.org/wiki/CJK_characters
|
[cjk-characters-060]: https://en.wikipedia.org/wiki/CJK_characters
|
||||||
[emoji]: https://en.wikipedia.org/wiki/Emoji
|
[emoji-060]: https://en.wikipedia.org/wiki/Emoji
|
||||||
[gfm-table-060]: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables
|
[gfm-table-060]: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables
|
||||||
[latin-script]: https://en.wikipedia.org/wiki/Latin_script
|
[latin-script-060]: https://en.wikipedia.org/wiki/Latin_script
|
||||||
|
|
|
||||||
46
doc/Rules.md
46
doc/Rules.md
|
|
@ -496,6 +496,7 @@ Parameters:
|
||||||
- `stern`: Stern length checking (`boolean`, default `false`)
|
- `stern`: Stern length checking (`boolean`, default `false`)
|
||||||
- `strict`: Strict length checking (`boolean`, default `false`)
|
- `strict`: Strict length checking (`boolean`, default `false`)
|
||||||
- `tables`: Include tables (`boolean`, default `true`)
|
- `tables`: Include tables (`boolean`, default `true`)
|
||||||
|
- `wide_characters`: Expand wide characters (`boolean`, default `false`)
|
||||||
|
|
||||||
This rule is triggered when there are lines that are longer than the
|
This rule is triggered when there are lines that are longer than the
|
||||||
configured `line_length` (default: 80 characters). To fix this, split the line
|
configured `line_length` (default: 80 characters). To fix this, split the line
|
||||||
|
|
@ -506,11 +507,11 @@ up into multiple lines. To set a different maximum length for headings, use
|
||||||
This rule has an exception when there is no whitespace beyond the configured
|
This rule has an exception when there is no whitespace beyond the configured
|
||||||
line length. This allows you to include items such as long URLs without being
|
line length. This allows you to include items such as long URLs without being
|
||||||
forced to break them in the middle. To disable this exception, set the `strict`
|
forced to break them in the middle. To disable this exception, set the `strict`
|
||||||
parameter to `true` and an issue will be reported when any line is too long. To
|
parameter to `true` and a violation will be reported when any line is too long.
|
||||||
warn for lines that are too long and could be fixed but allow long lines
|
To warn for lines that are too long and could be fixed while allowing long lines
|
||||||
without spaces, set the `stern` parameter to `true`.
|
without spaces, set the `stern` parameter to `true`.
|
||||||
|
|
||||||
For example (assuming normal behavior):
|
For example (assuming default behavior):
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
IF THIS LINE IS THE MAXIMUM LENGTH
|
IF THIS LINE IS THE MAXIMUM LENGTH
|
||||||
|
|
@ -525,18 +526,29 @@ mode, the middle two lines above are both violations, but the last is okay.
|
||||||
You have the option to exclude this rule for code blocks, tables, or headings.
|
You have the option to exclude this rule for code blocks, tables, or headings.
|
||||||
To do so, set the `code_blocks`, `tables`, or `headings` parameter(s) to false.
|
To do so, set the `code_blocks`, `tables`, or `headings` parameter(s) to false.
|
||||||
|
|
||||||
Code blocks are included in this rule by default since it is often a
|
Code blocks are included in this rule by default since it is often a requirement
|
||||||
requirement for document readability, and tentatively compatible with code
|
for document readability, and tentatively compatible with code rules. However,
|
||||||
rules. Still, some languages do not lend themselves to short lines.
|
some languages do not lend themselves to short lines.
|
||||||
|
|
||||||
|
By default, this rule treats the number of characters in the line as its length.
|
||||||
|
Many editors render [emoji][emoji-013] and [CJK characters][cjk-characters-013]
|
||||||
|
at *twice* the width of [Latin characters][latin-script-013], so the
|
||||||
|
`wide_characters` parameter can be set to `true` to treat the "visual" width of
|
||||||
|
the line as its length instead.
|
||||||
|
|
||||||
Lines with link/image reference definitions and standalone lines (i.e., not part
|
Lines with link/image reference definitions and standalone lines (i.e., not part
|
||||||
of a paragraph) with only a link/image (possibly using (strong) emphasis) are
|
of a paragraph) with only a link/image (possibly using emphasis) are always
|
||||||
always exempted from this rule (even in `strict` mode) because there is often no
|
exempted from this rule (even in `strict` mode) because there is often no way to
|
||||||
way to split such lines without breaking the URL.
|
split such lines without breaking the URL.
|
||||||
|
|
||||||
Rationale: Extremely long lines can be difficult to work with in some editors.
|
Rationale: Extremely long lines can be difficult to work with in some editors.
|
||||||
|
|
||||||
More information: <https://cirosantilli.com/markdown-style-guide#line-wrapping>.
|
More information: <https://cirosantilli.com/markdown-style-guide#line-wrapping>.
|
||||||
|
|
||||||
|
[cjk-characters-013]: https://en.wikipedia.org/wiki/CJK_characters
|
||||||
|
[emoji-013]: https://en.wikipedia.org/wiki/Emoji
|
||||||
|
[latin-script-013]: https://en.wikipedia.org/wiki/Latin_script
|
||||||
|
|
||||||
<a name="md014"></a>
|
<a name="md014"></a>
|
||||||
|
|
||||||
## `MD014` - Dollar signs used before commands without showing output
|
## `MD014` - Dollar signs used before commands without showing output
|
||||||
|
|
@ -2746,11 +2758,11 @@ not, violations are be reported for whichever style would produce the *fewest*
|
||||||
issues (i.e., whichever style is the closest match).
|
issues (i.e., whichever style is the closest match).
|
||||||
|
|
||||||
Note: Delimiter placement for the `aligned` style is based on visual appearance
|
Note: Delimiter placement for the `aligned` style is based on visual appearance
|
||||||
and not character count. Because editors typically render [emoji][emoji] and
|
and not character count. Because editors typically render [emoji][emoji-060] and
|
||||||
[CJK characters][cjk-characters] at *twice* the width of
|
[CJK characters][cjk-characters-060] at *twice* the width of
|
||||||
[Latin characters][latin-script], this rule takes that into account for tables
|
[Latin characters][latin-script-060], this rule takes that into account for
|
||||||
using the `aligned` style. The following table is correctly formatted and will
|
tables using the `aligned` style. The following table is correctly formatted and
|
||||||
appear aligned in most editors and monospaced fonts:
|
will appear aligned in most editors and monospaced fonts:
|
||||||
|
|
||||||
<!-- markdownlint-capture -->
|
<!-- markdownlint-capture -->
|
||||||
<!-- markdownlint-disable extended-ascii -->
|
<!-- markdownlint-disable extended-ascii -->
|
||||||
|
|
@ -2766,10 +2778,10 @@ appear aligned in most editors and monospaced fonts:
|
||||||
|
|
||||||
Rationale: Consistent formatting makes it easier to understand a document.
|
Rationale: Consistent formatting makes it easier to understand a document.
|
||||||
|
|
||||||
[cjk-characters]: https://en.wikipedia.org/wiki/CJK_characters
|
[cjk-characters-060]: https://en.wikipedia.org/wiki/CJK_characters
|
||||||
[emoji]: https://en.wikipedia.org/wiki/Emoji
|
[emoji-060]: https://en.wikipedia.org/wiki/Emoji
|
||||||
[gfm-table-060]: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables
|
[gfm-table-060]: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables
|
||||||
[latin-script]: https://en.wikipedia.org/wiki/Latin_script
|
[latin-script-060]: https://en.wikipedia.org/wiki/Latin_script
|
||||||
|
|
||||||
<!-- markdownlint-configure-file {
|
<!-- markdownlint-configure-file {
|
||||||
"no-inline-html": {
|
"no-inline-html": {
|
||||||
|
|
|
||||||
30
doc/md013.md
30
doc/md013.md
|
|
@ -16,6 +16,7 @@ Parameters:
|
||||||
- `stern`: Stern length checking (`boolean`, default `false`)
|
- `stern`: Stern length checking (`boolean`, default `false`)
|
||||||
- `strict`: Strict length checking (`boolean`, default `false`)
|
- `strict`: Strict length checking (`boolean`, default `false`)
|
||||||
- `tables`: Include tables (`boolean`, default `true`)
|
- `tables`: Include tables (`boolean`, default `true`)
|
||||||
|
- `wide_characters`: Expand wide characters (`boolean`, default `false`)
|
||||||
|
|
||||||
This rule is triggered when there are lines that are longer than the
|
This rule is triggered when there are lines that are longer than the
|
||||||
configured `line_length` (default: 80 characters). To fix this, split the line
|
configured `line_length` (default: 80 characters). To fix this, split the line
|
||||||
|
|
@ -26,11 +27,11 @@ up into multiple lines. To set a different maximum length for headings, use
|
||||||
This rule has an exception when there is no whitespace beyond the configured
|
This rule has an exception when there is no whitespace beyond the configured
|
||||||
line length. This allows you to include items such as long URLs without being
|
line length. This allows you to include items such as long URLs without being
|
||||||
forced to break them in the middle. To disable this exception, set the `strict`
|
forced to break them in the middle. To disable this exception, set the `strict`
|
||||||
parameter to `true` and an issue will be reported when any line is too long. To
|
parameter to `true` and a violation will be reported when any line is too long.
|
||||||
warn for lines that are too long and could be fixed but allow long lines
|
To warn for lines that are too long and could be fixed while allowing long lines
|
||||||
without spaces, set the `stern` parameter to `true`.
|
without spaces, set the `stern` parameter to `true`.
|
||||||
|
|
||||||
For example (assuming normal behavior):
|
For example (assuming default behavior):
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
IF THIS LINE IS THE MAXIMUM LENGTH
|
IF THIS LINE IS THE MAXIMUM LENGTH
|
||||||
|
|
@ -45,14 +46,25 @@ mode, the middle two lines above are both violations, but the last is okay.
|
||||||
You have the option to exclude this rule for code blocks, tables, or headings.
|
You have the option to exclude this rule for code blocks, tables, or headings.
|
||||||
To do so, set the `code_blocks`, `tables`, or `headings` parameter(s) to false.
|
To do so, set the `code_blocks`, `tables`, or `headings` parameter(s) to false.
|
||||||
|
|
||||||
Code blocks are included in this rule by default since it is often a
|
Code blocks are included in this rule by default since it is often a requirement
|
||||||
requirement for document readability, and tentatively compatible with code
|
for document readability, and tentatively compatible with code rules. However,
|
||||||
rules. Still, some languages do not lend themselves to short lines.
|
some languages do not lend themselves to short lines.
|
||||||
|
|
||||||
|
By default, this rule treats the number of characters in the line as its length.
|
||||||
|
Many editors render [emoji][emoji-013] and [CJK characters][cjk-characters-013]
|
||||||
|
at *twice* the width of [Latin characters][latin-script-013], so the
|
||||||
|
`wide_characters` parameter can be set to `true` to treat the "visual" width of
|
||||||
|
the line as its length instead.
|
||||||
|
|
||||||
Lines with link/image reference definitions and standalone lines (i.e., not part
|
Lines with link/image reference definitions and standalone lines (i.e., not part
|
||||||
of a paragraph) with only a link/image (possibly using (strong) emphasis) are
|
of a paragraph) with only a link/image (possibly using emphasis) are always
|
||||||
always exempted from this rule (even in `strict` mode) because there is often no
|
exempted from this rule (even in `strict` mode) because there is often no way to
|
||||||
way to split such lines without breaking the URL.
|
split such lines without breaking the URL.
|
||||||
|
|
||||||
Rationale: Extremely long lines can be difficult to work with in some editors.
|
Rationale: Extremely long lines can be difficult to work with in some editors.
|
||||||
|
|
||||||
More information: <https://cirosantilli.com/markdown-style-guide#line-wrapping>.
|
More information: <https://cirosantilli.com/markdown-style-guide#line-wrapping>.
|
||||||
|
|
||||||
|
[cjk-characters-013]: https://en.wikipedia.org/wiki/CJK_characters
|
||||||
|
[emoji-013]: https://en.wikipedia.org/wiki/Emoji
|
||||||
|
[latin-script-013]: https://en.wikipedia.org/wiki/Latin_script
|
||||||
|
|
|
||||||
16
doc/md060.md
16
doc/md060.md
|
|
@ -58,11 +58,11 @@ not, violations are be reported for whichever style would produce the *fewest*
|
||||||
issues (i.e., whichever style is the closest match).
|
issues (i.e., whichever style is the closest match).
|
||||||
|
|
||||||
Note: Delimiter placement for the `aligned` style is based on visual appearance
|
Note: Delimiter placement for the `aligned` style is based on visual appearance
|
||||||
and not character count. Because editors typically render [emoji][emoji] and
|
and not character count. Because editors typically render [emoji][emoji-060] and
|
||||||
[CJK characters][cjk-characters] at *twice* the width of
|
[CJK characters][cjk-characters-060] at *twice* the width of
|
||||||
[Latin characters][latin-script], this rule takes that into account for tables
|
[Latin characters][latin-script-060], this rule takes that into account for
|
||||||
using the `aligned` style. The following table is correctly formatted and will
|
tables using the `aligned` style. The following table is correctly formatted and
|
||||||
appear aligned in most editors and monospaced fonts:
|
will appear aligned in most editors and monospaced fonts:
|
||||||
|
|
||||||
<!-- markdownlint-capture -->
|
<!-- markdownlint-capture -->
|
||||||
<!-- markdownlint-disable extended-ascii -->
|
<!-- markdownlint-disable extended-ascii -->
|
||||||
|
|
@ -78,7 +78,7 @@ appear aligned in most editors and monospaced fonts:
|
||||||
|
|
||||||
Rationale: Consistent formatting makes it easier to understand a document.
|
Rationale: Consistent formatting makes it easier to understand a document.
|
||||||
|
|
||||||
[cjk-characters]: https://en.wikipedia.org/wiki/CJK_characters
|
[cjk-characters-060]: https://en.wikipedia.org/wiki/CJK_characters
|
||||||
[emoji]: https://en.wikipedia.org/wiki/Emoji
|
[emoji-060]: https://en.wikipedia.org/wiki/Emoji
|
||||||
[gfm-table-060]: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables
|
[gfm-table-060]: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables
|
||||||
[latin-script]: https://en.wikipedia.org/wiki/Latin_script
|
[latin-script-060]: https://en.wikipedia.org/wiki/Latin_script
|
||||||
|
|
|
||||||
8
lib/configuration-strict.d.ts
vendored
8
lib/configuration-strict.d.ts
vendored
|
|
@ -465,6 +465,10 @@ export interface ConfigurationStrict {
|
||||||
* Stern length checking
|
* Stern length checking
|
||||||
*/
|
*/
|
||||||
stern?: boolean;
|
stern?: boolean;
|
||||||
|
/**
|
||||||
|
* Expand wide characters
|
||||||
|
*/
|
||||||
|
wide_characters?: boolean;
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.39.0/doc/md013.md
|
* MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.39.0/doc/md013.md
|
||||||
|
|
@ -513,6 +517,10 @@ export interface ConfigurationStrict {
|
||||||
* Stern length checking
|
* Stern length checking
|
||||||
*/
|
*/
|
||||||
stern?: boolean;
|
stern?: boolean;
|
||||||
|
/**
|
||||||
|
* Expand wide characters
|
||||||
|
*/
|
||||||
|
wide_characters?: boolean;
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.39.0/doc/md014.md
|
* MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.39.0/doc/md014.md
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
import { addErrorDetailIf } from "../helpers/helpers.cjs";
|
import { addErrorDetailIf } from "../helpers/helpers.cjs";
|
||||||
import { filterByTypesCached, getReferenceLinkImageData } from "./cache.mjs";
|
import { filterByTypesCached, getReferenceLinkImageData } from "./cache.mjs";
|
||||||
import { addRangeToSet, getDescendantsByType } from "../helpers/micromark-helpers.cjs";
|
import { addRangeToSet, getDescendantsByType } from "../helpers/micromark-helpers.cjs";
|
||||||
|
import stringWidth from "string-width";
|
||||||
|
|
||||||
// Regular expression for a line that is not wrappable
|
// Regular expression for a line that is not wrappable
|
||||||
const notWrappableRe = /^(?:[#>\s]*\s)?\S*$/;
|
const notWrappableRe = /^(?:[#>\s]*\s)?\S*$/;
|
||||||
|
|
@ -28,6 +29,7 @@ export default {
|
||||||
const includeTables = (tables === undefined) ? true : !!tables;
|
const includeTables = (tables === undefined) ? true : !!tables;
|
||||||
const headings = params.config.headings;
|
const headings = params.config.headings;
|
||||||
const includeHeadings = (headings === undefined) ? true : !!headings;
|
const includeHeadings = (headings === undefined) ? true : !!headings;
|
||||||
|
const wideCharacters = !!params.config.wide_characters;
|
||||||
const headingLineNumbers = new Set();
|
const headingLineNumbers = new Set();
|
||||||
for (const heading of filterByTypesCached([ "atxHeading", "setextHeading" ])) {
|
for (const heading of filterByTypesCached([ "atxHeading", "setextHeading" ])) {
|
||||||
addRangeToSet(headingLineNumbers, heading.startLine, heading.endLine);
|
addRangeToSet(headingLineNumbers, heading.startLine, heading.endLine);
|
||||||
|
|
@ -65,6 +67,7 @@ export default {
|
||||||
const inTable = tableLineNumbers.has(lineNumber);
|
const inTable = tableLineNumbers.has(lineNumber);
|
||||||
const maxLength = inCode ? codeLineLength : (isHeading ? headingLineLength : lineLength);
|
const maxLength = inCode ? codeLineLength : (isHeading ? headingLineLength : lineLength);
|
||||||
const text = (strict || stern) ? line : line.replace(/\S*$/u, "");
|
const text = (strict || stern) ? line : line.replace(/\S*$/u, "");
|
||||||
|
const textLength = wideCharacters ? stringWidth(text) : text.length;
|
||||||
if ((maxLength > 0) &&
|
if ((maxLength > 0) &&
|
||||||
(includeCodeBlocks || !inCode) &&
|
(includeCodeBlocks || !inCode) &&
|
||||||
(includeTables || !inTable) &&
|
(includeTables || !inTable) &&
|
||||||
|
|
@ -73,15 +76,15 @@ export default {
|
||||||
(strict ||
|
(strict ||
|
||||||
(!(stern && notWrappableRe.test(line)) &&
|
(!(stern && notWrappableRe.test(line)) &&
|
||||||
!linkOnlyLineNumbers.has(lineNumber))) &&
|
!linkOnlyLineNumbers.has(lineNumber))) &&
|
||||||
(text.length > maxLength)) {
|
(textLength > maxLength)) {
|
||||||
addErrorDetailIf(
|
addErrorDetailIf(
|
||||||
onError,
|
onError,
|
||||||
lineNumber,
|
lineNumber,
|
||||||
maxLength,
|
maxLength,
|
||||||
line.length,
|
wideCharacters ? stringWidth(line) : line.length,
|
||||||
undefined,
|
undefined,
|
||||||
undefined,
|
undefined,
|
||||||
[ maxLength + 1, line.length - maxLength ]
|
wideCharacters ? undefined : [ maxLength + 1, line.length - maxLength ]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,9 @@
|
||||||
// Strict length checking
|
// Strict length checking
|
||||||
"strict": false,
|
"strict": false,
|
||||||
// Stern length checking
|
// Stern length checking
|
||||||
"stern": false
|
"stern": false,
|
||||||
|
// Expand wide characters
|
||||||
|
"wide_characters": false
|
||||||
},
|
},
|
||||||
|
|
||||||
// MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.39.0/doc/md014.md
|
// MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.39.0/doc/md014.md
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,8 @@ MD013:
|
||||||
strict: false
|
strict: false
|
||||||
# Stern length checking
|
# Stern length checking
|
||||||
stern: false
|
stern: false
|
||||||
|
# Expand wide characters
|
||||||
|
wide_characters: false
|
||||||
|
|
||||||
# MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.39.0/doc/md014.md
|
# MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.39.0/doc/md014.md
|
||||||
MD014: true
|
MD014: true
|
||||||
|
|
|
||||||
|
|
@ -264,6 +264,12 @@ for (const rule of rules) {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false
|
"default": false
|
||||||
};
|
};
|
||||||
|
// @ts-ignore
|
||||||
|
subscheme.properties.wide_characters = {
|
||||||
|
"description": "Expand wide characters",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
};
|
||||||
break;
|
break;
|
||||||
case "MD022":
|
case "MD022":
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
|
|
||||||
|
|
@ -920,6 +920,11 @@
|
||||||
"description": "Stern length checking",
|
"description": "Stern length checking",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false
|
"default": false
|
||||||
|
},
|
||||||
|
"wide_characters": {
|
||||||
|
"description": "Expand wide characters",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -998,6 +1003,11 @@
|
||||||
"description": "Stern length checking",
|
"description": "Stern length checking",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false
|
"default": false
|
||||||
|
},
|
||||||
|
"wide_characters": {
|
||||||
|
"description": "Expand wide characters",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -920,6 +920,11 @@
|
||||||
"description": "Stern length checking",
|
"description": "Stern length checking",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false
|
"default": false
|
||||||
|
},
|
||||||
|
"wide_characters": {
|
||||||
|
"description": "Expand wide characters",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -998,6 +1003,11 @@
|
||||||
"description": "Stern length checking",
|
"description": "Stern length checking",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false
|
"default": false
|
||||||
|
},
|
||||||
|
"wide_characters": {
|
||||||
|
"description": "Expand wide characters",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
50
test/long-lines-thresholds-wide-characters.md
Normal file
50
test/long-lines-thresholds-wide-characters.md
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
# Long Lines Thresholds (Wide Characters)
|
||||||
|
|
||||||
|
00000000011111111112222222222333333333344444444445
|
||||||
|
12345678901234567890123456789012345678901234567890
|
||||||
|
|
||||||
|
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx t
|
||||||
|
|
||||||
|
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx t
|
||||||
|
|
||||||
|
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx✅ t
|
||||||
|
|
||||||
|
{MD013:-2} {MD013:-4}
|
||||||
|
|
||||||
|
## Texxxxxxxxxxxxxxxxxxxxxxxx t
|
||||||
|
|
||||||
|
## Texxxxxxxxxxxxxxxxxxxxxxxxx t
|
||||||
|
|
||||||
|
## Texxxxxxxxxxxxxxxxxxxxxxx✅ t
|
||||||
|
|
||||||
|
{MD013:-2} {MD013:-4}
|
||||||
|
|
||||||
|
```text
|
||||||
|
Texxxxxxxxxxxxxxxxx t
|
||||||
|
Texxxxxxxxxxxxxxxxxx t
|
||||||
|
Texxxxxxxxxxxxxxxx✅ t
|
||||||
|
```
|
||||||
|
|
||||||
|
{MD013:-3} {MD013:-4}
|
||||||
|
|
||||||
|
Texxxxxxxxxxxxx t
|
||||||
|
Texxxxxxxxxxxxxx t
|
||||||
|
Texxxxxxxxxxxx✅ t
|
||||||
|
|
||||||
|
{MD013:-2} {MD013:-3}
|
||||||
|
|
||||||
|
/ 👋🌎 / 你好,世界 / こんにちは世界 / 안녕 세상 /
|
||||||
|
|
||||||
|
むかしむかし,あるところに,おじいさんとおばあさんがくらしていました。
|
||||||
|
|
||||||
|
{MD013:-2} {MD013:-4}
|
||||||
|
|
||||||
|
<!-- markdownlint-configure-file {
|
||||||
|
"code-block-style": false,
|
||||||
|
"line-length": {
|
||||||
|
"line_length": 40,
|
||||||
|
"heading_line_length": 30,
|
||||||
|
"code_block_line_length": 20,
|
||||||
|
"wide_characters": true
|
||||||
|
}
|
||||||
|
} -->
|
||||||
|
|
@ -7,25 +7,35 @@ Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx t
|
||||||
|
|
||||||
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx t
|
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx t
|
||||||
|
|
||||||
{MD013:-2}
|
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx✅ t
|
||||||
|
|
||||||
|
{MD013:-4}
|
||||||
|
|
||||||
## Texxxxxxxxxxxxxxxxxxxxxxxx t
|
## Texxxxxxxxxxxxxxxxxxxxxxxx t
|
||||||
|
|
||||||
## Texxxxxxxxxxxxxxxxxxxxxxxxx t
|
## Texxxxxxxxxxxxxxxxxxxxxxxxx t
|
||||||
|
|
||||||
{MD013:-2}
|
## Texxxxxxxxxxxxxxxxxxxxxxx✅ t
|
||||||
|
|
||||||
|
{MD013:-4}
|
||||||
|
|
||||||
```text
|
```text
|
||||||
Texxxxxxxxxxxxxxxxx t
|
Texxxxxxxxxxxxxxxxx t
|
||||||
Texxxxxxxxxxxxxxxxxx t
|
Texxxxxxxxxxxxxxxxxx t
|
||||||
|
Texxxxxxxxxxxxxxxx✅ t
|
||||||
```
|
```
|
||||||
|
|
||||||
{MD013:-3}
|
{MD013:-4}
|
||||||
|
|
||||||
Texxxxxxxxxxxxx t
|
Texxxxxxxxxxxxx t
|
||||||
Texxxxxxxxxxxxxx t
|
Texxxxxxxxxxxxxx t
|
||||||
|
Texxxxxxxxxxxx✅ t
|
||||||
|
|
||||||
{MD013:-2}
|
{MD013:-3}
|
||||||
|
|
||||||
|
/ 👋🌎 / 你好,世界 / こんにちは世界 / 안녕 세상 /
|
||||||
|
|
||||||
|
むかしむかし,あるところに,おじいさんとおばあさんがくらしていました。
|
||||||
|
|
||||||
<!-- markdownlint-configure-file {
|
<!-- markdownlint-configure-file {
|
||||||
"code-block-style": false,
|
"code-block-style": false,
|
||||||
|
|
|
||||||
|
|
@ -1101,7 +1101,7 @@ test("readme", async(t) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test("validateJsonUsingConfigSchemaStrict", async(t) => {
|
test("validateJsonUsingConfigSchemaStrict", async(t) => {
|
||||||
t.plan(221);
|
t.plan(222);
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const ajv = new Ajv(ajvOptions);
|
const ajv = new Ajv(ajvOptions);
|
||||||
const validateSchemaStrict = ajv.compile(configSchemaStrict);
|
const validateSchemaStrict = ajv.compile(configSchemaStrict);
|
||||||
|
|
|
||||||
|
|
@ -42658,6 +42658,190 @@ Generated by [AVA](https://avajs.dev).
|
||||||
`,
|
`,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## long-lines-thresholds-wide-characters.md
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
{
|
||||||
|
errors: [
|
||||||
|
{
|
||||||
|
errorContext: null,
|
||||||
|
errorDetail: 'Expected: 40; Actual: 42',
|
||||||
|
errorRange: null,
|
||||||
|
fixInfo: null,
|
||||||
|
lineNumber: 8,
|
||||||
|
ruleDescription: 'Line length',
|
||||||
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
|
ruleNames: [
|
||||||
|
'MD013',
|
||||||
|
'line-length',
|
||||||
|
],
|
||||||
|
severity: 'error',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorContext: null,
|
||||||
|
errorDetail: 'Expected: 40; Actual: 42',
|
||||||
|
errorRange: null,
|
||||||
|
fixInfo: null,
|
||||||
|
lineNumber: 10,
|
||||||
|
ruleDescription: 'Line length',
|
||||||
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
|
ruleNames: [
|
||||||
|
'MD013',
|
||||||
|
'line-length',
|
||||||
|
],
|
||||||
|
severity: 'error',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorContext: null,
|
||||||
|
errorDetail: 'Expected: 30; Actual: 32',
|
||||||
|
errorRange: null,
|
||||||
|
fixInfo: null,
|
||||||
|
lineNumber: 16,
|
||||||
|
ruleDescription: 'Line length',
|
||||||
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
|
ruleNames: [
|
||||||
|
'MD013',
|
||||||
|
'line-length',
|
||||||
|
],
|
||||||
|
severity: 'error',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorContext: null,
|
||||||
|
errorDetail: 'Expected: 30; Actual: 32',
|
||||||
|
errorRange: null,
|
||||||
|
fixInfo: null,
|
||||||
|
lineNumber: 18,
|
||||||
|
ruleDescription: 'Line length',
|
||||||
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
|
ruleNames: [
|
||||||
|
'MD013',
|
||||||
|
'line-length',
|
||||||
|
],
|
||||||
|
severity: 'error',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorContext: null,
|
||||||
|
errorDetail: 'Expected: 20; Actual: 22',
|
||||||
|
errorRange: null,
|
||||||
|
fixInfo: null,
|
||||||
|
lineNumber: 24,
|
||||||
|
ruleDescription: 'Line length',
|
||||||
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
|
ruleNames: [
|
||||||
|
'MD013',
|
||||||
|
'line-length',
|
||||||
|
],
|
||||||
|
severity: 'error',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorContext: null,
|
||||||
|
errorDetail: 'Expected: 20; Actual: 22',
|
||||||
|
errorRange: null,
|
||||||
|
fixInfo: null,
|
||||||
|
lineNumber: 25,
|
||||||
|
ruleDescription: 'Line length',
|
||||||
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
|
ruleNames: [
|
||||||
|
'MD013',
|
||||||
|
'line-length',
|
||||||
|
],
|
||||||
|
severity: 'error',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorContext: null,
|
||||||
|
errorDetail: 'Expected: 20; Actual: 22',
|
||||||
|
errorRange: null,
|
||||||
|
fixInfo: null,
|
||||||
|
lineNumber: 31,
|
||||||
|
ruleDescription: 'Line length',
|
||||||
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
|
ruleNames: [
|
||||||
|
'MD013',
|
||||||
|
'line-length',
|
||||||
|
],
|
||||||
|
severity: 'error',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorContext: null,
|
||||||
|
errorDetail: 'Expected: 20; Actual: 22',
|
||||||
|
errorRange: null,
|
||||||
|
fixInfo: null,
|
||||||
|
lineNumber: 32,
|
||||||
|
ruleDescription: 'Line length',
|
||||||
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
|
ruleNames: [
|
||||||
|
'MD013',
|
||||||
|
'line-length',
|
||||||
|
],
|
||||||
|
severity: 'error',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorContext: null,
|
||||||
|
errorDetail: 'Expected: 40; Actual: 50',
|
||||||
|
errorRange: null,
|
||||||
|
fixInfo: null,
|
||||||
|
lineNumber: 36,
|
||||||
|
ruleDescription: 'Line length',
|
||||||
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
|
ruleNames: [
|
||||||
|
'MD013',
|
||||||
|
'line-length',
|
||||||
|
],
|
||||||
|
severity: 'error',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
fixed: `# Long Lines Thresholds (Wide Characters)␊
|
||||||
|
␊
|
||||||
|
00000000011111111112222222222333333333344444444445␊
|
||||||
|
12345678901234567890123456789012345678901234567890␊
|
||||||
|
␊
|
||||||
|
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx t␊
|
||||||
|
␊
|
||||||
|
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx t␊
|
||||||
|
␊
|
||||||
|
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx✅ t␊
|
||||||
|
␊
|
||||||
|
{MD013:-2} {MD013:-4}␊
|
||||||
|
␊
|
||||||
|
## Texxxxxxxxxxxxxxxxxxxxxxxx t␊
|
||||||
|
␊
|
||||||
|
## Texxxxxxxxxxxxxxxxxxxxxxxxx t␊
|
||||||
|
␊
|
||||||
|
## Texxxxxxxxxxxxxxxxxxxxxxx✅ t␊
|
||||||
|
␊
|
||||||
|
{MD013:-2} {MD013:-4}␊
|
||||||
|
␊
|
||||||
|
\`\`\`text␊
|
||||||
|
Texxxxxxxxxxxxxxxxx t␊
|
||||||
|
Texxxxxxxxxxxxxxxxxx t␊
|
||||||
|
Texxxxxxxxxxxxxxxx✅ t␊
|
||||||
|
\`\`\`␊
|
||||||
|
␊
|
||||||
|
{MD013:-3} {MD013:-4}␊
|
||||||
|
␊
|
||||||
|
Texxxxxxxxxxxxx t␊
|
||||||
|
Texxxxxxxxxxxxxx t␊
|
||||||
|
Texxxxxxxxxxxx✅ t␊
|
||||||
|
␊
|
||||||
|
{MD013:-2} {MD013:-3}␊
|
||||||
|
␊
|
||||||
|
/ 👋🌎 / 你好,世界 / こんにちは世界 / 안녕 세상 /␊
|
||||||
|
␊
|
||||||
|
{MD013:-2}␊
|
||||||
|
␊
|
||||||
|
<!-- markdownlint-configure-file {␊
|
||||||
|
"code-block-style": false,␊
|
||||||
|
"line-length": {␊
|
||||||
|
"line_length": 40,␊
|
||||||
|
"heading_line_length": 30,␊
|
||||||
|
"code_block_line_length": 20,␊
|
||||||
|
"wide_characters": true␊
|
||||||
|
}␊
|
||||||
|
} -->␊
|
||||||
|
`,
|
||||||
|
}
|
||||||
|
|
||||||
## long-lines-thresholds.md
|
## long-lines-thresholds.md
|
||||||
|
|
||||||
> Snapshot 1
|
> Snapshot 1
|
||||||
|
|
@ -42689,7 +42873,7 @@ Generated by [AVA](https://avajs.dev).
|
||||||
2,
|
2,
|
||||||
],
|
],
|
||||||
fixInfo: null,
|
fixInfo: null,
|
||||||
lineNumber: 14,
|
lineNumber: 16,
|
||||||
ruleDescription: 'Line length',
|
ruleDescription: 'Line length',
|
||||||
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
ruleNames: [
|
ruleNames: [
|
||||||
|
|
@ -42706,7 +42890,7 @@ Generated by [AVA](https://avajs.dev).
|
||||||
2,
|
2,
|
||||||
],
|
],
|
||||||
fixInfo: null,
|
fixInfo: null,
|
||||||
lineNumber: 20,
|
lineNumber: 24,
|
||||||
ruleDescription: 'Line length',
|
ruleDescription: 'Line length',
|
||||||
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
ruleNames: [
|
ruleNames: [
|
||||||
|
|
@ -42723,7 +42907,7 @@ Generated by [AVA](https://avajs.dev).
|
||||||
2,
|
2,
|
||||||
],
|
],
|
||||||
fixInfo: null,
|
fixInfo: null,
|
||||||
lineNumber: 26,
|
lineNumber: 31,
|
||||||
ruleDescription: 'Line length',
|
ruleDescription: 'Line length',
|
||||||
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md013.md',
|
||||||
ruleNames: [
|
ruleNames: [
|
||||||
|
|
@ -42742,25 +42926,33 @@ Generated by [AVA](https://avajs.dev).
|
||||||
␊
|
␊
|
||||||
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx t␊
|
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx t␊
|
||||||
␊
|
␊
|
||||||
{MD013:-2}␊
|
Texxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx✅ t␊
|
||||||
|
␊
|
||||||
|
{MD013:-4}␊
|
||||||
␊
|
␊
|
||||||
## Texxxxxxxxxxxxxxxxxxxxxxxx t␊
|
## Texxxxxxxxxxxxxxxxxxxxxxxx t␊
|
||||||
␊
|
␊
|
||||||
## Texxxxxxxxxxxxxxxxxxxxxxxxx t␊
|
## Texxxxxxxxxxxxxxxxxxxxxxxxx t␊
|
||||||
␊
|
␊
|
||||||
{MD013:-2}␊
|
## Texxxxxxxxxxxxxxxxxxxxxxx✅ t␊
|
||||||
|
␊
|
||||||
|
{MD013:-4}␊
|
||||||
␊
|
␊
|
||||||
\`\`\`text␊
|
\`\`\`text␊
|
||||||
Texxxxxxxxxxxxxxxxx t␊
|
Texxxxxxxxxxxxxxxxx t␊
|
||||||
Texxxxxxxxxxxxxxxxxx t␊
|
Texxxxxxxxxxxxxxxxxx t␊
|
||||||
|
Texxxxxxxxxxxxxxxx✅ t␊
|
||||||
\`\`\`␊
|
\`\`\`␊
|
||||||
␊
|
␊
|
||||||
{MD013:-3}␊
|
{MD013:-4}␊
|
||||||
␊
|
␊
|
||||||
Texxxxxxxxxxxxx t␊
|
Texxxxxxxxxxxxx t␊
|
||||||
Texxxxxxxxxxxxxx t␊
|
Texxxxxxxxxxxxxx t␊
|
||||||
|
Texxxxxxxxxxxx✅ t␊
|
||||||
␊
|
␊
|
||||||
{MD013:-2}␊
|
{MD013:-3}␊
|
||||||
|
␊
|
||||||
|
/ 👋🌎 / 你好,世界 / こんにちは世界 / 안녕 세상 /␊
|
||||||
␊
|
␊
|
||||||
<!-- markdownlint-configure-file {␊
|
<!-- markdownlint-configure-file {␊
|
||||||
"code-block-style": false,␊
|
"code-block-style": false,␊
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue