penge / my-notes Goto Github PK
View Code? Open in Web Editor NEWSimple and fast note-taking in Chrome with Google Drive support.
Home Page: https://chrome.google.com/webstore/detail/my-notes/lkeeogfaiembcblonahillacpaabmiop
License: MIT License
Simple and fast note-taking in Chrome with Google Drive support.
Home Page: https://chrome.google.com/webstore/detail/my-notes/lkeeogfaiembcblonahillacpaabmiop
License: MIT License
Notes will be stored to Chrome sync (as are right now).
Everything else (font type, font size, current page, mode - light/dark) will go to Chrome local.
Reason:
Notes can be shared across computers.
Everything else is computer specific.
It seems that the new version of My Notes was disabled because it required another permission: to read my browsing history – something I wouldn't think necessary for a new-tab note-taking extension.
Could you elaborate on the permissions required by the extension? Something like "Replace new tab" would make sense on its own – it is, after all, decidedly a new-tab replacement extension – while browsing history access raises a bit of a concern.
After typing the note, I would open a new tab again, to see if my changes have been properly saved. Most of the time, the aren't. Often enough, latest-added words phrases are missing, and I can't be sure they will be saved properly once I close the tab I was editing in.
It would be excellent if I could jot the notes down and close the tab, knowing full well that everything I'd left on the "page" is safe with the extension.
Originally created by @FirebrandCoding here #46
https://github.com/penge/my-notes/tree/next
This message will be updated on new builds.
Having view-changing toggle hover over a portion of the text sounds like a UX accident waiting to happen.
My suggestion is to take it out of the scope of the text field, like this:
(I'm sure you can do better than this, especially considering how eye-catching the current-page black is.)
This eliminates the risk of mis-clicking while navigating the text and opens the doors for future page-related improvements.
Ideally, this means you can have as many pages as you want, since the container is flexible by default. (You could before, of course, but this form factor makes it much easier to navigate.) You can even resolve having more pages than is comfortable navigating on the device by adding a ...
pseudo-tab that lists all the pages à la Chrome's bookmarks.
If you want user control over their pages, add a +
button after all the pages, and a ╳
button (or a 🞡
-rotated button) for each page when there's more than one. Naturally, prompt the user before closing if the page contains any data.
My Notes 3 is almost here!
I am now testing the new features — it would be great if you could join!
Here's how you could help out with the testing:
See Testing Checklist for details.
Here's a list of things to test, which is also a detailed list of the new features. Any additional playing around is very welcome.
Create / Rename / Delete
Can create a new note (see New note button)
Can rename the note (see three dots button)
can rename the note from the NOTE_LIST
can rename the note from the NOTE_DETAIL
Can delete the note (see three dots button)
can delete the note from the NOTE_LIST
can delete the note from the NOTE_DETAIL
creating a new note with the name as deleted one should be possible
Editing
The new Editor can style the content, or insert the elements
CTRL+B
for boldEditing the note content is synchronized across the other My Notes tab(s)
Browser integration
The title in the browser's Tab should change accordingly:
Can use Back/Forward buttons (or associated shortcuts) to navigate between the recently open notes
Google Drive
Google Drive in Options does the following:
after enabled:
after disabled:
When My Notes is Open/Closed/Refreshed, or "Sync Now" is clicked, following should happen:
towards Google Drive
towards My Notes:
if Google Drive / My Notes folder is deleted by you, the synchronization should stop (and hide/reset the elements related to the synchronization)
if Google Drive in Options is disabled, the synchronization should stop (and hide/reset the elements related to the synchronization)
# MEMBERS
A=penge (me)
# RESULTS
A
1 +
2 +
3 +
4 +
5 +
6 +
7 +
8 +
9 +
- => not tested
! => not working
+ => working
I have tested all, but will do again.
If you'd like to join, simply let me know here. I will soon prepare the branch with a commit we will be testing.
manifest.json
and reload My NotesBefore the testing starts, the source code will be freezed and the branch / commit ID will be provided.
In My Notes 2.x, the selection saved using the context menu is stored to the top of 1/3.
My Notes 3.x will allow to rename the notes. Something like 1/3 is no longer fixed.
To solve this, there will be a special note added called Clipboard:
I have found note renaming (and creation) can be improved by removing the trailing space.
There are many great extensions that replace New Tab, but only one extension can do this at a time (which puts other extensions to the side).
I'll chose a different approach:
This will have several benefits:
Downsides:
When the scroll bar appears, the buttons (for dark mode & font size) appear over top of it.
Ideally, the buttons should be to the left of the scroll bar.
Editor in My Notes 3 can insert any arbitrary HTML. Meaning, if you find an image on the internet you'd like to insert, like a picture of a cake:
Simply right-click on the image and select "Copy Image" from the dropdown.
Then, in My Notes right-click and select "Paste".
This issue is created to primarily let you know this is possible.
And possibly to have a discussion how this could be improved, like providing a picture's URL and having it inserted.
It would be great if there was a save button. This would allow users to save notes to a file or within the browser for later use.
Related to #57: consider adding an option to focus the notes <textarea>
. This should make taking notes slightly easier if it's something you do often in the browser. The HTMLElement.focus()
method should assist with that.
Also, add Esc
keybind to escape <textarea>
focus and re-focus the address bar. You can use the .blur()
method on document.activeElement
to achieve that.
Add option to export notes.
Export – Open, Closed, or All Notes
Format – .txt
or .md
If exporting more than 1 note, put them in .zip
No need to save on Ctrl, Alt, Shift, arrow keys, or other.
Keys that don't change the text, will no longer trigger the save (because text remained unchanged).
A special exception is Tab and Ctrl+Tab as those will change the text, indent the text forward or backward.
I don't know whether it was possible to port the existing notes into the new version of the extension. Seeing how they're essentially the same item in the extensions menu, using the same Chromium API, I think that might have been possible.
Now that I've lost my notes, I think it's a good idea to remind you – as well as any developer reading – that retaining saved data over version bumps is really fucking important. Pardon the swearing: it's important to me that the weight of the matter gets across accurately.
At the very least, consider letting the users know that their data may be lost in transition, so that at least there's a chance to copy it to an intermediary text file.
(I'm naturally assuming you had tested the data retention behavior before releasing the the new version extensively.)
Focus mode will allow users to hide the controls in the corner (font size, light/dark mode toggle) and hence maximize the focus on the text area.
Entering or Leaving Focus mode will be done by a keyboard shortcut.
I assumed, on seeing release notes, that what the "Focus by default" option does is focus the <textarea>
element of the notes, making it easier to take notes when opening a new tab.
Instead what it does is engage focus mode.
It's an excellent option with an unclear title. Consider renaming it to "Focus mode on by default" so as to not confuse the user.
To new users, it may also be useful to explain what focus mode is. Consider adding a brief explanation of the different between default and focus mode under the category title or the checkbox itself in the options.
After updating to version 2.3.2 I can't get MyNotes to appear when I open a new tab.
Was there a setting before?
The site that you have provided is not found in chrome store.
Google Fonts is a library of a thousand beautiful fonts that can be retrieved in a simple way, and fast.
Here's a generic example how to retrieve a font:
<link href="https://fonts.googleapis.com/css?family=FONT+NAME&display=swap" rel="stylesheet">
font-family: "FONT+NAME", monospace;
This is how it would work behind the scenes. As for My Notes user, it would be more simple. Simple as typing a font name.
A new editor in My Notes 3.0 (see #72) can be improved to support Tables.
Required functionality:
Insert a new table
Modify the table size in the following ways:
I lost my notes yesterday and not sure what happened. Maybe because of the new update yesterday Jan 30? What I did was to reinstall the plugin again. Do you think in cases like this, we should be able to save it online instead of local storage?
Its an awesome extension, helping me a lot in day to day life. More wonderful features are also coming.
Was just wondering if there is any plan to add support for using Markdown, it will help me to have checklists, headings, sections, tables in a single place to manage my notes better. For e.g. I keep the sprint plan always handy in my notes tab (along with many other day to day notes or other important items for the project) and if I have the option to use markdown I will be able to manage them better.
Add a beautiful toggle to switch between Light Mode and Dark Mode.
This feature will have higher priority than OS settings.
Reasons:
Therefore, the preference of Light Mode / Dark Mode is not defined by OS, but by the user, based on his preference.
Like in title. White page is bad for people using dark modes.
Right now, font size is saved on every change (not really necessary).
To keep write quota within limits, save font size just once, during beforeunload.
beforeunload will be called when the tab is about to be closed.
Update to a new version can bring interesting features, and these can be overseen if UI remains unchanged.
The idea is to have notification that is displayed everytime when a new version has been installed.
Preview of the notification:
New version 2.3 has been installed.
See what's new Close
See what's new would open https://github.com/penge/my-notes/releases in a New Tab
Close would close the notification
Besides the chrome extension, My Notes could be used as a standalone app.
Add manifest, service worker registration, service worker.
Switch from chrome storage (not available in PWA) to IndexedDB (use IDB-Keyval wrapper).
Benefits:
Downsides:
I like this extension, but would really prefer to be able to set the font family of the notes, because I need the font to be monospaced for this to be useful to me.
I wouldn't mind opening a PR but I don't have a ton of free time at the moment. If you are open to it but don't want to implement, I'll see what I can do! :)
This. Is. Real. Stuff.
Save text only 1 time per 1 second to avoid MAX_WRITE_OPERATIONS_PER_MINUTE
quota which is to be 120 write operations per minute. Use debounce to do so, and set immediate to true.
User might open the window and quickly type something (not paste, but type) and quickly close the window. Leverage beforeunload event to save the text immediately in such a scenario.
Reason: This might happen very quickly, the window might be closed before debounce gets a chance to triggered again.
My Notes 1 and 2 are using <textarea>
to write down the notes in plain text. This doesn't allow to use styles to organize the content visually better. Here's how it can be improved.
This can be done either by creating something, or using existing solution. Creating something seems better as feature list is not huge and creating something is quite simple.
Here are some options for the reference and also inspiration.
Known WYSIWYG editors are:
Quill looks nice, but seems not maintained:
Known Code editors are:
My Notes will have a beautiful icon in the Chrome Extensions page.
There has been a requirement in having a Todo list.
I am now evaluating how that could be done and if it's necessary.
How I manage a Todo list and might be efficient, is like this:
This gives me an option to write down a Todo list with additional notes (which I found to be a good combination) or write down nested Todos (a combined task).
What do you think. Is a Todo list really necessary? Or is it already there?
Use viewport to achieve a good font size on Android / Kiwi browser.
When I click tab, it doesn't tab or space the text. Instead, it puts focus on the search bar.
It might be possible to add this functionality, but I'm not entirely sure how.
Maybe it can keep focus on the textbox and add a tab or spacing character to the textbox.
Let's be bold. Let's be strict.
"use strict";
Web Store interprets the permission called "tabs" in the worst case scenario, by showing a following message:
Add "My Notes"?
It can:
Read your Browsing history
The only message worse than that would be:
It can:
Read your Browsing history and send to a remote server.
This doesn't do good justice as it's claiming something that's not true. And just because something is possible with a certain permission, it's unholy to claim as a real thing.
This message is shown before installing version 2.3. This version requires "tabs" permission so it can replace New Tab as an optional setting, to show My Notes in New Tab. Prior versions did so declaratively via manifest.json
and it was no optional. Declarative New Tab replacement is limited and restricted compared to programmatic, and so it doesn't require "tabs" permission, but also doesn't bring further customization like the mentioned optional setting.
The proposed solution to this is:
Use IIFE to enclose the javascript from the outside world.
Tab
will switch between textarea and Chrome's search box.
Tab
will indent the text forward (-->
2 spaces)Shift+Tab
will indent the text backward (<--
2 spaces)That means, this will work only when no text is selected.
Forwarding selected text, or forwarding text selection, is much more complicated topic that can be solved in future. Same applies for Backwarding.
Edit: Especially when reaching the end of the line. Variable font and variable window width make it complicated to identify the end of line and when to stop.
History API allows to store the information of currently open note, and notes, that have been visited before.
Then, BACK and FORWARD in the browser, can be used to quickly navigate between last open notes. This can be also done using keyboard shortcuts (based on the OS you use). In Chrome OS for example, this would be very easy and fast with the arrow keys next to esc:
This navigation would not only be fast and better than currently defined shortcuts (jump to page 1,2,3) but also remembered on page refresh.
The font size wil be changable in a range (from, to) using cute buttons in the bottom right corner.
I tested with Firefox and the extension appears to work without any problems. The only change you'll need is to add a gecko id in the manifest.json file.
DAMN Chrome Storage. It has been updated, and it's faster. But not lighting fast as it should be.
There is a MAX_WRITE_OPERATIONS_PER_MINUTE. (which is 120)
Source:
https://developer.chrome.com/apps/storage
This solution will be quick. Instead of listening to "input" event, I will save data only on "keyup" event. Fast typers might need wait for further optimizations, but that will come next.
My Notes is a replacement for New Tab and therefore can be open multiple times.
The goal is to detect if there is (are) other My Notes tabs already open, and to keep edits only in one place (one tab). In other words, the goal is to prevent cross editing in multiple My Notes tabs. Cross editing can cause problems like which version should be saved last.
If there is already open My Notes in the browser, display a message or even better, display a Link, that will jump (highlight) to the tab with already open My Notes.
The goal is changed. Allow cross editing by saving pages individually (save only pages that are edited in the current tab).
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.