Appendix D: ToDo List

Objectives

In this chapter I will collect all the tasks still to do.

The lists will not only cover things to do for this book, but also other more general issues I came about working on this book. The task list will be divided into different subjects:

  • Book content: ToDo list for this book covering all content tasks, like missing chapters, text modules, bibliographies, references, links etc. This section also includes the polishing of text passages in grammar and style, improving arguments with a better text structure, more understandable graphics, etc. I have also edited a section with my own challenges, i.e., exercises their idea came up when I worked with an example.
  • Book appearance: Creating colored and numbered textboxes for different subjects by adapting the CSS for this book and/or using Quartos layout facilities.
  • Shiny: List of things to learn even if those subjects are not the scope of this book. This includes not only the shinylive extension and the {shinylive} package using here in this book, but also the many packages supporting Shiny, helper in the Shiny universe.
  • Quarto: Researching Quarto functionality to enhance this book but also more general to improve my knowledge about Quarto. This includes Quarto extension, static and dynamic formats for Quarto, R Markdown, including LATEX with type setting systems like Typst/TyX or LyX. Applying interactivity and animation with other packages like {leaflet}, {plotly}, {htmlwidgets}, but also using JavaScript, JavaScript frameworks like Observable JS and more.
  • R: Last but not least I stumble often over new R functions and packages that I should investigate more in detail.
  • Miscellaneous:If I sometimes do not know definitely in which category one task belongs I will guess it and add it to the miscellaneous task list. This duplicate will get a reference to the subject oriented lists and vice versa.
Important D.1

My aim is to clean up all tasks under Book content and Book appearance and to transfer the other todo list to my other relevant note-books.

D.1 Book content

D.1.1 All chapters

D.1.2 Index file

D.1.3 Chapter 03

D.1.4 Chapter 07

D.1.5 Annex “packages used”

Add the following packages:

D.1.6 Annex “extensions used”

D.1.7 Clean & Check

D.1.8 Errors to investigate

D.1.9 Missing exercises

D.1.10 My own challenges

Mandatory and voluntary improvements

Marked challenges are important as they are part of the original book and currently not working for me. The other challenges are personal interesting exercises but not part of “Mastering Shiny”.

D.2 Book appearance

D.2.1 CSS

D.2.2 Quarto

D.3 Shiny

D.4 R

D.5 Quarto computation

Quarto vs shinylive cache

While Quarto’s caching is primarily for managing the execution of code chunks within a document, shinylive’s caching is more about managing the web assets required to run Shiny applications in a browser. This means that the caching strategies and mechanisms are tailored to their respective purposes: Quarto focuses on document rendering efficiency, while shinylive focuses on the efficient delivery and execution of Shiny applications in a web environment functions.

D.6 Miscellanoeus

D.7 Providing addtional indices

It would be nice to have different indices to look and find various types of content. For instance it would be helpful to get a listing of all warnings or all code chunks listings. I have thought about several posibilities:

  1. Using TextSniper to copy the results of RStudio “Find In Files” into a Quarto document and editing manually. This is a solution I could apply immediately, but it needs a lot of manual work. I need to copy and paste the listing code.
  2. The very promising {findInFiles} package does not work (See: findInFiles returns always “no results”)
  3. There are several proposal for R functions using regex
  4. {sifr} works for me! This is the best option! But I need to change for my search the default file extension for different R and other programming code file extension to ".*\\.qmd$". The command is options(sifr.path_pattern = ".*\\.qmd$") It works for me only with the first parameter pattern whenever I use from the root level of my R project, but it may be helpful to add recursive = FALSE. (fixed = TRUE, e.g. matching the string as-is did not work) The function generates Markers in RStudio to get to the code of line directly, but it also stores the result in an R object type sif_result — a kind of data.frame.

I could do some extra coding and provide a wrapper to generate the markdown code lines from the sif_result objects by converting it with tibble::as_tibble(x) to a tibble and the extracting the part in the curly brakes (e.g., #lst-03-greeting-example) and as final step to replace # with @. (If you clean up the lst-lines then you have fixed position to delete: 1-5 and the last. pos 6 — or after deleting the first — has to be changed into @.)