From 5bc45a493a2b246884c2e3ade6195726f4f9b447 Mon Sep 17 00:00:00 2001 From: George Stagg Date: Tue, 22 Aug 2023 15:25:44 +0100 Subject: [PATCH] Support code blocks for R Shiny apps --- _extensions/quarto-ext/shinylive/shinylive.lua | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/_extensions/quarto-ext/shinylive/shinylive.lua b/_extensions/quarto-ext/shinylive/shinylive.lua index f488d04..c527c34 100644 --- a/_extensions/quarto-ext/shinylive/shinylive.lua +++ b/_extensions/quarto-ext/shinylive/shinylive.lua @@ -65,7 +65,10 @@ end return { { CodeBlock = function(el) - if el.attr and el.attr.classes:includes("{shinylive-python}") then + if el.attr and ( + el.attr.classes:includes("{shinylive-python}") + or el.attr.classes:includes("{shinylive-r}") + ) then ensureShinyliveSetup() -- Convert code block to JSON string in the same format as app.json. @@ -90,8 +93,15 @@ return { quarto.doc.attach_to_dependency("shinylive", dep) end - el.attr.classes = pandoc.List() - el.attr.classes:insert("shinylive-python") + if el.attr.classes:includes("{shinylive-python}") then + el.attributes.engine = "python" + el.attr.classes = pandoc.List() + el.attr.classes:insert("shinylive-python") + elseif el.attr.classes:includes("{shinylive-r}") then + el.attributes.engine = "r" + el.attr.classes = pandoc.List() + el.attr.classes:insert("shinylive-r") + end return el end end