RMarkdown html _site.yml导航栏href链接,使用target =“ _ blank”

时间:2019-06-27 20:07:42

标签: html r r-markdown

在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

3 个答案:

答案 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"

首先创建:links.js

(function() {
  for (const link of document.getElementsByTagName('a')) {
    if (/^(https?:)?\/\//.test(link.getAttribute('href'))) link.target = '_blank';
  }
})();

将脚本标签添加到include_footer.html

<script type="text/javascript" src="links.js"></script>

在_site.yml中包含include_footer

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';  
  }  
})();  
```