Skip to content

Commit c975f2f

Browse files
authored
🤖 Merge PR DefinitelyTyped#74226 feat(markdown-it-container): retain v2 types, add proper v4 types by @hkleungai
1 parent f62463d commit c975f2f

File tree

10 files changed

+114
-4
lines changed

10 files changed

+114
-4
lines changed

‎types/markdown-it-container/.npmignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
!**/*.d.cts
44
!**/*.d.mts
55
!**/*.d.*.ts
6+
/v2/
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import MarkdownItContainer = require("./index.js");
2+
3+
export type ContainerOpts = MarkdownItContainer.ContainerOpts;
4+
5+
export default MarkdownItContainer;

‎types/markdown-it-container/index.d.ts‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import MarkdownIt = require("markdown-it");
2-
import Renderer = require("markdown-it/lib/renderer");
32

43
declare namespace MarkdownItContainer {
54
interface ContainerOpts {
65
marker?: string | undefined;
76
validate?(params: string): boolean;
8-
render?: Renderer.RenderRule | undefined;
7+
render?: MarkdownIt.Renderer.RenderRule | undefined;
98
}
109
}
1110

‎types/markdown-it-container/package.json‎

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
{
22
"private": true,
33
"name": "@types/markdown-it-container",
4-
"version": "2.0.9999",
4+
"version": "4.0.9999",
55
"projects": [
66
"https://github.com/markdown-it/markdown-it-container"
77
],
8+
"exports": {
9+
".": {
10+
"require": "./index.d.ts",
11+
"import": "./index.d.mts"
12+
},
13+
"./*": {
14+
"require": "./*",
15+
"import": "./*"
16+
}
17+
},
818
"dependencies": {
9-
"@types/markdown-it": "<14"
19+
"@types/markdown-it": ">=14"
1020
},
1121
"devDependencies": {
1222
"@types/markdown-it-container": "workspace:."

‎types/markdown-it-container/tsconfig.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
},
1515
"files": [
1616
"index.d.ts",
17+
"index.d.mts",
1718
"markdown-it-container-tests.ts"
1819
]
1920
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*
2+
!**/*.d.ts
3+
!**/*.d.cts
4+
!**/*.d.mts
5+
!**/*.d.*.ts
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import MarkdownIt = require("markdown-it");
2+
import Renderer = require("markdown-it/lib/renderer");
3+
4+
declare namespace MarkdownItContainer {
5+
interface ContainerOpts {
6+
marker?: string | undefined;
7+
validate?(params: string): boolean;
8+
render?: Renderer.RenderRule | undefined;
9+
}
10+
}
11+
12+
declare function MarkdownItContainer(md: MarkdownIt, name: string, opts: MarkdownItContainer.ContainerOpts): void;
13+
14+
export = MarkdownItContainer;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import MarkdownIt = require("markdown-it");
2+
3+
import MarkdownItContainer = require("markdown-it-container");
4+
5+
const md = new MarkdownIt();
6+
7+
md.use(MarkdownItContainer, "spoiler", {
8+
validate: (params: string) => params.trim().match(/^spoiler\s+(.*)$/),
9+
render: (tokens: MarkdownIt.Token[], index: number) => {
10+
const match = tokens[index].info.trim().match(/^spoiler\s+(.*)$/);
11+
const onClick = "this.parentNode.classList.toggle('_expanded');" + "event.preventDefault();";
12+
13+
if (tokens[index].nesting === 1) {
14+
return (
15+
// tslint:disable-next-line prefer-template
16+
"<div class=\"markdown__spoiler\">\n"
17+
+ "<div class=\"markdown__spoiler-title\" onclick=\""
18+
+ onClick
19+
+ "\">\n"
20+
+ md.utils.escapeHtml((match && match[1]) || "")
21+
+ "\n"
22+
+ "</div>\n"
23+
+ "<div class=\"markdown__spoiler-content\">\n"
24+
);
25+
} else {
26+
return "</div></div>\n";
27+
}
28+
},
29+
marker: "marker",
30+
});
31+
32+
const src = `:::spoiler This Is Spoiler Title
33+
Here is spoiler content.
34+
:::`;
35+
36+
md.render(src);
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"private": true,
3+
"name": "@types/markdown-it-container",
4+
"version": "2.0.9999",
5+
"projects": [
6+
"https://github.com/markdown-it/markdown-it-container"
7+
],
8+
"dependencies": {
9+
"@types/markdown-it": "<14"
10+
},
11+
"devDependencies": {
12+
"@types/markdown-it-container": "workspace:."
13+
},
14+
"owners": [
15+
{
16+
"name": "Vyacheslav Demot",
17+
"githubUsername": "hronex"
18+
}
19+
]
20+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"compilerOptions": {
3+
"module": "node16",
4+
"lib": [
5+
"es6"
6+
],
7+
"noImplicitAny": true,
8+
"noImplicitThis": true,
9+
"strictNullChecks": true,
10+
"strictFunctionTypes": true,
11+
"types": [],
12+
"noEmit": true,
13+
"forceConsistentCasingInFileNames": true
14+
},
15+
"files": [
16+
"index.d.ts",
17+
"markdown-it-container-tests.ts"
18+
]
19+
}

0 commit comments

Comments
 (0)