mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-20 11:19:38 +03:00
Copy & paste from code block to nano editor issue #3895
Open
opened 2026-02-05 07:47:44 +03:00 by OVERLORD
·
6 comments
No Branch/Tag Specified
development
release
v25-12
l10n_development
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.7
v25.12.6
v25.12.5
v25.12.4
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
pull-request
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#3895
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @jeffshead on GitHub (Jul 2, 2023).
Attempted Debugging
Searched GitHub Issues
Describe the Scenario
I don't consider this a BookStack bug but since BookStack has code blocks to make it easy to copy/paste code, I believe this "enhancement" is worth considering if it can be implemented.
ISSUE:
When coping multiple lines from a BookStack code block and pasting them into nano, in a terminal window, the new line characters are lost or replaced and some lines are out of order, as depicted in the image below:
It should look like the image below (copy/paste from EditPad Pro):
Work-around:
Copy code from the BookStack code-block, paste the code into a wordpad app such as EditPad Pro and then copy the text from the wordpad app and paste that into nano.
I get the same results with PuTTY, KiTTY, MobaXterm, etc. I'm working on a Windows PC. Not sure if that matters.
Additional info:
https://github.com/vercel/hyper/issues/1448#issuecomment-367890105
http://savannah.gnu.org/bugs/?49176#comment5
Exact BookStack Version
23.05.2
Log Content
N/A
PHP Version
8.x
Hosting Environment
AlmaLinux 8.8, Docker
@ssddanbrown commented on GitHub (Jul 3, 2023):
Thanks @jeffshead.
Not really sure where to take this for BookStack.
We could change line endings depending on platform, which is what it looks like VSCode did, but I am hesitant since as far as I can tell we've always provided
\nendings for code blocks, and it's hard to foresee the potential corner cases this change may affect and their significance relative to your scenario.It is something we can control though rather simply via CodeMirror config.
@kobaz commented on GitHub (Mar 16, 2024):
Having also a problem problem pasting into a console, or emacs... etc
copy/paste this code from a code block:
And it looks like this when using a straight console

The arrows are pointing to non-ascii characters that are getting pasted in... if you paste this into emacs it will completely mash up the paste where it looks like this:
@bdolez commented on GitHub (Dec 4, 2024):
Hi,
I don't know if there is any news regarding this issue. I identified that every raw space in the copied text was replaced with a UTF8 "non-breaking space" combination ( "\302\240" ). Is it possible to disable this and use a simple space character ?
@ssddanbrown commented on GitHub (Dec 4, 2024):
Note that there are many variables that could affect this (source content, browser, terminal, paste/clipboard method/source, target application, OS).
As a baseline, here's some testing steps and my results:
Steps
xxd.Environment
Result
@crashr commented on GitHub (Jan 22, 2025):
@ssddanbrown I think I found out what the problem is. The nbsp for example are caused by this code fom TinyMCE:
As you see it happens when you first paste code in the normal editor, then mark the code and then open the code editor such that the selected code gets automatically pasted into the code editor. It replaces spaces at the beginning and at the end of each line and also affects line break tags. I assume this behavior makes sence if the selected text is not code from an editor but in this case I would consider it as a bug in BookStack. A solution would be to just remove part of the code since it isn't needed in this usecase anyway. Or consider providing a patch which can be applied after installation.
@ssddanbrown commented on GitHub (Jan 22, 2025):
Thanks @crashr, can confirm those steps reproduce the issue, at least for non-breaking spaces being introduced to code block text. Not sure it totally confirms the OP scenario, but might be related (other encoded whitespace).
I'm not putting any further work into the TinyMCE editor (unless essential) since it's on it's way, but I've re-labelled this as a WYSIWYG bug so this can be checked if an issue in the new editor, and to think of options to address existing occurrences.
I'm thinking we could replace non-breaking-spaces with spaces in the code editor, but not sure if there's a legitimate case for non-breaking-spaces in code blocks.