jonathontoon / manifest Goto Github PK
View Code? Open in Web Editor NEWAn instant grid-based pinboard for note taking in your browser.
Home Page: https://manifest.app
License: GNU General Public License v2.0
An instant grid-based pinboard for note taking in your browser.
Home Page: https://manifest.app
License: GNU General Public License v2.0
App can be installed using the Browser native PWA implementation.
No option is given.
Implement it ( see https://developers.google.com/web/fundamentals/app-install-banners )
Would be nice to have this app as shortcut installed in the system ( be it Windows, Linux, Android, etc. )
With numerous pinboards around, minimize option would really be helpful and a header to identify the type of pinboard.
<textareas>
has attribute spellcheck
to false
that cause MacOS text replacement to not works.
Given a replacement of tt
to tutu
When I type tt
plus a space
Then I should see tutu
Given a replacement of tt
to tutu
When I type tt
plus a space
Then I should see tutu
I see tt
-> no replacement cause of spellcheck="false"
I see tutu
-> Chrome ignores spellcheck
attribute or works differently
Remove spellcheck attribute. Why for a note app, you disable spellcheck?
Trying to write notes with my favorite text replacements
MacOS 10.15.2 on Safari 13.0.4
MacOS 10.15.2 on Chrome 80
Just answer a few of the accumulated questions since v1.0 release.
Tiring to repeat the same information.
Add it in the README.md.
Allow me to move or create memos without the viewport getting all messed up.
Quite hard to accurately use.
Some visual feedback that scrolling is possible.
Can scroll but not obvious.
I've used similar products like Papier (https://getpapier.com/) that have a New Tab Browser extension. I'd love to be able to use Manifest in the New Tab space. There are extensions that hack this but they are clunky and it seems like this would be pretty easy to execute on.
When I close my tab or browser and reopen the app my memo's will persist across sessions.
Nothing persists.
Possible implementation of a way to backup notes to somewhere other than the user's localstorage.
The notes could be written to a github gist, or saved to the user's cloud storage accounts.
Currently the notes are only saved to localstorage.
In order to match this project's goals to keep dependencies to a minimum, a "save" button could simply allow the user to download a text archive of their notes, which could be imported to the website at a later date.
File Uploads/Downloads are supported easily in all browsers
The risk/benefit of using a note-taking application is high when you cannot backup notes.
Hi,
I have been trying to access https://manifest.app/ for 2-3 days and facing issues. Any developments that made it unavailable? I have been using it and it's a pretty good project. I'd hope to see this project stay alive.
I'm currently playing around with a vanilla html
/js
project and getting started by mostly replicating the functionality here. Thank you for the great example.
I see that you use parcel, scss and follow the PWA guidelines on mdn. But I don't see in any of those technology choices guidelines that lead to the codebase here.
Is there a style that this code base follows? Or some formalized practice? For example: is it standard to handle mouse/touch events through document
in the style of this codebase? (add depending on target, remove on mouseup
) I interpret this style as a sort of "switch-on-target" global handler.
In my replication I added the handlers to the memos themselves and immediately saw why you don't do that: I can drag the mouse too quickly and lose the mousemove
handler.
I ask because every mature framework has its own formalized best practices and extensive documentation, but I can't seem to find that for modern html
/js
, at least in terms of the way that handlers are organized here with addition/removal and universally targeting document
. It's also clear that this is an extremely polished project and I would like to tap into that knowledge if possible. At the very least I still have your code to follow.
Again, thank you, it's been a fun learning experience thus far,
Jasper
PS: Feel free to close this issue immediately, apologies in advance if this is not the right medium for the question.
It would be great if the URLs in the note are rendered as "links".
URLs are rendered as plain text.
https://github.com/SoapBox/linkifyjs/
When I click and drag a memo's handle that it snaps to points in the grid as I move the memo around.
The memo moves around based on my mouse position but it's freeform. It only snaps to the grid when the mouse is released. Resizing however works perfect and as intended.
Kind of pointless to even have a grid if all movement doesn't snap to it.
"Cancelling" drag on new memos should result in them remaining where they were created.
See title.
Once the memo has been dragged to any position once, it will no longer jump back to X0/Y0.
See if top
or left
in /src/js/classes/memoElement.js β _handleDragStart()
returns a falsy value due to failing to snapToGrid()
on first non-drag.
Button to assist in transfer of all notes as a single string suitable for easy import/export.
No way to save notes other than in Local Storage.
button to uuencode or similar zipped archive of json structures.
or a control window with a menu. toolbox. toolbar. or hide it behind a set of keys.
Import/Export of notes without requiring a server. Great for todo lists from templates held elsewhere.
Use uuencode or similar (base64 is built in?) and it could make using on different devices easier without a server. Could have external scripts create lists etc then easily manually import in just by copy & pasting.
I should be stopped if I try to drag a memo outside of grid bounds.
I can drag anywhere.
This was love at first sight when I saw it.
The first thing that came to my mind is that the window size space can be very limited, especially on a laptop, and sometimes I want to have multiple boards so I can organize my notes into different areas (work, life, home, etc.)
So I thought a nice enhancement would be to support this via urlparams
Ex:
manifest.app -> general notes
manifest.app/#home -> home stuff
manifest.app/#work -> work stuff
manifest.app/#life -> life stuff
...
More like a feature request/enhancement rather than an issue
For richtext:
CMD/Ctrl + B for Bold, CMD/Ctrl + I for Italic, CMD/Ctrl + U for Underline, CMD/Ctrl + S for Strikethrough.
Markdown:
The best solution here would have to be in-line markdown syntax. Some thing like IA Writer or similar.
Plain text only. π’
Some kind of UI affordance or keyboard shortcut (preferred IMO) to create or delete a memo.
Nothing exists. π’
Basically memgrid is unusable until we add this.
It should work.
Some folks on Hacker News suggested someone with up on Safari browsers.
Let folks know they need to click and drag.
May be ambiguous for some.
Allow people to be aware of the dark mode toggle without seeing the README.md
The feature is a little ambiguous.
This is just a suggestion for taking a look into https://github.com/WICG/manifest-incubations/blob/gh-pages/note_taking-explainer.md
This didn't appear to exist when I looked at the manifest. I originally thought this was supposed to be a demo app for this feature, but have come to realize the name was coincidental.
Clicking is much easier and faster than dragging. The assumption is that some users may not need to define the memos' sizing before they'd even started the note-taking process. Quickly creating a memo to write in may serve that process better by eliminating unnecessary middle-layer interactions.
While it's easy to assume that most devices are going to have wide aspect ratio, this isn't necessarily true. Old monitors and mobile devices offer a different view on the grid, where creating long-by-default memos may hamper the experience.
The proposal is to have a certain set of limits (for example, a quick-created memo cannot be taller than 8 grid lines or wider than 8 grid lines), and orient within those limits based on device aspect ratio. If the device is wider, allow quick memos to be the maximum width on creation but limit their default height.
For a rough estimate, a 16:9 device would probably make a quick memo that's 8 lines wide and 4 lines tall. iPhone 5 (with its 16:9 screen) in portait mode would have memos 4 lines wide and 8 lines tall, conversely. (The quick calculation being Math.floor(aspect / 2)
.)
Larger devices may default to larger maximums, and vice versa.
That said, I'm pretty sure it's better to initially allow creating memos of a fixed size, regardless of aspect ratio or screen size, and progressively update into a more considerate process once time allows. Clicking is the better default, and improving defaults is more important than getting them right on the first try.
Just a small UX improvement. If there's one memo, or you just created one, focus on it's textfield immediately for ease of use.
Got to go click or tap on stuff, which is a little extra effort.
Dark Mode setting persists on close/reopen of browser or opening of new tabs or windows.
Manifest resets to Light Mode after close/reopen of browser window, or any new tab or window, even if not quit.
Possible to store setting with content?
Open, set, close window, reopen:
Safari Version 13.0.5 (15608.5.11)
macOS Catalina Version 10.15.3 Beta (19D75a)
The confirm()
dialog displayed when deleting a memo does a great job of preventing accidental deletion, but it's more likely that the user deleted the memo intentionally. Requiring confirmation disrupts the user's flow and can be tedious to interact with (e.g. when deleting several memos).
A snackbar with an Undo button seems like the usual way to do this these days.
The service worker is either not properly caching assets, or not properly retrieving cached assets when offline.
When network is not available, the service worker should check the manifest-1.0.0
appcache for an asset, and serve it from the cache if a match is found.
Original task -- #22, implementation in #69
When network is not available, the app does not load.
Pretty sure I have the solution, it's just a missing return value on one of the SW hooks -- will open PR momentarily.
Edit: #143
application
tab -> cache storage
-> manifest-1.0.0
-- confirm assets are being cachedthrottling
to offline
in chrome dev toolsI'm working on a similar lightweight utility app, and I checked out the Service Worker implementation on manifest as a reference. Super sick app by the way, huge inspiration!
Would drawing be a useful tool to compliment things?
Currently it's just memos, which aren't always the best way to express things.
The real deal breaker for me here is whether it would be grid-based or free form. Making it free might break the zen quality the current version has right now. Although grid-based might not be that useful? I'm also worried that creating memos and drawing would introduce specific modes for each tool, which I really think messes with the simplicity of things right now...
Need to think about this some more...
Work offline, cache assets.
Doesn't work.
It would be awesome to have a dark mode that uses CSS's built-in @media (prefers-color-scheme: dark)
method to automatically switch themes based on the operating system settings:
It'd be nice if notes had functionality. So you can pull up a new note and type in a command and then Manifest reacts on it. E.g.: a pull g-drive
command in a terminal window draws a tree of your files from Google Drive, in such a way the widget loads a new UI/window for manipulating your files, but the terminal disappears. Another e.g.: trellocard pending <description>
command creates a new card on the "Pending" board you have on Trello.
This is one of many commands that can be added. Inspired by the gimmicks of Slack.
Make things easier to read and follow
A single file performs well but is hard to parse.
I think memos should have a minimum size below which they can't be resized, regardless of the content they hold.
If they hold more content than their frame suggests, there should be a way to reach all of said content.
I understand the need to resize notes in free-floating note-taking apps. Sometimes, users might want to go to extremes with their notes for the sake of satisfying their personal preferences.
As a developer β and, coincidentally, as a developer of a side project that's similar in purpose β I consider that there are lines to be drawn. Notes must remain at least partially readable at any given moment. Users may make mistakes with the app, and it's the designer's job to make sure these mistakes are few, far between, and ultimately fixable.
On-resize calculations for width, height, and grid-snapping are not expensive. There may even be a CSS solution (perhaps setting min-height
might work?), which would be even more efficient.
Perhaps even βΒ and this is me dreaming aloud β set memos' width and height via their grid alignment: so that a memo can have attributes of data-height="3"
and data-width="7"
, which could be combined with pre-calculated grid section sizes to calculate the memo's viewport width. (How this is beneficial to this particular problem, I'm failing to see, either, but it dawned upon me, and I had to share.)
If I right click it just cancels the event and no memo is drawn.
You're left with a grey square on the board that you can't get rid of.
Hi,
Thank you for this awesome project! While exploring, I read about the dark mode
support. However, when I did try to toggle, using the alt + T
key on Chrome browser, it opened the Tools Menu bar
.
Toggle to the dark mode using the combination keys.
Open https://manifest.app
in a tab. Enter the alt + T
combination stroke. Opens the Tools Menu bar
on Chrome browser running on Ubuntu 16.04 OS.
If the text is long enough to overflow a note, a user is unable to scroll the content and it gets cut off.
Should be able to scroll and see the cut off content.
Unable to scroll and see the cut off content.
This line can be switched for overflow-x: hidden
to ensure overflowing content in the Y direction can still be scrolled.
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.