Git Product home page Git Product logo

lettura's Introduction

Lettura

Another free and open-source feed reader for macOS and Window.

Lettura - Follow your favorite content and never miss a story | Product Hunt

It supports RSS, Atom.

JSON Feed support will coming soon

And this project is under construction.

Pre-release version is here, you can download it and try to subscribe some feeds.

Get Started

Prerequisites

  • Install Node.js. I recommend you to use NVM.
  • Install pnpm. Here is the manual.
  • Install Rust. You can find way in here
  • Follow the Tauri setup guide
  • Run pnpm install

Develop and Build

It is easy to start developing

pnpm tauri dev

And also easy to build.

pnpm tauri build

You can get more details about building Tauri app in here

Repo Activuty

Alt

More Projects

lettura's People

Contributors

aboutrss avatar lx200916 avatar neil-lobo avatar zhanglun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lettura's Issues

完善播客支持|Add More Support to Podcast

Is your feature request related to a problem? Please describe.
软件非常漂亮优雅,现在软件确实能听播客,但没有音频控制界面,无法调节进度或调节倍速(这俩可以说是播客刚需)。而且也无法记住进度(每次点播放都会从头播)
This is an beautiful and elegant app, and can play podcast, but can't control play speed and go back or forward, also this app can't remember where this podcast is played.

Describe the solution you'd like
提供音频控制界面,可以调节进度和倍速,并且默认记住播放位置
Provides an audio control interface that can adjust progress and speed, and remembers the playback position by default

Describe alternatives you've considered
调用系统已经安装的播放器(比如mpv、PotPlayer)通过URI播放网络音频
Call the player installed on the system (such as mpv, PotPlayer) to play network audio through URI

Additional context
Add any other context or screenshots about the feature request here.

分组和全文加载功能

分组功能是不是没有完善?没能找到将订阅源移动到指定分组的地方,希望能添加一键移动的功能。

另外,全文加载好像没有效果。

我使用的是 Windows 端最新版。

LocalProxy config error

Describe the bug
After setting up the local agent, the update feed sync was successful. However, if you delete a local agent, all feeds will not be synced, including feeds that would otherwise not be proxyed.
设置本地代理后更新提要同步成功。但如果删除本地代理,所有提要都无法同步,包括原本不用代理的提要。

You need to find the configuration file in the user's .lettura folder and delete the proxy settings in it (even if the IP and prot are empty) in order to update the feed without proxy normally.
需要在用户.lettura文件夹中,找到配置文件,删除其中代理的设置内容(哪怕ip 和 prot 为空),才能正常更新不要代理的提要。

In the config file, whether you should remove the ip and port entries instead of setting the proxy ip and port to empty
在config文件中,是否应该删除ip 和port 项,而不是设置代理 ip 和port 为空, scheme = socks5h:// :

if let Some(config) = user_config {
if let Some(proxy) = config.local_proxy {
log::info!("user_config.local_proxy {:?}", proxy);

  let mut scheme = String::from("socks5h://");

  scheme.push_str(&proxy.ip.to_string());
  scheme.push_str(":");
  scheme.push_str(&proxy.port.to_string());

Crashes on first run

Describe the bug
When I try to run lettura after first installation on ubuntu, it crashes.

To Reproduce

sudo apt install ./lettura_0.1.6_amd64.deb
RUST_BACKTRACE=full /usr/bin/lettura
"/home/lorefnon/.lettura"
Ok("/home/lorefnon/Downloads")
Ok("/usr/bin/lettura")
no LETTURA_ENV
thread 'main' panicked at 'Error migrating: QueryError(DieselMigrationName { name: "2022-10-19-055104_create_channels", version: MigrationVersion("20221019055104") }, DatabaseError(Unknown, "near \"CREATE\": syntax error"))', src/main.rs:132:6
stack backtrace:
   0:     0x55a6dfc0a271 - std::backtrace_rs::backtrace::libunwind::trace::h6aeaf83abc038fe6
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x55a6dfc0a271 - std::backtrace_rs::backtrace::trace_unsynchronized::h4f9875212db0ad97
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x55a6dfc0a271 - std::sys_common::backtrace::_print_fmt::h3f820027e9c39d3b
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x55a6dfc0a271 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hded4932df41373b3
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x55a6dfc36e5f - core::fmt::rt::Argument::fmt::hc8ead7746b2406d6
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/fmt/rt.rs:138:9
   5:     0x55a6dfc36e5f - core::fmt::write::hb1cb56105a082ad9
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/fmt/mod.rs:1094:21
   6:     0x55a6dfc06a41 - std::io::Write::write_fmt::h797fda7085c97e57
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/io/mod.rs:1713:15
   7:     0x55a6dfc0a085 - std::sys_common::backtrace::_print::h492d3c92d7400346
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x55a6dfc0a085 - std::sys_common::backtrace::print::hf74aa2eef05af215
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x55a6dfc0b527 - std::panicking::default_hook::{{closure}}::h8cad394227ea3de8
  10:     0x55a6dfc0b314 - std::panicking::default_hook::h249cc184fec99a8a
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panicking.rs:288:9
  11:     0x55a6dfc0b9dc - std::panicking::rust_panic_with_hook::h82ebcd5d5ed2fad4
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panicking.rs:705:13
  12:     0x55a6dfc0b8d7 - std::panicking::begin_panic_handler::{{closure}}::h810bed8ecbe66f1a
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panicking.rs:597:13
  13:     0x55a6dfc0a6a6 - std::sys_common::backtrace::__rust_end_short_backtrace::h1410008071796261
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/sys_common/backtrace.rs:151:18
  14:     0x55a6dfc0b622 - rust_begin_unwind
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panicking.rs:593:5
  15:     0x55a6df37be93 - core::panicking::panic_fmt::ha0a42a25e0cf258d
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/panicking.rs:67:14
  16:     0x55a6df37c333 - core::result::unwrap_failed::h100c4d67576990cf
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/result.rs:1651:5
  17:     0x55a6df540bab - lettura::main::{{closure}}::hc0bcd411bd17eac2
  18:     0x55a6df52d17e - tokio::runtime::context::BlockingRegionGuard::block_on::hc3a392d0d81368ed
  19:     0x55a6df4852bd - tokio::runtime::runtime::Runtime::block_on::h523f1f4e656a9e80
  20:     0x55a6df4c3c3f - lettura::main::hdca048713ef572f2
  21:     0x55a6df4cfe13 - std::sys_common::backtrace::__rust_begin_short_backtrace::h07d354d0079b5b9a
  22:     0x55a6df59cc09 - std::rt::lang_start::{{closure}}::hd0150e37bfca9e16
  23:     0x55a6dfc013b5 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h5ce27e764c284c0a
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/ops/function.rs:284:13
  24:     0x55a6dfc013b5 - std::panicking::try::do_call::h4c1fc390ae241991
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panicking.rs:500:40
  25:     0x55a6dfc013b5 - std::panicking::try::h4d36e7eaed86af72
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panicking.rs:464:19
  26:     0x55a6dfc013b5 - std::panic::catch_unwind::h41cfb4dd65282b1e
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panic.rs:142:14
  27:     0x55a6dfc013b5 - std::rt::lang_start_internal::{{closure}}::hfed411c1c5fdb925
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/rt.rs:148:48
  28:     0x55a6dfc013b5 - std::panicking::try::do_call::h6893f6f32a464342
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panicking.rs:500:40
  29:     0x55a6dfc013b5 - std::panicking::try::h52b7102f469a0567
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panicking.rs:464:19
  30:     0x55a6dfc013b5 - std::panic::catch_unwind::h62120054677916b5
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panic.rs:142:14
  31:     0x55a6dfc013b5 - std::rt::lang_start_internal::hd66bf6b7da144005
                               at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/rt.rs:148:20
  32:     0x55a6df4c3cf5 - main
  33:     0x7f2b50f16a90 - __libc_start_call_main
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
  34:     0x7f2b50f16b49 - __libc_start_main_impl
                               at ./csu/../csu/libc-start.c:360:3
  35:     0x55a6df37c76e - _start
  36:                0x0 - <unknown>

Desktop (please complete the following information):

lsb_release -a 
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 23.04
Release:	23.04
Codename:	lunar

请问能能够设置中文吗?

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Hard to read/Unreadable Dark Mode Accent Colours

Describe the bug
Some accent colours on dark mode make the titles unreadable, while others are very hard to read with

To Reproduce
Steps to reproduce the behavior:

  1. Enable dark mode
  2. set accent colour to black/blue
  3. Observe unreadable title

OR

  1. Enable dark mode
  2. set accent colour to green/red
  3. Observe hard to read title

Expected behavior
Use lighter versions of the accent colour for dark mode

Screenshots
image
image
image
image

Desktop (please complete the following information):

  • OS: Windows 10
  • Native app
  • Version: v0.1.17

When the proxy is set, it will cause crash.

Describe the bug
When the proxy is set, it will cause crash.

To Reproduce
Steps to reproduce the behavior:

  1. set proxy: 127.0.0.1 1086, it's clash's mixed proxy.
  2. import opml from local file, then click import button.
  3. crash!!! unexpceted exit.
  4. See error:
no LETTURA_ENV
request channel https://wechat2rss.xlab.app/feed/4ebcb3d5a0bdb5fada48eb901a77910f8cbef585.xml
ERROR: reqwest::Error { kind: Request, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("wechat2rss.xlab.app")), port: None, path: "/feed/373e03599246ef117e24c9ca900acfe168601a81.xml", query: None, fragment: None }, source: hyper::Error(Connect, "socks connect error: Proxy server unreachable") }
URL: "https://wechat2rss.xlab.app/feed/373e03599246ef117e24c9ca900acfe168601a81.xml"
-2->"/Users/xxxx/.lettura/lettura.toml"
ERROR: reqwest::Error { kind: Request, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("wechat2rss.xlab.app")), port: None, path: "/feed/923c0e2f33b6d39c8a826a90f185725f0edb10e8.xml", query: None, fragment: None }, source: hyper::Error(Connect, "socks connect error: Proxy server unreachable") }
thread 'mainURL: "https://wechat2rss.xlab.app/feed/923c0e2f33b6d39c8a826a90f185725f0edb10e8.xml"
' panicked at 'Error connecting to /Users/xxxx/.lettura/lettura.db: BadConnection("Unable to open the database file")-2->"/Users/xxxx/.lettura/lettura.toml"
', src/db.rs:30:10
request channel https://wechat2rss.xlab.app/feed/311c02e5c56e5c0bcdf41924909407ed2d569d2a.xml
stack backtrace:
URL: "https://wechat2rss.xlab.app/feed/aa202e8b44eec0847ad9ab2bece74addfede9894.xml"
URL: "https://wechat2rss.xlab.app/feed/9f7e55c77c8eaf5f2adb43289de4fe194f7d34e5.xml"
request channel https://wechat2rss.xlab.app/feed/7419897e85fdd038ed2f390a5859b730657ec7ff.xml
ERROR: reqwest::Error { kind: Request, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("wechat2rss.xlab.app")), port: None, path: "/feed/68a725789c8e9fc3e3f05813880df328f1880fcb.xml", query: None, fragment: None }, source: hyper::Error(Connect, "socks connect error: Proxy server unreachable") }
URL: "https://wechat2rss.xlab.app/feed/68a725789c8e9fc3e3f05813880df328f1880fcb.xml"
-2->"/Users/xxxx/.lettura/lettura.toml"
request channel https://wechat2rss.xlab.app/feed/0db50f315edb5c0af041413fc89note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
e3d4d80a91fdd.xml

Desktop (please complete the following information):

  • OS: macos 13.4.1 intel
  • Version v0.1.8, the newest.

The list is not automatically refreshed after creating a new folder.

Describe the bug
The list is not automatically refreshed after creating a new folder.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Main Page'
  2. Click on 'Add Folder'
  3. Click on 'Save'
  4. See error

Expected behavior
New folder created successfully.

Screenshots

20230926101702_rec_

Desktop (please complete the following information):

  • OS: macOS Ventura 13.4 (22F66)
  • Version 0.1.9-1 (20230913.103503)

Additional context

Fail to move feed into folders

Describe the bug

I want to move my feed into a folder.

To Reproduce
Steps to reproduce the behavior:

  1. Move to My Subscriptions
  2. Press and hold the left mouse button
  3. Drag to folder

Expected behavior

Expect to move in successfully

Desktop (please complete the following information):

  • OS: [Win 11]
  • Version [v0.1.11]

Additional context

Maybe can add it to the context menu。

Log file has expanded to 9GB

Describe the bug

你好,我很高兴使用这款轻便的 RSS 客户端。但我在使用了没多久过后,如图,我发现日志文件 ~\AppData\Roaming\com.lettura.dev\logs\Lettura.log 的大小竟然达到了 9GB 的大小🤔

image

我不清楚这是否是 bug,下面两个附件分别是这个 log 的开头和结尾的部分。其中我发现里面包含了 rss 文章的内容,和像是 AST 的内容,我猜想这似乎导致了这个文件体积巨大的原因之一?

lettura-head.log
lettura-tail.log

To Reproduce

我不知道该如何重现,仅是导入了 25 个来自 opml 的订阅,并同步,过一会就这样了。而且当我删除日志文件重复这个步骤的时候,并没能成功复现😥

Expected behavior

或许并不需要这么详细的日志?

Desktop:

  • OS: Windows10
  • Version 0.1.9-2_x64

bug: 功能错误

Describe the bug

  1. 左下角Feeds列表无法删除,点击Unsubscribe不生效
  2. 右侧Rss格式错乱重叠

Screenshots
55fa01e1aaf285225c3a30dffa5b723c

658c53173128a2eff5cf78145efeb051

Desktop (please complete the following information):

  • OS: Windows11

我认为这大概率不是我电脑问题,希望作者有空修复,感谢您的开源贡献

Incorrect Max Width Calculations

Describe the bug
Incorrect max width calculations result in "squished" containers.

To Reproduce
Steps to reproduce the behavior 1. :

  1. Add any rss feed
  2. view post

Steps to reproduce the behavior 2. :

  1. Open settings
  2. observe formatting issue

Expected behavior
Render properly

Screenshots
Issue 1.
image

Issue 2.
image

Desktop (please complete the following information):

  • OS: Windows 10
  • Native App
  • Version: v0.1.17

Additional context
Removing the max-w class seems to resolve the issue:
image
image

Similarly, removing the max-width css property here fixes the other issue:
image
image

macos arm (mac M) build

Is your feature request related to a problem? Please describe.
There is macos x86 build, but not a build for the macos M (arm) delivery yet.

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

页面异常

Describe the bug

To Reproduce

Expected behavior

Screenshots
image
image

Desktop (please complete the following information):

  • OS: win11
  • Browser : chrome,edge
  • Version : latest

Additional context
Add any other context about the problem here.

pnpm tauri build failed with exit code 2 errors

cargo tauri info

❯ cargo tauri info

[✔] Environment
    - OS: Mac OS 14.1.2 X64
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.75.0 (82e1608df 2023-12-21)
    ✔ cargo: 1.75.0 (1d8b05cdd 2023-11-20)
    ✔ rustup: 1.26.0 (5af9b9484 2023-04-05)
    ✔ Rust toolchain: stable-aarch64-apple-darwin (environment override by RUSTUP_TOOLCHAIN)
    - node: 21.7.2
    - pnpm: 8.15.6
    - yarn: 1.22.19
    - npm: 10.5.0

[-] Packages
    - tauri [RUST]: 1.2.3
    - tauri-build [RUST]: 1.2.1
    - wry [RUST]: 0.23.4
    - tao [RUST]: 0.15.8
    - tauri-cli [RUST]: 1.5.11
    - @tauri-apps/api : not installed!
    - @tauri-apps/cli [NPM]: 1.5.11

[-] App
    - build-type: bundle
    - CSP: unset
    - distDir: ../src
    - devPath: ../src

pnpm tauri build

-> pnpm tauri build

> [email protected] tauri /Users/xxx/Github/lettura
> tauri "build"

     Running beforeBuildCommand `pnpm build`

> [email protected] build /Users/xxx/Github/lettura
> tsc && vite build

src/components/ArticleView/DialogView.tsx:54:18 - error TS2739: Type '{}' is missing the following properties from type 'NavigatorProps': goNext, goPrev

54                 <ToolbarItemNavigator />
                    ~~~~~~~~~~~~~~~~~~~~

src/layout/Article/ArticleCol.tsx:196:13 - error TS2488: Type 'false | boolean[]' must have a '[Symbol.iterator]()' method that returns an iterator.

196       const [shouldLoad] = goNextArticle();
                ~~~~~~~~~~~~


Found 2 errors in 2 files.

Errors  Files
     1  src/components/ArticleView/DialogView.tsx:54
     1  src/layout/Article/ArticleCol.tsx:196
 ELIFECYCLE  Command failed with exit code 2.
       Error beforeBuildCommand `pnpm build` failed with exit code 2
 ELIFECYCLE  Command failed with exit code 1.

Self-hosted services support

Is your feature request related to a problem? Please describe.
I am currently using the FreshRSS service and would like to log into Lettura with my FreshRSS account, similar to how Reeder does it.

Describe the solution you'd like
image

Describe alternatives you've considered
Google Reader API

Additional context

Windows 端每个 RSS 源只展示最新的 12 篇文章

Is your feature request related to a problem? Please describe.
Windows 端每个 RSS 源只展示最新的 12 篇文章,找不到设置数量的地方。

Describe the solution you'd like
希望能加载所有文章,或者下拉时自动加载分页。

XSS vulnerability

Describe the bug
If the RSS file contains an xss vulnerability, it can cause the software to trigger an xss vulnerability, which may cause security issues

To Reproduce
Steps to reproduce the behavior:

if this code <img src=1 onerror=alert(1)> in rss xml, or other xss code,you can test this vulnerability with this url https://xdym11235.com/aaa

Expected behavior
show the error image

Screenshots
image

Desktop (please complete the following information):

  • OS: windows10 22H2
  • Version: latest

crash in macos 13.4.1 intel

no LETTURA_ENV
thread 'main' panicked at 'Error migrating: QueryError(DieselMigrationName { name: "2022-10-19-055104_create_channels", version: MigrationVersion("20221019055104") }, DatabaseError(Unknown, "near "CREATE": syntax error"))', src/main.rs:132:6
stack backtrace:
0: 0x103a97043 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h9da7574d41a27793
1: 0x103abb8eb - core::fmt::write::h30e9018632f2aef2
2: 0x103a93218 - std::io::Write::write_fmt::h56af08ec60343535
3: 0x103a96e3a - std::sys_common::backtrace::print::h4d81fafe758cf4b8
4: 0x103a98645 - std::panicking::default_hook::{{closure}}::h120f229f25c70a74
5: 0x103a9844f - std::panicking::default_hook::hceec3dccba707793
6: 0x103a98ae3 - std::panicking::rust_panic_with_hook::h6683bf919d2bf510
7: 0x103a98a03 - std::panicking::begin_panic_handler::{{closure}}::h9ad2a0e8640ca3c3
8: 0x103a97449 - std::sys_common::backtrace::__rust_end_short_backtrace::h1aa11996f1542333
9: 0x103a9873d - _rust_begin_unwind
10: 0x103af25f3 - core::panicking::panic_fmt::hb305629a540f8ae6
11: 0x103af2a85 - core::result::unwrap_failed::h1066469645d18ac3
12: 0x10335c703 - lettura::main::{{closure}}::h8d7648cd5bbf0e15
13: 0x1033415fa - tokio::runtime::context::BlockingRegionGuard::block_on::h4f76a15c020a0bd4
14: 0x10329896c - tokio::runtime::runtime::Runtime::block_on::hb22d39652a987307
15: 0x10322b2e2 - lettura::main::h1b5f2e2604ce40a3
16: 0x1032bed06 - std::sys_common::backtrace::__rust_begin_short_backtrace::ha37fdb35bb41cd75
17: 0x10332260c - std::rt::lang_start::{{closure}}::h2d25783b98d42168
18: 0x103a8d68a - std::rt::lang_start_internal::h2bb66f5226335a85
19: 0x10322b39c - _main
20: 0x7ff802adc41f -

App theme goes messy when the system's theme is dark

Description:
When the OS is in dark mode, there are some issues with the app's theme.

  1. App's theme is default:

OS dark theme and app default theme

  1. App's theme CHANGED to dark:

OS dark and app changed to dark

  1. App's theme CHANGED BACK to light (default):

OS dark and app change back to light

It also seems that the side menu isn't following the same state.

When the OS is in light mode, there still issues with the App's dark mode:

  1. OS light and App dark:

OS light and app dark

  1. OS light and App light

OS light and app light

I am aware that this isn't a final release, I just noticed this and wanted to report it so it may help.

features requests

Display icon description when hovering over it.
Youtube feed supported and parse videos from youtube links.

RSS 只能订阅摘要部分,没有展示全部内容

Describe the bug
RSS 只能订阅摘要部分,没有展示全部内容

To Reproduce
比如RSS订阅源:
https://feed.cnblogs.com/blog/u/177636/rss/

<id>https://www.cnblogs.com/coco1s/p/17881159.html</id>
<title type="text">【布局技巧】Flex 布局下居中溢出滚动截断问题 - ChokCoco</title>
<summary type="text">在页面布局中,我们经常会遇到/使用这么一类常见的布局,也就是列表内容水平居中于容器中,像是这样: &lt;ul class=&quot;g-contaner&quot;&gt; &lt;li&gt;&lt;/li&gt; &lt;li&gt;&lt;/li&gt; &lt;/ul&gt; ul { width: 500px; display: flex; flex-direction: r</summary>
<published>2023-12-07T02:29:00Z</published>
<updated>2023-12-07T02:29:00Z</updated>

或者
https://luoguochun.cn/index.xml

<item>
<title>rust 过程宏</title>
<link>https://luoguochun.cn/post/2023-12-26-rust-proc-macro/</link>
<pubDate>Tue, 26 Dec 2023 16:00:10 +0800</pubDate>
<guid>https://luoguochun.cn/post/2023-12-26-rust-proc-macro/</guid>
<description>简介 Rust 编程语言里面有两种宏系统,一种是声明宏(Declarative Macros),另一种为过程宏(Procedural Macros)。声明</description>
</item>

应该是能够读根据rss版本的不同取到其中的链接,展示链接里面的内容,不过好像实际上展示的是空白页。

Screenshots
1

Desktop (please complete the following information):

  • OS: Mac OS
  • Browser chrome
  • Version 版本 120.0.6099.129(正式版本) (arm64)

Additional context
另外一个小建议哈,建议左侧两栏可以设置隐藏展开甚至是可以拖拽改变大小,比较占空间影响阅读。

Page Detail's style displays error

Describe the bug
After installing this app in Win10, page Detail's style displays error:
Snipaste_2024-03-23_17-46-09

To Reproduce
Steps to reproduce the behavior:

  1. Install this app in Win10.
  2. Check any rss.
  3. Check any essay.
  4. See error.

Expected behavior
Page Detail displays OK.

Desktop (please complete the following information):

  • OS: Win10
  • Browser chrome
  • Version Version 122.0.6261.131 (Official Build) (64-bit)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.