mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-15 03:09:38 +03:00
[Feature Request]: Migrate Self Referential Links on Copy #2636
Closed
opened 2026-02-05 04:40:47 +03:00 by OVERLORD
·
6 comments
No Branch/Tag Specified
development
l10n_development
release
v25-12
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
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
No Label
🔨 Feature 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#2636
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 @Arcynic49 on GitHub (Feb 3, 2022).
Originally assigned to: @ssddanbrown on GitHub.
Describe the feature you'd like
I document a software product for work, and initially skipped over considering migrating to BookStack (from Confluence) because of the lack of copy functionality. One workflow I needed to be able to use was copying the documentation for one version into a new version, and then changing the sections that were updated in the new version. With the recent release of copy book/chapter functionality, I've started getting ready to use BookStack (it is very well made) but I've noticed that the copy functionality isn't working exactly how I hoped.
While the copy does in fact create a new fully copy of everything, any self-referential links do not get updated in the new copy. It would be desirable for these links to point to the new copy rather than the original. By way of example (meant to be illustrative, not how I'm structuring stuff currently):
If you perform a copy of Book- Software Version 1.0 to version 2.0, the section below shows the results (actual links in bold, desired in italics):
This example shows it for a book, but the logic conceptually applies to chapter copies as well as page copies (if there happen to be links on a page referring to itself). Anything linked via permalink should naturally be exempt from these rules.
Describe the benefits this feature would bring to BookStack users
Ideally this would enable faster updates of content following a copy operation, as you would not need to manually update links that the copy has that are meant to refer to itself-as-a-copy and not the original-prior-to-copy. Since this logic only applies to copy operations and not moves, it is thus hopefully more contained and useful.
Additional context
No response
@weiyuemin commented on GitHub (May 27, 2022):
I have exactly the same condition, hope this feature..
@bourdaisj commented on GitHub (Jun 11, 2022):
Hi, I started taking a look at this
@bourdaisj commented on GitHub (Jun 14, 2022):
I stumbled across this TinyMCE feature the other day.
maybe when the link is added we could figure out it is referencing some sibling items, insert the link as "relative" (?) and use the
url_converterto generate the correct link based on the item parent. Don't know if I'm being clear on this, apologies if I'm not.I think I prefer just rewriting the links on the backend when we perform the item copy but I thought it would be worth mentioning this solution as well. @ssddanbrown wdyt?
@ssddanbrown commented on GitHub (Jun 15, 2022):
@Julesdevops I would prefer that any logic for this is kept to the back-end, and that we don't rely on any TinyMCE features. There are three potential editors to consider, TinyMCE, Markdown Editor and API (Markdown or HTML input). I don't want to add TinyMCE logic that we'd need to emulate elsewhere. I generally look to keep user content as "dumb" and "magic-free" as possible to keep it somewhat portable; that extends to relative links. Using full absolute links gives us firm patterns to relatively confidently match on, while being functional outside of their original intended context.
@bourdaisj commented on GitHub (Jun 15, 2022):
@ssddanbrown agree on this, thanks for the feedback
@ssddanbrown commented on GitHub (Nov 29, 2025):
This has now been added within #5917 to be part of the next feature release.
Thanks @Arcynic49 for the original request, and thanks @bourdaisj for taking an earlier attempt at this.