Links to people, channels and posts in elisp's forms #162

Merged
littlefox merged 3 commits from issue-160-links into main 2026-10-19 13:41:07 +00:00
Owner

Closes #160

D-047, in elisp's (and jskom's) link forms:

  • Writing: @name suggests people and inserts <person N: Full Name>. #name suggests channels and inserts <möte N: name>. #123 suggests that post and inserts <text 123: subject>.
  • Reading: all three are links with the current name or subject, falling back to what was written. A person shows as @name, marked when it's me.
    • A post link opens the post.
    • A channel link enters the channel (or shows its status page if I'm not a member).
    • A person link opens their status page, until profiles (#151).
  • Matching: like elisp's lyskom-text-buttons: any case, (…), the 7-bit mote, and a label optional.
  • Mentions: a link to my person number is a mention, whatever name it carries. Plain @Name still counts.
  • Wrapping: lines are never wrapped inside a link. Found by the e2e test, where a long line split <text 57: …>.

Verified:

  • markup unit tests (elisp's variants, non-links, written = read), compose wrap tests;
  • new links.spec on desktop, Android and iPhone: write all three with @/#, read them, follow each, and Tove sees it as a mention;
  • the mentions, compose, format and notifications specs;
  • screenshots checked; clippy desktop, web and wasm.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Closes #160 D-047, in elisp's (and jskom's) link forms: - **Writing:** `@name` suggests people and inserts `<person N: Full Name>`. `#name` suggests channels and inserts `<möte N: name>`. `#123` suggests that post and inserts `<text 123: subject>`. - **Reading:** all three are links with the *current* name or subject, falling back to what was written. A person shows as @name, marked when it's me. - A post link opens the post. - A channel link enters the channel (or shows its status page if I'm not a member). - A person link opens their status page, until profiles (#151). - **Matching:** like elisp's lyskom-text-buttons: any case, (…), the 7-bit mote, and a label optional. - **Mentions:** a link to my person number is a mention, whatever name it carries. Plain @Name still counts. - **Wrapping:** lines are never wrapped inside a link. Found by the e2e test, where a long line split `<text 57: …>`. Verified: - markup unit tests (elisp's variants, non-links, written = read), compose wrap tests; - new links.spec on desktop, Android and iPhone: write all three with @/#, read them, follow each, and Tove sees it as a mention; - the mentions, compose, format and notifications specs; - screenshots checked; clippy desktop, web and wasm. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Links to people, channels and posts in elisp's forms
Some checks are pending
ci / check (push) Has started running
ci / e2e (push) Has started running
ci / desktop (push) Has started running
7f2f91952c
D-047, #160: mentions are written as <person N: name>, and # writes
<möte N: name> or <text N: subject>, the forms elisp's insert-link writes
and shows as buttons. Reading shows all three as links with the current
name, going to the post, the channel or the person's status page. A
person link to me is a mention whatever name it carries. Line wrapping
no longer breaks inside a link.

Refs #160

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Drop the doubled 'Text {}' translation after the merge
All checks were successful
ci / check (push) Successful in 9m45s
ci / desktop (push) Successful in 17m16s
ci / e2e (push) Successful in 31m7s
03fca81d1d
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
littlefox referenced this pull request from a commit 2026-10-19 21:34:01 +00:00
Sign in to join this conversation.
No description provided.