自动折叠 R Bookdown 网站的侧边栏

Automatically collapsing sidebar of R Bookdown website

阅读我的 Bookdown 项目的人不要跳过章节,这一点很重要。虽然它在文档中有明确说明,但通过自动折叠侧边栏进一步阻止这种情况将非常有帮助 :o)

根据 this Github issue 没有默认的显式选项可以做到这一点,但是还有其他方法吗?

欢迎使用 Whosebug!

使用例如在 bookdown::gitbook 上的 Chrome 的 inspect feature 您会看到 <body> 之后 DOM 中的第一个元素是 <div>,其中 [=45= 】 全书。此 <div> 有多个 class,其中之一是 with-summary,这是您要删除的那个。

我认为最快的方法是使用 jquery:

  1. 设置一个HTML文件

    header.html

    <script>
     window.addEventListener("DOMContentLoaded", function(){
      $("div").first().removeClass("with-summary");
     });
    </script>
    
  2. 中使用 YAML 选项 includes 将文件包含在文档 header 中

    .Rmd

    ---
    title: "My Title"
    output: 
      bookdown::gitbook:
        includes:
          in_header: header.html
    ---
    

页面加载后,jquery 函数将选择 DOM 中的第一个 <div> 元素并删除 class。请注意,如果用户也导航到另一章,这将隐藏边栏。