{ "issue": { "url": "https://api.github.com/repos/laurent22/joplin/issues/15275", "repository_url": "https://api.github.com/repos/laurent22/joplin", "labels_url": "https://api.github.com/repos/laurent22/joplin/issues/15275/labels{/name}", "comments_url": "https://api.github.com/repos/laurent22/joplin/issues/15275/comments", "events_url": "https://api.github.com/repos/laurent22/joplin/issues/15275/events", "html_url": "https://github.com/laurent22/joplin/pull/15275", "id": 4389481239, "node_id": "PR_kwDOBLftOs7Yqwvk", "number": 15275, "title": "Desktop: Fixes #15263: Preserve timestamps when converting HTML notes", "user": { "login": "izumedonabe", "id": 42296908, "node_id": "MDQ6VXNlcjQyMjk2OTA4", "avatar_url": "https://avatars.githubusercontent.com/u/42296908?v=4", "gravatar_id": "", "url": "https://api.github.com/users/izumedonabe", "html_url": "https://github.com/izumedonabe", "followers_url": "https://api.github.com/users/izumedonabe/followers", "following_url": "https://api.github.com/users/izumedonabe/following{/other_user}", "gists_url": "https://api.github.com/users/izumedonabe/gists{/gist_id}", "starred_url": "https://api.github.com/users/izumedonabe/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/izumedonabe/subscriptions", "organizations_url": "https://api.github.com/users/izumedonabe/orgs", "repos_url": "https://api.github.com/users/izumedonabe/repos", "events_url": "https://api.github.com/users/izumedonabe/events{/privacy}", "received_events_url": "https://api.github.com/users/izumedonabe/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" } ], "state": "open", "locked": false, "assignees": [], "milestone": null, "comments": 4, "created_at": "2026-05-06T07:13:21Z", "updated_at": "2026-05-06T16:07:09Z", "closed_at": null, "assignee": null, "author_association": "FIRST_TIME_CONTRIBUTOR", "active_lock_reason": null, "draft": false, "pull_request": { "url": "https://api.github.com/repos/laurent22/joplin/pulls/15275", "html_url": "https://github.com/laurent22/joplin/pull/15275", "diff_url": "https://github.com/laurent22/joplin/pull/15275.diff", "patch_url": "https://github.com/laurent22/joplin/pull/15275.patch", "merged_at": null }, "body": "Fixes #15263\r\n\r\nWhen converting an HTML note to Markdown, preserve the original note's\r\n`user_created_time` and `user_updated_time`.\r\n\r\nPreviously, the conversion path duplicated the HTML note, and `Note.duplicate()`\r\nreset the user timestamps. The new Markdown note was then saved with automatic\r\ntimestamps, causing both user-visible created and updated times to become the\r\nconversion time.\r\n\r\nThis change restores the original user timestamps before saving the converted\r\nMarkdown note, while still allowing `updated_time` to be updated so the change\r\ncan sync normally.\r\n\r\nTests:\r\n- `node .yarn/releases/yarn-4.12.0.cjs workspace @joplin/lib test commands/convertNoteToMarkdown.test.js --runInBand`\r\n- `node .yarn/releases/yarn-4.12.0.cjs workspace @joplin/lib tsc`", "closed_by": null, "reactions": { "url": "https://api.github.com/repos/laurent22/joplin/issues/15275/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/15275/timeline", "performed_via_github_app": null, "state_reason": null }, "comments": [ { "url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4385869893", "html_url": "https://github.com/laurent22/joplin/pull/15275#issuecomment-4385869893", "issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15275", "id": 4385869893, "node_id": "IC_kwDOBLftOs8AAAABBWsQRQ", "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-05-06T07:13:31Z", "updated_at": "2026-05-06T07:24:11Z", "body": "All contributors have signed the CLA ✍️ ✅
Posted by the ****CLA Assistant Lite bot****.", "author_association": "CONTRIBUTOR", "reactions": { "url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4385869893/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/4385921826", "html_url": "https://github.com/laurent22/joplin/pull/15275#issuecomment-4385921826", "issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15275", "id": 4385921826, "node_id": "IC_kwDOBLftOs8AAAABBWvbIg", "user": { "login": "izumedonabe", "id": 42296908, "node_id": "MDQ6VXNlcjQyMjk2OTA4", "avatar_url": "https://avatars.githubusercontent.com/u/42296908?v=4", "gravatar_id": "", "url": "https://api.github.com/users/izumedonabe", "html_url": "https://github.com/izumedonabe", "followers_url": "https://api.github.com/users/izumedonabe/followers", "following_url": "https://api.github.com/users/izumedonabe/following{/other_user}", "gists_url": "https://api.github.com/users/izumedonabe/gists{/gist_id}", "starred_url": "https://api.github.com/users/izumedonabe/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/izumedonabe/subscriptions", "organizations_url": "https://api.github.com/users/izumedonabe/orgs", "repos_url": "https://api.github.com/users/izumedonabe/repos", "events_url": "https://api.github.com/users/izumedonabe/events{/privacy}", "received_events_url": "https://api.github.com/users/izumedonabe/received_events", "type": "User", "user_view_type": "public", "site_admin": false }, "created_at": "2026-05-06T07:23:47Z", "updated_at": "2026-05-06T07:23:47Z", "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/4385921826/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/4389740781", "html_url": "https://github.com/laurent22/joplin/pull/15275#issuecomment-4389740781", "issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15275", "id": 4389740781, "node_id": "IC_kwDOBLftOs8AAAABBaYg7Q", "user": { "login": "mrjo118", "id": 6963004, "node_id": "MDQ6VXNlcjY5NjMwMDQ=", "avatar_url": "https://avatars.githubusercontent.com/u/6963004?v=4", "gravatar_id": "", "url": "https://api.github.com/users/mrjo118", "html_url": "https://github.com/mrjo118", "followers_url": "https://api.github.com/users/mrjo118/followers", "following_url": "https://api.github.com/users/mrjo118/following{/other_user}", "gists_url": "https://api.github.com/users/mrjo118/gists{/gist_id}", "starred_url": "https://api.github.com/users/mrjo118/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/mrjo118/subscriptions", "organizations_url": "https://api.github.com/users/mrjo118/orgs", "repos_url": "https://api.github.com/users/mrjo118/repos", "events_url": "https://api.github.com/users/mrjo118/events{/privacy}", "received_events_url": "https://api.github.com/users/mrjo118/received_events", "type": "User", "user_view_type": "public", "site_admin": false }, "created_at": "2026-05-06T15:43:57Z", "updated_at": "2026-05-06T15:43:57Z", "body": "I think this applies to mobile as well, not just desktop?", "author_association": "COLLABORATOR", "reactions": { "url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4389740781/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/4389779133", "html_url": "https://github.com/laurent22/joplin/pull/15275#issuecomment-4389779133", "issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15275", "id": 4389779133, "node_id": "IC_kwDOBLftOs8AAAABBaa2vQ", "user": { "login": "personalizedrefrigerator", "id": 46334387, "node_id": "MDQ6VXNlcjQ2MzM0Mzg3", "avatar_url": "https://avatars.githubusercontent.com/u/46334387?v=4", "gravatar_id": "", "url": "https://api.github.com/users/personalizedrefrigerator", "html_url": "https://github.com/personalizedrefrigerator", "followers_url": "https://api.github.com/users/personalizedrefrigerator/followers", "following_url": "https://api.github.com/users/personalizedrefrigerator/following{/other_user}", "gists_url": "https://api.github.com/users/personalizedrefrigerator/gists{/gist_id}", "starred_url": "https://api.github.com/users/personalizedrefrigerator/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/personalizedrefrigerator/subscriptions", "organizations_url": "https://api.github.com/users/personalizedrefrigerator/orgs", "repos_url": "https://api.github.com/users/personalizedrefrigerator/repos", "events_url": "https://api.github.com/users/personalizedrefrigerator/events{/privacy}", "received_events_url": "https://api.github.com/users/personalizedrefrigerator/received_events", "type": "User", "user_view_type": "public", "site_admin": false }, "created_at": "2026-05-06T15:49:23Z", "updated_at": "2026-05-06T16:07:09Z", "body": "> I think this applies to mobile as well, not just desktop?\r\n\r\nThe `convertNoteToMarkdown` function isn't exposed in the UI on mobile (see https://github.com/laurent22/joplin/pull/13841). If I recall correctly, there are also issues related to running `turndown` in the React Native main process that may cause `convertNoteToMarkdown` to not work if called by a plugin.", "author_association": "COLLABORATOR", "reactions": { "url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4389779133/reactions", "total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 }, "performed_via_github_app": null } ] }