Skip to content

Commit 4a94df7

Browse files
committed
open external links in new tab
1 parent 76850fb commit 4a94df7

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

.changeset/long-boats-hammer.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@hyperbook/markdown": minor
3+
"hyperbook": minor
4+
"hyperbook-studio": minor
5+
---
6+
7+
Open external links in a new tab

packages/markdown/src/remarkLink.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ export default (ctx: HyperbookContext) => () => {
1515
node.type === "definition")
1616
) {
1717
if (node.url) {
18+
// make link target blank for external links
19+
if (node.type === "link" && /^https?:\/\//.test(node.url)) {
20+
if (!node.data) node.data = {};
21+
if (!node.data.hProperties) node.data.hProperties = {};
22+
node.data.hProperties.target = "_blank";
23+
node.data.hProperties.rel = "noopener noreferrer";
24+
}
1825
node.url = ctx.makeUrl(
1926
node.url,
2027
"public",

packages/markdown/tests/__snapshots__/process.test.ts.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,9 +407,9 @@ HYPERBOOK_ASSETS = "/assets/"
407407
</side-drawer>
408408
<p>
409409
Du kannst das Programm am schnellsten per
410-
<a href="/public/https:/de.wikipedia.org/Kopieren_und_Einf%C3%BCgen">Kopieren und Einfügen</a>
410+
<a href="/public/https:/de.wikipedia.org/Kopieren_und_Einf%C3%BCgen" target="_blank" rel="noopener noreferrer">Kopieren und Einfügen</a>
411411
in den Editor übernehmen. Du musst aber aufpassen: Wie du weißt
412-
sind die Einrückungen (Leer- und <a href="/public/https:/de.wikipedia.org/Tabulatorzeichen">Tabulatorzeichen</a>
412+
sind die Einrückungen (Leer- und <a href="/public/https:/de.wikipedia.org/Tabulatorzeichen" target="_blank" rel="noopener noreferrer">Tabulatorzeichen</a>
413413
)
414414
in Python Teil des Programms .
415415
</p>

0 commit comments

Comments
 (0)