{
	"issue": {
		"url": "https://api.github.com/repos/laurent22/joplin/issues/14686",
		"repository_url": "https://api.github.com/repos/laurent22/joplin",
		"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/14686/labels{/name}",
		"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/14686/comments",
		"events_url": "https://api.github.com/repos/laurent22/joplin/issues/14686/events",
		"html_url": "https://github.com/laurent22/joplin/pull/14686",
		"id": 4055120669,
		"node_id": "PR_kwDOBLftOs7JjWOl",
		"number": 14686,
		"title": "All: Fixes #14078: Fix preservation of HTML in MD",
		"user": {
			"login": "shamblonaut",
			"id": 57855121,
			"node_id": "MDQ6VXNlcjU3ODU1MTIx",
			"avatar_url": "https://avatars.githubusercontent.com/u/57855121?v=4",
			"gravatar_id": "",
			"url": "https://api.github.com/users/shamblonaut",
			"html_url": "https://github.com/shamblonaut",
			"followers_url": "https://api.github.com/users/shamblonaut/followers",
			"following_url": "https://api.github.com/users/shamblonaut/following{/other_user}",
			"gists_url": "https://api.github.com/users/shamblonaut/gists{/gist_id}",
			"starred_url": "https://api.github.com/users/shamblonaut/starred{/owner}{/repo}",
			"subscriptions_url": "https://api.github.com/users/shamblonaut/subscriptions",
			"organizations_url": "https://api.github.com/users/shamblonaut/orgs",
			"repos_url": "https://api.github.com/users/shamblonaut/repos",
			"events_url": "https://api.github.com/users/shamblonaut/events{/privacy}",
			"received_events_url": "https://api.github.com/users/shamblonaut/received_events",
			"type": "User",
			"user_view_type": "public",
			"site_admin": false
		},
		"labels": [
			{
				"id": 519700741,
				"node_id": "MDU6TGFiZWw1MTk3MDA3NDE=",
				"url": "https://api.github.com/repos/laurent22/joplin/labels/bug",
				"name": "bug",
				"color": "cf353b",
				"default": true,
				"description": "It's a bug"
			},
			{
				"id": 1802916084,
				"node_id": "MDU6TGFiZWwxODAyOTE2MDg0",
				"url": "https://api.github.com/repos/laurent22/joplin/labels/renderer",
				"name": "renderer",
				"color": "91ca55",
				"default": false,
				"description": "About the note renderer"
			}
		],
		"state": "closed",
		"locked": false,
		"assignees": [],
		"milestone": null,
		"comments": 5,
		"created_at": "2026-03-11T01:29:06Z",
		"updated_at": "2026-03-12T22:01:01Z",
		"closed_at": "2026-03-12T18:43:53Z",
		"assignee": null,
		"author_association": "NONE",
		"active_lock_reason": null,
		"draft": false,
		"pull_request": {
			"url": "https://api.github.com/repos/laurent22/joplin/pulls/14686",
			"html_url": "https://github.com/laurent22/joplin/pull/14686",
			"diff_url": "https://github.com/laurent22/joplin/pull/14686.diff",
			"patch_url": "https://github.com/laurent22/joplin/pull/14686.patch",
			"merged_at": null
		},
		"body": "## Problem\r\n\r\nHTML code written within the Markdown Editor was being lost in the conversion to HTML and back with the Rich Text Editor. There was existing functionality to properly handle this by attaching the `jop-noMdConv` class to all tags internally, but it was being lost in the conversion back to markdown due to more prominent rules (such as for strong, em, etc.). This led to a problem where invalid markdown syntax with markdown text within HTML tags was being produced.\r\n\r\nFor example,\r\n```md\r\n**Hello**\r\n\r\n<div>This is a <strong>test</strong></div>\r\n```\r\ngets converted to:\r\n```html\r\n<p><strong>Hello</strong></p>\r\n<div class=\"jop-noMdConv\">This is a <strong class=\"jop-noMdConv\">test</strong></div>\r\n```\r\nin the RCE HTML format, but when converted back to markdown (after making any changes to force markdown conversion), it produces this:\r\n```md\r\n**Hello**\r\n\r\n<div>This is a **test**</div>\r\n```\r\nwhich is not the intended result for the `jop-noMdConv` functionality.\r\n\r\nhttps://github.com/user-attachments/assets/5716cd39-85ad-40f0-87e7-fdcf7ac13b8a\r\n\r\n## Solution\r\n\r\nThis PR moves the `joplinHtmlInMarkdown` rule to the top of the file, so that all tags in the RCE HTML with `jop-noMdConv` class gets replaced first before looking for markdown-specific rules.\r\n\r\nNow, the HTML gets properly converted to:\r\n```md\r\n**Hello**\r\n\r\n<div>This is a <strong>test</strong></div>\r\n```\r\nthereby preserving the original markdown content by the user.\r\n\r\nhttps://github.com/user-attachments/assets/a2defccd-9bce-4159-a0da-1d02a779b3c6\r\n\r\n> Note: The intermediary HTML shown in the above recording was already existing behavior and was not introduced in this PR. This just utilizes those classes to properly preserve the HTML as intended.\r\n\r\nFixes #14078 \r\n\r\n## Test Plan\r\n\r\nSince this was a simple implementation fix for an existing functionality, I changed the relevant test files for that, like fixing the expectation of HTML to be inside `div` tags instead of markdown. I also changed the 'table with code' tests because the class was now being removed from `pre` tags due to the ordering.",
		"closed_by": {
			"login": "laurent22",
			"id": 1285584,
			"node_id": "MDQ6VXNlcjEyODU1ODQ=",
			"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
			"gravatar_id": "",
			"url": "https://api.github.com/users/laurent22",
			"html_url": "https://github.com/laurent22",
			"followers_url": "https://api.github.com/users/laurent22/followers",
			"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
			"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
			"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
			"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
			"organizations_url": "https://api.github.com/users/laurent22/orgs",
			"repos_url": "https://api.github.com/users/laurent22/repos",
			"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
			"received_events_url": "https://api.github.com/users/laurent22/received_events",
			"type": "User",
			"user_view_type": "public",
			"site_admin": false
		},
		"reactions": {
			"url": "https://api.github.com/repos/laurent22/joplin/issues/14686/reactions",
			"total_count": 0,
			"+1": 0,
			"-1": 0,
			"laugh": 0,
			"hooray": 0,
			"confused": 0,
			"heart": 0,
			"rocket": 0,
			"eyes": 0
		},
		"timeline_url": "https://api.github.com/repos/laurent22/joplin/issues/14686/timeline",
		"performed_via_github_app": null,
		"state_reason": null
	},
	"comments": [
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4035550407",
			"html_url": "https://github.com/laurent22/joplin/pull/14686#issuecomment-4035550407",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14686",
			"id": 4035550407,
			"node_id": "IC_kwDOBLftOs7wiZzH",
			"user": {
				"login": "github-actions[bot]",
				"id": 41898282,
				"node_id": "MDM6Qm90NDE4OTgyODI=",
				"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/github-actions%5Bbot%5D",
				"html_url": "https://github.com/apps/github-actions",
				"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
				"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
				"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
				"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
				"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
				"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
				"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
				"type": "Bot",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-03-11T01:29:22Z",
			"updated_at": "2026-03-12T22:01:01Z",
			"body": "****CLA Assistant Lite bot**** All contributors have signed the CLA  ✍️ ✅",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4035550407/reactions",
				"total_count": 0,
				"+1": 0,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 0,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": {
				"id": 15368,
				"client_id": "Iv1.05c79e9ad1f6bdfa",
				"slug": "github-actions",
				"node_id": "MDM6QXBwMTUzNjg=",
				"owner": {
					"login": "github",
					"id": 9919,
					"node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
					"avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
					"gravatar_id": "",
					"url": "https://api.github.com/users/github",
					"html_url": "https://github.com/github",
					"followers_url": "https://api.github.com/users/github/followers",
					"following_url": "https://api.github.com/users/github/following{/other_user}",
					"gists_url": "https://api.github.com/users/github/gists{/gist_id}",
					"starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
					"subscriptions_url": "https://api.github.com/users/github/subscriptions",
					"organizations_url": "https://api.github.com/users/github/orgs",
					"repos_url": "https://api.github.com/users/github/repos",
					"events_url": "https://api.github.com/users/github/events{/privacy}",
					"received_events_url": "https://api.github.com/users/github/received_events",
					"type": "Organization",
					"user_view_type": "public",
					"site_admin": false
				},
				"name": "GitHub Actions",
				"description": "Automate your workflow from idea to production",
				"external_url": "https://help.github.com/en/actions",
				"html_url": "https://github.com/apps/github-actions",
				"created_at": "2018-07-30T09:30:17Z",
				"updated_at": "2026-05-05T14:51:38Z",
				"permissions": {
					"actions": "write",
					"administration": "read",
					"artifact_metadata": "write",
					"attestations": "write",
					"checks": "write",
					"code_quality": "write",
					"contents": "write",
					"copilot_requests": "write",
					"deployments": "write",
					"discussions": "write",
					"issues": "write",
					"merge_queues": "write",
					"metadata": "read",
					"models": "read",
					"packages": "write",
					"pages": "write",
					"pull_requests": "write",
					"repository_hooks": "write",
					"repository_projects": "write",
					"security_events": "write",
					"statuses": "write",
					"vulnerability_alerts": "read"
				},
				"events": [
					"branch_protection_rule",
					"check_run",
					"check_suite",
					"create",
					"delete",
					"deployment",
					"deployment_status",
					"discussion",
					"discussion_comment",
					"fork",
					"gollum",
					"issues",
					"issue_comment",
					"label",
					"merge_group",
					"milestone",
					"page_build",
					"public",
					"pull_request",
					"pull_request_review",
					"pull_request_review_comment",
					"push",
					"registry_package",
					"release",
					"repository",
					"repository_dispatch",
					"status",
					"watch",
					"workflow_dispatch",
					"workflow_run"
				]
			}
		},
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4035551485",
			"html_url": "https://github.com/laurent22/joplin/pull/14686#issuecomment-4035551485",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14686",
			"id": 4035551485,
			"node_id": "IC_kwDOBLftOs7wiaD9",
			"user": {
				"login": "coderabbitai[bot]",
				"id": 136622811,
				"node_id": "BOT_kgDOCCSy2w",
				"avatar_url": "https://avatars.githubusercontent.com/in/347564?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/coderabbitai%5Bbot%5D",
				"html_url": "https://github.com/apps/coderabbitai",
				"followers_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/followers",
				"following_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/following{/other_user}",
				"gists_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/subscriptions",
				"organizations_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/orgs",
				"repos_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/repos",
				"events_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/events{/privacy}",
				"received_events_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/received_events",
				"type": "Bot",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-03-11T01:29:42Z",
			"updated_at": "2026-03-11T01:34:27Z",
			"body": "<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- walkthrough_start -->\n\n<details>\n<summary>📝 Walkthrough</summary>\n\n## Walkthrough\n\nIntroduced a new Joplin-specific rule in the HTML-to-Markdown converter to preserve HTML elements marked with the `jop-noMdConv` class, preventing corruption during editor mode switching. Updated corresponding test fixtures to reflect the new preservation behaviour.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**Turndown rule addition** <br> `packages/turndown/src/commonmark-rules.js`|Added new `joplinHtmlInMarkdown` rule to preserve HTML elements with the `jop-noMdConv` class during conversion, preventing unwanted Markdown transformation. Removed duplicate rule definition.|\n|**HTML-to-Markdown test fixtures** <br> `packages/app-cli/tests/html_to_md/html_in_md.html`, `packages/app-cli/tests/html_to_md/html_in_md.md`, `packages/app-cli/tests/html_to_md/table_with_code_2.md`, `packages/app-cli/tests/html_to_md/table_with_code_3.md`|Updated test fixtures to reflect expected behaviour of the new preservation rule, including class attribute changes and HTML element structure adjustments.|\n\n## Suggested labels\n\n`bug`, `renderer`\n\n</details>\n\n<!-- walkthrough_end -->\n\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 5 | ❌ 1</summary>\n\n### ❌ Failed checks (1 warning)\n\n|     Check name     | Status     | Explanation                                                                          | Resolution                                                                         |\n| :----------------: | :--------- | :----------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------- |\n| Docstring Coverage | ⚠️ Warning | Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. | Write docstrings for the functions missing them to satisfy the coverage threshold. |\n\n<details>\n<summary>✅ Passed checks (5 passed)</summary>\n\n|               Check name              | Status   | Explanation                                                                                                                                                                                                                           |\n| :-----------------------------------: | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n|              Title check              | ✅ Passed | The title 'All: Fixes `#14078`: Fix preservation of HTML in MD' clearly summarises the main change: fixing HTML preservation when converting between Markdown and Rich Text editors.                                                    |\n|           Description check           | ✅ Passed | The description is fully related to the changeset, explaining the problem with HTML loss during conversion, the solution of moving the joplinHtmlInMarkdown rule to the top, and test plan updates.                                   |\n|          Linked Issues check          | ✅ Passed | The PR addresses issue `#14078` by implementing the fix for HTML preservation. Code changes move the joplinHtmlInMarkdown rule to prioritise it over other conversion rules, preventing HTML corruption when switching between editors. |\n|       Out of Scope Changes check      | ✅ Passed | All changes are scoped to fixing issue `#14078`: the main rule reordering in commonmark-rules.js and test file updates reflecting the expected behaviour change are directly related to the objective.                                  |\n| Pr Description Must Follow Guidelines | ✅ Passed | The PR description includes all required sections: clear problem statement describing HTML corruption when switching editors, high-level solution explaining the fix, and test plan details with verification.                        |\n\n</details>\n\n<sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing Touches</summary>\n\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Create PR with unit tests\n- [ ] <!-- {\"checkboxId\": \"07f1e7d6-8a8e-4e23-9900-8731c2c87f58\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Post copyable unit tests in a comment\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n\n<!-- tips_start -->\n\n---\n\nThanks for using [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=laurent22/joplin&utm_content=14686)! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.\n\n<details>\n<summary>❤️ Share</summary>\n\n- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)\n- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)\n- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)\n- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)\n\n</details>\n\n<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>\n\n<!-- tips_end -->\n\n<!-- internal state start -->\n\n\n<!-- [encoded data, 8700 characters] -->\n\n<!-- internal state end -->",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4035551485/reactions",
				"total_count": 0,
				"+1": 0,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 0,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": {
				"id": 347564,
				"client_id": "Iv1.6aaafe4fe882736b",
				"slug": "coderabbitai",
				"node_id": "A_kwHOB96YWc4ABU2s",
				"owner": {
					"login": "coderabbitai",
					"id": 132028505,
					"node_id": "O_kgDOB96YWQ",
					"avatar_url": "https://avatars.githubusercontent.com/u/132028505?v=4",
					"gravatar_id": "",
					"url": "https://api.github.com/users/coderabbitai",
					"html_url": "https://github.com/coderabbitai",
					"followers_url": "https://api.github.com/users/coderabbitai/followers",
					"following_url": "https://api.github.com/users/coderabbitai/following{/other_user}",
					"gists_url": "https://api.github.com/users/coderabbitai/gists{/gist_id}",
					"starred_url": "https://api.github.com/users/coderabbitai/starred{/owner}{/repo}",
					"subscriptions_url": "https://api.github.com/users/coderabbitai/subscriptions",
					"organizations_url": "https://api.github.com/users/coderabbitai/orgs",
					"repos_url": "https://api.github.com/users/coderabbitai/repos",
					"events_url": "https://api.github.com/users/coderabbitai/events{/privacy}",
					"received_events_url": "https://api.github.com/users/coderabbitai/received_events",
					"type": "Organization",
					"user_view_type": "public",
					"site_admin": false
				},
				"name": "coderabbitai",
				"description": "# Transforming Code Reviews with AI\r\n\r\n## Features\r\n\r\n**Automated Reviews**: Continuous reviews of the pull requests including incremental commits. \r\n\r\n**Summarization**: Generates high-level summary and a technical walkthrough of the PR changes. \r\n\r\n**Line-by-line review**: Provides line-by-line suggestions committable with one click.\r\n\r\n**Codebase verification**:  Verifies the impact on the overall codebase and identifies missing changes.\r\n\r\n**Insights into your code**:  Ask any questions on your codebase within the pull request \r\n\r\n**Chat about your code** : Chat with the bot around your code. The more you chat, the smarter it gets.\r\n\r\n**Issue Validation**:  Validates the PR against the linked issues and identifies other related issues \r\n\r\n\r\n\r\n",
				"external_url": "https://coderabbit.ai?utm_source=cr_app&utm_medium=github",
				"html_url": "https://github.com/apps/coderabbitai",
				"created_at": "2023-06-14T15:47:27Z",
				"updated_at": "2026-03-14T07:58:44Z",
				"permissions": {
					"actions": "read",
					"checks": "write",
					"contents": "write",
					"discussions": "read",
					"issues": "write",
					"members": "read",
					"metadata": "read",
					"pull_requests": "write",
					"statuses": "write"
				},
				"events": [
					"issues",
					"issue_comment",
					"label",
					"organization",
					"pull_request",
					"pull_request_review",
					"pull_request_review_comment",
					"pull_request_review_thread",
					"release",
					"repository"
				]
			}
		},
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4035563403",
			"html_url": "https://github.com/laurent22/joplin/pull/14686#issuecomment-4035563403",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14686",
			"id": 4035563403,
			"node_id": "IC_kwDOBLftOs7wic-L",
			"user": {
				"login": "shamblonaut",
				"id": 57855121,
				"node_id": "MDQ6VXNlcjU3ODU1MTIx",
				"avatar_url": "https://avatars.githubusercontent.com/u/57855121?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/shamblonaut",
				"html_url": "https://github.com/shamblonaut",
				"followers_url": "https://api.github.com/users/shamblonaut/followers",
				"following_url": "https://api.github.com/users/shamblonaut/following{/other_user}",
				"gists_url": "https://api.github.com/users/shamblonaut/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/shamblonaut/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/shamblonaut/subscriptions",
				"organizations_url": "https://api.github.com/users/shamblonaut/orgs",
				"repos_url": "https://api.github.com/users/shamblonaut/repos",
				"events_url": "https://api.github.com/users/shamblonaut/events{/privacy}",
				"received_events_url": "https://api.github.com/users/shamblonaut/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-03-11T01:33:24Z",
			"updated_at": "2026-03-11T01:33:24Z",
			"body": "I have read the CLA Document and I hereby sign the CLA",
			"author_association": "NONE",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4035563403/reactions",
				"total_count": 0,
				"+1": 0,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 0,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": null
		},
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4035704603",
			"html_url": "https://github.com/laurent22/joplin/pull/14686#issuecomment-4035704603",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14686",
			"id": 4035704603,
			"node_id": "IC_kwDOBLftOs7wi_cb",
			"user": {
				"login": "shamblonaut",
				"id": 57855121,
				"node_id": "MDQ6VXNlcjU3ODU1MTIx",
				"avatar_url": "https://avatars.githubusercontent.com/u/57855121?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/shamblonaut",
				"html_url": "https://github.com/shamblonaut",
				"followers_url": "https://api.github.com/users/shamblonaut/followers",
				"following_url": "https://api.github.com/users/shamblonaut/following{/other_user}",
				"gists_url": "https://api.github.com/users/shamblonaut/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/shamblonaut/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/shamblonaut/subscriptions",
				"organizations_url": "https://api.github.com/users/shamblonaut/orgs",
				"repos_url": "https://api.github.com/users/shamblonaut/repos",
				"events_url": "https://api.github.com/users/shamblonaut/events{/privacy}",
				"received_events_url": "https://api.github.com/users/shamblonaut/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-03-11T02:13:18Z",
			"updated_at": "2026-03-11T02:13:18Z",
			"body": "I know the referenced issue is currently closed (I had been looking into this before closure), but I believe that was done due to a different aspect of the issue: content escaping behavior, which is not the focus of this PR.",
			"author_association": "NONE",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4035704603/reactions",
				"total_count": 0,
				"+1": 0,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 0,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": null
		},
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4049148000",
			"html_url": "https://github.com/laurent22/joplin/pull/14686#issuecomment-4049148000",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14686",
			"id": 4049148000,
			"node_id": "IC_kwDOBLftOs7xWRhg",
			"user": {
				"login": "laurent22",
				"id": 1285584,
				"node_id": "MDQ6VXNlcjEyODU1ODQ=",
				"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/laurent22",
				"html_url": "https://github.com/laurent22",
				"followers_url": "https://api.github.com/users/laurent22/followers",
				"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
				"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
				"organizations_url": "https://api.github.com/users/laurent22/orgs",
				"repos_url": "https://api.github.com/users/laurent22/repos",
				"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
				"received_events_url": "https://api.github.com/users/laurent22/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-03-12T18:43:53Z",
			"updated_at": "2026-03-12T18:43:53Z",
			"body": "Sorry I'm not confident this is not going to break something else, so I'd rather not merge",
			"author_association": "OWNER",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4049148000/reactions",
				"total_count": 0,
				"+1": 0,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 0,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": null
		}
	]
}