V0.5
GoPage V0.5
A rather beefy update to GoPage. Focused on getting all aspects of the application to a usable point. Which means large efforts were made to design, functionality, consistency, features, easier maintenance, and so on!
The biggest take-aways of this release:
- Search bar on Home Page to search Link Items.
- Colour and Style options available on Link Items.
- New Supported Languages.
- New HTTP Logging options.
- Improved Design
- Improved Security
- Improved User-Experience
- Improved Speed and Responsiveness.
- Reduced Network load.
Installation
- Windows
Unfortunately there is no Windows Installation for this release. - Docker
Runningdocker pull ghcr.io/confused-techie/gopage:0.5
to grab this release and rundocker run -p 7070:8080 --name GoPage ghcr.io/confused-techie/gopage:0.5
Although many Environment Variables are available to set here. Refer to the documentation for further information.
Features
- Improved snackbars in many ways, such as integrated modals for additional details, classes to change look depending on result, Longer animation, hover persistence, and indication on clickable Icons.
- Able to set the type of robots.txt file to use depending on deployment.
- Added additional HTTP logging options.
- Created Searchbar for Link Items.
- Custom Colour Option for Link Items.
- Optional Style option for Link Items.
- Removed the need to reload via hot-reloading of pages after changes are made.
- Supporting additional languages.
Enhancements
- Stylized the modal.
- Introduced loading icons across pages as needed.
- Redesigned many aspects of the application.
- Proper JavaScript documentation to reduce barrier to entry of contributions.
- Passed responsibility of Translating strings to the template engine. Involving many benefits based on previous query based approach.
- Improved network resource usage, load times, and CLS across pages.
- Increased security of GoPage with Log Injection Avoidance, and Path Traversal Avoidance functionality.
- Removed Plugin Icons instead showing an icon based on type.
- Implemented on-the-fly GZIP Compression of assets.
Fixes
- Fixed 'Create Link Item' link in First Time Setup.
- Background Image 'Choose File' being left aligned.
- Fixed snackbar flickering.
New Plugins
- Self Hosted Icons: Get self Hosted High Quality Icons alongside their links.
Change Log
- Complete redesign of the Header.
- Created additional Templates & Sub-Templates for building pages:
- Header
- Footer
- Removed styling to edit & delete buttons. Instead using the consistent styling
grow-shadow-hover
- Reworked universal.css to be easier to manage and edit, using build tools to concoct all modules into a bundle and serve the minified version.
- Reworked snackbars entirely, focusing on consistency, reusability, and non-blocking behaviors. Meaning all pages are now using the same snackbar, and same invocation functions, as well as many elements originally being part of modals are instead migrated to snackbars. With simpler text & UI, with the additional benefit of having these messages easier to localize.
- Improved translations application. Instead of relying on API requests, moving that responsibility to the template engine, allowing them to build at page build time rather than after. This also has many other benefits:
- Less chained requests during page load
- Significant network resources savings, as nearly all strings are supplied at page build.
- String lookup table is no longer required having been phased out entirely.
- Fixes a bug where some items will not be translated if more than one of an identical string appears on page.
- Fixes a bug of the text flickering while being translated, or appearing slightly after page load.
- Additional languages supported.
- Started using @confused-techie/CompactIgnore to manage all .ignore files as needed.
- Added many missing strings into translations:
- Upload Image Page
- Settings Page
- Link Item Validation Messages
- LinkHealth now returns a response if no issues are present.
- Brought all settings values into templating engine for Settings Page, fixing bug that would cause text to flicker. Also resulting in faster load times and faster speed index.
- Toned down over-enthusiastic gradient designs across pages.
- Increased global styles to bring further page consistency.
- Migrated to singular Universal Plugin Item Structs, resulting in less disk reads.
- Introduced Robots.txt to help prevent bot crawling if desired.
- Added Preload for custom fonts, reducing 'Time to Interactive' from
0.5s
to0.4s
- Removing category filter from JavaScript based injection, instead again handing this responsibility to the template engine. Reducing CLS to 0. With no visible obvious page injections on the Home Page.
- Hot-Reload added to Plugin Repo and Home Page to prevent the need for refreshing.
- Complete rewrite of the Edit/New Link Item Modal and its accompanying JavaScript.
- Added HTTP Logging in custom format for standard page loads, and any unresolved page loads.
- Implemented a custom 404 page.
- Added animation to the snackbar icons to indicate when the icon is clickable.
- Added hover persistence to snackbars to allow ample interactive time.
- Increased amount of time snackbar is visible.
- Fixed Snackbar flickering bug by relying on animation events to hide snackbar rather than timeouts.
- Added Custom , common, and combined HTTP logging to GoPage.
- New section in settings to modify server settings.
- Simplified Golang disk operations with Read and Write packages.
- Increased Link Item spacing.
- Additional hover affects to Link Items, creating border to appear on hover.
- Improved responsiveness in background image.
- Implemented on-the-fly GZIP in assets directory. Reducing network load by about 100kb, and average asset load from ~60ms to ~1.8ms.
- Edit/New Link Item Modal properly clears itself after use.
- Custom Colour option for Link Items.
- Fixed bug from migration to mux handlers that caused a 404 on API Link Item deletions.
- Added Hot-Reload to Background Image.
- Added style option to Link Items, with different built in styles.
- Removed unused images.
- Fixed centering issue for 'File Upload' on Upload Page.
- Fixed First Item Link in the First Time Modal.
- Search Engine created and implemented in the Home Page to search for Link Items.
- Migrated Link Health Page from JavaScript to Golang, improving Page Load Time.
- Added proper JavaScript documentation.
- Implemented Path Traversal Attack Prevention.
- Reducing duplication throughout, resulting in smaller builds.
- Removed Icons from Plugins, instead showing an icon based on plugin type.
- Added Header Plugin Editing features.
- Plugins are now listed as available in alphabetical order.