Veritula – Meta

  Dennis Hackethal criticized idea #3397.

I can take this opportunity to replace manual markdown with a proper text editor. Then there’s no need for autopaired brackets.

The editor will need to support:

  • Automatic links to ideas like #123
  • Links to @mentions like @dennis-hackethal
  • Safe link formatting
  • Disabling of turbo links
  • Namespaced footnotes
  • Custom blockquote format
  • Protection against XSS
  • Retention of formatting when pasting
#3397·Dennis HackethalOP revised 13 days ago

On second thought, implementing a proper text editor would take more work than I initially realized, and is far beyond the scope of what Benjamin is requesting anyway. I can revisit this idea later.

  Dennis Hackethal revised idea #3396.

I can take this opportunity to replace manual markdown with a proper text editor. Then there’s no need for autopaired brackets.

The editor will need to support:

  • Automatic links to ideas like #123
  • Links to @mentions like @dennis-hackethal
  • Safe link formatting
  • Disabling of turbo links
  • Namespaced footnotes
  • Custom blockquote format
  • Protection against XSS

I can take this opportunity to replace manual markdown with a proper text editor. Then there’s no need for autopaired brackets.

The editor will need to support:

  • Automatic links to ideas like #123
  • Links to @mentions like @dennis-hackethal
  • Safe link formatting
  • Disabling of turbo links
  • Namespaced footnotes
  • Custom blockquote format
  • Protection against XSS
  • Retention of formatting when pasting
  Dennis Hackethal commented on idea #3171.

Obsidian autopairs markdown syntax and brackets. I like it a lot and would like Veritula to have something similar!

#3171·Benjamin Davies, 28 days ago

I can take this opportunity to replace manual markdown with a proper text editor. Then there’s no need for autopaired brackets.

The editor will need to support:

  • Automatic links to ideas like #123
  • Links to @mentions like @dennis-hackethal
  • Safe link formatting
  • Disabling of turbo links
  • Namespaced footnotes
  • Custom blockquote format
  • Protection against XSS
  Dennis Hackethal revised criticism #3271.

Escape special characters


I’ve asked Gemini to explain it:

1. Auto-Closure (Insertion State)

When the user inputs an opening delimiter, the system immediately injects the corresponding closing delimiter and places the caret (cursor) between them.

Input: (

Buffer State: (|)

Logic: insert(openingchar) + insert(closingchar) + move_caret(-1)

2. Type-Through (Escape State)

If the caret is positioned immediately before a closing delimiter that was autopaired, and the user types that specific closing delimiter, the system suppresses the character insertion and instead advances the caret.

Context: [text|]

Input: ]

Buffer State: [text]| (Not [text]])

Logic: if (nextchar == inputchar) { movecaret(+1); preventdefault(); }

3. Atomic Deletion (Regression State)

If the caret is between an empty pair of delimiters, a backspace event deletes both the opening and closing characters simultaneously, returning the buffer to the pre-insertion state.

Context: (|)

Input: Backspace

Buffer State: |

Logic: if (prevchar == open && nextchar == close) { delete_range(caret-1, caret+1); }

4. Selection Wrapping (Transformation State)

If a text range is selected (highlighted) and an opening delimiter is typed, the system wraps the selection rather than replacing it.

Context: |selected_text|

Input: [[

Buffer State: [[selected_text]]

Logic: surroundselection(inputpair)

5. Markdown-Specific Heuristics

Obsidian applies context-aware logic for Markdown syntax (e.g., * or _). It often checks word boundaries to determine if the user intends to bold/italicize or use a bullet point.

Context (Start of line): | + * + Space -> Bullet list (autopair disabled/consumed by formatting).

Context (Middle of line): word | + * -> word | (autopair enabled for italics).

I’ve asked Gemini to explain it:

1. Auto-Closure (Insertion State)

When the user inputs an opening delimiter, the system immediately injects the corresponding closing delimiter and places the caret (cursor) between them.

Input: (

Buffer State: (|)

Logic: insert(opening_char) + insert(closing_char) + move_caret(-1)

2. Type-Through (Escape State)

If the caret is positioned immediately before a closing delimiter that was autopaired, and the user types that specific closing delimiter, the system suppresses the character insertion and instead advances the caret.

Context: [text|]

Input: ]

Buffer State: [text]| (Not [text]])

Logic: if (next_char == input_char) { move_caret(+1); prevent_default(); }

3. Atomic Deletion (Regression State)

If the caret is between an empty pair of delimiters, a backspace event deletes both the opening and closing characters simultaneously, returning the buffer to the pre-insertion state.

Context: (|)

Input: Backspace

Buffer State: |

Logic: if (prev_char == open && next_char == close) { delete_range(caret-1, caret+1); }

4. Selection Wrapping (Transformation State)

If a text range is selected (highlighted) and an opening delimiter is typed, the system wraps the selection rather than replacing it.

Context: |selected_text|

Input: [[

Buffer State: [[selected_text]]

Logic: surround_selection(input_pair)

5. Markdown-Specific Heuristics

Obsidian applies context-aware logic for Markdown syntax (e.g., * or _). It often checks word boundaries to determine if the user intends to bold/italicize or use a bullet point.

Context (Start of line): | + * + Space -> Bullet list (autopair disabled/consumed by formatting).

Context (Middle of line): word | + * -> word *|* (autopair enabled for italics).

  Dennis Hackethal archived idea #3182 along with any revisions.
  Dennis Hackethal revised criticism #3369.

As of c08f508, the footer automatically hides and shows based on scrolling behavior.

Try it out and let me know if this doesn’t help.

As of 9087189, the footer automatically hides and shows based on scrolling behavior.

Try it out and let me know if this doesn’t help.

  Dennis Hackethal archived idea #3182 along with any revisions.
  Dennis Hackethal addressed criticism #3182.

It would be nice if I could collapse the 'submit top-level idea' form. It currently takes up a third of my screen when I scroll on PC.

#3182·Benjamin Davies, 26 days ago

As of c08f508, the footer automatically hides and shows based on scrolling behavior.

Try it out and let me know if this doesn’t help.

  Benjamin Davies addressed criticism #3259.

I haven’t used Obsidian, so I don’t understand what you are requesting. Is it that, whenever you open a bracket, you want the closing bracket to appear automatically?

#3259·Dennis HackethalOP, 25 days ago

I’ve asked Gemini to explain it:

1. Auto-Closure (Insertion State)

When the user inputs an opening delimiter, the system immediately injects the corresponding closing delimiter and places the caret (cursor) between them.

Input: (

Buffer State: (|)

Logic: insert(openingchar) + insert(closingchar) + move_caret(-1)

2. Type-Through (Escape State)

If the caret is positioned immediately before a closing delimiter that was autopaired, and the user types that specific closing delimiter, the system suppresses the character insertion and instead advances the caret.

Context: [text|]

Input: ]

Buffer State: [text]| (Not [text]])

Logic: if (nextchar == inputchar) { movecaret(+1); preventdefault(); }

3. Atomic Deletion (Regression State)

If the caret is between an empty pair of delimiters, a backspace event deletes both the opening and closing characters simultaneously, returning the buffer to the pre-insertion state.

Context: (|)

Input: Backspace

Buffer State: |

Logic: if (prevchar == open && nextchar == close) { delete_range(caret-1, caret+1); }

4. Selection Wrapping (Transformation State)

If a text range is selected (highlighted) and an opening delimiter is typed, the system wraps the selection rather than replacing it.

Context: |selected_text|

Input: [[

Buffer State: [[selected_text]]

Logic: surroundselection(inputpair)

5. Markdown-Specific Heuristics

Obsidian applies context-aware logic for Markdown syntax (e.g., * or _). It often checks word boundaries to determine if the user intends to bold/italicize or use a bullet point.

Context (Start of line): | + * + Space -> Bullet list (autopair disabled/consumed by formatting).

Context (Middle of line): word | + * -> word | (autopair enabled for italics).

  Dennis Hackethal criticized idea #3171.

Obsidian autopairs markdown syntax and brackets. I like it a lot and would like Veritula to have something similar!

#3171·Benjamin Davies, 28 days ago

I haven’t used Obsidian, so I don’t understand what you are requesting. Is it that, whenever you open a bracket, you want the closing bracket to appear automatically?

  Benjamin Davies submitted criticism #3182.

It would be nice if I could collapse the 'submit top-level idea' form. It currently takes up a third of my screen when I scroll on PC.

  Benjamin Davies submitted idea #3171.

Obsidian autopairs markdown syntax and brackets. I like it a lot and would like Veritula to have something similar!

  Benjamin Davies submitted idea #3166.

@dennis-hackethal see the revision chain on #3164. Revision 5 improved the content but I accidentally removed valuable comments. Revision 6 (a revision of revision 4) brought back the comments but I failed to include the content improvement in revision 5. I then made revision 7 to have both the comments and the improved content.

Maybe it should be possible to amend which comments apply to an idea without needing to make a whole new revision. This could behave weirdly in some edge cases, but it’s food for thought. If you think the way it currently works is going to be best, that seems fine to me.

  Dennis Hackethal commented on criticism #2728.

Feature idea: private discussions only the creator and invited people can see. This could be a paid feature; $2 per discussion, say.

#2728·Dennis HackethalOP revised about 2 months ago

This is done as of 9b5788c but it’s still free for now. Will make it a paid feature after some more testing and polishing.

  Dennis Hackethal commented on criticism #2169.

Veritula should have some way to indicate agreement; some way to indicate that a particular thread of a discussion is resolved, at least for the time being.

#2169·Dennis HackethalOP revised 3 months ago

The Effective Altruism forum has an interesting way to react to posts.

There’s an ‘Agree’ button and a ‘Disagree’ button. Those are apparently anonymous. Then separately, there’s a button to ‘Add a reaction’ of either ‘Heart’, ‘Helpful’, ‘Insightful’, ‘Changed my mind’, or ‘Made me laugh’. And those are apparently not anonymous.

I wonder why they chose to make some reactions anonymous but not others. I don’t think I’d want a ‘Heart’ or ‘Made me laugh’ button, they seem too social-network-y. Also, ‘Heart’ seems like a duplicate of ‘Agree’. But ‘Insightful’ and ‘Changed my mind’ seem epistemologically relevant. Maybe ‘Helpful’, too.

If I did decide to go with ‘Agree’ and ‘Disagree’ buttons, I wouldn’t make them anonymous, though.

  Dennis Hackethal revised criticism #3115. The revision addresses idea #3117.

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, separately notify participants of the change.

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, notify participants of the change.

  Dennis Hackethal addressed criticism #3115.

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, separately notify participants of the change.

#3115·Dennis HackethalOP revised about 1 month ago

On second thought, the reason for the privacy change may well be related to the reason for any changes to the title or about section, so doing it in the same notification might actually be clearer for users.

  Dennis Hackethal revised criticism #3113. The revision addresses idea #3112.

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, separately notify participants of the change.

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, separately notify participants of the change.

  Dennis Hackethal revised criticism #3110.

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, notify participants of the activity.

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, separately notify participants of the change.

  Dennis Hackethal addressed criticism #3110.

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, notify participants of the activity.

#3110·Dennis HackethalOP revised about 1 month ago

A change to the privacy setting is notable enough that it requires a dedicated notification independent of any changes to a discussion title or about section.

  Dennis Hackethal revised criticism #3109.

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, notify participants.

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, notify participants of the activity.

  Dennis Hackethal addressed criticism #3108.

How would you notify participants of changes to the privacy setting?

#3108·Dennis HackethalOP, about 1 month ago

The activity feed already shows updates to discussions. Could just include changes to the privacy setting there. And, whenever the privacy setting does change, notify participants.

  Dennis Hackethal addressed criticism #2728.

Feature idea: private discussions only the creator and invited people can see. This could be a paid feature; $2 per discussion, say.

#2728·Dennis HackethalOP revised about 2 months ago

How would you notify participants of changes to the privacy setting?

  Dennis Hackethal submitted criticism #3107.

Preview links of discussions should show the name of the discussion being linked.

See eg https://x.com/agentofapollo/status/1991252721618547023

h/t @benjamin-davies

  Dennis Hackethal archived idea #3087 along with any revisions.