generatePage method

String generatePage(
  1. ThemeManager theme,
  2. BookPage page
)

Generate raw html text for one book page.

Implementation

String generatePage(ThemeManager theme, BookPage page) {
  final filename = page.filename;
  final filePath = book.filePath(filename);
  final engine = theme.engine;
  final data = RenderContext(
    filters: {
      ...theme.builtinFilters,
      ..._builtinFilters,
      'resolveAsset': (String f) => filePath.pathTo(p.join('dartbook', f)),
      'resolveFile': (String f) => filename.pathTo(_toUrl(f)),
      'fileExists': (String f) => File(book.fileFsPath(f)).existsSync(),
    },
    data: _makePageRenderData(page),
  );
  final raw = engine.renderPage(data);
  final doc = html.parse(raw);
  addHeadingId(doc);
  modifier.annotate(doc);
  return doc.outerHtml;
}