Age | Commit message (Collapse) | Author |
|
|
|
|
|
## Changes
- update parsing logic to reflect new HN Algolia API change regarding the use of `<p>` for paragraph breaks
- cleanup parsing codes
|
|
|
|
|
|
|
|
- update `CD` workflow to include more targets
- update dependencies and bump the app's version to `0.13.3`
|
|
`article_parse_command` (#94)
### Summary
Implement Rust native article view as fallback on failed `article_parse_command`.
### Context
Current implementation will display a link to the [`config.md`](https://github.com/aome510/hackernews-TUI/blob/main/docs/config.md#article-parse-command) file if the `article_parse_command` fails. Almost all of new users will see this error. Instead, we can use the `readable-readability` to provide similar capability as a fallback method. This might be more user friendly and nice default behavior.
### Dependency Added
- [`readable-readability`](https://crates.io/crates/readable-readability)
### Screenshots
https://news.ycombinator.com/item?id=37214693
|`article_md`|New implementation|
|-|-|
|![article_md 1](https://github.com/aome510/hackernews-TUI/assets/679719/a85e6f5b-d003-44c4-9270-72555535631d)|![integrated 1](https://github.com/aome510/hackernews-TUI/assets/679719/5edcc5d8-d339-431b-a331-90d51833df46)|
Please note that it's not perfect for some pages as below, but I think it'd be acceptable.
https://news.ycombinator.com/item?id=25607320
|`article_md`|New implementation|
|-|-|
|![aritcle_md 2](https://github.com/aome510/hackernews-TUI/assets/679719/87702be2-aa88-4169-8199-f83e677c761a)|![integrated 2](https://github.com/aome510/hackernews-TUI/assets/679719/1302615c-058b-4277-a97a-4d06ff439550)|
|
|
|
|
|
|
|
|
hot fix: remove a reverse effect from the highlighting style
|
|
|
|
Resolves #86
- added `--start_id` cli option to open the application in a specific comment view
- updated comment view codes to
+ not require a story to construct a comment view
+ allow constructing a comment view of either a comment or a story
|
|
|
|
|
|
|
|
## Changes
- added voting visualization
- handled voting command asynchronously to avoid blocking
- fixed bug (from #84) that made collapsed item's children not hidden
- handled multi-paged stories when getting story's
- added authentication/voting documentations
|
|
## Changes
- separated modeling and parsing codes
+ renamed `client::parser` to `client::model`
+ added `parser` module
+ moved parsing codes from `client` to a dedicated `parser` module
- split client data models (`client::model`) and HN data models (new `model` module)
- split parsing codes into different modules
+ `html` for parsing HTML text
+ `article` for parsing web article
- and many other cleanups, variable/function naming changes, code refactoring, and more documentation
|
|
**Note**: the voting/authentication is not ready yet. This PR is just a first iteration of the feature.
## Changes
- added support for voting and authentication functionalities
- enabled `cookies` feature for `ureq` (HTTP client)
- implemented `HNClient::vote` and `HNClient::login` functions and related helper functions
## TODOs (for follow-up PR)
- [ ] update README to add entries for authentication and voting commands
- [ ] add visualization (view) for votes
|
|
|
|
|
|
## Changes
- introduce story sort mode to replace initial sort "by_date". Story sort mode includes: `None`, `Date`, and `Point`.
+ update story retrieving/constructing codes to use `sort_mode` as a parameter instead of `by_date`
- if `None` sort mode is specified, use a combination of HN Algolia APIs and HN official APIs to retrieve `ask_hn` and `show_hn` stories in the same order as displayed in the http://news.ycombinator.com/ website.
+ **Related**: #79
## Breaking changes
- rename `toggle_sort_by_date` command to `cycle_sort_mode`
|
|
|
|
|
|
- removed `markup5ever_rcdom` to use a "forked" `rcdom` module
- re-organized `Cargo.toml`
|
|
|
|
- updated dependencies
- removed `lazy_static`, `substring`
- use `git` for `html5ever` and `markup5ever_rcdom` crates
|
|
|
|
- added `ConfigParser` default implementation for `Option<T>`
- added more tests, cleanup test structure naming
|
|
|
|
|
|
|
|
|
|
## Brief description of changes
- moved UI initialization codes from `main.rs` to `view::mod.rs`
- updated application's logging level
- renamed functions, added more comments/code documentations
- added some code cleanups
|
|
## Brief description of changes
- refactored `view::async_view` codes
+ added `ResultView`, modified `ErrorView`
+ used `anyhow::Context` to decorate the encountered error when constructing async views
- replaced `view::error_view` module with `view::result_view`
- refactored parse functions in `client::parser`
+ added new structs to represent parsed results/ arguments
+ cleanup code, updated documents
- removed `Article::parsed_content`, replaced `Article::links` with `ArticleView::links`
- removed redundant `clones`
|
|
|
|
## Brief description of changes
- updated default shortcuts `REAMDE`
- added `view::utils.rs` to separate `view` utils with general util functions defined in `utils.rs`
- clean imports in files of the `view` module
- implemented `LinkDialog` struct (along with traits, keymaps, etc)
- changed `on_event` to `on_pre_event` to handle the events before its children receive the events
- updated the behaviour of `open_article_in_browser` when the story doesn't have linked article: fallback to `open_story_in_browser`
## Breaking changes
- modified the default shortcuts for link opening commands. Look into [here](https://github.com/aome510/hackernews-TUI/pull/72/files#diff-1e51105b268d755430b5c0e75bfa1f216ce542cd5bf95b761bee86043b73fd45L114-L132) for further details
|
|
## Brief description of changes
- implemented different view traits (defined in `hackernews_tui/src/view/traits.rs`)
+ `ListViewContainer` consists of methods to interact with the inner list view (`LinearLayout`)
+ `ScrollViewContainer` consists of methods to get the inner scroll view
+ `OnScrollEventView` defines the `on_scroll_events` method that adds callbacks for scrolling events (triggered by new `ScrollKeymap` keymaps)
+ `AutoScrolling` defines the `scroll` method that automatically scrolls to the inner view's important area
- added a `ScrollKeymap` struct defined keybindings for scrolling commands
- rewrote `hackernews_tui/src/view/help_view.rs`
+ added new `Command` and `CommandGroup` structs
+ defined the `to_*_view` method for the new structs to convert into the corresponding view
+ constructed the `HelpView` using the new structs instead of `Vec<String, (String, String)>` like previously
- updated the example config file
## Breaking changes
- removed scrolling commands defined the `ArticleViewKeymap` and `CommandViewKeymap` in favour of commands defined by the new `ScrollKeymap`
|
|
|
|
|
|
## Brief description of changes
- support multiple keybindings to a single command by specifying either **a key string** or **an array of key strings** in the config file
- add `[back]` button to the application's footer
## Breaking changes
- modify the default shortcuts for
- `global_keymap.quit`
- `global_keymap.goto_previous_view`
- `global_keymap.goto_search_view`
- `edit_keymap.move_cursor_left`
- `edit_keymap.move_cursor_right`
- `edit_keymap.move_cursor_to_begin`
- `edit_keymap.move_cursor_to_end`
|
|
# Brief description of changes
- updated config/cache folder initialization logic to follow [`dirs_next`](https://docs.rs/dirs-next/latest/dirs_next/) specifications
- updated `README` to indicate new config/cache finding logic
- updated the example/default config file
- fixed clippy errors
- updated dependencies
|
|
|
|
|
|
|
|
|
|
## Brief description of changes
- update `cursive`-related dependencies:
+ `cursive` from `0.16.3` to `0.17.0`
+ `cursive-async-view` from `0.5.0` to `0.6.0`
+ `cursive-buffered_backend` from `0.5.0` to `0.6.0`
+ `cursive-aligned-view` from `0.5.0` to `0.6.0`
- update `clap` from `2.34.0` to `3.0.7`
- and update other packages
- remove redundant `Cargo.lock` in `hackernews_tui` folder
|
|
|
|
|