在R Markdown HTML _site.yml页面上苦苦挣扎。在我的导航栏中,我有href指向不同的网站链接,但我不知道该在何处添加
target="_blank"
声明,因此链接在新选项卡中打开。 Href链接不遵循RMarkdowns _site.yml文件中的常规html格式。
- text: "TWITTER"
icon: fa-twitter
href: https://twitter.com
- text: "GITHUB"
icon: fa-github
href: https://github.com
- text: "SLACK"
icon: fa-slack
href: https://slack.com
答案 0 :(得分:2)
您可以像这样为每个人创建一个重定向页面:
- text: "TWITTER"
icon: fa-twitter
href: twitter_redirect.html
,然后对于twitter_redirect.html(等),使用window.open,然后使用window.history.back。
<!DOCTYPE html>
<html>
<head>
</head>
<body onload="myFunction()">
<script>
function myFunction() {
window.open('https://twitter.com/', '_blank');
window.history.back();
}
</script>
</body>
答案 1 :(得分:2)
基本上,最好的做法是创建一个js代码,该代码自动将target="_blank"
添加到任何外部链接。并且考虑到rmarkdown
生成的内部链接是相对的。我们可以轻松地创建一个正则表达式来测试外部链接的存在,如果找到,则附加target="_blank"
(function() {
for (const link of document.getElementsByTagName('a')) {
if (/^(https?:)?\/\//.test(link.getAttribute('href'))) link.target = '_blank';
}
})();
<script type="text/javascript" src="links.js"></script>
output:
html_document:
includes:
after_body: include_footer.html
答案 2 :(得分:0)
从@Abdessabour Mtk引用JScode,
---
title: "BookMark"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
```
[google](https://www.google.com)
...
```{js, echo=FALSE}
(function() {
for (const link of document.getElementsByTagName('a')) {
if (/^(https?:)?\/\//.test(link.getAttribute('href'))) link.target = '_blank';
}
})();
```