Eliminate the concept of pages

I understand the desire for further simplification, but Logseq’s current approach has its own advantages.

I use pages as the equivalent of folder-tags, that is, the …

… for each and every block.

New content is always added as blocks in the most relevant page, and then referenced elsewhere. This creates a node-edge system, where pages are the nodes and their content the edges, which works exceptionally well (that is, better than everything else I’ve tried) for me. The viability of this node-edge system relies on clear distinction between pages and blocks.

1 Like

Interesting. Do you mean you never link to pages? (i.e. in the graph they’re always “the root of a tree”?)

Links to pages are actually quite common in my workflow. An example:

  • [[Pineapple]] is a [tropical]([[the tropics]]) [[fruit]].

This block resides in the page (node) pineapple. As an edge, the block connects the nodes pineapple, the tropics and fruit. Retrieval of this block is possible through any one of the three nodes.

The name of each node is a noun/object. Edges denote connections among multiple nodes. This creates a web, not a tree. Whether this method of note-taking makes sense depends on your purpose.

Thanks for explaining.

Maybe I didn’t fully understand what you are describing, because I don’t understand why that can’t be represented in a blocks-only system.

Of course there are ways to specify, and differentiate between, different types of blocks. But why waste time and energy on this when we already have a nice, intuitive implementation?

And as @alex0 has pointed out, an all-block implementation could result in issues with, or confusion about, inheritance. With pages as distinct entities from blocks, inheritance is clear-cut and intuitive.

All-blocks might be better than pages-and-blocks for you. For some others it’s worse.

2 Likes

Check this page and try to imagine what it would look like with blocks only:

block - tag - page, it is very ingeniously structured; and shortly, without pages, the tags will have nowhere to go

2 Likes

Sorry, I see no reason why this can’t be implemented with a block-only approach…

1 Like

Yes, the block-only approach can perfectly emulate any other system (since it doesn’t dictate any overarching structure or logic).

In order to accommodate this alternative workflow I talk about, which I see as much more flexible and natural (not to mention it’s the most natural choice for a db-based app, which logseq will soon become).

Between two systems, one that favours a certain approach, and another that allows implementing any approach, I’ll always prefer the latter.

Note that, in theory I can emulate my desired block-only workflow within logseq’s current page/block logic, simply by using a single page for my entire graph. I never did it because I assume this would lead to performance issues, considering all of that would live in a single .md file.

Can you explain why so?

In a block-only system, tags are also blocks.

If I have:

  • Book 1 #book
  • Book 2 #book

Clicking on the tag #book simply opens up that block, which you can use for whatever you want, such as describing what a book is. And at the bottom of that block (when zoomed into it), you also see all references to it.

(The system is much more versatile than that. You can tag any block with any other block if you want.)

Just use {{embed [[page]]}} in a page to embed all the other page and then use this CSS to make them look like blocks and collapse them just like blocks:

To me that seems very awkward, which is why I hope the db version allows the more flexible block-only system.

If I have:

  • Block 1
  • Block 2
    – Block 2a
  • Block 3

If I decide to have Block 1 be a child of Block 2, I want to need to simply drag it there.

The solution you suggested wouldn’t allow such flexibility.

I don’t know why you think it doesn’t work. I do it all the time.

I might have misunderstood then. Sorry if that was the case. I thought the embedded page would show as a root block.

Regardless, this would still be a workaround.

I’d like logseq to properly support this, which is why I did the original comment in the db post.

You are saying that it can be implemented, and others are explaining why it should not be. For obvious reasons, that one can do something does not mean they should do that.

1 Like

hi,

first of all, this is good question

the structure: block - tag - page, can offer layers of information, some small word can stay in a block, some big words can grow into a page, thus can build up something bigger, something normal, like a single building vs a community.

and a community offers the convenience of biggness … the similar blocks can stay together easily.

and also in concern of connectivity of blocks, if we say all blocks in journal pages to be tagged, those blocks in a page will not have to all tagged, as they are under the same roof ( tag, page), they enjoy a sense of connectivity by default, and some of them are free of tags, this is also mind of efficiency of tags.

if every thing flattened into blocks, at the same level, then all of them have to be tagged, and sometimes, a cluster of blocks have to share the same tags, if conjure them together into a bigger block, then the block is another form of page (in the shape of block), and might it be messy as well.

1 Like

MODERATION POST

This is a warning for everyone to stay on-topic.

  • Revisiting past arguments is fine. Spamming them is not.
  • Any off-topic comments should be posted in new threads.
    • This is a forum, so all posts should target future visitors.
    • If you prefer a chat-like experience, try discord.
  • Private messages are welcome. Public show-off is not.
    • We discuss topics, not persons.
    • Any questions on behaviors or policies should go to private messages.
  • All posts are subject to moderation, especially those failing the above.
    • Moderation is rare, so think twice if it happens to your post.

That’s a good reasoning, @baiwj . But, as @BBob will say again and again, the same thing could be done with blocks-only. Is as easy as create yourself that special blocks (the communities) using uppercase letters, for example. Or an emoji at the start of the block.

The initial proposal of this topic is asking for simplicity and freedom.

The actual structure (pages-blocks) is fine. But the all-blocks in a DB version is even better because is more flexible. And it’s proved again and again by succesful outliners like Workflowy or Tana.

Thanks @mentaloid for editing the post to clarify who said what.

None of them use references to tag blocks and their children, right? To my knowledge only Roam Research and Logseq do and they both have the concept of pages.

Anyway, wouldn’t it be better if we had the following option to treat specific blocks as pages?