epub_reader_highlight 1.0.0 copy "epub_reader_highlight: ^1.0.0" to clipboard
epub_reader_highlight: ^1.0.0 copied to clipboard

A Flutter package for highlighting and manipulating text in EPUB files. It provides functionalities to apply different color highlights, map text indices, and format HTML tags.

logo banner

EPub Reader Highlight #

GitHub stars

Table of Contents #

Description #

EPub Reader Highlight is a Flutter application that offers a complete solution for reading books in the Epub format. With an intuitive interface and advanced features, this tool allows developers to create personalized and efficient reading experiences for their users.

Features #

  • Text Highlight: Select important excerpts from the book and apply different highlight colors to facilitate review and organization of the content.
  • Chapter List: Easily navigate between the book's chapters, viewing the title and number of each one.
  • Highlight Management: Access an organized list of all added highlights, with the option to filter by color or chapter.
  • Customizable Interface: Adapt the reader's appearance to your preferences, with options to adjust font size, line spacing, and reading mode.
  • Last Paragraph Access: Access the last paragraph read in the book and manage the text selected for highlights, allowing developers to save and manage the reading progress and selected text as desired.

Screenshots #

Here are some screenshots of EPub Reader Highlight in action:

Text Highlight #

image highlight

Chapter List #

image chapter

Highlight Management #

Highlight Management

Usage #

Installation #

  1. Clone the repository:
    git clone https://github.com/danielmaques/epub_reader_highlight.git
    
  2. Navigate to the project directory:
    cd epub_reader_highlight
    
  3. Install the dependencies:
    flutter pub get
    
  4. Run the application:
    flutter run
    

Usage Examples #

class _MainAppState extends State<MainApp> {
  late EpubController _epubReaderController;

  @override
  void initState() {
    super.initState();

    /// Assets
    /// EpubDocument.openAsset('assets/gentle-green-obooko.epub')
    /// EpubDocument.openFile(path)

    _epubReaderController = EpubController(
      document: EpubDocument.openAsset('assets/gentle-green-obooko.epub'),
    );

    _epubReaderController = EpubController(
      document: EpubDocument.,
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Container(
        color: Colors.white,
        child: SafeArea(
          bottom: false,
          child: Scaffold(
            backgroundColor: Colors.white,
            appBar: AppBar(
              title: EpubViewActualChapter(
                controller: _epubReaderController,
                builder: (chapterValue) => Text(
                  'Chapter: ${chapterValue?.chapter?.Title?.replaceAll('\n', '').trim() ?? ''}',
                  textAlign: TextAlign.start,
                ),
              ),
            ),
            drawer: Drawer(
              child: EpubViewTableOfContents(
                controller: _epubReaderController,
              ),
            ),
            body: EpubView(
              builders: EpubViewBuilders<DefaultBuilderOptions>(
                options: const DefaultBuilderOptions(
                  textStyle: TextStyle(),
                ),
                chapterDividerBuilder: (_) => Container(),
              ),
              controller: _epubReaderController,
            ),
          ),
        ),
      ),
    );
  }
}
  • Text Highlight: To highlight a section, simply select the desired text and choose a highlight color.
  • Chapter Navigation: Use the chapter menu to easily navigate through the book.
    EpubViewTableOfContents(
        controller: _epubReaderController,
    ),
  • Interface Customization: Access the app settings to adjust the font, spacing, and reading mode.
  • Last Paragraph Access:

    onHighlightTap: (selectedTextModel) {
        print('Highlighted Text: $selectedTextModel');
    },
    paragraphIndexOnDispose: (paragraphIndex) {
        print('Last paragraph Index: $paragraphIndex');
    },

Contributing #

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion to improve this project, please fork the repository and create a pull request. You can also simply open an issue with the appropriate tag. Don't forget to give the project a star! Thank you very much!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Be sure to include a tag and follow Conventional Commits and Semantic Versioning when submitting your commit and/or creating the issue.

Acknowledgements #

Thanks to all the people who have contributed to this project. Without you, this project would not be possible.


Daniel Marques

Gabriel Barreto Matos Maia

License #

This project is licensed under the MIT License.

11
likes
140
pub points
62%
popularity

Publisher

unverified uploader

A Flutter package for highlighting and manipulating text in EPUB files. It provides functionalities to apply different color highlights, map text indices, and format HTML tags.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

collection, epubx, equatable, flutter, flutter_html, highlight_text, html, html_unescape, scrollable_positioned_list, universal_file, xml

More

Packages that depend on epub_reader_highlight