BookSummary.create constructor

BookSummary.create(
  1. String file,
  2. Iterable<Part> parts, [
  3. BookReadme? readme
])

Create a summary object by a file path, several parts, and maybe a readme.

Implementation

factory BookSummary.create(String file, Iterable<Part> parts,
    [BookReadme? readme]) {
  final items = parts.indexed.map((r) {
    /// if tile page is not readme file
    final (i, e) = r;
    var p = e;
    final ref = e.articles?.first.ref;
    if (i == 0 && readme != null && readme.filename != ref) {
      final list = e.articles;
      p = (
        title: e.title,
        articles: [
          Article(title: readme.title, ref: readme.filename),
          if (list != null) ...list,
        ],
      );
    }
    return SummaryPart.create(p, parts.length > 1 ? '${i + 1}' : '');
  });
  return BookSummary(file, items.toList(growable: false));
}