Skip to content

Pasting html now properly transforms images as configured into local paths. Build instructions for windows updated fixes: #4149 #2510 #2105 #2462#4150

Open
kiliansinger wants to merge 3 commits into
marktext:developfrom
kiliansinger:develop
Open

Conversation

@kiliansinger
Copy link
Copy Markdown

Q A
Bug fix? yes
New feature? yes
Breaking changes? no
Deprecations? no
New tests added? not needed
Fixed tickets Fixes #4149 #2510 #2105 #2462
License MIT

Description

Pasting html now properly transforms images as configured into local paths.
Build instructions for windows updated.

Copilot AI review requested due to automatic review settings March 19, 2026 13:04
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to improve MarkText’s HTML paste behavior by converting pasted HTML <img> sources (e.g., remote/data/blob) into locally saved image paths via the configured image handling, and updates Windows build documentation to address recent node-gyp/Python setup failures.

Changes:

  • Add HTML paste handling to fetch/convert pasted <img> sources into locally saved files using muya.options.imageAction.
  • Add helper utilities for deriving filenames/extensions when persisting pasted images.
  • Update Windows build instructions with additional node-gyp/Python (setuptools) steps.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.

File Description
src/muya/lib/contentState/pasteCtrl.js Adds logic to detect <img> tags in sanitized pasted HTML and save/replace sources via imageAction.
docs/dev/BUILD.md Documents extra Windows steps intended to fix node-gyp failures (notably missing distutils/setuptools).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread src/muya/lib/contentState/pasteCtrl.js Outdated
Comment on lines +24 to +31
const getImageFileName = (mimeType, alt) => {
const extension = getImageExtension(mimeType)
const sanitizedAlt = alt && alt.trim()
? alt.trim().replace(/[\\/:*?"<>|]+/g, '-')
: `pasted-image-${getUniqueId()}`

if (/\.[a-z\d]+$/i.test(sanitizedAlt)) {
return sanitizedAlt
Comment thread docs/dev/BUILD.md Outdated
Comment thread docs/dev/BUILD.md Outdated
Comment on lines +182 to +185
img.src = imageSrc
img.alt = alt
image.replaceWith(img)
}
}

img.src = imageSrc
img.alt = alt
const img = document.createElement('img')
let imageSrc = src

if (src && (DATA_URL_REG.test(src) || URL_REG.test(src) || BLOB_URL_REG.test(src))) {
@kiliansinger kiliansinger changed the title Pasting html now properly transforms images as configured into local paths. Build instructions for windows updated Pasting html now properly transforms images as configured into local paths. Build instructions for windows updated fixes: #4149 #2510 #2105 #2462 Mar 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows build fails

2 participants