typedoc 0.26.0 → 0.26.1
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/dist/lib/application.js +12 -2
- package/dist/lib/converter/comments/parser.js +6 -2
- package/dist/lib/converter/comments/textParser.d.ts +12 -1
- package/dist/lib/converter/comments/textParser.js +72 -25
- package/dist/lib/converter/plugins/CommentPlugin.js +5 -2
- package/dist/lib/internationalization/locales/ko.cjs +154 -0
- package/dist/lib/internationalization/locales/ko.d.cts +153 -0
- package/dist/lib/models/FileRegistry.d.ts +9 -4
- package/dist/lib/models/FileRegistry.js +6 -1
- package/dist/lib/models/comments/comment.d.ts +2 -2
- package/dist/lib/models/reflections/declaration.js +1 -0
- package/dist/lib/models/reflections/project.js +1 -1
- package/dist/lib/output/themes/MarkedPlugin.js +1 -1
- package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts +4 -4
- package/dist/lib/utils/highlighter.js +1 -1
- package/dist/lib/utils/minimalSourceFile.js +1 -1
- package/dist/lib/utils/options/options.js +3 -3
- package/dist/lib/utils/options/readers/typedoc.js +1 -1
- package/dist/lib/utils/options/tsdoc-defaults.d.ts +3 -3
- package/dist/lib/utils/options/tsdoc-defaults.js +11 -12
- package/package.json +5 -5
- package/tsdoc.json +9 -1
package/dist/lib/application.js
CHANGED
|
@@ -496,6 +496,7 @@ let Application = (() => {
|
|
|
496
496
|
this.logger.error(this.i18n.failed_to_find_packages());
|
|
497
497
|
return;
|
|
498
498
|
}
|
|
499
|
+
const origFiles = this.files;
|
|
499
500
|
const origOptions = this.options;
|
|
500
501
|
const projects = [];
|
|
501
502
|
const projectsToConvert = [];
|
|
@@ -526,14 +527,23 @@ let Application = (() => {
|
|
|
526
527
|
for (const { dir, options } of projectsToConvert) {
|
|
527
528
|
this.logger.info(this.i18n.converting_project_at_0((0, paths_1.nicePath)(dir)));
|
|
528
529
|
this.options = options;
|
|
529
|
-
|
|
530
|
+
this.files = new FileRegistry_1.ValidatingFileRegistry();
|
|
531
|
+
let project = await this.convert();
|
|
530
532
|
if (project) {
|
|
531
533
|
this.validate(project);
|
|
532
|
-
|
|
534
|
+
const serialized = this.serializer.projectToObject(project, process.cwd());
|
|
535
|
+
projects.push(serialized);
|
|
533
536
|
}
|
|
537
|
+
// When debugging memory issues, it's useful to set these
|
|
538
|
+
// here so that a breakpoint on resetReflectionID below
|
|
539
|
+
// gets the memory as it ought to be with all TS objects released.
|
|
540
|
+
project = undefined;
|
|
541
|
+
this.files = undefined;
|
|
542
|
+
// global.gc!();
|
|
534
543
|
(0, abstract_1.resetReflectionID)();
|
|
535
544
|
}
|
|
536
545
|
this.options = origOptions;
|
|
546
|
+
this.files = origFiles;
|
|
537
547
|
if (projects.length !== packageDirs.length) {
|
|
538
548
|
this.logger.error(this.i18n.failed_to_convert_packages());
|
|
539
549
|
return;
|
|
@@ -99,12 +99,14 @@ function parseCommentString(tokens, config, file, logger, files) {
|
|
|
99
99
|
inheritDocTag: true,
|
|
100
100
|
},
|
|
101
101
|
};
|
|
102
|
+
const reentry = new textParser_1.TextParserReentryState();
|
|
102
103
|
const content = [];
|
|
103
104
|
const lexer = makeLookaheadGenerator(tokens);
|
|
104
105
|
let atNewLine = false;
|
|
105
106
|
while (!lexer.done()) {
|
|
106
107
|
let consume = true;
|
|
107
108
|
const next = lexer.peek();
|
|
109
|
+
reentry.checkState(next);
|
|
108
110
|
switch (next.kind) {
|
|
109
111
|
case lexer_1.TokenSyntaxKind.TypeAnnotation:
|
|
110
112
|
// Shouldn't have been produced by our lexer
|
|
@@ -114,7 +116,7 @@ function parseCommentString(tokens, config, file, logger, files) {
|
|
|
114
116
|
case lexer_1.TokenSyntaxKind.Text:
|
|
115
117
|
case lexer_1.TokenSyntaxKind.Tag:
|
|
116
118
|
case lexer_1.TokenSyntaxKind.CloseBrace:
|
|
117
|
-
(0, textParser_1.textContent)(file.fileName, next, logger.i18n, (msg, token) => logger.warn(msg, token.pos, file), content, files, atNewLine);
|
|
119
|
+
(0, textParser_1.textContent)(file.fileName, next, logger.i18n, (msg, token) => logger.warn(msg, token.pos, file), content, files, atNewLine, reentry);
|
|
118
120
|
break;
|
|
119
121
|
case lexer_1.TokenSyntaxKind.Code:
|
|
120
122
|
content.push({ kind: "code", text: next.text });
|
|
@@ -367,8 +369,10 @@ function exampleBlock(comment, lexer, config, i18n, warning, files) {
|
|
|
367
369
|
function blockContent(comment, lexer, config, i18n, warning, files) {
|
|
368
370
|
const content = [];
|
|
369
371
|
let atNewLine = true;
|
|
372
|
+
const reentry = new textParser_1.TextParserReentryState();
|
|
370
373
|
loop: while (!lexer.done()) {
|
|
371
374
|
const next = lexer.peek();
|
|
375
|
+
reentry.checkState(next);
|
|
372
376
|
let consume = true;
|
|
373
377
|
switch (next.kind) {
|
|
374
378
|
case lexer_1.TokenSyntaxKind.NewLine:
|
|
@@ -376,7 +380,7 @@ function blockContent(comment, lexer, config, i18n, warning, files) {
|
|
|
376
380
|
break;
|
|
377
381
|
case lexer_1.TokenSyntaxKind.Text:
|
|
378
382
|
(0, textParser_1.textContent)(comment.sourcePath, next, i18n, warning,
|
|
379
|
-
/*out*/ content, files, atNewLine);
|
|
383
|
+
/*out*/ content, files, atNewLine, reentry);
|
|
380
384
|
break;
|
|
381
385
|
case lexer_1.TokenSyntaxKind.Code:
|
|
382
386
|
content.push({ kind: "code", text: next.text });
|
|
@@ -9,8 +9,19 @@ import type { TranslationProxy, TranslatedString } from "../../internationalizat
|
|
|
9
9
|
import type { CommentDisplayPart } from "../../models";
|
|
10
10
|
import type { FileRegistry } from "../../models/FileRegistry";
|
|
11
11
|
import { type Token } from "./lexer";
|
|
12
|
+
/**
|
|
13
|
+
* This is incredibly unfortunate. The comment lexer owns the responsibility
|
|
14
|
+
* for splitting up text into text/code, this is totally fine for HTML links
|
|
15
|
+
* but for markdown links, ``[`code`](./link)`` is valid, so we need to keep
|
|
16
|
+
* track of state across calls to {@link textContent}.
|
|
17
|
+
*/
|
|
18
|
+
export declare class TextParserReentryState {
|
|
19
|
+
withinLinkLabel: boolean;
|
|
20
|
+
private lastPartWasNewline;
|
|
21
|
+
checkState(token: Token): void;
|
|
22
|
+
}
|
|
12
23
|
/**
|
|
13
24
|
* Look for relative links within a piece of text and add them to the {@link FileRegistry}
|
|
14
25
|
* so that they can be correctly resolved during rendering.
|
|
15
26
|
*/
|
|
16
|
-
export declare function textContent(sourcePath: string, token: Token, i18n: TranslationProxy, warning: (msg: TranslatedString, token: Token) => void, outContent: CommentDisplayPart[], files: FileRegistry, atNewLine: boolean): void;
|
|
27
|
+
export declare function textContent(sourcePath: string, token: Token, i18n: TranslationProxy, warning: (msg: TranslatedString, token: Token) => void, outContent: CommentDisplayPart[], files: FileRegistry, atNewLine: boolean, reentry: TextParserReentryState): void;
|
|
@@ -3,21 +3,50 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TextParserReentryState = void 0;
|
|
6
7
|
exports.textContent = textContent;
|
|
7
8
|
const html_1 = require("../../utils/html");
|
|
8
9
|
const lexer_1 = require("./lexer");
|
|
9
10
|
const markdown_it_1 = __importDefault(require("markdown-it"));
|
|
10
11
|
const MdHelpers = new markdown_it_1.default().helpers;
|
|
12
|
+
/**
|
|
13
|
+
* This is incredibly unfortunate. The comment lexer owns the responsibility
|
|
14
|
+
* for splitting up text into text/code, this is totally fine for HTML links
|
|
15
|
+
* but for markdown links, ``[`code`](./link)`` is valid, so we need to keep
|
|
16
|
+
* track of state across calls to {@link textContent}.
|
|
17
|
+
*/
|
|
18
|
+
class TextParserReentryState {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.withinLinkLabel = false;
|
|
21
|
+
this.lastPartWasNewline = false;
|
|
22
|
+
}
|
|
23
|
+
checkState(token) {
|
|
24
|
+
switch (token.kind) {
|
|
25
|
+
case lexer_1.TokenSyntaxKind.Code:
|
|
26
|
+
if (/\n\s*\n/.test(token.text)) {
|
|
27
|
+
this.withinLinkLabel = false;
|
|
28
|
+
}
|
|
29
|
+
break;
|
|
30
|
+
case lexer_1.TokenSyntaxKind.NewLine:
|
|
31
|
+
if (this.lastPartWasNewline) {
|
|
32
|
+
this.withinLinkLabel = false;
|
|
33
|
+
}
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
this.lastPartWasNewline = token.kind === lexer_1.TokenSyntaxKind.NewLine;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.TextParserReentryState = TextParserReentryState;
|
|
11
40
|
/**
|
|
12
41
|
* Look for relative links within a piece of text and add them to the {@link FileRegistry}
|
|
13
42
|
* so that they can be correctly resolved during rendering.
|
|
14
43
|
*/
|
|
15
|
-
function textContent(sourcePath, token, i18n, warning, outContent, files, atNewLine) {
|
|
44
|
+
function textContent(sourcePath, token, i18n, warning, outContent, files, atNewLine, reentry) {
|
|
16
45
|
let lastPartEnd = 0;
|
|
17
46
|
const data = {
|
|
18
47
|
sourcePath,
|
|
19
48
|
token,
|
|
20
|
-
pos: 0,
|
|
49
|
+
pos: 0, // relative to the token
|
|
21
50
|
i18n,
|
|
22
51
|
warning,
|
|
23
52
|
files: files,
|
|
@@ -38,13 +67,14 @@ function textContent(sourcePath, token, i18n, warning, outContent, files, atNewL
|
|
|
38
67
|
if (!ref.target) {
|
|
39
68
|
warning(i18n.relative_path_0_does_not_exist(token.text.slice(ref.pos, ref.end)), {
|
|
40
69
|
kind: lexer_1.TokenSyntaxKind.Text,
|
|
41
|
-
|
|
70
|
+
// ref.pos is relative to the token, but this pos is relative to the file.
|
|
71
|
+
pos: token.pos + ref.pos,
|
|
42
72
|
text: token.text.slice(ref.pos, ref.end),
|
|
43
73
|
});
|
|
44
74
|
}
|
|
45
75
|
}
|
|
46
76
|
while (data.pos < token.text.length) {
|
|
47
|
-
const link = checkMarkdownLink(data);
|
|
77
|
+
const link = checkMarkdownLink(data, reentry);
|
|
48
78
|
if (link) {
|
|
49
79
|
addRef(link);
|
|
50
80
|
continue;
|
|
@@ -76,28 +106,44 @@ function textContent(sourcePath, token, i18n, warning, outContent, files, atNewL
|
|
|
76
106
|
* Reference: https://github.com/markdown-it/markdown-it/blob/14.1.0/lib/rules_inline/image.mjs
|
|
77
107
|
*
|
|
78
108
|
*/
|
|
79
|
-
function checkMarkdownLink(data) {
|
|
109
|
+
function checkMarkdownLink(data, reentry) {
|
|
80
110
|
const { token, sourcePath, files } = data;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
111
|
+
let searchStart;
|
|
112
|
+
if (reentry.withinLinkLabel) {
|
|
113
|
+
searchStart = data.pos;
|
|
114
|
+
reentry.withinLinkLabel = false;
|
|
115
|
+
}
|
|
116
|
+
else if (token.text[data.pos] === "[") {
|
|
117
|
+
searchStart = data.pos + 1;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const labelEnd = findLabelEnd(token.text, searchStart);
|
|
123
|
+
if (labelEnd === -1) {
|
|
124
|
+
// This markdown link might be split across multiple display parts
|
|
125
|
+
// [ `text` ](link)
|
|
126
|
+
// ^^ text
|
|
127
|
+
// ^^^^^^ code
|
|
128
|
+
// ^^^^^^^^ text
|
|
129
|
+
reentry.withinLinkLabel = true;
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (token.text[labelEnd] === "]" && token.text[labelEnd + 1] === "(") {
|
|
133
|
+
const link = MdHelpers.parseLinkDestination(token.text, labelEnd + 2, token.text.length);
|
|
134
|
+
if (link.ok) {
|
|
135
|
+
// Only make a relative-link display part if it's actually a relative link.
|
|
136
|
+
// Discard protocol:// links, unix style absolute paths, and windows style absolute paths.
|
|
137
|
+
if (isRelativeLink(link.str)) {
|
|
138
|
+
return {
|
|
139
|
+
pos: labelEnd + 2,
|
|
140
|
+
end: link.pos,
|
|
141
|
+
target: files.register(sourcePath, link.str),
|
|
142
|
+
};
|
|
100
143
|
}
|
|
144
|
+
// This was a link, skip ahead to ensure we don't happen to parse
|
|
145
|
+
// something else as a link within the link.
|
|
146
|
+
data.pos = link.pos - 1;
|
|
101
147
|
}
|
|
102
148
|
}
|
|
103
149
|
}
|
|
@@ -175,13 +221,14 @@ function checkAttribute(data, attr) {
|
|
|
175
221
|
}
|
|
176
222
|
}
|
|
177
223
|
function isRelativeLink(link) {
|
|
178
|
-
return !/^[a-z]+:\/\/|^\/|^[a-z]
|
|
224
|
+
return !/^[a-z]+:\/\/|^\/|^[a-z]:\\|^#/i.test(link);
|
|
179
225
|
}
|
|
180
226
|
function findLabelEnd(text, pos) {
|
|
181
227
|
while (pos < text.length) {
|
|
182
228
|
switch (text[pos]) {
|
|
183
229
|
case "\n":
|
|
184
230
|
case "]":
|
|
231
|
+
case "[":
|
|
185
232
|
return pos;
|
|
186
233
|
}
|
|
187
234
|
++pos;
|
|
@@ -271,8 +271,7 @@ let CommentPlugin = (() => {
|
|
|
271
271
|
comment.removeModifier("@event");
|
|
272
272
|
comment.removeModifier("@eventProperty");
|
|
273
273
|
}
|
|
274
|
-
if (reflection.kindOf(models_1.ReflectionKind.
|
|
275
|
-
reflection.kind === models_1.ReflectionKind.Project) {
|
|
274
|
+
if (reflection.kindOf(models_1.ReflectionKind.Project | models_1.ReflectionKind.SomeModule)) {
|
|
276
275
|
comment.removeTags("@module");
|
|
277
276
|
comment.removeModifier("@packageDocumentation");
|
|
278
277
|
}
|
|
@@ -338,6 +337,10 @@ let CommentPlugin = (() => {
|
|
|
338
337
|
* @param context The context object describing the current state the converter is in.
|
|
339
338
|
*/
|
|
340
339
|
onBeginResolve(context) {
|
|
340
|
+
if (context.project.comment) {
|
|
341
|
+
this.applyModifiers(context.project, context.project.comment);
|
|
342
|
+
this.removeExcludedTags(context.project.comment);
|
|
343
|
+
}
|
|
341
344
|
const project = context.project;
|
|
342
345
|
const reflections = Object.values(project.reflections);
|
|
343
346
|
// Remove hidden reflections
|
|
@@ -1,6 +1,160 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const translatable_1 = require("../translatable");
|
|
3
3
|
module.exports = (0, translatable_1.buildIncompleteTranslation)({
|
|
4
|
+
docs_generated_at_0: "문서가 {0}에 생성되었습니다",
|
|
5
|
+
json_written_to_0: "{0}에 JSON이 작성되었습니다",
|
|
6
|
+
no_entry_points_for_packages: "패키지 모드에 대한 진입점이 제공되지 않았으므로 문서를 생성할 수 없습니다",
|
|
7
|
+
failed_to_find_packages: "패키지를 찾지 못했습니다. 적어도 하나의 디렉터리를 package.json을 포함하는 진입점으로 제공했는지 확인하세요",
|
|
8
|
+
nested_packages_unsupported_0: "{0} 프로젝트의 entryPointStrategy가 패키지인데 중첩된 패키지는 지원되지 않습니다",
|
|
9
|
+
previous_error_occurred_when_reading_options_for_0: "{0} 위치의 패키지 옵션을 읽는 중에 이전 오류가 발생했습니다",
|
|
10
|
+
converting_project_at_0: "{0} 위치의 프로젝트 변환 중",
|
|
11
|
+
failed_to_convert_packages: "하나 이상의 패키지를 변환하지 못했습니다. 결과가 병합되지 않을 것입니다",
|
|
12
|
+
merging_converted_projects: "변환된 프로젝트 병합 중",
|
|
13
|
+
no_entry_points_to_merge: "병합할 진입점이 제공되지 않았습니다",
|
|
14
|
+
entrypoint_did_not_match_files_0: "진입점 글로브 {0}이(가) 어떤 파일과도 일치하지 않았습니다",
|
|
15
|
+
frontmatter_children_0_should_be_an_array_of_strings_or_object_with_string_values: "{0}의 Frontmatter children은 문자열 배열이나 문자열 값을 갖는 객체여야 합니다",
|
|
16
|
+
inline_inheritdoc_should_not_appear_in_block_tag_in_comment_at_0: "{0} 위치의 주석에서 인라인 @inheritDoc 태그는 블록 태그 안에 나타나서는 안 됩니다",
|
|
17
|
+
at_most_one_remarks_tag_expected_in_comment_at_0: "주석에서 @remarks 태그는 최대 하나만 예상됩니다. {0}",
|
|
18
|
+
at_most_one_returns_tag_expected_in_comment_at_0: "주석에서 @returns 태그는 최대 하나만 예상됩니다. {0}",
|
|
19
|
+
at_most_one_inheritdoc_tag_expected_in_comment_at_0: "주석에서 @inheritDoc 태그는 최대 하나만 예상됩니다. {0}",
|
|
20
|
+
content_in_summary_overwritten_by_inheritdoc_in_comment_at_0: "주석에서 요약 부분의 내용이 @inheritDoc 태그에 의해 덮어쓰여집니다. {0}",
|
|
21
|
+
content_in_remarks_block_overwritten_by_inheritdoc_in_comment_at_0: "주석에서 @remarks 블록의 내용이 @inheritDoc 태그에 의해 덮어쓰여집니다. {0}",
|
|
22
|
+
example_tag_literal_name: "예제 태그의 첫 번째 줄은 예제 이름으로 사용됩니다. 텍스트만 포함해야 합니다",
|
|
23
|
+
inheritdoc_tag_properly_capitalized: "@inheritDoc 태그는 올바르게 대문자화되어야 합니다",
|
|
24
|
+
invalid_intentionally_not_exported_symbols_0: "다음 심볼은 의도적으로 내보내지 않았지만 문서화에서 참조되지 않았거나 내보내졌습니다:\n\t{0}",
|
|
25
|
+
defaulting_project_name: '--name 옵션이 지정되지 않았고 package.json도 발견되지 않았습니다. 프로젝트 이름을 "Documentation"으로 기본 설정합니다',
|
|
26
|
+
no_entry_points_provided: "진입점이 제공되지 않았습니다. 이는 구성 오류일 가능성이 높습니다",
|
|
27
|
+
unable_to_find_any_entry_points: "어떤 진입점도 찾을 수 없습니다. 이전 경고를 확인하세요",
|
|
28
|
+
watch_does_not_support_packages_mode: "워치 모드는 'packages' 스타일 진입점을 지원하지 않습니다",
|
|
29
|
+
watch_does_not_support_merge_mode: "워치 모드는 'merge' 스타일 진입점을 지원하지 않습니다",
|
|
30
|
+
help_options: "로드할 JSON 옵션 파일을 지정합니다. 지정하지 않으면 TypeDoc은 현재 디렉터리의 'typedoc.json'을 찾습니다",
|
|
31
|
+
help_tsconfig: "로드할 TypeScript 구성 파일을 지정합니다. 지정하지 않으면 TypeDoc은 현재 디렉터리의 'tsconfig.json'을 찾습니다",
|
|
32
|
+
help_compilerOptions: "TypeDoc이 사용할 TypeScript 컴파일러 옵션을 선택적으로 재정의합니다",
|
|
33
|
+
help_lang: "생성 및 TypeDoc 메시지에 사용할 언어를 설정합니다",
|
|
34
|
+
help_locales: "특정 로케일에 대한 번역을 추가합니다. 이 옵션은 주로 TypeDoc에서 공식 로케일 지원이 추가될 때까지 임시 방편으로 사용됩니다",
|
|
35
|
+
help_packageOptions: "entryPointStrategy가 패키지로 설정된 경우 각 패키지에 설정될 옵션을 설정합니다",
|
|
36
|
+
help_entryPoints: "문서화할 진입점입니다",
|
|
37
|
+
help_entryPointStrategy: "진입점을 문서 모듈로 변환하는 데 사용할 전략입니다",
|
|
38
|
+
help_alwaysCreateEntryPointModule: "설정 시 TypeDoc은 하나의 진입점만 제공되더라도 항상 'Module'을 생성합니다",
|
|
39
|
+
help_projectDocuments: "생성된 문서의 루트에 추가될 문서입니다. 복수 파일을 매치하기 위한 글로브를 지원합니다",
|
|
40
|
+
help_exclude: "진입점으로 지정된 디렉터리 확장 시 제외할 패턴을 정의합니다",
|
|
41
|
+
help_externalPattern: "외부로 간주될 파일 패턴을 정의합니다",
|
|
42
|
+
help_excludeExternals: "외부로 해결된 심볼이 문서화되지 않도록 방지합니다",
|
|
43
|
+
help_excludeNotDocumented: "명시적으로 문서화되지 않은 심볼이 결과에 표시되지 않도록 방지합니다",
|
|
44
|
+
help_excludeNotDocumentedKinds: "excludeNotDocumented로 제거될 리플렉션 유형을 지정합니다",
|
|
45
|
+
help_excludeInternal: "@internal로 표시된 심볼이 문서화되지 않도록 방지합니다",
|
|
46
|
+
help_excludeCategories: "문서에서 제외할 카테고리 내의 심볼을 제외합니다",
|
|
47
|
+
help_excludePrivate: "비공개 변수와 메서드를 무시합니다. 기본값은 true입니다.",
|
|
48
|
+
help_excludeProtected: "보호된 변수와 메서드를 무시합니다",
|
|
49
|
+
help_excludeReferences: "심볼이 여러 번 내보내진 경우 첫 번째 내보내기를 제외하고 모두 무시합니다",
|
|
50
|
+
help_externalSymbolLinkMappings: "문서에 포함되지 않은 심볼에 대한 사용자 정의 링크를 정의합니다",
|
|
51
|
+
help_out: "문서가 쓰여질 위치를 지정합니다",
|
|
52
|
+
help_json: "프로젝트를 설명하는 JSON 파일의 위치와 파일 이름을 지정합니다",
|
|
53
|
+
help_pretty: "출력 JSON을 탭으로 포맷팅할 지 여부를 지정합니다",
|
|
54
|
+
help_emit: "TypeDoc이 생성할 내용을 지정합니다. 'docs', 'both', 'none' 중 하나를 선택합니다",
|
|
55
|
+
help_theme: "문서를 렌더링할 테마 이름을 지정합니다",
|
|
56
|
+
help_lightHighlightTheme: "라이트 모드에서 코드 하이라이팅 테마를 지정합니다",
|
|
57
|
+
help_darkHighlightTheme: "다크 모드에서 코드 하이라이팅 테마를 지정합니다",
|
|
58
|
+
help_highlightLanguages: "렌더링 시 코드 하이라이팅에 사용될 언어를 지정합니다",
|
|
59
|
+
help_customCss: "테마에서 가져올 사용자 지정 CSS 파일의 경로",
|
|
60
|
+
help_markdownItOptions: "TypeDoc이 사용하는 markdown-it에 전달할 옵션을 지정합니다",
|
|
61
|
+
help_markdownItLoader: "markdown-it 인스턴스를 로드할 때 호출될 콜백을 지정합니다. TypeDoc이 사용할 파서 인스턴스를 전달받습니다",
|
|
62
|
+
help_maxTypeConversionDepth: "변환될 타입의 최대 깊이를 설정합니다",
|
|
63
|
+
help_name: "템플릿 헤더에 사용할 프로젝트 이름을 설정합니다",
|
|
64
|
+
help_includeVersion: "프로젝트 이름에 패키지 버전을 추가합니다",
|
|
65
|
+
help_disableSources: "문서화할 때 리플렉션의 소스 설정을 비활성화합니다",
|
|
66
|
+
help_sourceLinkTemplate: "소스 URL 생성 시 사용할 링크 템플릿을 지정합니다. 설정하지 않으면 자동으로 git 원격 저장소에서 생성됩니다. {path}, {line}, {gitRevision} 플레이스홀더를 지원합니다",
|
|
67
|
+
help_gitRevision: "GitHub/Bitbucket 소스 파일에 대한 링크를 생성할 때 사용할 특정 리비전을 지정합니다. disableSources가 설정된 경우에만 유효합니다",
|
|
68
|
+
help_gitRemote: "GitHub/Bitbucket 소스 파일에 대한 링크를 생성할 때 사용할 특정 원격 저장소를 지정합니다. disableGit 또는 disableSources가 설정된 경우에만 유효합니다",
|
|
69
|
+
help_disableGit: "모든 것을 sourceLinkTemplate로 링크할 수 있도록 가정합니다. 이 옵션을 사용하려면 sourceLinkTemplate이 설정되어 있어야 합니다. {path}는 basePath에서 시작됩니다",
|
|
70
|
+
help_basePath: "파일 경로를 표시할 때 사용할 기본 경로를 지정합니다",
|
|
71
|
+
help_excludeTags: "문서 주석에서 제거할 블록/수정자 태그를 지정합니다",
|
|
72
|
+
help_readme: "인덱스 페이지에 표시할 readme 파일의 경로를 지정합니다. 'none'을 전달하여 인덱스 페이지를 비활성화하고 글로벌 페이지에서 문서화를 시작합니다",
|
|
73
|
+
help_cname: "GitHub Pages의 사용자 정의 도메인에 유용한 CNAME 파일 텍스트를 설정합니다",
|
|
74
|
+
help_sourceLinkExternal: "소스 링크를 외부 링크로 취급하여 새 탭에서 열도록 지정합니다",
|
|
75
|
+
help_githubPages: "GitHub Pages에서 404 오류를 방지하기 위해 .nojekyll 파일을 생성합니다. 기본값은 `true`입니다",
|
|
76
|
+
help_hostedBaseUrl: "생성된 sitemap.xml 및 출력 폴더에서 사용할 베이스 URL을 지정합니다. 지정하지 않으면 sitemap이 생성되지 않습니다",
|
|
77
|
+
help_useHostedBaseUrlForAbsoluteLinks: "사이트의 페이지에 대해 hostedBaseUrl 옵션을 사용하여 절대 링크를 생성하도록 지정합니다",
|
|
78
|
+
help_hideGenerator: "페이지 끝에 TypeDoc 링크를 출력하지 않습니다",
|
|
79
|
+
help_customFooterHtml: "TypeDoc 링크 뒤에 사용자 정의 푸터를 지정합니다",
|
|
80
|
+
help_customFooterHtmlDisableWrapper: "customFooterHtml의 래퍼 요소를 비활성화합니다",
|
|
81
|
+
help_hideParameterTypesInTitle: "제목에서 매개변수 유형을 숨겨 스캔하기 쉽게합니다",
|
|
82
|
+
help_cacheBust: "정적 자산의 링크에 생성 시간을 포함합니다",
|
|
83
|
+
help_searchInComments: "검색 인덱스에 주석도 포함합니다. 이 옵션을 사용하면 검색 인덱스의 크기가 크게 증가합니다",
|
|
84
|
+
help_searchInDocuments: "검색 인덱스에 문서도 포함합니다. 이 옵션을 사용하면 검색 인덱스의 크기가 크게 증가합니다",
|
|
85
|
+
help_cleanOutputDir: "출력 디렉터리를 작성하기 전에 TypeDoc이 제거하도록 지정합니다",
|
|
86
|
+
help_titleLink: "헤더의 제목이 가리키는 링크를 설정합니다. 기본값은 문서 홈페이지입니다",
|
|
87
|
+
help_navigationLinks: "헤더에 포함될 링크를 정의합니다",
|
|
88
|
+
help_sidebarLinks: "사이드바에 포함될 링크를 정의합니다",
|
|
89
|
+
help_navigationLeaves: "확장되지 않아야 할 네비게이션 트리의 가지를 정의합니다",
|
|
90
|
+
help_navigation: "네비게이션 사이드바의 구성 방식을 결정합니다",
|
|
91
|
+
help_visibilityFilters: "기본 내장 필터 및 수정자 태그에 대한 기본 가시성을 지정합니다",
|
|
92
|
+
help_searchCategoryBoosts: "선택한 카테고리에 대해 검색에서 중요도 부스트를 구성합니다",
|
|
93
|
+
help_searchGroupBoosts: "선택한 종류(예: '클래스')에 대해 검색에서 중요도 부스트를 구성합니다",
|
|
94
|
+
help_jsDocCompatibility: "JSDoc 주석과 유사성을 높이기 위한 주석 파싱의 호환성 옵션을 설정합니다",
|
|
95
|
+
help_commentStyle: "TypeDoc이 주석을 검색하는 방식을 결정합니다",
|
|
96
|
+
help_useTsLinkResolution: "TypeScript 링크 해결을 사용하여 @link 태그가 가리키는 위치를 결정합니다. 이 옵션은 JSDoc 스타일 주석에만 적용됩니다",
|
|
97
|
+
help_preserveLinkText: "링크 텍스트가 없는 @link 태그는 텍스트 내용을 링크로 사용합니다. 설정되지 않으면 대상 리플렉션 이름을 사용합니다",
|
|
98
|
+
help_blockTags: "TypeDoc이 주석을 파싱할 때 인식할 블록 태그를 지정합니다",
|
|
99
|
+
help_inlineTags: "TypeDoc이 주석을 파싱할 때 인식할 인라인 태그를 지정합니다",
|
|
100
|
+
help_modifierTags: "TypeDoc이 주석을 파싱할 때 인식할 수정자 태그를 지정합니다",
|
|
101
|
+
help_categorizeByGroup: "카테고리화가 그룹 수준에서 수행될지 여부를 지정합니다",
|
|
102
|
+
help_defaultCategory: "카테고리가 지정되지 않은 리플렉션의 기본 카테고리를 지정합니다",
|
|
103
|
+
help_categoryOrder: "카테고리가 표시될 순서를 지정합니다. *은 리스트에 없는 카테고리의 상대적 순서를 나타냅니다",
|
|
104
|
+
help_groupOrder: "그룹이 표시될 순서를 지정합니다. *은 리스트에 없는 그룹의 상대적 순서를 나타냅니다",
|
|
105
|
+
help_sort: "문서화된 값에 대한 정렬 전략을 지정합니다",
|
|
106
|
+
help_sortEntryPoints: "진입점이 다른 리플렉션과 동일한 정렬 규칙을 따를지 여부를 지정합니다",
|
|
107
|
+
help_kindSortOrder: "'kind'가 지정된 경우 리플렉션의 정렬 순서를 지정합니다",
|
|
108
|
+
help_watch: "파일 변경을 감지하고 문서를 다시 빌드할지 여부를 지정합니다",
|
|
109
|
+
help_preserveWatchOutput: "TypeDoc이 컴파일 실행 간에 화면을 지우지 않도록 지정합니다",
|
|
110
|
+
help_skipErrorChecking: "TypeScript의 타입 체크를 실행하지 않고 문서를 생성하지 않도록 지정합니다",
|
|
111
|
+
help_help: "해당 메시지을 출력합니다",
|
|
112
|
+
help_version: "TypeDoc의 버전을 출력합니다",
|
|
113
|
+
help_showConfig: "해결된 구성을 출력하고 종료합니다",
|
|
114
|
+
help_plugin: "로드할 npm 플러그인을 지정합니다. 생략하면 설치된 모든 플러그인이 로드됩니다",
|
|
115
|
+
help_logLevel: "사용할 로깅 레벨을 지정합니다",
|
|
116
|
+
help_treatWarningsAsErrors: "모든 경고를 오류로 처리합니다",
|
|
117
|
+
help_treatValidationWarningsAsErrors: "검증 중 경고를 오류로 처리합니다. 이 옵션은 검증 경고에 대해 treatWarningsAsErrors를 비활성화할 수 없습니다",
|
|
118
|
+
help_intentionallyNotExported: "'참조되었지만 문서화되지 않았음' 경고를 생성하지 않을 유형의 목록",
|
|
119
|
+
help_requiredToBeDocumented: "문서화해야 할 리플렉션 종류의 목록",
|
|
120
|
+
help_validation: "생성된 문서에 대해 TypeDoc이 수행할 검증 단계를 지정합니다",
|
|
121
|
+
option_0_must_be_between_1_and_2: "{0}은(는) {1}과(와) {2} 사이어야 합니다",
|
|
122
|
+
option_0_must_be_equal_to_or_greater_than_1: "{0}은(는) {1} 이상이어야 합니다",
|
|
123
|
+
option_0_must_be_less_than_or_equal_to_1: "{0}은(는) {1} 이하여야 합니다",
|
|
124
|
+
option_0_must_be_one_of_1: "{0}은(는) 다음 중 하나여야 합니다: {1}",
|
|
125
|
+
flag_0_is_not_valid_for_1_expected_2: "플래그 '{0}'은(는) {1}에 대해 유효하지 않습니다. {2} 중 하나가 예상됩니다",
|
|
126
|
+
expected_object_with_flag_values_for_0: "{0}에 대해 플래그 값이 포함된 객체가 예상됩니다. true/false도 사용할 수 있습니다",
|
|
127
|
+
flag_values_for_0_must_be_booleans: "{0}에 대한 플래그 값은 불리언이어야 합니다",
|
|
128
|
+
locales_must_be_an_object: "'locales' 옵션은 'en: { theme_implements: \"Implements\" }'와 비슷한 객체로 설정되어야 합니다",
|
|
129
|
+
external_symbol_link_mappings_must_be_object: "externalSymbolLinkMappings는 Record<package name, Record<symbol name, link>> 형태여야 합니다",
|
|
130
|
+
highlight_theme_0_must_be_one_of_1: "{0}은(는) 다음 중 하나여야 합니다: {1}",
|
|
131
|
+
highlightLanguages_contains_invalid_languages_0: "highlightLanguages에 유효하지 않은 언어가 포함되어 있습니다: {0}. 지원하는 언어 목록을 확인하려면 typedoc --help를 실행하세요",
|
|
132
|
+
hostedBaseUrl_must_start_with_http: "hostedBaseUrl은 'http://' 또는 'https://'로 시작해야 합니다",
|
|
133
|
+
useHostedBaseUrlForAbsoluteLinks_requires_hostedBaseUrl: "useHostedBaseUrlForAbsoluteLinks 옵션을 사용하려면 hostedBaseUrl이 설정되어 있어야 합니다",
|
|
134
|
+
option_0_must_be_an_object: "'{0}' 옵션은 배열이 아닌 객체여야 합니다",
|
|
135
|
+
option_0_must_be_a_function: "'{0}' 옵션은 함수여야 합니다",
|
|
136
|
+
option_0_values_must_be_numbers: "{0}의 모든 값은 숫자여야 합니다",
|
|
137
|
+
option_0_values_must_be_array_of_tags: "{0}은(는) 유효한 태그 이름 배열이어야 합니다",
|
|
138
|
+
loaded_multiple_times_0: "TypeDoc가 여러 번 로드되었습니다. 일반적으로 자체적으로 설치된 TypeDoc을 가진 플러그인들이 이를 일으킵니다. 로드된 경로는 다음과 같습니다:\n\t{0}",
|
|
139
|
+
unsupported_ts_version_0: "지원되지 않는 Typescript 버전으로 실행 중입니다! TypeDoc이 충돌이 생기는 경우 이것이 그 이유가 됩니다. TypeDoc {0}을 지원합니다.",
|
|
140
|
+
no_compiler_options_set: "컴파일러 옵션이 설정되지 않았습니다. 이는 TypeDoc이 tsconfig.json을 찾지 못했음을 의미할 수 있습니다. 생성된 문서는 비어 있을 수 있습니다.",
|
|
141
|
+
loaded_plugin_0: `로드된 플러그인 {0}`,
|
|
142
|
+
solution_not_supported_in_watch_mode: "제공된 tsconfig 파일은 watch 모드에서 지원되지 않는 솔루션 스타일 tsconfig처럼 보입니다.",
|
|
143
|
+
strategy_not_supported_in_watch_mode: "watch 모드에서는 EntryPointStrategy를 확인 또는 확장으로 설정해야 합니다.",
|
|
144
|
+
found_0_errors_and_1_warnings: "{0}개의 오류와 {1}개의 경고를 발견했습니다.",
|
|
145
|
+
docs_could_not_be_generated: "위 오류로 인해 문서를 생성할 수 없습니다.",
|
|
146
|
+
// ReflectionFlag translations
|
|
147
|
+
flag_private: "Private",
|
|
148
|
+
flag_protected: "Protected",
|
|
149
|
+
flag_public: "Public",
|
|
150
|
+
flag_static: "Static",
|
|
151
|
+
flag_external: "External",
|
|
152
|
+
flag_optional: "Optional",
|
|
153
|
+
flag_rest: "Rest",
|
|
154
|
+
flag_abstract: "Abstract",
|
|
155
|
+
flag_const: "Const",
|
|
156
|
+
flag_readonly: "Readonly",
|
|
157
|
+
flag_inherited: "Inherited",
|
|
4
158
|
kind_project: "프로젝트",
|
|
5
159
|
kind_module: "모듈",
|
|
6
160
|
kind_namespace: "네임스페이스",
|
|
@@ -1,4 +1,157 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
|
+
docs_generated_at_0: "문서가 {0}에 생성되었습니다";
|
|
3
|
+
json_written_to_0: "{0}에 JSON이 작성되었습니다";
|
|
4
|
+
no_entry_points_for_packages: string;
|
|
5
|
+
failed_to_find_packages: string;
|
|
6
|
+
nested_packages_unsupported_0: "{0} 프로젝트의 entryPointStrategy가 패키지인데 중첩된 패키지는 지원되지 않습니다";
|
|
7
|
+
previous_error_occurred_when_reading_options_for_0: "{0} 위치의 패키지 옵션을 읽는 중에 이전 오류가 발생했습니다";
|
|
8
|
+
converting_project_at_0: "{0} 위치의 프로젝트 변환 중";
|
|
9
|
+
failed_to_convert_packages: string;
|
|
10
|
+
merging_converted_projects: string;
|
|
11
|
+
no_entry_points_to_merge: string;
|
|
12
|
+
entrypoint_did_not_match_files_0: "진입점 글로브 {0}이(가) 어떤 파일과도 일치하지 않았습니다";
|
|
13
|
+
frontmatter_children_0_should_be_an_array_of_strings_or_object_with_string_values: "{0}의 Frontmatter children은 문자열 배열이나 문자열 값을 갖는 객체여야 합니다";
|
|
14
|
+
inline_inheritdoc_should_not_appear_in_block_tag_in_comment_at_0: "{0} 위치의 주석에서 인라인 @inheritDoc 태그는 블록 태그 안에 나타나서는 안 됩니다";
|
|
15
|
+
at_most_one_remarks_tag_expected_in_comment_at_0: "주석에서 @remarks 태그는 최대 하나만 예상됩니다. {0}";
|
|
16
|
+
at_most_one_returns_tag_expected_in_comment_at_0: "주석에서 @returns 태그는 최대 하나만 예상됩니다. {0}";
|
|
17
|
+
at_most_one_inheritdoc_tag_expected_in_comment_at_0: "주석에서 @inheritDoc 태그는 최대 하나만 예상됩니다. {0}";
|
|
18
|
+
content_in_summary_overwritten_by_inheritdoc_in_comment_at_0: "주석에서 요약 부분의 내용이 @inheritDoc 태그에 의해 덮어쓰여집니다. {0}";
|
|
19
|
+
content_in_remarks_block_overwritten_by_inheritdoc_in_comment_at_0: "주석에서 @remarks 블록의 내용이 @inheritDoc 태그에 의해 덮어쓰여집니다. {0}";
|
|
20
|
+
example_tag_literal_name: string;
|
|
21
|
+
inheritdoc_tag_properly_capitalized: string;
|
|
22
|
+
invalid_intentionally_not_exported_symbols_0: "다음 심볼은 의도적으로 내보내지 않았지만 문서화에서 참조되지 않았거나 내보내졌습니다:\n\t{0}";
|
|
23
|
+
defaulting_project_name: string;
|
|
24
|
+
no_entry_points_provided: string;
|
|
25
|
+
unable_to_find_any_entry_points: string;
|
|
26
|
+
watch_does_not_support_packages_mode: string;
|
|
27
|
+
watch_does_not_support_merge_mode: string;
|
|
28
|
+
help_options: string;
|
|
29
|
+
help_tsconfig: string;
|
|
30
|
+
help_compilerOptions: string;
|
|
31
|
+
help_lang: string;
|
|
32
|
+
help_locales: string;
|
|
33
|
+
help_packageOptions: string;
|
|
34
|
+
help_entryPoints: string;
|
|
35
|
+
help_entryPointStrategy: string;
|
|
36
|
+
help_alwaysCreateEntryPointModule: string;
|
|
37
|
+
help_projectDocuments: string;
|
|
38
|
+
help_exclude: string;
|
|
39
|
+
help_externalPattern: string;
|
|
40
|
+
help_excludeExternals: string;
|
|
41
|
+
help_excludeNotDocumented: string;
|
|
42
|
+
help_excludeNotDocumentedKinds: string;
|
|
43
|
+
help_excludeInternal: string;
|
|
44
|
+
help_excludeCategories: string;
|
|
45
|
+
help_excludePrivate: string;
|
|
46
|
+
help_excludeProtected: string;
|
|
47
|
+
help_excludeReferences: string;
|
|
48
|
+
help_externalSymbolLinkMappings: string;
|
|
49
|
+
help_out: string;
|
|
50
|
+
help_json: string;
|
|
51
|
+
help_pretty: string;
|
|
52
|
+
help_emit: string;
|
|
53
|
+
help_theme: string;
|
|
54
|
+
help_lightHighlightTheme: string;
|
|
55
|
+
help_darkHighlightTheme: string;
|
|
56
|
+
help_highlightLanguages: string;
|
|
57
|
+
help_customCss: string;
|
|
58
|
+
help_markdownItOptions: string;
|
|
59
|
+
help_markdownItLoader: string;
|
|
60
|
+
help_maxTypeConversionDepth: string;
|
|
61
|
+
help_name: string;
|
|
62
|
+
help_includeVersion: string;
|
|
63
|
+
help_disableSources: string;
|
|
64
|
+
help_sourceLinkTemplate: string;
|
|
65
|
+
help_gitRevision: string;
|
|
66
|
+
help_gitRemote: string;
|
|
67
|
+
help_disableGit: string;
|
|
68
|
+
help_basePath: string;
|
|
69
|
+
help_excludeTags: string;
|
|
70
|
+
help_readme: string;
|
|
71
|
+
help_cname: string;
|
|
72
|
+
help_sourceLinkExternal: string;
|
|
73
|
+
help_githubPages: string;
|
|
74
|
+
help_hostedBaseUrl: string;
|
|
75
|
+
help_useHostedBaseUrlForAbsoluteLinks: string;
|
|
76
|
+
help_hideGenerator: string;
|
|
77
|
+
help_customFooterHtml: string;
|
|
78
|
+
help_customFooterHtmlDisableWrapper: string;
|
|
79
|
+
help_hideParameterTypesInTitle: string;
|
|
80
|
+
help_cacheBust: string;
|
|
81
|
+
help_searchInComments: string;
|
|
82
|
+
help_searchInDocuments: string;
|
|
83
|
+
help_cleanOutputDir: string;
|
|
84
|
+
help_titleLink: string;
|
|
85
|
+
help_navigationLinks: string;
|
|
86
|
+
help_sidebarLinks: string;
|
|
87
|
+
help_navigationLeaves: string;
|
|
88
|
+
help_navigation: string;
|
|
89
|
+
help_visibilityFilters: string;
|
|
90
|
+
help_searchCategoryBoosts: string;
|
|
91
|
+
help_searchGroupBoosts: string;
|
|
92
|
+
help_jsDocCompatibility: string;
|
|
93
|
+
help_commentStyle: string;
|
|
94
|
+
help_useTsLinkResolution: string;
|
|
95
|
+
help_preserveLinkText: string;
|
|
96
|
+
help_blockTags: string;
|
|
97
|
+
help_inlineTags: string;
|
|
98
|
+
help_modifierTags: string;
|
|
99
|
+
help_categorizeByGroup: string;
|
|
100
|
+
help_defaultCategory: string;
|
|
101
|
+
help_categoryOrder: string;
|
|
102
|
+
help_groupOrder: string;
|
|
103
|
+
help_sort: string;
|
|
104
|
+
help_sortEntryPoints: string;
|
|
105
|
+
help_kindSortOrder: string;
|
|
106
|
+
help_watch: string;
|
|
107
|
+
help_preserveWatchOutput: string;
|
|
108
|
+
help_skipErrorChecking: string;
|
|
109
|
+
help_help: string;
|
|
110
|
+
help_version: string;
|
|
111
|
+
help_showConfig: string;
|
|
112
|
+
help_plugin: string;
|
|
113
|
+
help_logLevel: string;
|
|
114
|
+
help_treatWarningsAsErrors: string;
|
|
115
|
+
help_treatValidationWarningsAsErrors: string;
|
|
116
|
+
help_intentionallyNotExported: string;
|
|
117
|
+
help_requiredToBeDocumented: string;
|
|
118
|
+
help_validation: string;
|
|
119
|
+
option_0_must_be_between_1_and_2: "{0}은(는) {1}과(와) {2} 사이어야 합니다";
|
|
120
|
+
option_0_must_be_equal_to_or_greater_than_1: "{0}은(는) {1} 이상이어야 합니다";
|
|
121
|
+
option_0_must_be_less_than_or_equal_to_1: "{0}은(는) {1} 이하여야 합니다";
|
|
122
|
+
option_0_must_be_one_of_1: "{0}은(는) 다음 중 하나여야 합니다: {1}";
|
|
123
|
+
flag_0_is_not_valid_for_1_expected_2: "플래그 '{0}'은(는) {1}에 대해 유효하지 않습니다. {2} 중 하나가 예상됩니다";
|
|
124
|
+
expected_object_with_flag_values_for_0: "{0}에 대해 플래그 값이 포함된 객체가 예상됩니다. true/false도 사용할 수 있습니다";
|
|
125
|
+
flag_values_for_0_must_be_booleans: "{0}에 대한 플래그 값은 불리언이어야 합니다";
|
|
126
|
+
locales_must_be_an_object: string;
|
|
127
|
+
external_symbol_link_mappings_must_be_object: string;
|
|
128
|
+
highlight_theme_0_must_be_one_of_1: "{0}은(는) 다음 중 하나여야 합니다: {1}";
|
|
129
|
+
highlightLanguages_contains_invalid_languages_0: "highlightLanguages에 유효하지 않은 언어가 포함되어 있습니다: {0}. 지원하는 언어 목록을 확인하려면 typedoc --help를 실행하세요";
|
|
130
|
+
hostedBaseUrl_must_start_with_http: string;
|
|
131
|
+
useHostedBaseUrlForAbsoluteLinks_requires_hostedBaseUrl: string;
|
|
132
|
+
option_0_must_be_an_object: "'{0}' 옵션은 배열이 아닌 객체여야 합니다";
|
|
133
|
+
option_0_must_be_a_function: "'{0}' 옵션은 함수여야 합니다";
|
|
134
|
+
option_0_values_must_be_numbers: "{0}의 모든 값은 숫자여야 합니다";
|
|
135
|
+
option_0_values_must_be_array_of_tags: "{0}은(는) 유효한 태그 이름 배열이어야 합니다";
|
|
136
|
+
loaded_multiple_times_0: "TypeDoc가 여러 번 로드되었습니다. 일반적으로 자체적으로 설치된 TypeDoc을 가진 플러그인들이 이를 일으킵니다. 로드된 경로는 다음과 같습니다:\n\t{0}";
|
|
137
|
+
unsupported_ts_version_0: "지원되지 않는 Typescript 버전으로 실행 중입니다! TypeDoc이 충돌이 생기는 경우 이것이 그 이유가 됩니다. TypeDoc {0}을 지원합니다.";
|
|
138
|
+
no_compiler_options_set: string;
|
|
139
|
+
loaded_plugin_0: "로드된 플러그인 {0}";
|
|
140
|
+
solution_not_supported_in_watch_mode: string;
|
|
141
|
+
strategy_not_supported_in_watch_mode: string;
|
|
142
|
+
found_0_errors_and_1_warnings: "{0}개의 오류와 {1}개의 경고를 발견했습니다.";
|
|
143
|
+
docs_could_not_be_generated: string;
|
|
144
|
+
flag_private: string;
|
|
145
|
+
flag_protected: string;
|
|
146
|
+
flag_public: string;
|
|
147
|
+
flag_static: string;
|
|
148
|
+
flag_external: string;
|
|
149
|
+
flag_optional: string;
|
|
150
|
+
flag_rest: string;
|
|
151
|
+
flag_abstract: string;
|
|
152
|
+
flag_const: string;
|
|
153
|
+
flag_readonly: string;
|
|
154
|
+
flag_inherited: string;
|
|
2
155
|
kind_project: string;
|
|
3
156
|
kind_module: string;
|
|
4
157
|
kind_namespace: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Deserializer, Serializer } from "../serialization";
|
|
2
|
-
import type { FileRegistry as
|
|
2
|
+
import type { FileRegistry as JSONFileRegistry } from "../serialization/schema";
|
|
3
3
|
import type { Reflection } from "./reflections";
|
|
4
4
|
export declare class FileRegistry {
|
|
5
5
|
protected nextId: number;
|
|
@@ -17,10 +17,15 @@ export declare class FileRegistry {
|
|
|
17
17
|
resolve(id: number): string | Reflection | undefined;
|
|
18
18
|
getName(id: number): string | undefined;
|
|
19
19
|
getNameToAbsoluteMap(): ReadonlyMap<string, string>;
|
|
20
|
-
toObject(ser: Serializer):
|
|
21
|
-
|
|
20
|
+
toObject(ser: Serializer): JSONFileRegistry;
|
|
21
|
+
/**
|
|
22
|
+
* Revive a file registry from disc.
|
|
23
|
+
* Note that in the packages context this may be called multiple times on
|
|
24
|
+
* a single object, and should merge in files from the other registries.
|
|
25
|
+
*/
|
|
26
|
+
fromObject(de: Deserializer, obj: JSONFileRegistry): void;
|
|
22
27
|
}
|
|
23
28
|
export declare class ValidatingFileRegistry extends FileRegistry {
|
|
24
29
|
register(sourcePath: string, relativePath: string): number | undefined;
|
|
25
|
-
fromObject(de: Deserializer, obj:
|
|
30
|
+
fromObject(de: Deserializer, obj: JSONFileRegistry): void;
|
|
26
31
|
}
|
|
@@ -7,7 +7,7 @@ const fs_1 = require("fs");
|
|
|
7
7
|
class FileRegistry {
|
|
8
8
|
constructor() {
|
|
9
9
|
this.nextId = 1;
|
|
10
|
-
// The combination of
|
|
10
|
+
// The combination of these two make up the registry
|
|
11
11
|
this.mediaToReflection = new Map();
|
|
12
12
|
this.mediaToPath = new Map();
|
|
13
13
|
this.reflectionToPath = new Map();
|
|
@@ -87,6 +87,11 @@ class FileRegistry {
|
|
|
87
87
|
}
|
|
88
88
|
return result;
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Revive a file registry from disc.
|
|
92
|
+
* Note that in the packages context this may be called multiple times on
|
|
93
|
+
* a single object, and should merge in files from the other registries.
|
|
94
|
+
*/
|
|
90
95
|
fromObject(de, obj) {
|
|
91
96
|
for (const [key, val] of Object.entries(obj.entries)) {
|
|
92
97
|
const absolute = (0, utils_1.normalizePath)((0, path_1.resolve)(de.projectRoot, val));
|
|
@@ -123,8 +123,8 @@ export declare class Comment {
|
|
|
123
123
|
kind: "inline-tag";
|
|
124
124
|
tag: `@${string}`;
|
|
125
125
|
text: string;
|
|
126
|
-
target?:
|
|
127
|
-
tsLinkText?: string
|
|
126
|
+
target?: Reflection | string | ReflectionSymbolId;
|
|
127
|
+
tsLinkText?: string;
|
|
128
128
|
} | {
|
|
129
129
|
kind: "relative-link";
|
|
130
130
|
/**
|
|
@@ -129,6 +129,7 @@ class DeclarationReflection extends container_1.ContainerReflection {
|
|
|
129
129
|
if (obj.variant === "project") {
|
|
130
130
|
this.kind = kind_1.ReflectionKind.Module;
|
|
131
131
|
this.packageVersion = obj.packageVersion;
|
|
132
|
+
this.project.files.fromObject(de, obj.files || {});
|
|
132
133
|
de.defer(() => {
|
|
133
134
|
for (const [id, sid] of Object.entries(obj.symbolIdMap || {})) {
|
|
134
135
|
const refl = this.project.getReflectionById(de.oldIdToNewId[+id] ?? -1);
|
|
@@ -296,7 +296,7 @@ class ProjectReflection extends container_1.ContainerReflection {
|
|
|
296
296
|
if (obj.readme) {
|
|
297
297
|
this.readme = comments_1.Comment.deserializeDisplayParts(de, obj.readme);
|
|
298
298
|
}
|
|
299
|
-
this.files.fromObject(de, obj.files);
|
|
299
|
+
this.files.fromObject(de, obj.files || {});
|
|
300
300
|
de.defer(() => {
|
|
301
301
|
// Unnecessary conditional in release
|
|
302
302
|
for (const [id, sid] of Object.entries(obj.symbolIdMap || {})) {
|
|
@@ -256,7 +256,7 @@ let MarkedPlugin = (() => {
|
|
|
256
256
|
this.parser = (0, markdown_it_1.default)({
|
|
257
257
|
...this.markdownItOptions,
|
|
258
258
|
highlight: (code, lang) => {
|
|
259
|
-
code =
|
|
259
|
+
code = this.getHighlighted(code, lang || "ts");
|
|
260
260
|
code = code.replace(/\n$/, "") + "\n";
|
|
261
261
|
if (!lang) {
|
|
262
262
|
return `<pre><code>${code}</code><button>${this.application.i18n.theme_copy()}</button></pre>\n`;
|
|
@@ -53,12 +53,12 @@ export declare class DefaultThemeRenderContext {
|
|
|
53
53
|
memberGetterSetter: (props: DeclarationReflection) => import("../../../utils/jsx.elements").JsxElement;
|
|
54
54
|
memberReference: (props: import("../../../models").ReferenceReflection) => import("../../../utils/jsx.elements").JsxElement;
|
|
55
55
|
memberSignatureBody: (props: import("../../../models").SignatureReflection, r_1?: {
|
|
56
|
-
hideSources?: boolean
|
|
56
|
+
hideSources?: boolean;
|
|
57
57
|
} | undefined) => import("../../../utils/jsx.elements").JsxElement;
|
|
58
58
|
memberSignatureTitle: (props: import("../../../models").SignatureReflection, r_1?: {
|
|
59
|
-
hideName?: boolean
|
|
60
|
-
arrowStyle?: boolean
|
|
61
|
-
hideParamTypes?: boolean
|
|
59
|
+
hideName?: boolean;
|
|
60
|
+
arrowStyle?: boolean;
|
|
61
|
+
hideParamTypes?: boolean;
|
|
62
62
|
} | undefined) => import("../../../utils/jsx.elements").JsxElement;
|
|
63
63
|
memberSignatures: (props: DeclarationReflection) => import("../../../utils/jsx.elements").JsxElement;
|
|
64
64
|
memberSources: (props: DeclarationReflection | import("../../../models").SignatureReflection) => import("../../../utils/jsx.elements").JsxElement;
|
|
@@ -133,7 +133,7 @@ async function loadHighlighter(lightTheme, darkTheme, langs) {
|
|
|
133
133
|
if (highlighter)
|
|
134
134
|
return;
|
|
135
135
|
const shiki = await import("shiki");
|
|
136
|
-
const hl = await shiki.
|
|
136
|
+
const hl = await shiki.createHighlighter({ themes: [lightTheme, darkTheme], langs });
|
|
137
137
|
highlighter = new DoubleHighlighter(hl, lightTheme, darkTheme);
|
|
138
138
|
}
|
|
139
139
|
function isSupportedLanguage(lang) {
|
|
@@ -18,7 +18,7 @@ class MinimalSourceFile {
|
|
|
18
18
|
}
|
|
19
19
|
const starts = lineStarts.get(this);
|
|
20
20
|
while (pos >= starts[starts.length - 1]) {
|
|
21
|
-
const nextStart = this.text.indexOf("\n", starts[starts.length - 1]
|
|
21
|
+
const nextStart = this.text.indexOf("\n", starts[starts.length - 1]);
|
|
22
22
|
if (nextStart === -1) {
|
|
23
23
|
starts.push(Infinity);
|
|
24
24
|
}
|
|
@@ -74,7 +74,7 @@ class Options {
|
|
|
74
74
|
snapshot() {
|
|
75
75
|
const key = {};
|
|
76
76
|
optionSnapshots.set(key, {
|
|
77
|
-
values:
|
|
77
|
+
values: { ...this._values },
|
|
78
78
|
set: new Set(this._setOptions),
|
|
79
79
|
});
|
|
80
80
|
return key;
|
|
@@ -85,7 +85,7 @@ class Options {
|
|
|
85
85
|
*/
|
|
86
86
|
restore(snapshot) {
|
|
87
87
|
const data = optionSnapshots.get(snapshot);
|
|
88
|
-
this._values =
|
|
88
|
+
this._values = { ...data.values };
|
|
89
89
|
this._setOptions = new Set(data.set);
|
|
90
90
|
}
|
|
91
91
|
reset(name) {
|
|
@@ -176,7 +176,7 @@ class Options {
|
|
|
176
176
|
oldValue = (0, declaration_2.getDefaultValue)(declaration);
|
|
177
177
|
const converted = (0, declaration_2.convert)(value, declaration, this._i18n, configPath ?? process.cwd(), oldValue);
|
|
178
178
|
if (declaration.type === declaration_1.ParameterType.Flags) {
|
|
179
|
-
Object.assign(this._values[declaration.name], converted);
|
|
179
|
+
this._values[declaration.name] = Object.assign({}, this._values[declaration.name], converted);
|
|
180
180
|
}
|
|
181
181
|
else {
|
|
182
182
|
this._values[declaration.name] = converted;
|
|
@@ -78,7 +78,7 @@ class TypeDocReader {
|
|
|
78
78
|
}
|
|
79
79
|
seen.add(file);
|
|
80
80
|
let fileContent;
|
|
81
|
-
if (file.endsWith(".json")) {
|
|
81
|
+
if (file.endsWith(".json") || file.endsWith(".jsonc")) {
|
|
82
82
|
const readResult = typescript_1.default.readConfigFile((0, paths_1.normalizePath)(file), (path) => FS.readFileSync(path, "utf-8"));
|
|
83
83
|
if (readResult.error) {
|
|
84
84
|
logger.error(logger.i18n.failed_read_options_file_0((0, paths_1.nicePath)(file)));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const tsdocBlockTags: readonly ["@defaultValue", "@deprecated", "@example", "@param", "@privateRemarks", "@remarks", "@returns", "@see", "@throws", "@typeParam"];
|
|
2
|
-
export declare const blockTags: readonly ["@defaultValue", "@deprecated", "@example", "@param", "@privateRemarks", "@remarks", "@returns", "@see", "@throws", "@typeParam", "@category", "@categoryDescription", "@default", "@document", "@group", "@groupDescription", "@
|
|
2
|
+
export declare const blockTags: readonly ["@defaultValue", "@deprecated", "@example", "@param", "@privateRemarks", "@remarks", "@returns", "@see", "@throws", "@typeParam", "@author", "@callback", "@category", "@categoryDescription", "@default", "@document", "@group", "@groupDescription", "@import", "@inheritDoc", "@jsx", "@license", "@module", "@prop", "@property", "@return", "@satisfies", "@template", "@type", "@typedef"];
|
|
3
3
|
export declare const tsdocInlineTags: readonly ["@link", "@inheritDoc", "@label"];
|
|
4
4
|
export declare const inlineTags: readonly ["@link", "@inheritDoc", "@label", "@linkcode", "@linkplain"];
|
|
5
|
-
export declare const tsdocModifierTags: readonly ["@alpha", "@beta", "@eventProperty", "@experimental", "@internal", "@override", "@packageDocumentation", "@
|
|
6
|
-
export declare const modifierTags: readonly ["@alpha", "@beta", "@eventProperty", "@experimental", "@internal", "@override", "@packageDocumentation", "@
|
|
5
|
+
export declare const tsdocModifierTags: readonly ["@alpha", "@beta", "@eventProperty", "@experimental", "@internal", "@override", "@packageDocumentation", "@public", "@readonly", "@sealed", "@virtual"];
|
|
6
|
+
export declare const modifierTags: readonly ["@alpha", "@beta", "@eventProperty", "@experimental", "@internal", "@override", "@packageDocumentation", "@public", "@readonly", "@sealed", "@virtual", "@class", "@enum", "@event", "@hidden", "@hideCategories", "@hideconstructor", "@hideGroups", "@ignore", "@interface", "@namespace", "@overload", "@private", "@protected", "@showCategories", "@showGroups"];
|
|
@@ -16,27 +16,26 @@ exports.tsdocBlockTags = [
|
|
|
16
16
|
];
|
|
17
17
|
exports.blockTags = [
|
|
18
18
|
...exports.tsdocBlockTags,
|
|
19
|
+
"@author",
|
|
20
|
+
"@callback",
|
|
19
21
|
"@category",
|
|
20
22
|
"@categoryDescription",
|
|
21
23
|
"@default",
|
|
22
24
|
"@document",
|
|
23
25
|
"@group",
|
|
24
26
|
"@groupDescription",
|
|
27
|
+
"@import",
|
|
25
28
|
"@inheritDoc",
|
|
29
|
+
"@jsx",
|
|
26
30
|
"@license",
|
|
27
31
|
"@module",
|
|
28
|
-
"@return",
|
|
29
|
-
// Alias for @typeParam
|
|
30
|
-
"@template",
|
|
31
|
-
// Because TypeScript is important!
|
|
32
|
-
"@type",
|
|
33
|
-
"@typedef",
|
|
34
|
-
"@callback",
|
|
35
32
|
"@prop",
|
|
36
33
|
"@property",
|
|
34
|
+
"@return",
|
|
37
35
|
"@satisfies",
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
36
|
+
"@template", // Alias for @typeParam
|
|
37
|
+
"@type", // Because TypeScript is important!
|
|
38
|
+
"@typedef",
|
|
40
39
|
];
|
|
41
40
|
exports.tsdocInlineTags = ["@link", "@inheritDoc", "@label"];
|
|
42
41
|
exports.inlineTags = [
|
|
@@ -52,8 +51,6 @@ exports.tsdocModifierTags = [
|
|
|
52
51
|
"@internal",
|
|
53
52
|
"@override",
|
|
54
53
|
"@packageDocumentation",
|
|
55
|
-
"@private",
|
|
56
|
-
"@protected",
|
|
57
54
|
"@public",
|
|
58
55
|
"@readonly",
|
|
59
56
|
"@sealed",
|
|
@@ -66,12 +63,14 @@ exports.modifierTags = [
|
|
|
66
63
|
"@event",
|
|
67
64
|
"@hidden",
|
|
68
65
|
"@hideCategories",
|
|
66
|
+
"@hideconstructor",
|
|
69
67
|
"@hideGroups",
|
|
70
68
|
"@ignore",
|
|
71
69
|
"@interface",
|
|
72
70
|
"@namespace",
|
|
73
71
|
"@overload",
|
|
72
|
+
"@private",
|
|
73
|
+
"@protected",
|
|
74
74
|
"@showCategories",
|
|
75
75
|
"@showGroups",
|
|
76
|
-
"@hideconstructor",
|
|
77
76
|
];
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typedoc",
|
|
3
3
|
"description": "Create api documentation for TypeScript projects.",
|
|
4
|
-
"version": "0.26.
|
|
4
|
+
"version": "0.26.1",
|
|
5
5
|
"homepage": "https://typedoc.org",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./dist/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"lunr": "^2.3.9",
|
|
28
28
|
"markdown-it": "^14.1.0",
|
|
29
29
|
"minimatch": "^9.0.4",
|
|
30
|
-
"shiki": "^1.
|
|
30
|
+
"shiki": "^1.9.0",
|
|
31
31
|
"yaml": "^2.4.5"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"eslint": "^9.5.0",
|
|
45
45
|
"mocha": "^10.4.0",
|
|
46
46
|
"prettier": "3.3.2",
|
|
47
|
-
"puppeteer": "^22.
|
|
47
|
+
"puppeteer": "^22.12.0",
|
|
48
48
|
"ts-node": "^10.9.2",
|
|
49
|
-
"typescript": "5.5.
|
|
50
|
-
"typescript-eslint": "^7.13.
|
|
49
|
+
"typescript": "5.5.2",
|
|
50
|
+
"typescript-eslint": "^7.13.1"
|
|
51
51
|
},
|
|
52
52
|
"files": [
|
|
53
53
|
"/bin",
|
package/tsdoc.json
CHANGED
|
@@ -3,10 +3,18 @@
|
|
|
3
3
|
// If updating this, also update tsdoc-defaults.ts
|
|
4
4
|
"noStandardTags": false,
|
|
5
5
|
"tagDefinitions": [
|
|
6
|
+
{
|
|
7
|
+
"tagName": "@author",
|
|
8
|
+
"syntaxKind": "block"
|
|
9
|
+
},
|
|
6
10
|
{
|
|
7
11
|
"tagName": "@module",
|
|
8
12
|
"syntaxKind": "block"
|
|
9
13
|
},
|
|
14
|
+
{
|
|
15
|
+
"tagName": "@type",
|
|
16
|
+
"syntaxKind": "block"
|
|
17
|
+
},
|
|
10
18
|
{
|
|
11
19
|
"tagName": "@typedef",
|
|
12
20
|
"syntaxKind": "block"
|
|
@@ -92,7 +100,7 @@
|
|
|
92
100
|
},
|
|
93
101
|
{
|
|
94
102
|
"tagName": "@linkplain",
|
|
95
|
-
"syntaxKind": "
|
|
103
|
+
"syntaxKind": "inline",
|
|
96
104
|
"allowMultiple": true
|
|
97
105
|
},
|
|
98
106
|
{
|