True Document/Long Form Mode — support changing page type from "outline" to "document"

Logseq is fundamentally an outliner, but going from outlines to long form writing isn’t such a big stretch. My goal with Logseq is to have all my external knowledge in one place, so having to transition to another tool for the best long form experience creates friction.

Logseq already has a visual document mode, which you toggle with td. This toggle only hides the bullets — they still appear when you copy the content (my biggest issue) and when you open the document in another editor.

When I’m writing a long form document, there’s no reason for the bullets to remain there at all. I propose that Logseq add a page type property: the default “outline” type and also a “document” type.

The “document” type would have no bullets. It would be a page in the graph database, but it would have no block IDs associated with it (since the page itself is the only block). Honestly, I think this solution is pretty simple, and it would greatly streamline my workflow.

It would be even better if Logseq could just handle normal paragraphs in Markdown with an ad-hoc UI:

For example a way to turn a first-level block in a page into a paragraph and vice versa (on a per block level, not per page).

2 Likes

Maybe paragraphs could be considered in the graph/database just as blocks with no children and to switch between block and paragraph just let us delete the bullet point with Delete keyboard button at the beginning of a first-level block and press - to going back to block, just like in text editors.

2 Likes

Yes to all of this. I would love to see logseq use a standard markdown parser/model where headings create hierarchy, paragraphs are blocks, lists (bullet and numbered) are also blocks (of type “list”), etc. Of course such a standard model would have to be enhanced with logseq’s extensions, like property blocks.

I generally like this idea, but I think the bullets/blocks are too fundamental to Logseq’s purpose (outliner) to just allow for deleting them. Instead, it would be better if bullet-deletion was disabled by default and toggle-able per page.

so:

For Pages made in Logseq

  • bullet structure (current behavior) by default
  • shortcut/toggle (like td for document mode right now) allows for deleting the bullets
  • with that mode toggled on, you can create the below structure:
- block 1
   - child of block 1
block 2
still block 2
still block 2
- block 3
  • if you delete the bullet of block 1:
block 1
- block 2
block 3
still block 3
still block 3
- block 4
  • If the user toggles outline mode back on after already deleting some bullets, all the bullets reappear:

either (every line break in a paragraph becomes a parent block)

- block 1
- block 2
- block 3
- block 4
- block 5
- block 6

or (paragraphs remain one block)

- block 1
- block 2
- block 3
  still block 3
  still block 3
- block 4

For .md files imported to Logseq

  • bullet-deletion mode is enabled by default if the doc has any content not in an unordered list

I get where you are coming from but why not just treating paragraphs as first-level blocks:

- Parent block that can be turned into
  a paragraph by deleting the bullet point.
  - Child block of the above block/paragraph.
- Another parent block.

turns into

Parent block that can be turned into
a paragraph by deleting the bullet point.
  - Child block of the above block/paragraph.
- Another parent block.

an empty line between two paragraphs make them considered like different blocks:

The first paragraph with
multiple lines.

A second paragraph.

with properties:

The first paragraph with
multiple lines.
id:: 12345

A second paragraph.
id:: 67890

Edit: to be clear, I mean that only first level block can become paragraphs, so nothing changes for indented blocks.

To me it still seems like that behavior is too complex. Expanding the document mode will inevitably add complexity to Logseq, so the goal should be to make it as simple as possible.

In the current, visual-only document mode enabled with td, each empty line represents a block break, but the bullets are still there in the actual file. With the bullets completely gone in a true document mode, I think it makes more sense to put all content without a bullet in a single block, unless it’s interrupted by a bullet.

Also, in your first two examples, does the child block have 2 indentations even though it’s parent block (the paragraph) has 0? That seems odd, but it also can’t have just 1 indentation, or else the 2nd parent block that still has its bullet would be indistinguishable.

There is a problem indeed and mine is not standard Markdown neither.

Maybe add a button or a command in Logseq UI to insert Markdown paragraphs and give up on features only blocks can have (like children blocks)?

Personally Logseq being compatible with normal Markdown paragraphs and still being able to use [[wikilinks]] inside them would be a huge improvement for me.

Similar feature request: