Releases: go-shiori/shiori
v1.5.3
Breaking changes
-
Migrations: Migrations are now implemented in a manual and separate CLI command called
migrate
. Users need to perform database migrations previous to any other Shiori command in order for the database schema to be created:$ shiori add https://github.com Failed to create ID: SQL logic error: no such table: bookmark (1) exit status 1 $ shiori migrate $ shiori add https://github.com Downloading article... 2. GitHub: Where the world builds software > https://github.com + GitHub is where over 83 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...
Changelog
- b68092c Heroku buildpack support in go.mod (#388)
- f000f11 Update Usage.md (#435)
- 7394b10 chore: update go dependencies (#424)
- 81d52a2 feat: sqlite migrations (#398)
- 9397832 fix: amd64 build paths (#429)
- ce8a172 fix: bookmark content download (#413)
- 0fe24d2 fix: url modification when query param is empty (#411)
- 8732fd7 implement migration for mysql & postgres (#422)
- 2b1ddd0 replace assets generation with embed (#423)
- ca3cc11 sqlite: remove unneeded LEFT JOIN to improve performance (#387)
v1.5.2
What's Changed
- Web Server Improvements by @efrecon in #374
- fix: trying to mkdir over an incorrect data path by @fmartingr in #378
New Contributors
Full Changelog: v1.5.1...v1.5.2
Changelog
v1.5.1
Breaking changes
- SQLite users: The SQLite driver has been modified to a non-CGO driver to ease the maintenance and builds of the project, but it came at the cost of replacing the full-text search implementation module for a newer one, each other incompatible with each driver, so we couldn't perform the migration easily directly in shiori.
In order for shiori to continue working properly for you, please go to this page that explain what you need to do (and more explaining over why the change). The process is very easy and the binary of the migration tool for x86_64 systems is attached in this release as well.
Changelog
- c5fd200 Add GitHub Action for tests & coverage
- bf974fa Add border around table in content view
- 5903214 Add code of conduct
- 5bf02d8 Add notice about project archival
- bccc70b Add option to hide thumbnail image #166
- a82b882 Add options to hide excerpt #166
- 76a7856 Add specific size to bookmark_url key
- 793901c Added Heroku deploy. Fixed #45
- 72f1a22 Create FUNDING.yml
- c55b1a3 Default to webpage title, not URL, if user specifies no title
- a0ce725 Exit with non-zero status when add fails
- acc86d7 Exit with non-zero status when add fails
- 32f9d26 Explicit charset for MySQL connection
- ddf7c37 Fix MySQL column definitions
- b315c48 Fix content with double braces not rendered #171
- fbd4e37 Fix custom title and excerpt doesn't saved
- 018f332 Fix import skipped when title missing #153
- a5cb2c6 Fix login autofill
- 28ee496 Fix title is empty when adding bookmark
- 1d83468 Fix when using extension bookmark doesn't archived
- d2906b1 Fix wrong cookie path
- ef248c8 Fix: Bookmark content displays Invalid Date if database is PostgreSQL #201
- e41cea6 Fix: Safari does not accept document.baseURI for cookie path
- 7a2bcac Fix:
hasArchive
icon gone after update bookmark - 7d938f3 Fix: checkbox in dialog doesn't work
- 9835336 Fix: grid layout on dialog
- 9e962f0 Fix: now cookie set per subpath #39
- 9ba9d1e Fix: wrong query in PostgreSQL
- 59a0594 Fixed some typos
- 752d1ba In no-thumbnail mode, make margin more consistent
- 4eb86d6 Initial PostgreSQL support
- 99d2793 Initial support for subpath #39
- 3a9e53c Initial unit test..
- df98c28 Make MySQL address changeable #156
- 0bc1b4a Make sure archive use UTF-8 encoding
- 5601ac7 Merge branch 'master' into patch-1
- 6b16943 Merge branch 'master' of github.com:go-shiori/shiori
- 4d11e35 Merge pull request #158 from disposedtrolley/api-documentation
- 2cd1b6a Merge pull request #162 from deanishe/default-title-from-page
- 7d3f8d7 Merge pull request #164 from deanishe/fix-mysql-schema
- d3d4cc0 Merge pull request #167 from ReekyMarko/patch-1
- c2eee1d Merge pull request #170 from bvp/master
- a7b41ae Merge pull request #177 from bvp/master
- 8146d3a Merge pull request #192 from agorf/patch-1
- 599afea Merge pull request #199 from nfam/master
- 243a88c Merge pull request #202 from nfam/master
- a0d727b Merge pull request #205 from nfam/master
- 9f7c8bf Merge pull request #206 from khoanguyen96/fix-js-mimetype
- 60b7f29 Merge pull request #221 from deanishe/fix/autofill
- b7a5a61 Merge pull request #223 from deanishe/fix/mysql-charset
- 4ff6ddd Merge pull request #246 from Midek/master
- 7124dc2 Merge pull request #258 from go-shiori/ci
- ff5c464 Merge pull request #259 from go-shiori/fix/exit-status
- a950bfe Merge pull request #264 from lapwat/master
- cf88489 Merge pull request #341 from n8225/updateDockerfile
- 1338dc6 Minor improvements and typo fixes in the README text
- 035658d Move heroku button to badge for consistency
- a3e1563 Move warc to another package
- 52bb4d9 Prevent browser doing MIME sniffing #182
- ee877b8 Remove Radhi's accounts from GitHub Sponsors
- 748b306 Remove golang from final image
- 2b4fd9f Remove unneeded alter table transactions from sqlite (#372)
- f316cb8 Restructure build files
- 7688990 Revert "Restructure build files"
- d05d1ad Setup new CI/CD workflows (#365)
- a4dd1c8 Specify character set when creating MySQL table #188
- 9f145e2 Tidy up code for opening database
- b137fe4 Tidy up docs files
- f1c98a8 Update Dependencies and Replace mattn/go-sqlite with modernc.org/sqlite (#345)
- 3d74038 Update links and email addresses
- ff94c36 Update notice about maintainership
- c77b17c Use formatter in LESS files
- 988f2d6 Use single quotes for better compatibility
- 3077c7f Use tab instead of spaces
- 83e3621 bug: Docker build
- d70a8f2 chore: configuration for stale bot
- 91e1bc8 chore: stalebot for pull requests
- 3c8a66f chore: updated readme
- feb150f ci: github action to notify releases via irc
- 92adfa6 feat: add postman collection
- fb0bf38 feat: async content download when creating via api (#368)
- a76b121 fix: golangci-lint errors (#366)
- d569932 fix: remember me session duration (#346)
- 0bd297d fix: update bookmark on sqlite database (#367)
- 2ca628b hotfix: fixes session duration from #346
- 3fe593d update url also when offline mode
- d1d48ad wrap mime.TypeByExtension with preset mimetypes
What's Changed
- Default to webpage title, not URL, if user specifies no title by @deanishe in #162
- Fix MySQL schema by @deanishe in #164
- Fixed some typos by @FunctionalHacker in #167
- Adds Postman Collection for /api/ endpoints by @disposedtrolley in #158
- Initial PostgreSQL support by @bvp in #170
- Added Heroku deploy. Fixed #45 by @bvp in #177
- Fix: Safari does not accept document.baseURI for cookie path by @nfam in #199
- Fix: Bookmark content displays Invalid Date if database is PostgreSQL by @nfam in #202
- Fix: grid layout on dialog by @nfam in #205
- wrap mime.TypeByExtension with preset mimetypes by @cocoastorm in #206
- Fix login autofill by @deanishe in #221
- Specify charset for MySQL connection by @deanishe in #223
- Minor improvements and typo fixes in the README text by @agorf in #192
- Continuous integration by @deanishe in #258
- Exit with non-zero status when commands fail by @deanishe in #259
- update url also when offline mode by @Midek in #246
- bug: Docker build by @lapwat in #264
- Remove golang from final docker image by @n8225 in #341
- Update Dependencies and Replace mattn/go-sqlite with modernc.org/sqlite by @n8225 in #345
- fix: remember me session duration by @fmartingr in #346
- fix: lint errors by @fmartingr in #366
- Setup CI/CD workflows by @n8225 in #365
- feat: async content download when creating via api by @fmartingr in #368
- fix: update bookmark on sqlite database by @fmartingr in #367
- Remove unneeded alter table transactions from sqlite by @n8225 in #372
New Contributors
- @deanishe made their first contribution in #162
- @FunctionalHacker made their first contribution in #167
- @disposedtrolley made their first contribution in #158
- @bvp made their first contribution in #170
- @nfam made their first contribution in #199
- @cocoastorm made their first contribution in #206
- @agorf made their first contribution in #192
- @Midek made their first contribution in #246
- @lapwat made their first contribution in #264
- @n8225 made their first contribution in #341
- @fmartingr made their first contribution in #346
Full Changelog: v1.5.0...v1.5.1
v1.5.0
Today Shiori v1.5.0 is released after almost five months of development (with several long breaks between). This release is quite huge with many changes and improvement from older version. Granted there are still some rough edges, but I think it's still usable enough to release.
Back-End
- Use Go modules. Thanks to this, we don't need to use Git submodules anymore to include
go-readability
. - Restructure code following Go Project Layout.
- Huge update in
go-readability
. Now it closely follows code in Readability.js, which means it now as accurate as Firefox reader mode. - Removed
account
command. Before, on fresh install, to access web interface we need to manually register account. This is quite annoying, especially if we are using Docker. Now, on fresh install we can just login using default password and account (shiori
with passwordgopher
). - Replace JWT with simple session for login. Before, if an account already login then admin removed that account, the account can still access the web interface as long its JWT key is still valid. Now, thanks to session, if an account got removed we can do mass log out for that account.
- Use favicon as alternative if hero image doesn't exists.
- Resized thumbnail image to 4:3 aspect ratio. This is done to make all image looks consistent. If the thumbnail image doesn't have that ratio, it will be padded by color that matches with the image.
- Add support for MySQL database (#81, thanks to @peteretelej for the groundwork).
- Add initial support for archiving the entire web page. Before, Shiori only saves the output of
go-readability
which sometimes not really good (for example is Stack Overflow). Now, when requested Shiori will archive the web page with its entire resource. - When a bookmark is archived, the reader mode will uses images and other resources from the archive instead of the one from original site (#108).
- Add support for bookmarking non HTML URL (#77).
- Add support for bookmarking non reachable URL (#128).
- Fix failed to delete many bookmarks at once (#104).
- Add option to specify address and port number while serving web interface (#101, thanks to @contradictioned).
- Add portable mode (#126).
- Set user agent for downloading and archiving an URL (#127).
- Add support for searching in bookmark's excerpt (#134).
- Add
check
command to find bookmarks that no longer available online, thanks to @sascha-andres. - Other minor improvements in CLI, which I forgot the detail.
Front-End
- Use ES6 feature like modules and arrow function. Thanks to modules, I can (kind of) imitate the Vue's single file component without using JS bundler.
- Use
fetch
instead of third party library likeaxios
. - Increase font size to make it more readable.
- Move actions from sidebar to header.
- Revamped the mobile view.
- Revamped options page and add account management.
- Uses history state so back and forward button works properly. Thanks to this, now search result can be shared via its URL (#111).
- Add icons which shows if bookmark has archive or readable content.
- In list mode, make layout tighter to give space for more visible content.
- Now bookmarks is sorted by last created instead of last modified.
- Add initial support for web extension to replace bookmarklet.
- In Firefox for Android, make the address bar gone while scrolling.
- Display creation and modified time in local timezone instead of UTC (#103).
- Make Vue.js doesn't uses development mode in production (#106).
- Add
rel=noopener
on link that open in new tab (#105, thanks to @sascha-andres). - Group bookmarks that tagged or untagged (#109).
- Add support to flag whether a bookmark is public or private (#112).
- Add support for account's level. Now, we can specify whether an account is the owner (i.e. can add and edit data) or only a visitor (i.e can only read the data) (#137).
- Add tag's auto completion in edit dialog (#135).
- Add menu to rename the existing tags (#136).
Future Plans
There are still several issues and feature that I want to be implemented in the future :
- If you look at the source code, you will realize that there are no unit tests. None, at all.
- Some feature is available in web interface but not in CLI. For example: renaming tags and flagging a bookmark as private or public.
- I haven't extensively tested the import feature. The issues about importing bookmarks (#121, #125) mention that they have a lot of bookmarks to import. Meanwhile my bookmarks at most only has several hundred entries which is not near enough to what they have. Thanks to this, I haven't been able to reproduce their issues. If any of you willing to submit your bookmarks, feels free to email me.
If you like this project please consider donating to me either via PayPal or Ko-Fi.
v1.0
This is the first stable version of shiori
. The stable here means two things :
- It doesn't crash or error as often as before, so it can be used for daily use.
- The database and directory structure has been fixed, so future update should be backward compatible with this release.
There are several changes compared to initial release, but (IMHO) the most important are :
- Huge UI redesign
- Add import from Pocket
- Implement bookmarklet for faster bookmarking
Initial release
Thanks to Go, this app should work in Windows, MacOS and Linux. However, since I only able to test it in my workstation, I only put the binary for Linux 64-bit. Sorry for the inconvenience.