Unintuitive Multi-column Block Design

Hi,
I encounter an interesting but unintuitive block design , regarding about multicolumn layout.

How to simulate:

  1. Create a code block containing multiple lines of content
  2. Create another text block.
  3. Now drag the text block to be beside code block, u will be “surprise” that the code block split itself. (u need to try to know what i mean)

Below is what i heard from the support team:
Whether the lines are in a code block or in a non-blocked line, columns will always associate with the line they are being put in a column with. A possible workaround would be to move said text to the column you would like, then drag the other blocks up to the correlating code block

To me, this design is an unintuitive one, and could be a bumper to many user. This is the part where I prefer Notion’s way.
Hopefully Coda engineer can consider this in future when revamp the block design

The problem:

Placing a paragraph next to a code block will only work if the code block consists of a single paragraph. Since there is no line break in Coda, but only new paragraphs (with or without content), this will rarely be the case.

This behavior is fundamentally illogical. Coda uses the term “line” for blocks, but does not know a line break.

A “Code Block” is currently not treated as a block in Coda (although it is one in the source code), but as mere formatting (background color, border, fixed-width font) for individual paragraphs. Therefore, a “Code Block” can be split, as @shushimi describes.

This is due to the particularity of Coda, which works with complex nested block elements in the background, but at the same time still tries to simulate the way a word processor works.

Coda behaves even more idiosyncratically with lists. In HTML lists are block elements (ul, ol), which contain further block elements (list items). But Coda only shows single list items, and not a list as a whole (which could be dragged). And unfortunately, this is also technically the case here: there is actually no block element enclosing the list items, representing the list as a whole.

My suggestion:

My suggestion for code blocks would be the following: when a block is placed to the right of the top paragraph of a code block, this should always address the entire code block (including all paragraphs) and not just the top paragraph of the code block. This way, content blocks could be neatly placed in a new column next to code blocks.

At the same time a handle for the whole code block (including all contained paragraphs) should be introduced and the handles for the individual paragraphs should be placed inside the code block.

Workaround for @shushimi:

Create a column layout first, then select the code block with all its paragraphs and drag it by one of the handles of its paragraphs into the desired layout column.

1 Like

Thanks! your suggestion hit the nail in my heart. Wholeheartedly agree with your suggestion.
Will try out your suggested workaround, and see if it works. But hopefully coda engineer can implement your suggestion.

You’re welcome!

layout_columns_code_block

1 Like

This unintuitive block design does not just apply to code block. it apply to text block as well.
Lucky, this does not apply to table, otherwise every row will be considered a “block”. And it will be cumbersome for us to move the table as a whole. Imagine selecting all the rows manually…