peterhil / spellbook Goto Github PK
View Code? Open in Web Editor NEWSpellbook is a WebExtension to easily add new bookmarks to correct categories
License: Mozilla Public License 2.0
Spellbook is a WebExtension to easily add new bookmarks to correct categories
License: Mozilla Public License 2.0
(Sorry for Bad english) When clicking on the Button right to the CategoryField it should open the DropDownMenu longer, where we can see all the Folders, because now i can not see all my Folders.
There are Solutions to this how to do it:
-On clicking to the Button a new windows opens instead the Dropdown menu.
-Make the Dropdown menu longer that we can see the subfolders too
Maybe I can help you when i have instelled the Development Tools.
Use Dragula for drag and drop.
You might have many categories which have the same name, for eaxmple "Tutorials" for different programming languages.
To make things easier to find, sort the results first by the category name and then by the parent category name.
Edit:
Now the sorting actually works in tree order (the order the bookmarks are in) – and this could be made alphabetic.
The above sorting could be an option in the UI or preferences.
Notes:
Tasks:
Enable modifying and organising existing bookmarks from the popup.
The default keyboard shortcut does not work in Firefox 88 on Linux. Change it to something that works on:
These shortcuts might work:
Or just use Ctrl-B everywhere?
Other options:
Notes:
Chrome on Mac:
Firefox on Mac:
Firefox on Linux:
Validate the popup for empty category on submit.
Currently the popup just closes now without saving the bookmark.
Chrome bookmarks uses Javascript to make resizing the left pane easy.
Implement similar functionality.
Version 0.4.0 will have options page, and some useful cleanup and privacy features in there.
Tasks:
Consider:
Candidates to move to background:
Add a feature on options page to remove empty bookmark categories
Keyboard shortcuts for select all, cut, copy paste and so on.
Implement search, filtering and sorting options for categories and bookmarks on left and right pane respectively.
Left side:
Right side:
Cancel promises with something like AbortController for fetch.
Bluebird offers cancellable promises and there are other options.
For custom implementation the structure of Promise cancellation could be something like delayedExecution even though this handles callback execution.
There are a lot of bugs on Firefox related to this:
After investigating this, I think the problem is that the dropdown should be hidden with JS after a selection is made, and remove the styles that keep the dropdown open on hover.
show more
and show less
buttons. It uses Flex styling and some CSS utility classes like desktop and inTab.I want to add support for Firefox using test driven development.
That will also help me writing good quality browser (integration/functional) and unit tests for Chrome, which do not still exist.
– Sinon-chrome could be used for mocking and spying the browser APIs
– Puppeteer is a good candidate for implementing live browser testing.
The Browser APIs should be abstracted by functional strategy pattern and code from other parts of the extension than platform/
should not call different browser APIs directly.
Try out WebExtensions polyfill by Mozilla or Web-Extension Polyfill for TypeScript
if using Typescript already.
It's also possible to use Promises effectively using two-way messaging. Communication between a background page and a tab content script, for example, looks something like this from the background page side:
browser.tabs.sendMessage(tabId, "get-ids").then(results => {
processResults(results);
});
Show when a bookmark is already saved for the current URL.
Tasks:
Use different styles sheets for directory and popup, but also import common styles into them.
Following components have styles in them – check them:
Enable browsing existing bookmarks from the popup without adding a new bookmark
For updating the child categories, see on:categorySelection={updateChildren}
on ChildCategories.
Currently the current tab information is unneccessarily followed on the background page. Change this to only query the active tabs when the popup is opened.
This will also enable bookmarking multiple tabs at once, when the slider UI element for multiple bookmarks is implemented.
Thanks for your work on this so far.
It'd be really useful for me to be able to trigger your extension to add a bookmark using a right-click on a given link without having to visit the page, as is possible with the regular bookmark function in Firefox. This seems like a scenario not unique to me and I hope it's ok that I suggest this as a feature to add.
Thanks again for this extension. If it wasn't so useful I wouldn't be bothering you with two ideas to expand upon its functionality! This is much more specific as I don't know if the bookmark tags in Firefox are widely used, and Chrome doesn't have this feature at all. But I am assuming users of your extension will be very keen bookmark users and more likely to use it than most.
It'd be nice to be able to set bookmark tags. I am currently doing this by just clicking the blue star in the address bar which is perfectly adequate, but I think this would be an appropriate addition and streamline workflow for those of us who do use tags.
Enable editing existing bookmarks instead of saving new ones.
Tasks:
Currently there are translations for English and Finnish. High quality and maintained translation contributions are welcome for other languages.
This commit on v0.3.2 shows what is needed to make a new translation.
– Write a new file _locales/en_GB/messages.json
under subdirectory with en_GB
replaced by the correct locale code
– Add copying of the new file to rollup.config.js
In the future, using wet-layer and web-ext-translator might be an option.
This enables saving multiple bookmarks or editing multiple existing bookmarks from the popup.
Get the selected tabs with query: {currentWindow: true, highlighted: true}
.
Ideas:
Optimise asynchronous requests to browser APIs to improve responsiveness
The add bookmark popups for Chrome and Firefox provide a way to create new categories.
Implement Pinterest-like or similar functionality for this.
Dropdown visibility logic is currently very cumbersome. It would greatly benefit from using Svelte store for state management.
This allows flexible UI for:
Tasks:
Use derived store to get category search results quickly
Installed 0.3.7, first time trying spellbook. Folder search is awesome :)
Often (but I can not reproduce 100% of the time) the wrong URL is present on screen in the add bookmark widget (e.g. about:blank instead of the address in the address bar), sometimes the wrong title is present too (and wrong URL).
The wrong title is less frequent.
To "fix" it I end up closing tab, reopening and copy.pasting URL which works on about the 3rd try.
I do have a lot of tabs in case that helps
Use store for all bookmarks
Questions:
Chrome shows recent categories on the popup, and even preselects the last modified category.
Websites that change the window title on notifications cause the popup to show information for the page that was last changed – even if it is not the active one.
The bug is caused by currentTab stream not properly filtering these changes out. Or in other words, it should only emit events on user generated changes.
The solution is to make sure that only user generated changes to title or url pass the filtering on currentTab stream.
This is a long standing bug, where adding a subcategory would not add the bookmark, but just the subcategory.
Investigate using Rambda
Try out Vite and/or Snowpack (unmaintained)
Tried out:
Ended up coming back to Rollup, because it allows precise control on how the packaging and code splitting works.
Vite seemed promising, but it is too much intended for web sites. On the plus side it handles Typescript out of the box.
I gave up on ESbuild, because the plugin scene seemed unmaintained.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.