2025-05-12 05:38:44 +09:00

44 lines
1.6 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const parseStructureFile_1 = __importDefault(require("./parseStructureFile"));
const summary_1 = __importDefault(require("../models/summary"));
const modifiers_1 = __importDefault(require("../modifiers"));
const SummaryModifier = modifiers_1.default.Summary;
/**
Parse summary in a book, the summary can only be parsed
if the readme as be detected before.
@param {Book} book
@return {Promise<Book>}
*/
function parseSummary(book) {
const readme = book.getReadme();
const logger = book.getLogger();
const readmeFile = readme.getFile();
return (0, parseStructureFile_1.default)(book, "summary").spread((file, result) => {
let summary;
if (!file) {
logger.warn.ln("no summary file in this book");
summary = new summary_1.default();
}
else {
logger.debug.ln("summary file found at", file.getPath());
summary = summary_1.default.createFromParts(file, result.parts);
}
// Insert readme as first entry if not in SUMMARY.md
const readmeArticle = summary.getByPath(readmeFile.getPath());
if (readmeFile.exists() && !readmeArticle) {
summary = SummaryModifier.unshiftArticle(summary, {
title: "Introduction",
ref: readmeFile.getPath()
});
}
// Set new summary
return book.setSummary(summary);
});
}
exports.default = parseSummary;