---
id: 2026-05-22T13:11:50-0400
title: 2026-05-22 13:11:50
tags: []
daily: "[[2026-05-22]]"
---
# 2026-05-22 13:11:50

## Editor Enhancements for Obsidian

### Conditional Soft Wrapping

As noted in [[2026-05-20_12-23-54#Footnotes as Sidenotes for Obsidian]]
I'm enjoying using the [[obsidian]] editor's `Readable Line Length` option,
but in source mode it guarantees that lines with external links will be wrapped.

I'd prefer if link URL's were allowed to spill into the gutter like tables.

| this | table | has | long | lines, | but | they | will | not | be  | wrapped |
| ---- | ----- | --- | ---- | ------ | --- | ---- | ---- | --- | --- | ------- |
|      |       |     |      |        |     |      |      |     |     |         |

#### Rules

Syntax made less readable by wrapping
(i.e. tables)
should never be wrapped.

Syntax that can not be hard wrapped
(i.e. headers, callout titles)
must be soft wrapped.

The active line should be soft wrapped.

#### Implementation

This should be possible with CSS snippets.
I was briefly able to disable _all_ wrapping,
but in trying to limit the application
I forgot the original selector.

This one should work, doesn't.

```css
/* select divs with only class cm-line */
/* this excludes most special lines and the active line */
div[class="cm-line"] {
  white-space: pre;
  text-wrap-mode: nowrap;
}
```

### Render-Time Text Replacement Rules

There are several plugins which replicate [[ms-word]]'s behavior
of substituting digraphs with special characters as you type,
but what I'm looking for
is [[asciidoc]]-style [character replacement substitutions](https://docs.asciidoctor.org/asciidoc/latest/subs/replacements/).
These would limit ambiguous Unicode.

I have found one community plugin which approaches this behavior,
[Dynamic Text Concealer](https://github.com/mattcoleanderson/obsidian-dynamic-text-concealer),
but, as now seems typical of implementations of features I want,
it is a buggy, poorly-translated mess which is missing key functionality.

Obsidian's Markdown to HTML transpiler
will always wrap with a space, so

```markdown
lorem ipsum---
set amet.
```

will render as "lorem ipsum--- set amet".

> My use of triple hyphens (`foo---bar`)
> is unfortunately quite niche.
> There are two common digraphs
> used to represent em dashes with a limited character set
> which have been around since the typewriter:
> `foo - bar`, which is an assault on the eyes,
> lacking any of the authority of the em dash;
> and `foo--bar`, which is better
> but would be ambiguous with the en dash.
