Связать заголовок R markdown в flexdashboard со страницей в приложении

У меня есть документ уценки R, в котором используются flexdashboard иshiny. Документ/приложение имеет несколько страниц, и я хотел бы иметь возможность связать заголовок панели навигации, определенный в заголовке YAML, с первой страницей, чтобы у пользователя возникало ощущение перенаправления на «Домашнюю» страницу при нажатии на заголовок.

Я приложил очень простой пример файла .Rmd, который использует flexdashboard и имеет 2 страницы. В этом примере пользователь должен быть направлен на Page 1 при нажатии на App title.

---
title: "App title"
output: flexdashboard::flex_dashboard
runtime: shiny
---



Page 1
====================================================================================

This is some random text on page 1...

Page 2
========================================================================================

And some even more random text on page 2....

Я видел примеры, когда страницы связаны во внешнем файле .yml (bookdown) или где логотип/заголовок связаны с внешним сайтом, но я не смог найти примеры того, как связать заголовок панели навигации с разделом/страницей внутри сам документ уценки R.

Чтобы добавить сложности: в моем приложении документ используется для нескольких приложений, поэтому заголовок считывается через переменную среды:

---
title: '`r Sys.getenv("TIER")`'

Буду признателен за любую оказанную помощь!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
294
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы сделать заголовок кликабельным как ссылку, вы можете использовать дополнительный JavaScript.

<script>
   document.querySelector(".navbar-header").innerHTML =
            "<a href=\"path_to_destination\" class=\"navbar-brand navbar-inverse\">
                 My Dashboard
             </a>";
</script> 

querySelector ищет элемент заголовка и заменяет его пользовательским. Здесь я заменяю его ссылкой на path_to_destination. Вы можете увидеть имена классов, которые добавляются к ссылке, чтобы отформатировать ссылку в соответствии с предопределенными классами. В противном случае ссылка не отформатирована как заголовок.

Как вы сказали, заголовок основан на некоторой переменной, которую мы можем вставить в код R, как и в любое другое место в документе:

<script>
   document.querySelector(".navbar-header").innerHTML =
            "<a href=\".\" class=\"navbar-brand navbar-inverse\">`r 2+2`</a>";
</script> 

спасибо за помощь и извинения за поздний ответ; Я был в отпуске. Я не знаю, когда у меня будет время изучить ваш ответ, но пока я приму его и свяжусь с вами по этому поводу, когда / если это необходимо.

damico 22.08.2022 13:22

Другие вопросы по теме