Feature Request: ctrl-click to open in new window on react based pages
Maintainers usually reply within 1 day
@morozov-av is already working on this.
Since Oct 8, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 75/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- react, typescript
- Domain
- frontend
Research direction
First, locate the React components that render top-level navigation links and buttons in the Runestone Academy frontend. Add a click handler that checks for Ctrl key presses, and uses the substring comparison described in the issue to decide if the target is a new top-level page: if so, open the link in a new tab instead of navigating in the current page. Test the fix by ctrl-clicking both same-page and cross-page navigation links to confirm correct behavior.
Written by the indexing model from the issue text.
Description
Is your feature request related to a problem? Please describe.
I often want to leave the page I am on up while I open a link in a new tab. The react pages treat Ctrl-click like click and always changes the current page, even for something that is a top level navigation change.
Describe the solution you'd like
Buttons that function as top level links should try to handle ctrl-click by opening in a new window.
I think if neither current nor new URL are a substring of the other we could assume it is a new top level destination.
https://runestone.academy/assignment/instructor/grader
to
https://runestone.academy/assignment/instructor/grader/293802
is same page. As would be the other direction because one URL is a substring of the other.
https://runestone.academy/assignment/instructor/grader
to
https://runestone.academy/assignment/instructor/builder
is different page.
- Dominant language
- TypeScript
- Stars
- 68
- Forks
- 118
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 24
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from RunestoneInteractive/rs
-
Problem report: https://runestone.academy/ns/books/published/wakeforest_py4eint_fall26/lists_parsing-lines.htmlPossibly taken @barbarer claimed this 2 days ago. OpenContent
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
RunestoneInteractive/rs#1591 · 5 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Accessibility: react page notification should be aria-livePossibly taken @morozov-av claimed this today. Openaccessibility enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
RunestoneInteractive/rs#1574 · 1 assignee ·
Maintainers usually reply within 1 day
-
Content
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
RunestoneInteractive/rs#1570 ·
Maintainers usually reply within 1 day
-
Content
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
RunestoneInteractive/rs#1559 · 4 comments ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
RunestoneInteractive/rs#1532 · 2 comments ·
Maintainers usually reply within 1 day
All issues in RunestoneInteractive/rs
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
lukilabs/beautiful-mermaid#160 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
rescript-lang/rescript-lang.org#1420 ·
Maintainers usually reply within 2 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
chthollyphile/folia-major#520 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
databuddy-analytics/Databuddy#1106 ·
Maintainers usually reply within 1 day