Can Logseq be used for larger, structured documents?

Hi all! First of all thanks to everyone, in particular the dev, for such a great tool!
I am completely new to it, and am trying to figure out if it can work for my use case.

I have read several guides on Logseq, and watched a few youtube videos.
I think I understand how to use logseq for short, quick notes. Basically it is about very easy entry in the journal, and the retrieval of this data is later performed via the pages/tags entered inside the block. The page/tag will contain many blocks of diverse, small bits of information.

However my use case is different. I have a bunch of large, structured notes. Each note has multiple headers, with multiple subheaders. The way I am currently handling the entry of new information is by going to the right directory on my computer, opening the note, looking for the right place to add the information in the document, and then adding it.
So currently, the way I enter information is very slow compared to logseq.
However, the retrieval is very efficient, because my documents are very structured.

After my initial research, I couldn’t find a way to use Logseq in a way that will generate large, structured documents over time.

I guess the workflow on Logseq would be something like:

  1. retrieve the right page/tag via a search
  2. read the page, add the block at the right location

However, is that approach going against the spirit of Logseq? It feels that pages contain a lot of automatically generated references and back links, so it feels not meant to generate large structure documents?

Let me try to take a concrete example to make it clearer.
In my current, simplistic, note-taking system (simple documents on disk), I have a file “Vehicules”, that has many headers and sub header.

I have a new piece of information, which is that a friend just gave me a tip on how to repair a specific part of a snowmobile. In my current process, I would go to the file explorer on my computer, open the Vehicule file, go to the subsection Snow vehicules / Snowmobile / Repair, and add the info in a new bullet point.

How should that task be accomplished in Logseq? How can I end up having a structured page with all the correct headers and subheaders?

Thanks for any pointer!

2 Likes

Hi @unclebobby, new user here too! I started exploring Logseq’s functions last month and might therefore not be your best guide, but I’ll give you my 2 cents anyway.

Changing from ‘old-fashioned’ document writing software like MS’ Word or Apple’s Pages to a note-taking app like Logseq is a giant step. You’ve probably already noticed Logseq can be used in many different ways. I believe the most important thing to remember is to do it your way! Take it easy without being too concerned about whether the software is ‘meant’ for your way of using it. In the beginning just make sure it simply works for you, which will change over time anyway… I would therefore not change your current workflow too much in the beginning to increase the chances of you still using Logseq in a few years from now.

For your current folder/tree structures you could use namespaces, see this and/or this video if you’re not aware of its functionality. {{namespace NameOfPage}} generates a nice overview.

To get an overview with all (sub)headers of a page you could use the TOC generator plugin. You’ll have to change its defaultHeadingType setting from ‘any’ to ‘h’ for it to generate a table of contents based on headings only.

Another option would be to stop using headers altogether and replace them by separate pages or (sub)blocks now you’re trying outliner software like Loqseq. The nice thing of using blocks in Logseq is that when you click on its bullet point it automatically hides the other parts of the page and will show you clickable breadcrumbs on top to let you know what you are currently seeing or focussing on.

Also this video about the differences between blocks & pages could be useful.

I hope this helps, good luck on your journey!

1 Like

Hey, thanks for that, I will look into it!

Logseq has very general and powerful tools, it’s a up to you to combine them in your personal workflow!

At the moment my workflow is this one:

  1. I have a Telegram bot and everything I write in its chat room appears automatically in my Logseq journal, very useful for quick notes
  2. I review my journal and move notes in appropriate pages
  3. I use properties to create a relational database of different “objects”, like books, authors, videos etc. Each entry has its page with my notes about it.
  4. I produce very long and structured pages I call “compositions” where I eventually embed blocks from other pages. I use headings and indentation to structure them, then I convert them into PDFs using Pandoc.
1 Like

Thanks for sharing your thoughts @alex0.

2 => That’s interesting. I thought the idea of Logseq would be that the tool itself takes care of linking your notes appropriately to your page, rather than you moving them yourself to the appropriate page. Could you explain why you are doing that, rather than using the automatic “reference” functionality in the page?

4 => that’s where I am stumbling, and struggle to visualize how it actually looks. Are you able to expand on that, maybe share an example/screenshot of how it looks?

Logseq creates a so called “knowledge graph”, something used in informatics to “understand” walls of unstructered text for example. It’s also used for recommendation algorithms in social media platforms.

In Logseq the information is contained in so called blocks and references is the main way to link those and create context.

In my opinion this method is very powerful if combined with automated tools (maybe Machine Learning algorithms) but with the current Logseq UI/UX retrieving information is too much convoluted.

This is why I mainly use Logseq as a personal wiki and personal relational database: pages in my graph are supposed to look like Wikipedia pages about that thing.

For example if I have a page about a certain author it will contains information about them as an introduction, a query to lists their books or other kinds of publications, a query with quotes, my notes on them and so on.

A “composition” page in Logseq on the left and the exported PDF on the right (sorry it’s in Italian). In this case I used Logseq built-in feature to export it to plain Markdown with no indentation and then used a tool called Pandoc to convert it into a PDF. Tip: you can add a property to a page like “exported-pdf::” and add a link to the PDF as an asset there, then a query table in a general page listing all compositions would have a column with links to the exported PDFs.

“Compositions” are long like a chapter of a textbook and are supposed to cover a certain argument with a logical thread and storytelling.

In my graph view, compositions are usually linked to many other pages; for example if you take a chapter from a math textbook it will mention a lot of math objects and theorems that both have their own pages. Chapters would form a system of planets and definitions and theorems their satellites. This way by looking at my graph view I can clearly see “areas” with blurred borders because satellites are shared between different planet systems.

3 Likes

Thanks a lot for this very detailed answer. It is very useful, and your usage is much closer to what I want to do.

I am also wary of having many blocks in my journal, linked only with tags. I want much more meaningful structure.

It sounds that you are managing to make this mindset work in Logseq, so it’s encouraging.

There are two other points that are a little bit concerning to me:

  1. How do I retrieve the important pages/entry points in my workflow? I can imagine after a while that you have hundreds of pages/tags. But only a handful of them are the “real” entry points. For example, entry points would be the high level task that I am accomplishing. It could be the pages “ProjectClient1”, “Taxes”, “Vehicule Purchase”. But how can I differentiate them from other tags, that could be very closely related? How do you solve that problem?

  2. How much are you locked in the Logseq ecosystem once you start? My understanding is that it ends up being markdown files in the journal or pages directories. Can you have control of how the files are named, in case you want to browse through them with another tool? Is it standard markdown that other tools can read easily?

Personally I solved this by using some pages as “indexes”. For example the most important one for me is Contents.md where I have to lists:

  1. One with areas, in my case math, physics, engineering etc and their sub-fields
  2. One with types of content, like notes, compositions, definitions, theorems, books, authors etc

According to what I’m looking for, I choose the best entry point. Pages often contains table queries listing related stuff, for example [[Books]] lists books from every author. It’s kind of file systems with folders and files but virtual so that the same file can be on different paths.

The linked references section at the bottom of a page already provide a way to browse things related to a page but I like to structure a page with table queries. Using templates and macros I make sure that when I create a page for example about an author it contains two queries lists publications and quotes. Columns in page queries can be used to sort entries.

This is a very important matter to me and it would take a lot to write everything here, I hope to write a structured document about this, but here there is a quick answer:

  1. You can write standard Markdown files with Logseq, eventually removing indentation when exporting them. Some Logseq syntax is pretty standard, like [[wikilinks]] that are used even in Wikipedia and are supported by other tools like Obsidian and Roam. Some Logseq features like queries or block references are very Logseq-specific. So it depends on what features you use.

  2. You can read and manipulate Markdown files with other tools. For example I have one tool that extract #hashtags from Markdown files and applies them as tags to the files so that I can browse them with my file manager.

  3. Folder structure of the graph in Logseq is independant from Logseq data structure, so you can manually organize .md files in subfolders of /pages or even of /. Same for assets, for example I have /assets/export for PDFs I exported from Logseq pages. You can also move a page and its assets together in one folder, but you need to update the references to those assets accordingly.

3 Likes

Thanks a lot for sharing all this.
This is super interesting, because we are thinking in very similar lines. What you are explaining is the first time I read an explanation that works for how I want to use it as well.

Another random question, I don’t know how security conscious you are, but how do you satisfy yourself that there is no spyware hidden inside the code or its dependency somewhere?
I’ve gone through the code as deeply as I could in half a day, and there are a great number of dependencies.

I saw that the app is making network connections (downloading and uploading data via the internet), adn this always makes me a little nervous when it’s not my own code.

These days it is not doable to check all the code we run.

We rely on two aspects:

  1. Is it convenient? If a project like Logseq introduced malware it would be discovered sooner or later and it would be a disaster for their reputation. Even for closed source software you can analyze network usage with a packet tracer like Wireshark.
  2. Damage control: modern platforms isolate applications as much as possible. On Linux Logseq is available as Flatpak, so you can restrict it to access only the folder where your graphs are and remove network access. Again on Linux Logseq supports Wayland natively, so if you are on a Wayland session Logseq has not obvious ways to interfere with other applications, for example it can’t act as a keylogger. Same goes for Android.

The real issue is plugins unless you don’t restrict Logseq network access. A plugin developer is not discouraged by 1).

1 Like

Ah that’s very interesting. I think sandbox type solutions like Flatpak and Wayland are strong solutions.

Do you have any thoughts by any chance for a solution for macOS?

Never owned a Mac, sorry

1 Like

No problem, thanks a lot for all your thoughts. I’ll take the plunge! :slight_smile:

1 Like

I like the idea how you use the Contents page. How did you manage to create the 3 columns?

Kanban from this plugin: GitHub - cannibalox/logtools: Logtools: utilities for Logseq (kanban, image gallery, priority matrix, ...)

1 Like