Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lists with a single empty item (i.e. +, -, *, 1234.) shouldn't be considered Markdown #1265

Closed
Tracked by #189
dkasak opened this issue Oct 30, 2018 · 7 comments · Fixed by matrix-org/matrix-react-sdk#6833
Labels
A-Composer O-Occasional Affects or can be seen by some users regularly or most users rarely S-Minor Impairs non-critical functionality or suitable workarounds exist T-Defect

Comments

@dkasak
Copy link
Member

dkasak commented Oct 30, 2018

Description

When Markdown is turned on, sending a message containing only digits followed
by a period produces a formatted_body containing HTML for an ordered list
with a single empty item.

This seems wrong because a user typing something like 2018.<enter> will
almost never mean "an ordered list with an empty item". Furthermore, it is
related to at least two usability bugs that can look very bad to the end user:

  1. Wrong rendering of ordinals with >= 3 digits in Riot Web

    wrong rendering of big ordinals

    This is a separate bug that could (and should) be fixed, but it is also
    particularly bad in combination with this bug, because typing something
    common like 2018. can trigger it.

  2. Riot Android renders such messages as empty, as described in Messages containing only digits followed by a period are invisible riot-android#2285.

    They, however, are unsure what to do with it. In a previous Riot Android
    version, it at least rendered the list ordinal correctly even when the list
    item is empty (like Riot Web), but now it has stopped working again.

    I consider this a separate bug too, since empty list items should
    nevertheless get their ordinal rendered.

I propose that messages of form ^[0-9]+\.\s*$ are considered a special case
and not treated as Markdown. This seems to me to follow the principle of least
surprise to the average user. In any case, the Riot clients should all behave
the same.

An example event:

{
"origin_server_ts": 1540893691521,
"sender": "@dkasak:termina.org.uk",
"event_id": "$15408936912708mMjYL:termina.org.uk",
"unsigned": {
    "age": 113,
    "transaction_id": "m1540893692103.11"
},
"content": {
    "body": "2018.",
    "msgtype": "m.text",
    "formatted_body": "<ol start=\"2018\">\n<li></li>\n</ol>\n",
    "format": "org.matrix.custom.html"
},
"type": "m.room.message",
"room_id": "!DCRUrRQxGhHTRwlYla:termina.org.uk"
}

Steps to reproduce

  • Ensure Markdown is turned on.
  • Type 2018. and press Enter.
  • Notice that it has a formatted_body as described above.
  • Notice that it renders as an empty message in Riot Android.

I expect this to produce an m.text event without a formatted_body. Instead,
it should only have a body with the contents "2018.".

Version information

  • Platform: both web and desktop

For the web app:

  • Browser: Firefox 63
  • OS: Arch Linux
  • URL: riot.im/app

For the desktop app:

  • OS: Arch Linux
  • Version: 0.17.2
@lampholder lampholder added T-Defect P1 S-Minor Impairs non-critical functionality or suitable workarounds exist labels Nov 13, 2018
@t3chguy
Copy link
Member

t3chguy commented Nov 3, 2020

Related element-hq/element-web#14621

@NHAS
Copy link

NHAS commented Aug 13, 2021

I have also run into this bug

@yannicka
Copy link

Since this ticket is a duplicate of element-hq/element-web#14621, I think we can close it.

@SimonBrandner
Copy link

Closing in favour of element-hq/element-web#14621

@dkasak
Copy link
Member Author

dkasak commented Aug 29, 2021

Technically this issue was about the incorrect semantics of messages consisting of only a number and a period (they're treated as lists but they're really not), while element-hq/element-web#14621 is about the cosmetics, so they're not strict duplicates.

@SimonBrandner
Copy link

Technically this issue was about the incorrect semantics of messages consisting of only a number and a period (they're treated as lists but they're really not), while element-hq/element-web#14621 is about the cosmetics, so they're not strict duplicates.

While that is true, it is probably fine to keep only one issue. Could you perhaps add some more info from here, if you feel like something there is missing?

@dkasak dkasak changed the title Messages containing only digits followed by a period produce empty list HTML Lists with a single empty item (i.e. +, -, *, 1234.) shouldn't be considered Markdown Aug 29, 2021
@dkasak
Copy link
Member Author

dkasak commented Aug 30, 2021

Actually, after some thought, these are really quite separate concerns. element-hq/element-web#14621 is about fixing rendering of HTML messages on the receiving side. This issue is about parsing input differently to not even produce HTML on the sending side. Fixing one does not imply fixing the other.

I'll reopen since I'm planning to submit a PR for this soon, so that I have somewhere to point to.

@dkasak dkasak reopened this Aug 30, 2021
@SimonBrandner SimonBrandner added O-Occasional Affects or can be seen by some users regularly or most users rarely and removed P1 labels Aug 31, 2021
dkasak referenced this issue in matrix-org/matrix-react-sdk Sep 17, 2021
This allows users to send simple messages such as `-`, `+`, `*` and
`2021.` without Element Web mangling them into a nonsensical empty list.
As soon as any non-whitespace content is added to the item, it switches
back to treating it as a list of one item.

Fixes vector-im/element-web#7631.
su-ex referenced this issue in SchildiChat/element-web Jan 31, 2022
* Tweak room list header menu for when space is active ([\element-hq#7577](matrix-org/matrix-react-sdk#7577)). Fixes element-hq#20601.
* Tweak light hover & active color for bubble layout ([\element-hq#7626](matrix-org/matrix-react-sdk#7626)). Fixes element-hq#19475.
* De-labs Metaspaces ([\element-hq#7613](matrix-org/matrix-react-sdk#7613)).
* De-labs Message Bubbles layout ([\element-hq#7612](matrix-org/matrix-react-sdk#7612)).
* Add customisation point for mxid display ([\element-hq#7595](matrix-org/matrix-react-sdk#7595)).
* Add labs flag for default open right panel ([\element-hq#7618](matrix-org/matrix-react-sdk#7618)). Fixes element-hq#20666.
* Tweak copy for the Sidebar tab in User Settings ([\element-hq#7578](matrix-org/matrix-react-sdk#7578)). Fixes element-hq#20619.
* Make widgets not reload (persistent) between center and top container  ([\element-hq#7575](matrix-org/matrix-react-sdk#7575)). Fixes element-hq#20596. Contributed by @toger5.
* Don't render a bubble around emotes in bubble layout ([\element-hq#7573](matrix-org/matrix-react-sdk#7573)). Fixes element-hq#20617.
* Add ability to switch between voice & video in calls ([\element-hq#7155](matrix-org/matrix-react-sdk#7155)). Fixes element-hq#18619. Contributed by @SimonBrandner.
* Re-renable Share option for location messages ([\element-hq#7596](matrix-org/matrix-react-sdk#7596)).
* Make room ID copyable ([\element-hq#7600](matrix-org/matrix-react-sdk#7600)). Fixes element-hq#20675. Contributed by @SimonBrandner.
* Improve the look of the keyboard settings tab ([\element-hq#7562](matrix-org/matrix-react-sdk#7562)). Contributed by @SimonBrandner.
* Add tooltips to emoji in messages ([\element-hq#7592](matrix-org/matrix-react-sdk#7592)). Fixes element-hq#9911 and element-hq#20661. Contributed by @robintown.
* Improve redundant tooltip on send button in forward dialog ([\element-hq#7594](matrix-org/matrix-react-sdk#7594)). Contributed by @twigleingrid.
* Allow downloads from widgets. ([\element-hq#7502](matrix-org/matrix-react-sdk#7502)). Contributed by @Fox32.
* Parse matrix-schemed URIs ([\element-hq#7453](matrix-org/matrix-react-sdk#7453)).
* Show a tile at beginning of visible history ([\element-hq#5887](matrix-org/matrix-react-sdk#5887)). Fixes element-hq#16818 element-hq#16679 and element-hq#19888. Contributed by @robintown.
* Enable the polls feature ([\element-hq#7581](matrix-org/matrix-react-sdk#7581)).
* Display general marker on non-self location shares ([\element-hq#7574](matrix-org/matrix-react-sdk#7574)).
* Improve/add notifications for location and poll events ([\element-hq#7552](matrix-org/matrix-react-sdk#7552)). Fixes element-hq#20561. Contributed by @SimonBrandner.
* Upgrade linkify to v3.0 ([\element-hq#7282](matrix-org/matrix-react-sdk#7282)). Fixes element-hq#17133 element-hq#16825 and element-hq#5808. Contributed by @Palid.
* Update sidebar icon from Compound ([\element-hq#7572](matrix-org/matrix-react-sdk#7572)). Fixes element-hq#20615.
* Replace home icon with new one ([\element-hq#7571](matrix-org/matrix-react-sdk#7571)). Fixes element-hq#20606.
* Make the `Keyboard Shortcuts` dialog into a settings tab ([\element-hq#7198](matrix-org/matrix-react-sdk#7198)). Fixes element-hq#19866. Contributed by @SimonBrandner.
* Add setting for enabling location sharing ([\element-hq#7547](matrix-org/matrix-react-sdk#7547)).
* Add a developer mode 'view source' button to crashed event tiles ([\element-hq#7537](matrix-org/matrix-react-sdk#7537)).
* Replace `kick` terminology with `Remove from chat` ([\element-hq#7469](matrix-org/matrix-react-sdk#7469)). Fixes element-hq#9547.
* Render events as extensible events (behind labs) ([\element-hq#7462](matrix-org/matrix-react-sdk#7462)).
* Render Jitsi (and other sticky widgets) in PiP container, so it can be dragged and the "jump to room functionality" is provided ([\element-hq#7450](matrix-org/matrix-react-sdk#7450)). Fixes element-hq#15682. Contributed by @toger5.
* Allow bubble layout in Thread View ([\element-hq#7478](matrix-org/matrix-react-sdk#7478)). Fixes element-hq#20419.
* Make LocationPicker appearance cleaner ([\element-hq#7516](matrix-org/matrix-react-sdk#7516)).
* Limit max-width for bubble layout to 1200px ([\element-hq#7458](matrix-org/matrix-react-sdk#7458)). Fixes element-hq#18072.
* Improve look of call events in bubble layout ([\element-hq#7445](matrix-org/matrix-react-sdk#7445)). Fixes element-hq#20324. Contributed by @SimonBrandner.
* Make files & voice memos in bubble layout match colouring ([\element-hq#7457](matrix-org/matrix-react-sdk#7457)). Fixes element-hq#20326.
* Allow cancelling events whilst they are encrypting ([\element-hq#7483](matrix-org/matrix-react-sdk#7483)). Fixes element-hq#17726.
* [Release] Fix left panel widgets causing app-wide crash ([\element-hq#7660](matrix-org/matrix-react-sdk#7660)).
* Load light theme prior to HTML export to ensure it is present ([\element-hq#7643](matrix-org/matrix-react-sdk#7643)). Fixes element-hq#20276.
* Fix soft-crash when hanging up Jitsi via PIP ([\element-hq#7645](matrix-org/matrix-react-sdk#7645)). Fixes element-hq#20766.
* Fix RightPanelStore assuming isViewingRoom is false on load ([\element-hq#7642](matrix-org/matrix-react-sdk#7642)).
* Correctly handle Room.timeline events which have a nullable `Room` ([\element-hq#7635](matrix-org/matrix-react-sdk#7635)). Fixes matrix-org/element-web-rageshakes#9490.
* Translate keyboard shortcut alternate key names ([\element-hq#7633](matrix-org/matrix-react-sdk#7633)). Fixes element-hq#20739.
* Fix unfocused paste handling and focus return for file uploads ([\element-hq#7625](matrix-org/matrix-react-sdk#7625)).
* Changed MacOS hotkey for GoToHome view. ([\#7631](matrix-org/matrix-react-sdk#7631)). Contributed by @aj-ya.
* Fix issue with the new composer EmojiPart which caused infinite loops ([\element-hq#7629](matrix-org/matrix-react-sdk#7629)). Fixes element-hq#20746.
* Upgrade linkifyjs to fix schemes as domain prefixes ([\element-hq#7628](matrix-org/matrix-react-sdk#7628)). Fixes element-hq#20720.
* Show bubble tile timestamps for bubble layout inside the bubble ([\element-hq#7622](matrix-org/matrix-react-sdk#7622)). Fixes element-hq#20562.
*  Improve taken username warning in registration for when request fails ([\element-hq#7621](matrix-org/matrix-react-sdk#7621)).
* Avoid double dialog after clicking to remove a public room ([\element-hq#7604](matrix-org/matrix-react-sdk#7604)). Fixes element-hq#20681. Contributed by @c-cal.
* Fix space member list right panel state ([\element-hq#7617](matrix-org/matrix-react-sdk#7617)). Fixes element-hq#20716.
* Fall back to legacy analytics for guest users ([\#7616](matrix-org/matrix-react-sdk#7616)).
* Always emit a space filter update when the space is actually changed ([\element-hq#7611](matrix-org/matrix-react-sdk#7611)). Fixes element-hq#20664.
* Enlarge emoji in composer ([\element-hq#7602](matrix-org/matrix-react-sdk#7602)). Fixes element-hq#20665 element-hq#15635 and element-hq#20688. Contributed by @robintown.
* Disable location sharing button on Desktop ([\element-hq#7590](matrix-org/matrix-react-sdk#7590)).
* Make pills more natural to navigate around ([\element-hq#7607](matrix-org/matrix-react-sdk#7607)). Fixes element-hq#20678. Contributed by @robintown.
* Fix excessive padding on inline images ([\element-hq#7605](matrix-org/matrix-react-sdk#7605)). Contributed by @robintown.
* Prevent pills from being split by formatting actions ([\element-hq#7606](matrix-org/matrix-react-sdk#7606)). Contributed by @robintown.
* Fix translation of "powerText" ([\element-hq#7603](matrix-org/matrix-react-sdk#7603)). Contributed by @c-cal.
* Unhide display names when switching back to modern layout ([\element-hq#7601](matrix-org/matrix-react-sdk#7601)). Fixes element-hq#20676. Contributed by @robintown.
* Fix space member list not opening ([\element-hq#7609](matrix-org/matrix-react-sdk#7609)). Fixes element-hq#20679. Contributed by @SimonBrandner.
* Fix translation for the "Add room" tooltip ([\element-hq#7532](matrix-org/matrix-react-sdk#7532)). Contributed by @c-cal.
* Make the close button of the location share dialog visible in high-contrast theme ([\element-hq#7597](matrix-org/matrix-react-sdk#7597)).
* Cancel pending events in virtual room when call placed ([\element-hq#7583](matrix-org/matrix-react-sdk#7583)). Fixes element-hq#17594.
* Fix alignment of unread badge in thread list ([\element-hq#7582](matrix-org/matrix-react-sdk#7582)). Fixes element-hq#20643.
* Fix left positioned tooltips being wrong and offset by fixed value ([\element-hq#7551](matrix-org/matrix-react-sdk#7551)).
* Fix MAB overlapping or overflowing in bubbles layout and threads regressions ([\element-hq#7569](matrix-org/matrix-react-sdk#7569)). Fixes element-hq#20403 and element-hq#20404.
* Fix wrong icon being used for appearance tab in space preferences dialog ([\element-hq#7570](matrix-org/matrix-react-sdk#7570)). Fixes element-hq#20608.
* Fix `/jumptodate` using wrong MSC feature flag ([\element-hq#7563](matrix-org/matrix-react-sdk#7563)).
* Ensure maps show up in replies and threads, by creating unique IDs ([\element-hq#7568](matrix-org/matrix-react-sdk#7568)).
* Differentiate between hover and roving focus in spotlight dialog ([\element-hq#7564](matrix-org/matrix-react-sdk#7564)). Fixes element-hq#20597.
* Fix timeline jumping issues related to bubble layout ([\element-hq#7529](matrix-org/matrix-react-sdk#7529)). Fixes element-hq#20302.
* Start a conference in a room with 2 people + invitee rather than a 1:1 call ([\element-hq#7557](matrix-org/matrix-react-sdk#7557)). Fixes element-hq#1202. Contributed by @SimonBrandner.
* Wait for initial profile load before displaying widget ([\element-hq#7556](matrix-org/matrix-react-sdk#7556)).
* Make widgets and calls span across the whole room width when using bubble layout ([\element-hq#7553](matrix-org/matrix-react-sdk#7553)). Fixes element-hq#20560. Contributed by @SimonBrandner.
* Always show right panel after setting a card ([\element-hq#7544](matrix-org/matrix-react-sdk#7544)). Contributed by @toger5.
* Support deserialising HR tags for editing ([\element-hq#7543](matrix-org/matrix-react-sdk#7543)). Fixes element-hq#20553.
* Refresh ThreadView after React state has been updated ([\element-hq#7539](matrix-org/matrix-react-sdk#7539)). Fixes element-hq#20549.
* Set initial zoom level to 1 to make zooming to location faster ([\element-hq#7541](matrix-org/matrix-react-sdk#7541)).
* truncate room name on pip header ([\#7538](matrix-org/matrix-react-sdk#7538)).
* Prevent enter to send edit weirdness when no change has been made ([\element-hq#7522](matrix-org/matrix-react-sdk#7522)). Fixes element-hq#20507.
* Allow using room pills in slash commands ([\element-hq#7513](matrix-org/matrix-react-sdk#7513)). Fixes element-hq#20343.
@t3chguy t3chguy transferred this issue from element-hq/element-web Mar 29, 2023
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Aug 31, 2023
Changes in [1.11.40](https://github.com/vector-im/element-web/releases/tag/v1.11.40) (2023-08-29)
=================================================================================================

## ✨ Features
 * Hide account deactivation for externally managed accounts ([\#11445](matrix-org/matrix-react-sdk#11445)). Fixes #26022. Contributed by @kerryarchibald.
 * OIDC: Redirect to delegated auth provider when signing out ([\#11432](matrix-org/matrix-react-sdk#11432)). Fixes #26000. Contributed by @kerryarchibald.
 * Disable 3pid fields in settings when `m.3pid_changes` capability is disabled ([\#11430](matrix-org/matrix-react-sdk#11430)). Fixes #25995. Contributed by @kerryarchibald.
 * OIDC: disable multi session signout for OIDC-aware servers in session manager ([\#11431](matrix-org/matrix-react-sdk#11431)). Contributed by @kerryarchibald.
 * Implement updated open dialog method of the Module API ([\#11395](matrix-org/matrix-react-sdk#11395)). Contributed by @dhenneke.
 * Polish & delabs `Exploring public spaces` feature ([\#11423](matrix-org/matrix-react-sdk#11423)).
 * Treat lists with a single empty item as plain text, not Markdown. ([\#6833](matrix-org/matrix-react-sdk#6833)). Fixes element-hq/element-meta#1265.
 * Allow managing room knocks ([\#11404](matrix-org/matrix-react-sdk#11404)). Contributed by @charlynguyen.
 * Pin the action buttons to the bottom of the scrollable dialogs ([\#11407](matrix-org/matrix-react-sdk#11407)). Contributed by @dhenneke.
 * Support Matrix 1.1 (drop legacy r0 versions) ([\#9819](matrix-org/matrix-react-sdk#9819)).

## 🐛 Bug Fixes
 * Fix path separator for Windows based systems ([\#25997](element-hq/element-web#25997)).
 * Fix instances of double translation and guard translation calls using typescript ([\#11443](matrix-org/matrix-react-sdk#11443)).
 * Fix export type "Current timeline" to match its behaviour to its name ([\#11426](matrix-org/matrix-react-sdk#11426)). Fixes #25988.
 * Fix Room Settings > Notifications file upload input being shown superfluously ([\#11415](matrix-org/matrix-react-sdk#11415)). Fixes #18392.
 * Simplify registration with email validation ([\#11398](matrix-org/matrix-react-sdk#11398)). Fixes #25832 #23601 and #22297.
 * correct home server URL ([\#11391](matrix-org/matrix-react-sdk#11391)). Fixes #25931. Contributed by @NSV1991.
 * Include non-matching DMs in Spotlight recent conversations when the DM's userId is part of the search API results ([\#11374](matrix-org/matrix-react-sdk#11374)). Contributed by @mgcm.
 * Fix useRoomMembers missing updates causing incorrect membership counts ([\#11392](matrix-org/matrix-react-sdk#11392)). Fixes #17096.
 * Show error when searching public rooms fails ([\#11378](matrix-org/matrix-react-sdk#11378)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Composer O-Occasional Affects or can be seen by some users regularly or most users rarely S-Minor Impairs non-critical functionality or suitable workarounds exist T-Defect
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants