kordoc 2.7.2 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +450 -450
- package/dist/{chunk-4NWDJGAU.js → chunk-3QA624ON.js} +52 -25
- package/dist/chunk-3QA624ON.js.map +1 -0
- package/dist/{chunk-MEPHGCPQ.js → chunk-5CJGKKMZ.js} +1 -1
- package/dist/chunk-5CJGKKMZ.js.map +1 -0
- package/dist/{chunk-LB7E2KDF.js → chunk-DLQY6FJH.js} +2 -2
- package/dist/chunk-DLQY6FJH.js.map +1 -0
- package/dist/{chunk-Y476BOHI.cjs → chunk-HXWPJPRO.cjs} +2 -2
- package/dist/chunk-HXWPJPRO.cjs.map +1 -0
- package/dist/chunk-MOL7MDBG.js +0 -0
- package/dist/chunk-MUOQXDZ4.cjs.map +1 -1
- package/dist/{chunk-4SK2PDMQ.js → chunk-XSF3N6GU.js} +2 -2
- package/dist/chunk-XSF3N6GU.js.map +1 -0
- package/dist/cli.js +4 -4
- package/dist/cli.js.map +1 -1
- package/dist/{detect-RI2MQ33K.js → detect-PJZMUL2Z.js} +2 -2
- package/dist/formula-JCNF43NE.js +0 -0
- package/dist/formula-XGG6ZP42.cjs.map +1 -1
- package/dist/index.cjs +160 -133
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +28 -2
- package/dist/index.d.ts +28 -2
- package/dist/index.js +50 -23
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +5 -5
- package/dist/mcp.js.map +1 -1
- package/dist/page-range-3C7UGGEK.cjs.map +1 -1
- package/dist/page-range-737B4EZW.js +0 -0
- package/dist/{parser-7OFQ67QL.cjs → parser-LKF6PGPD.cjs} +16 -16
- package/dist/parser-LKF6PGPD.cjs.map +1 -0
- package/dist/{parser-QMMQ7Y7R.js → parser-UCO6WPUW.js} +3 -3
- package/dist/parser-UCO6WPUW.js.map +1 -0
- package/dist/{parser-DJCMY3OO.js → parser-ZQQM6J7T.js} +3 -3
- package/dist/parser-ZQQM6J7T.js.map +1 -0
- package/dist/{provider-AKROB7WQ.js → provider-7H4CPZYS.js} +1 -1
- package/dist/provider-7H4CPZYS.js.map +1 -0
- package/dist/{provider-2SEHU2FM.js → provider-WPIYEALY.js} +1 -1
- package/dist/provider-WPIYEALY.js.map +1 -0
- package/dist/{provider-SNONEZNW.cjs → provider-YN2SSK4X.cjs} +1 -1
- package/dist/provider-YN2SSK4X.cjs.map +1 -0
- package/dist/setup-57FB3LSP.js +0 -0
- package/dist/{watch-FVMVIZ5Q.js → watch-MRHNFJPC.js} +4 -4
- package/dist/watch-MRHNFJPC.js.map +1 -0
- package/package.json +98 -98
- package/dist/chunk-4NWDJGAU.js.map +0 -1
- package/dist/chunk-4SK2PDMQ.js.map +0 -1
- package/dist/chunk-LB7E2KDF.js.map +0 -1
- package/dist/chunk-MEPHGCPQ.js.map +0 -1
- package/dist/chunk-Y476BOHI.cjs.map +0 -1
- package/dist/parser-7OFQ67QL.cjs.map +0 -1
- package/dist/parser-DJCMY3OO.js.map +0 -1
- package/dist/parser-QMMQ7Y7R.js.map +0 -1
- package/dist/provider-2SEHU2FM.js.map +0 -1
- package/dist/provider-AKROB7WQ.js.map +0 -1
- package/dist/provider-SNONEZNW.cjs.map +0 -1
- package/dist/watch-FVMVIZ5Q.js.map +0 -1
- /package/dist/{detect-RI2MQ33K.js.map → detect-PJZMUL2Z.js.map} +0 -0
package/dist/index.d.cts
CHANGED
|
@@ -315,10 +315,36 @@ declare function fillHwpx(hwpxBuffer: ArrayBuffer, values: Record<string, string
|
|
|
315
315
|
* 순서/비순서 리스트, 수평선, 인용문, 테이블
|
|
316
316
|
* jszip으로 HWPX ZIP 패키징.
|
|
317
317
|
*/
|
|
318
|
+
/** HWPX 생성 시 적용할 시각 테마 (모두 선택) */
|
|
319
|
+
interface HwpxTheme {
|
|
320
|
+
/**
|
|
321
|
+
* 헤딩 레벨별 텍스트 색상. 미지정 시 검정.
|
|
322
|
+
* 현재 charPr 매핑은 h1/h2/h3/h4 4단계 (h5, h6은 h4와 같은 charPr 공유)이므로
|
|
323
|
+
* 키는 1~4만 받는다.
|
|
324
|
+
*/
|
|
325
|
+
headingColors?: Partial<Record<1 | 2 | 3 | 4, string>>;
|
|
326
|
+
/** 본문 단락 텍스트 색상. 미지정 시 검정 */
|
|
327
|
+
bodyColor?: string;
|
|
328
|
+
/**
|
|
329
|
+
* 인용문 텍스트 색상. 미지정 시 검정.
|
|
330
|
+
*
|
|
331
|
+
* 주의: 이 옵션을 지정하면 인용문이 별도 charPr(이탤릭)로 렌더링된다.
|
|
332
|
+
* 미지정 시 기존 동작 그대로 본문 charPr로 렌더링 (이탤릭 아님).
|
|
333
|
+
*/
|
|
334
|
+
quoteColor?: string;
|
|
335
|
+
/** 표 첫 행 텍스트 색상. 미지정 시 본문과 동일 */
|
|
336
|
+
tableHeaderColor?: string;
|
|
337
|
+
/** 표 첫 행 텍스트를 굵게 표시 (기본 false) */
|
|
338
|
+
tableHeaderBold?: boolean;
|
|
339
|
+
}
|
|
340
|
+
/** markdownToHwpx 옵션 */
|
|
341
|
+
interface MarkdownToHwpxOptions {
|
|
342
|
+
theme?: HwpxTheme;
|
|
343
|
+
}
|
|
318
344
|
/**
|
|
319
345
|
* 마크다운 텍스트를 HWPX (ArrayBuffer)로 변환.
|
|
320
346
|
*/
|
|
321
|
-
declare function markdownToHwpx(markdown: string): Promise<ArrayBuffer>;
|
|
347
|
+
declare function markdownToHwpx(markdown: string, options?: MarkdownToHwpxOptions): Promise<ArrayBuffer>;
|
|
322
348
|
|
|
323
349
|
/**
|
|
324
350
|
* Print Renderer — Markdown / IRBlock[] → PDF (puppeteer-core 기반).
|
|
@@ -465,4 +491,4 @@ interface FillFormOutput {
|
|
|
465
491
|
*/
|
|
466
492
|
declare function fillForm(input: string | ArrayBuffer | Buffer, values: Record<string, string>, outputFormat?: FillOutputFormat): Promise<FillFormOutput>;
|
|
467
493
|
|
|
468
|
-
export { type BlockDiff, type BoundingBox, type CellContext, type CellDiff, type DiffChangeType, type DiffResult, type DocumentMetadata, type ErrorCode, type ExtractedImage, type FileType, type FillFormOutput, type FillOutputFormat, type FillResult, type FormField, type FormResult, type HwpxFillResult, type IRBlock, type IRBlockType, type IRCell, type IRTable, type ImageData, type InlineStyle, type OcrProvider, type OutlineItem, type PageMargin, type ParseFailure, type ParseOptions, type ParseResult, type ParseSuccess, type ParseWarning, type PrintOptions, type PrintPreset, VERSION, type WarningCode, type WatchOptions, blocksToMarkdown, blocksToPdf, compare, detectFormat, detectOle2Format, detectZipFormat, diffBlocks, extractFormFields, fillForm, fillFormFields, fillHwpx, isHwpxFile, isLabelCell, isOldHwpFile, isPdfFile, isZipFile, markdownToHwpx, markdownToPdf, parse, parseDocx, parseHwp, parseHwp3, parseHwpml, parseHwpx, parsePdf, parseXls, parseXlsx, renderHtml };
|
|
494
|
+
export { type BlockDiff, type BoundingBox, type CellContext, type CellDiff, type DiffChangeType, type DiffResult, type DocumentMetadata, type ErrorCode, type ExtractedImage, type FileType, type FillFormOutput, type FillOutputFormat, type FillResult, type FormField, type FormResult, type HwpxFillResult, type HwpxTheme, type IRBlock, type IRBlockType, type IRCell, type IRTable, type ImageData, type InlineStyle, type MarkdownToHwpxOptions, type OcrProvider, type OutlineItem, type PageMargin, type ParseFailure, type ParseOptions, type ParseResult, type ParseSuccess, type ParseWarning, type PrintOptions, type PrintPreset, VERSION, type WarningCode, type WatchOptions, blocksToMarkdown, blocksToPdf, compare, detectFormat, detectOle2Format, detectZipFormat, diffBlocks, extractFormFields, fillForm, fillFormFields, fillHwpx, isHwpxFile, isLabelCell, isOldHwpFile, isPdfFile, isZipFile, markdownToHwpx, markdownToPdf, parse, parseDocx, parseHwp, parseHwp3, parseHwpml, parseHwpx, parsePdf, parseXls, parseXlsx, renderHtml };
|
package/dist/index.d.ts
CHANGED
|
@@ -315,10 +315,36 @@ declare function fillHwpx(hwpxBuffer: ArrayBuffer, values: Record<string, string
|
|
|
315
315
|
* 순서/비순서 리스트, 수평선, 인용문, 테이블
|
|
316
316
|
* jszip으로 HWPX ZIP 패키징.
|
|
317
317
|
*/
|
|
318
|
+
/** HWPX 생성 시 적용할 시각 테마 (모두 선택) */
|
|
319
|
+
interface HwpxTheme {
|
|
320
|
+
/**
|
|
321
|
+
* 헤딩 레벨별 텍스트 색상. 미지정 시 검정.
|
|
322
|
+
* 현재 charPr 매핑은 h1/h2/h3/h4 4단계 (h5, h6은 h4와 같은 charPr 공유)이므로
|
|
323
|
+
* 키는 1~4만 받는다.
|
|
324
|
+
*/
|
|
325
|
+
headingColors?: Partial<Record<1 | 2 | 3 | 4, string>>;
|
|
326
|
+
/** 본문 단락 텍스트 색상. 미지정 시 검정 */
|
|
327
|
+
bodyColor?: string;
|
|
328
|
+
/**
|
|
329
|
+
* 인용문 텍스트 색상. 미지정 시 검정.
|
|
330
|
+
*
|
|
331
|
+
* 주의: 이 옵션을 지정하면 인용문이 별도 charPr(이탤릭)로 렌더링된다.
|
|
332
|
+
* 미지정 시 기존 동작 그대로 본문 charPr로 렌더링 (이탤릭 아님).
|
|
333
|
+
*/
|
|
334
|
+
quoteColor?: string;
|
|
335
|
+
/** 표 첫 행 텍스트 색상. 미지정 시 본문과 동일 */
|
|
336
|
+
tableHeaderColor?: string;
|
|
337
|
+
/** 표 첫 행 텍스트를 굵게 표시 (기본 false) */
|
|
338
|
+
tableHeaderBold?: boolean;
|
|
339
|
+
}
|
|
340
|
+
/** markdownToHwpx 옵션 */
|
|
341
|
+
interface MarkdownToHwpxOptions {
|
|
342
|
+
theme?: HwpxTheme;
|
|
343
|
+
}
|
|
318
344
|
/**
|
|
319
345
|
* 마크다운 텍스트를 HWPX (ArrayBuffer)로 변환.
|
|
320
346
|
*/
|
|
321
|
-
declare function markdownToHwpx(markdown: string): Promise<ArrayBuffer>;
|
|
347
|
+
declare function markdownToHwpx(markdown: string, options?: MarkdownToHwpxOptions): Promise<ArrayBuffer>;
|
|
322
348
|
|
|
323
349
|
/**
|
|
324
350
|
* Print Renderer — Markdown / IRBlock[] → PDF (puppeteer-core 기반).
|
|
@@ -465,4 +491,4 @@ interface FillFormOutput {
|
|
|
465
491
|
*/
|
|
466
492
|
declare function fillForm(input: string | ArrayBuffer | Buffer, values: Record<string, string>, outputFormat?: FillOutputFormat): Promise<FillFormOutput>;
|
|
467
493
|
|
|
468
|
-
export { type BlockDiff, type BoundingBox, type CellContext, type CellDiff, type DiffChangeType, type DiffResult, type DocumentMetadata, type ErrorCode, type ExtractedImage, type FileType, type FillFormOutput, type FillOutputFormat, type FillResult, type FormField, type FormResult, type HwpxFillResult, type IRBlock, type IRBlockType, type IRCell, type IRTable, type ImageData, type InlineStyle, type OcrProvider, type OutlineItem, type PageMargin, type ParseFailure, type ParseOptions, type ParseResult, type ParseSuccess, type ParseWarning, type PrintOptions, type PrintPreset, VERSION, type WarningCode, type WatchOptions, blocksToMarkdown, blocksToPdf, compare, detectFormat, detectOle2Format, detectZipFormat, diffBlocks, extractFormFields, fillForm, fillFormFields, fillHwpx, isHwpxFile, isLabelCell, isOldHwpFile, isPdfFile, isZipFile, markdownToHwpx, markdownToPdf, parse, parseDocx, parseHwp, parseHwp3, parseHwpml, parseHwpx, parsePdf, parseXls, parseXlsx, renderHtml };
|
|
494
|
+
export { type BlockDiff, type BoundingBox, type CellContext, type CellDiff, type DiffChangeType, type DiffResult, type DocumentMetadata, type ErrorCode, type ExtractedImage, type FileType, type FillFormOutput, type FillOutputFormat, type FillResult, type FormField, type FormResult, type HwpxFillResult, type HwpxTheme, type IRBlock, type IRBlockType, type IRCell, type IRTable, type ImageData, type InlineStyle, type MarkdownToHwpxOptions, type OcrProvider, type OutlineItem, type PageMargin, type ParseFailure, type ParseOptions, type ParseResult, type ParseSuccess, type ParseWarning, type PrintOptions, type PrintPreset, VERSION, type WarningCode, type WatchOptions, blocksToMarkdown, blocksToPdf, compare, detectFormat, detectOle2Format, detectZipFormat, diffBlocks, extractFormFields, fillForm, fillFormFields, fillHwpx, isHwpxFile, isLabelCell, isOldHwpFile, isPdfFile, isZipFile, markdownToHwpx, markdownToPdf, parse, parseDocx, parseHwp, parseHwp3, parseHwpml, parseHwpx, parsePdf, parseXls, parseXlsx, renderHtml };
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
sanitizeHref,
|
|
17
17
|
stripDtd,
|
|
18
18
|
toArrayBuffer
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-DLQY6FJH.js";
|
|
20
20
|
import {
|
|
21
21
|
parsePageRange
|
|
22
22
|
} from "./chunk-SBVRCJFH.js";
|
|
@@ -18397,6 +18397,8 @@ var CHAR_H1 = 5;
|
|
|
18397
18397
|
var CHAR_H2 = 6;
|
|
18398
18398
|
var CHAR_H3 = 7;
|
|
18399
18399
|
var CHAR_H4 = 8;
|
|
18400
|
+
var CHAR_TABLE_HEADER = 9;
|
|
18401
|
+
var CHAR_QUOTE = 10;
|
|
18400
18402
|
var PARA_NORMAL = 0;
|
|
18401
18403
|
var PARA_H1 = 1;
|
|
18402
18404
|
var PARA_H2 = 2;
|
|
@@ -18405,14 +18407,30 @@ var PARA_H4 = 4;
|
|
|
18405
18407
|
var PARA_CODE = 5;
|
|
18406
18408
|
var PARA_QUOTE = 6;
|
|
18407
18409
|
var PARA_LIST = 7;
|
|
18408
|
-
|
|
18410
|
+
var DEFAULT_TEXT_COLOR = "#000000";
|
|
18411
|
+
function resolveTheme(theme) {
|
|
18412
|
+
return {
|
|
18413
|
+
h1: theme?.headingColors?.[1] ?? DEFAULT_TEXT_COLOR,
|
|
18414
|
+
h2: theme?.headingColors?.[2] ?? DEFAULT_TEXT_COLOR,
|
|
18415
|
+
h3: theme?.headingColors?.[3] ?? DEFAULT_TEXT_COLOR,
|
|
18416
|
+
h4: theme?.headingColors?.[4] ?? theme?.headingColors?.[3] ?? DEFAULT_TEXT_COLOR,
|
|
18417
|
+
body: theme?.bodyColor ?? DEFAULT_TEXT_COLOR,
|
|
18418
|
+
quote: theme?.quoteColor ?? DEFAULT_TEXT_COLOR,
|
|
18419
|
+
/** quoteColor가 명시되었는지 — blockquote charPr 분기에 사용 (baseline 호환) */
|
|
18420
|
+
hasQuoteOption: theme?.quoteColor !== void 0,
|
|
18421
|
+
tableHeader: theme?.tableHeaderColor ?? theme?.bodyColor ?? DEFAULT_TEXT_COLOR,
|
|
18422
|
+
tableHeaderBold: !!theme?.tableHeaderBold
|
|
18423
|
+
};
|
|
18424
|
+
}
|
|
18425
|
+
async function markdownToHwpx(markdown, options) {
|
|
18426
|
+
const theme = resolveTheme(options?.theme);
|
|
18409
18427
|
const blocks = parseMarkdownToBlocks(markdown);
|
|
18410
|
-
const sectionXml = blocksToSectionXml(blocks);
|
|
18428
|
+
const sectionXml = blocksToSectionXml(blocks, theme);
|
|
18411
18429
|
const zip = new JSZip6();
|
|
18412
18430
|
zip.file("mimetype", "application/hwp+zip", { compression: "STORE" });
|
|
18413
18431
|
zip.file("META-INF/container.xml", generateContainerXml());
|
|
18414
18432
|
zip.file("Contents/content.hpf", generateManifest());
|
|
18415
|
-
zip.file("Contents/header.xml", generateHeaderXml());
|
|
18433
|
+
zip.file("Contents/header.xml", generateHeaderXml(theme));
|
|
18416
18434
|
zip.file("Contents/section0.xml", sectionXml);
|
|
18417
18435
|
zip.file("Preview/PrvText.txt", buildPrvText(blocks));
|
|
18418
18436
|
return await zip.generateAsync({ type: "arraybuffer" });
|
|
@@ -18592,11 +18610,11 @@ function generateManifest() {
|
|
|
18592
18610
|
</opf:spine>
|
|
18593
18611
|
</opf:package>`;
|
|
18594
18612
|
}
|
|
18595
|
-
function charPr(id, height, bold, italic, fontId = 0) {
|
|
18613
|
+
function charPr(id, height, bold, italic, fontId = 0, textColor = DEFAULT_TEXT_COLOR) {
|
|
18596
18614
|
const boldAttr = bold ? ` bold="1"` : "";
|
|
18597
18615
|
const italicAttr = italic ? ` italic="1"` : "";
|
|
18598
18616
|
const effFont = bold ? 2 : fontId;
|
|
18599
|
-
return ` <hh:charPr id="${id}" height="${height}" textColor="
|
|
18617
|
+
return ` <hh:charPr id="${id}" height="${height}" textColor="${textColor}" shadeColor="none" useFontSpace="0" useKerning="0" symMark="NONE" borderFillIDRef="0"${boldAttr}${italicAttr}>
|
|
18600
18618
|
<hh:fontRef hangul="${effFont}" latin="${effFont}" hanja="${effFont}" japanese="${effFont}" other="${effFont}" symbol="${effFont}" user="${effFont}"/>
|
|
18601
18619
|
<hh:ratio hangul="100" latin="100" hanja="100" japanese="100" other="100" symbol="100" user="100"/>
|
|
18602
18620
|
<hh:spacing hangul="0" latin="0" hanja="0" japanese="0" other="0" symbol="0" user="0"/>
|
|
@@ -18616,7 +18634,7 @@ function paraPr(id, opts = {}) {
|
|
|
18616
18634
|
<hh:border borderFillIDRef="0" offsetLeft="0" offsetRight="0" offsetTop="0" offsetBottom="0" connect="0" ignoreMargin="0"/>
|
|
18617
18635
|
</hh:paraPr>`;
|
|
18618
18636
|
}
|
|
18619
|
-
function generateHeaderXml() {
|
|
18637
|
+
function generateHeaderXml(theme) {
|
|
18620
18638
|
return `<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
|
18621
18639
|
<hh:head xmlns:hh="${NS_HEAD}" xmlns:hp="${NS_PARA}" version="1.4" secCnt="1">
|
|
18622
18640
|
<hh:beginNum page="1" footnote="1" endnote="1" pic="1" tbl="1" equation="1"/>
|
|
@@ -18692,16 +18710,18 @@ function generateHeaderXml() {
|
|
|
18692
18710
|
<hh:fillInfo/>
|
|
18693
18711
|
</hh:borderFill>
|
|
18694
18712
|
</hh:borderFills>
|
|
18695
|
-
<hh:charProperties itemCnt="
|
|
18696
|
-
${charPr(0, 1e3, false, false)}
|
|
18697
|
-
${charPr(1, 1e3, true, false)}
|
|
18698
|
-
${charPr(2, 1e3, false, true)}
|
|
18699
|
-
${charPr(3, 1e3, true, true)}
|
|
18713
|
+
<hh:charProperties itemCnt="11">
|
|
18714
|
+
${charPr(0, 1e3, false, false, 0, theme.body)}
|
|
18715
|
+
${charPr(1, 1e3, true, false, 0, theme.body)}
|
|
18716
|
+
${charPr(2, 1e3, false, true, 0, theme.body)}
|
|
18717
|
+
${charPr(3, 1e3, true, true, 0, theme.body)}
|
|
18700
18718
|
${charPr(4, 900, false, false, 1)}
|
|
18701
|
-
${charPr(5, 1800, true, false, 1)}
|
|
18702
|
-
${charPr(6, 1400, true, false, 1)}
|
|
18703
|
-
${charPr(7, 1200, true, false, 1)}
|
|
18704
|
-
${charPr(8, 1100, true, false, 1)}
|
|
18719
|
+
${charPr(5, 1800, true, false, 1, theme.h1)}
|
|
18720
|
+
${charPr(6, 1400, true, false, 1, theme.h2)}
|
|
18721
|
+
${charPr(7, 1200, true, false, 1, theme.h3)}
|
|
18722
|
+
${charPr(8, 1100, true, false, 1, theme.h4)}
|
|
18723
|
+
${charPr(CHAR_TABLE_HEADER, 1e3, theme.tableHeaderBold, false, 0, theme.tableHeader)}
|
|
18724
|
+
${charPr(CHAR_QUOTE, 1e3, false, true, 0, theme.quote)}
|
|
18705
18725
|
</hh:charProperties>
|
|
18706
18726
|
<hh:tabProperties itemCnt="0"/>
|
|
18707
18727
|
<hh:numberings itemCnt="0"/>
|
|
@@ -18731,7 +18751,7 @@ var tableIdCounter = TABLE_ID_BASE;
|
|
|
18731
18751
|
function nextTableId() {
|
|
18732
18752
|
return ++tableIdCounter;
|
|
18733
18753
|
}
|
|
18734
|
-
function generateTable(rows) {
|
|
18754
|
+
function generateTable(rows, theme) {
|
|
18735
18755
|
const rowCnt = rows.length;
|
|
18736
18756
|
const colCnt = Math.max(...rows.map((r) => r.length), 1);
|
|
18737
18757
|
const cellW = Math.floor(44e3 / colCnt);
|
|
@@ -18739,12 +18759,15 @@ function generateTable(rows) {
|
|
|
18739
18759
|
const tblW = cellW * colCnt;
|
|
18740
18760
|
const tblH = cellH * rowCnt;
|
|
18741
18761
|
const tblId = nextTableId();
|
|
18762
|
+
const useHeaderStyle = theme.tableHeader !== theme.body || theme.tableHeaderBold;
|
|
18742
18763
|
const trElements = rows.map((row, rowIdx) => {
|
|
18743
18764
|
const cells = row.length < colCnt ? [...row, ...Array(colCnt - row.length).fill("")] : row;
|
|
18765
|
+
const isHeaderRow = rowIdx === 0;
|
|
18766
|
+
const headerCharPr = isHeaderRow && useHeaderStyle ? CHAR_TABLE_HEADER : CHAR_NORMAL;
|
|
18744
18767
|
const tdElements = cells.map((cell, colIdx) => {
|
|
18745
|
-
const runs = generateRuns(cell);
|
|
18768
|
+
const runs = generateRuns(cell, headerCharPr);
|
|
18746
18769
|
const p = `<hp:p paraPrIDRef="0" styleIDRef="0">${runs}</hp:p>`;
|
|
18747
|
-
return `<hp:tc name="" header="${
|
|
18770
|
+
return `<hp:tc name="" header="${isHeaderRow ? 1 : 0}" hasMargin="0" protect="0" editable="1" dirty="0" borderFillIDRef="1"><hp:subList id="" textDirection="HORIZONTAL" lineWrap="BREAK" vertAlign="TOP" linkListIDRef="0" linkListNextIDRef="0" textWidth="0" textHeight="0" hasTextRef="0" hasNumRef="0">${p}</hp:subList><hp:cellAddr colAddr="${colIdx}" rowAddr="${rowIdx}"/><hp:cellSpan colSpan="1" rowSpan="1"/><hp:cellSz width="${cellW}" height="${cellH}"/><hp:cellMargin left="141" right="141" top="141" bottom="141"/></hp:tc>`;
|
|
18748
18771
|
}).join("");
|
|
18749
18772
|
return `<hp:tr>${tdElements}</hp:tr>`;
|
|
18750
18773
|
}).join("");
|
|
@@ -18752,7 +18775,7 @@ function generateTable(rows) {
|
|
|
18752
18775
|
const tbl = `<hp:tbl id="${tblId}" zOrder="0" numberingType="TABLE" pageBreak="CELL" repeatHeader="0" rowCnt="${rowCnt}" colCnt="${colCnt}" cellSpacing="0" borderFillIDRef="1" noShading="0">${tblInner}</hp:tbl>`;
|
|
18753
18776
|
return `<hp:p paraPrIDRef="0" styleIDRef="0"><hp:run charPrIDRef="0">${tbl}</hp:run></hp:p>`;
|
|
18754
18777
|
}
|
|
18755
|
-
function blocksToSectionXml(blocks) {
|
|
18778
|
+
function blocksToSectionXml(blocks, theme) {
|
|
18756
18779
|
const paraXmls = [];
|
|
18757
18780
|
let isFirst = true;
|
|
18758
18781
|
const orderedCounters = {};
|
|
@@ -18781,7 +18804,11 @@ function blocksToSectionXml(blocks) {
|
|
|
18781
18804
|
break;
|
|
18782
18805
|
}
|
|
18783
18806
|
case "blockquote":
|
|
18784
|
-
xml = generateParagraph(
|
|
18807
|
+
xml = generateParagraph(
|
|
18808
|
+
block.text || "",
|
|
18809
|
+
PARA_QUOTE,
|
|
18810
|
+
theme.hasQuoteOption ? CHAR_QUOTE : CHAR_NORMAL
|
|
18811
|
+
);
|
|
18785
18812
|
break;
|
|
18786
18813
|
case "list_item": {
|
|
18787
18814
|
const indent = block.indent || 0;
|
|
@@ -18814,7 +18841,7 @@ function blocksToSectionXml(blocks) {
|
|
|
18814
18841
|
paraXmls.push(`<hp:p paraPrIDRef="0" styleIDRef="0">${secRun}</hp:p>`);
|
|
18815
18842
|
isFirst = false;
|
|
18816
18843
|
}
|
|
18817
|
-
xml = generateTable(block.rows);
|
|
18844
|
+
xml = generateTable(block.rows, theme);
|
|
18818
18845
|
}
|
|
18819
18846
|
break;
|
|
18820
18847
|
}
|
|
@@ -19254,7 +19281,7 @@ async function parseHwp(buffer, options) {
|
|
|
19254
19281
|
async function parsePdf(buffer, options) {
|
|
19255
19282
|
let parsePdfDocument;
|
|
19256
19283
|
try {
|
|
19257
|
-
const mod = await import("./parser-
|
|
19284
|
+
const mod = await import("./parser-ZQQM6J7T.js");
|
|
19258
19285
|
parsePdfDocument = mod.parsePdfDocument;
|
|
19259
19286
|
} catch {
|
|
19260
19287
|
return {
|