今天在浏览 GitHub 的时候,偶然发现了一个非常有趣的开源项目——Koodo Reader。这个项目是一款开源免费的电子书阅读器,支持多种格式。它具有一些非常独特的功能,深深地吸引了我的注意。在接下来的内容中,我将为大家详细介绍一下这个备受关注的阅读器项目。

# Koodo Reader 介绍

Koodo Reader,一个跨平台的电子书阅读器,目前在github上已有14.1k star,是一个web项目。

_20240108225532.jpg

网页版地址: https://reader.960960.xyz/ (opens new window)

github地址:https://github.com/koodo-reader/koodo-reader (opens new window)

文档地址:https://koodo.960960.xyz/zh/document (opens new window)

客户端下载地址:https://koodo.960960.xyz/zh (opens new window)

# 特色

  • 支持阅读格式:

    • EPUB (.epub)

    • 扫描文档 (.pdf, .djvu)

    • Kindle (.azw3, .mobi, .azw)

    • 纯文本 (.txt)

    • 漫画 (.cbr, .cbz, .cbt, .cb7)

    • 富文本 (.md, .docx)

    • FB2 (.fb2)

    • 超文本 (.html, .xml, .xhtml, .mhtml, .htm, .htm)

  • 支持 Windows,macOS,Linux 和 网页版

  • 备份数据到 OneDrive, Google Drive, Dropbox, FTP, SFTP, WebDAV, S3, S3 compatible

  • 自定义源文件夹,利用 OneDrive、百度网盘、iCloud、Dropbox 等进行多设备同步

  • 双页模式,单页模式,滚动模式

  • 听书功能,翻译功能,词典功能,触控屏支持,批量导入图书

  • 支持目录,书签,笔记,高亮,书架,标签

  • 自定义字体,字体大小,行间距,段落间距,阅读背景色,文字颜色,屏幕亮度,文字下划线、斜体、文字阴影、字体粗细

  • 黑夜模式和主题色设置

# Koodo Reader 私有化部署

尽管作者已经为我们提供了Windows客户端和网页版,但作为热衷于Docker的爱好者,我们自然希望进行私有化部署。接下来,让我们详细介绍一下如何进行私有化部署的步骤。

有兴趣的家人们可以下载源码之后在项目的根路径运行 yarn 命令,接着运行 yarn build 的命令,之后根路径下会出现一个buid目录,我们将build目录下的文件复制到nginx的html目录下即可使用。不想下载项目的家人们也可以直接使用我打好的镜像registry.cn-hangzhou.aliyuncs.com/xj_lew/koodo-reader:1.0进行docker 部署,步揍如下:

创建docker-compose.yml文件:

version: '3.3'
services:
  koodo:
    image: registry.cn-hangzhou.aliyuncs.com/xj_lew/koodo-reader:1.0
    container_name: koodo-ng
    restart: always
    logging:
      driver: 'json-file'
      options:
        max-size: '5g'
    environment:
      - NGINX_PORT=80
    ports:
      - 8099:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf

创建nginx的配置文件nginx.conf文件

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;

    keepalive_timeout  65;

    client_max_body_size 500m;

    include /etc/nginx/conf.d/*.conf;



     server {
        listen       80;
#        外网访问的域名
        server_name  192.168.10.106;

      location / {
          root /usr/share/nginx/html;
          index index.html;
          try_files $uri $uri/ /index.html;
      }
     }
}

启动容器:

docker-compose up -d 

如果不出意外的话我们的容器就启动成功了

# Koodo Reader使用

在浏览器上输入访问地址

_20240108230641.jpg

  • 导入图书,可批量导入

_20240108231226.jpg

  • 添加读书笔记

我特别喜欢这个功能,特别是在处理大量阅读内容的文件时。我们可以轻松添加读书笔记,而且还能直接通过我的笔记-》显示笔记出处快速跳转到电子书或PDF对应的位置。

_20240108231700.jpg

_20240108232058.jpg

_20240108232532.jpg

_20240108232621.jpg

别的功能我们此处就不做演示了。

# Koodo Reader 缺点

  • 本地存储\浏览器存储,多端不同步

Koodo Reader客户端版本是基于本地存储的,要多端同步的话需要借助网盘的同步空间功能,而网页版的数据作为缓存临时保存在了浏览器中,清理缓存会导致数据丢失。

  • 对于md、html的阅读体验感不好

虽然它支持阅读md和html等文件,但是页面查看的效果不是很好。

# 总结

Koodo Reader不仅仅是一款数字阅读应用,更是一场阅读的冒险。它为用户提供了丰富的功能,使阅读变得更加个性化、便捷和有趣。尽管目前仍存在一些不完善之处,但它正在持续不断地进行更新,我们期待未来它能够更加完善。不论您是文学、学术、漫画还是其他领域的热爱者,Koodo Reader都将成为您数字阅读之旅的得力助手。