Home / GitHub Page

Include some of note body in Note List

I have used Evernote for, among other things, my journal for years. Each journal entry title consists of the date and day of the week, such as “2019-10-10 (Thursday)” for easy sorting. Today, the last notebook I copied over from Evernote was the Journal notebook, having decided to make the break over to Joplin for everyday use. However, the first thing I noticed was that, in Evernote, the note list includes 3 compressed lines of the body of the note, extra white space and line breaks removed. This makes a handy way to help locate something. By contrast, the note list in Joplin includes only the title, and looks rather barren in comparison to Evernote. I’d certainly like to see something like this as at least an option for Jopliln, which is just so, so close to being ready.

4 Likes

Hello there,
I second that! I have many notes (currently experimenting Joplin on iOS) and having just a tiny one line note title is not very convenient, sometimes I have a 2 lines note that I would like to read without opening it.

1 Like

Just for reference here is an open issue related to this topic https://github.com/laurent22/joplin/issues/1494. It looks like no one has picked it up but if it gets enough attention in the forum then someone may pick it up and implement it.

1 Like

Joplin’s Android app is great. It’s simple but also powerful. I think the app’s biggest advantage over its competitors is this.

But I believe we really should have an option to view note bodies in the note list. Most of the popular note taking apps have this feature. And users are used to this. A lot of users (me too) just don’t even write a title most of the time. %50 of the time we just paste something important to the note body, and close the application. And when we want to find a note, we just scroll down on the list and find it.

That’s why, when I made the switch to Joplin, I found it really hard to use. After I imported all my notes from Google Keep, this is how the Joplin Android UI welcomed me:

Just stop reading and imagine using your Joplin like this for 10 seconds. Would you like this experience? I don’t think so.

The thing is, someone who is looking for a custom, free(as in something), personalised note app with the ability to sync with a custom server, is probably someone who is “taking” notes seriously. Which can also mean they already have like thousands of notes in another app.

Obviously some people would prefer a simple list with titles only. But in my opinion, not having an option to list notes with some sort of excerpt is a huge handicap. Especially for people switching to Joplin from Evernote, Samsung Notes, Google Keep, Standard Notes, Omni, Scarlet etc.

Unfortunately I don’t know much about React so I’m not able to help with it. But I guess this should be possible with only a few tweaks? Or maybe it can be easier to implement this with a grid view first. (Which is also a feature I think the app should have sooner or later. But again, should be optional)

In the meantime, I’m manually editing titles of 1200 notes from Desktop app :grin:

1 Like

Ouch. Best of luck :grin:

Though if you’re feeling adventurous, you could write a script that would replace the title with, I dunno, the first 80 characters of the note or something. :smiley:

Hello everyone! If this is something that a majority of users still want, I have the beginnings of a note list snippet view in my fork. I’d be happy to work on it further and make a PR if the devs are interested.

Screenshots:

1 Like

Personally, it’s not something I want.

I, for one, like it. This is a major factor keeping me from switching wholeheartedly from Evernote to Joplin. Thank you for your efforts!

Brt

It would be useful, but it depends on the implementation. It’s a feature that’s difficult to get right in terms of performance.

Do you mean performance in terms of fetching the note body? Or is it something else I’m missing?

It depends on your implementation, there are a number of ways to implement this feature wrong that would result in a performance hit. One wrong way would cause performance issues while fetching the note body. Another wrong way would be caching the note body in memory which would quickly cause issues for people with lots of notes.

I see. All I’m doing right now is to enable the note body in the preview function of the note model (it was actually there in a commented line) to access it in the display. Is this performance issue the reason it was disabled originally?

Yes. There’s no limit to how many notes a user can have and if you display all the notes, there’s potentially thousands of them being displayed at once.

Proper way to implement this is to load the body of only the displayed notes, and to cache the result to a size-limited cache. Ideally it should also only fetch from the database the start of the note body, not the whole body.

Got it. I’ll try to implement it this way and let yu know how it goes

I assume you will only even attempt to display the first 2 or 3 lines of any note, right? (Ignoring any line breaks so you always get that many lines of actual text, or maybe the first 80 or so characters, ignoring line breaks.) That’s all that Evernote does, and all I was asking for Joplin to do.

Yes, I think that would be suffecient. Right now, I’m just pulling the entire note body, but as discussed, that’s not effecient. I’ll change it to just pull the initial lines, then look into caching (which I’m not very experienced in :smile:)

Update: I have it working by retrieving the first 80 characters of note body only and using that as the preview. The logic is hard coded right now, working to move it to a new function.
Tested with 10 notebooks with 1000 notes each(1000 chars per note), no noticeable delays.

2 Likes

Is caching a neccesity? I have implemented it such that only the first 80 characters are fetched, and only for the notes of the current notebook. The update is also handled simultaneously with the update of note body (i.e, no additional requests to the database are made). As per my understanding, caching would require additional database requests to sync the cache with the databse at certain intervals (unless I’m understanding wrong?)

I was wondering, how does it handle the first 80 characters if they are not just text (like the screenshots) but include markdown? I ask as notes may start with a heading or even a table, KaTeX or a Mermaid chart.

Right now, I’m not verifying that. It is a valid concern, as most people would not intend for images/diagrams to be in the snippet. What do you think would be appropriate in this situation?