Как обеспечить плавную навигацию по книге с клавишами со стрелками на клавиатуре? - PullRequest
2 голосов
/ 27 марта 2019

Допустим, вы читаете онлайн-книгу, которая была опубликована с bookdown.Например, давайте возьмем само руководство:

bookdown: Авторские книги и технические документы с уценкой R

Если щелкнуть указатель в основном содержании (тексте)В окне, чтобы выделить его, вы можете перемещаться по тексту страницы с помощью стрелок вверх или стрелки вниз .Кроме того, вы можете перейти на новую страницу с помощью клавиш влево и , стрелки вправо .

Однако, как только вы переходите на новую страницу, фокус больше не фокусируется на основном контенте (тексте) страницы.Вы по-прежнему можете переходить на новую страницу влево / вправо, но вы не можете перемещаться по тексту вверх / вниз (без большого количества tab или shift + tab gymastics).

Можно ли сделать фокус по умолчанию при переходе с новой страницы на основной текст?Это настройка уценки или что-то еще?

Ответы [ 2 ]

2 голосов
/ 30 марта 2019

Этого можно добиться с помощью опции includes. Выполните следующие шаги:

  1. Создайте файл с именем activeBlock.html в корневой папке (файл с _output.yml). Скопируйте и вставьте в него следующее.
<script type="application/javascript">
  window.onload = function() {
    document.querySelector(".page-wrapper").focus();
  };
</script>
  1. Измените _output.yml, чтобы он выглядел как показано ниже
bookdown::gitbook:
  includes:
     in_header: activeBlock.html
  css: style.css
  config:
    toc:
      before: |
        <li><a href="./">A Minimal Book Example</a></li>
      after: |
        <li><a href="https://github.com/rstudio/bookdown" target="blank">Published with bookdown</a></li>
    download: ["pdf", "epub"]
bookdown::pdf_book:
  includes:
    in_header: preamble.tex
  latex_engine: xelatex
  citation_package: natbib
  keep_tex: yes
bookdown::epub_book: default

Вы можете изменить _output.yml по мере необходимости, но важной частью является сохранение

  includes:
     in_header: activeBlock.html

Это сделано для того, чтобы пользовательский JavaScript, который мы написали, был включен в <head> версии html книги. Цель сценария - сфокусироваться на соответствующем элементе после загрузки страницы html.

1 голос
/ 02 мая 2019

Это ошибка bookdown и Я только что исправил в версии dev на Github :

remotes::install_github('rstudio/bookdown')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...