generateCfi method

String? generateCfi({
  1. required EpubBook? book,
  2. required EpubChapter? chapter,
  3. required int? paragraphIndex,
  4. List<String> additional = const [],
  5. EpubCfiGenerator generator = const EpubCfiGenerator(),
})

Implementation

String? generateCfi({
  required EpubBook? book,
  required EpubChapter? chapter,
  required int? paragraphIndex,
  List<String> additional = const [],
  EpubCfiGenerator generator = const EpubCfiGenerator(),
}) {
  if (paragraphIndex == null) {
    return null;
  }

  final currentNode = paragraphs[paragraphIndex].element;

  final packageDocumentCFIComponent = _cfiChapter(
    book: book,
    chapter: chapter,
    generator: generator,
  );

  final contentDocumentCFIComponent =
      generator.generateElementCFIComponent(currentNode);

  return generator.generateCompleteCFI([
    packageDocumentCFIComponent,
    contentDocumentCFIComponent,
    ...additional,
  ]);
}