damus-io / damus

iOS nostr client
GNU General Public License v3.0
1.99k stars 288 forks source link

Highlight & respond to specific text (long notes) #822

Open alltheseas opened 1 year ago

alltheseas commented 1 year ago

User Story

As a Damus user who is diving in a long note, I would like the capability to highlight & respond to a specific part of the note, so that I can focus my response to the selected essence of the original note.

Acceptance Criteria

  1. Damus user can highlight a specific part of a note, (this is implemented in note view ✅ ), and
  2. Damus user can have the option to reply to the selected part of the note in 1,
  3. If Damus user selects the option in 2. To reply to the selected text, the reply note is pre-populated with the specific text selected, and
  4. Upon note reply publication, it is apparent to all note viewers that the selected text is part of a larger note, and
  5. That the selected text is apparent to all viewers as a quote.

pre-requisite

Select text on long form note https://github.com/damus-io/damus/issues/1410

Constraints

  1. Only for long form notes (not kind1)

Design & implementation How might this be visually represented? Through quotations, and/or a block of text? Does block quote work on nostr, and/or on Damus? Is there a markdown NIP? block quote example

Origin: nostr pleb Jack

https://damus.io/note1wuxxyxjwj5646as8an78548lu47zp40xg6ulrrnkjvtl49d6tcpqdkauvt

Will: "Interesting..."

We could put replyblock metadata in a reply. Clients could use this to show most replied-to sections of the post, etc.

For example, imagine clicking a highlight and then seeing a subthread with all the replies to that section.

You can kind of simulate this with threads but highlights would be more granular and would work really well in long posts.

https://damus.io/note1crk8zl2n4y5d4rce4usd0977rmhsw8n7md0dd2m46qdul7aftk0q3nazch

Peter Todd

It would be awesome if such a system was cryptographically sound. Eg quoting by referencing the note by hash, and then specifying the start and end bytes you are actually quoting. (Though Unicode will make for some odd edge cases there...)

https://damus.io/note1x7uu5k05r8m8mq2vzmq5fxueyhtqhytde5wz69zyq3f36766z5yqv6vaga

Will:

It would just be tag metadata in a reply containing start and end bytes, which is already cryptographically sound because tags are covered by the id which is signed.

alltheseas commented 1 year ago

Related: https://zapworthy.com/

alltheseas commented 1 year ago

image

https://damus.io/note15swpdvhcv47fz2sjsqedyw00tn86qa0u4uas6nd8ccv0a09rfs4q7f6krh

alltheseas commented 9 months ago

@ericholguin

alltheseas commented 1 month ago

Adding pre-requisite: select text long form notes https://github.com/damus-io/damus/issues/1410