85 lines
2.5 KiB
Markdown
85 lines
2.5 KiB
Markdown
---
|
|
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.
|