[education/rkward] rkward: Move code for markdown preview to R
Thomas Friedrichsmeier
null at kde.org
Thu Oct 16 20:57:56 BST 2025
Git commit a3d846e713713fc1622a6068dff5f143b458a1bc by Thomas Friedrichsmeier.
Committed on 15/10/2025 at 16:02.
Pushed by tfry into branch 'master'.
Move code for markdown preview to R
M +2 -1 rkward/rbackend/rpackages/rkward/DESCRIPTION
M +1 -0 rkward/rbackend/rpackages/rkward/NAMESPACE
M +1 -1 rkward/rbackend/rpackages/rkward/R/rk.filename-functions.R
A +51 -0 rkward/rbackend/rpackages/rkward/R/rk.preview-functions.R
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.assign.preview.data.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.call.plugin.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.check.for.pandoc.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.demo.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.download_appimage.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.edit.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.eval.as.preview.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.get.tempfile.name.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.graph.on.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.label.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.list.plugins.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.load.pluginmaps.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.misc.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.old.packages.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.printer.device.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.replace.function.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.results.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.sessionInfo.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.show.messages.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.sync.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.with.progress.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.with.window.hints.Rd
M +1 -1 rkward/rbackend/rpackages/rkward/man/rk.workplace.Rd
M +1 -1 rkward/rbackend/rpackages/rkwardtests/man/rktest.expectError.Rd
M +1 -48 rkward/windows/rkcommandeditorwindow.cpp
https://invent.kde.org/education/rkward/-/commit/a3d846e713713fc1622a6068dff5f143b458a1bc
diff --git a/rkward/rbackend/rpackages/rkward/DESCRIPTION b/rkward/rbackend/rpackages/rkward/DESCRIPTION
index 2e3464a83..788730fd5 100755
--- a/rkward/rbackend/rpackages/rkward/DESCRIPTION
+++ b/rkward/rbackend/rpackages/rkward/DESCRIPTION
@@ -15,7 +15,7 @@ LazyLoad: yes
Authors at R: c(person(given="Thomas", family="Friedrichsmeier", email="thomas.friedrichsmeier at kdemail.net", role=c("aut")), person(given="the RKWard", family="team",
email="rkward at kde.org", role=c("cre","aut")))
Version: 0.8.3
-Date: 2025-10-11
+Date: 2025-10-15
RoxygenNote: 7.3.3
Collate:
'base_overrides.R'
@@ -35,6 +35,7 @@ Collate:
'rk.menu.R'
'rk.output.R'
'rk.plugin-functions.R'
+ 'rk.preview-functions.R'
'rk.print-functions.R'
'rk.replace.function.R'
'rk.sessionInfo.R'
diff --git a/rkward/rbackend/rpackages/rkward/NAMESPACE b/rkward/rbackend/rpackages/rkward/NAMESPACE
index 69fbf600d..4fa6f0687 100644
--- a/rkward/rbackend/rpackages/rkward/NAMESPACE
+++ b/rkward/rbackend/rpackages/rkward/NAMESPACE
@@ -103,6 +103,7 @@ export(rk.record.plot)
export(rk.relative.src.line)
export(rk.removethis.plot)
export(rk.rename.in.container)
+export(rk.render.markdown.preview)
export(rk.replace.function)
export(rk.restore.workplace)
export(rk.results)
diff --git a/rkward/rbackend/rpackages/rkward/R/rk.filename-functions.R b/rkward/rbackend/rpackages/rkward/R/rk.filename-functions.R
index ecfc3be23..fad49cc04 100644
--- a/rkward/rbackend/rpackages/rkward/R/rk.filename-functions.R
+++ b/rkward/rbackend/rpackages/rkward/R/rk.filename-functions.R
@@ -288,7 +288,7 @@
#' Evaluate the given input file, recording a transcript to an HTML output file (including on-screen plots)
#'
#' @param infile The input R file, specified as a character string, or a connection (passed to \link{parse}).
-#' @param outfile The output HTML file, specified as a character string. If this file exists, it will be overwritting, without further notice!
+#' @param outfile The output HTML file, specified as a character string. If this file exists, it will be overwritten, without further notice!
#' @param echo Include the source expressions in the output? (boolean)
#' @param env Environment of the evaluation. See details, below.
#' @param stop.on.error Whether to stop (TRUE) or continue (FALSE) on errors
diff --git a/rkward/rbackend/rpackages/rkward/R/rk.preview-functions.R b/rkward/rbackend/rpackages/rkward/R/rk.preview-functions.R
new file mode 100644
index 000000000..fddda10a1
--- /dev/null
+++ b/rkward/rbackend/rpackages/rkward/R/rk.preview-functions.R
@@ -0,0 +1,51 @@
+# - This file is part of the RKWard project (https://rkward.kde.org).
+# SPDX-FileCopyrightText: by Thomas Friedrichsmeier <thomas.friedrichsmeier at kdemail.net>
+# SPDX-FileContributor: The RKWard Team <rkward-devel at kde.org>
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+#' Render a preview of the given R markdown file
+#'
+#' This function is mostly targetted at providing a preview inside a script editor window. For other purposes
+#' it will generally make more sense to call \link{rmarkdown::render}, directly.
+#'
+#' @param infile The input Rmd file, specified as a character string.
+#' @param outdir The directory for output. The directory is not cleared, but existing files inside it may be overwritten without notice!
+#' @param ... Additional parameters to pass to \link{rmarkdown::render}. Notably this may include \code{utput_format="html_document"} or
+#' \code{output_format="pdf_document"}.
+#'
+#' @rdname rk.render.markdown.preview
+#' @export
+"rk.render.markdown.preview" <- function(infile, outdir, ...) {
+ .check.for.software <- function(command, message) {
+ output <- ''
+ for (i in 1:length(command)) {
+ if (!nzchar(Sys.which(command[i]))) output <- paste0(output, '<h2>', .rk.i18n("Missing installed software"), '</h2><p>', message[i], '</p>\n')
+ }
+ output
+ }
+ require(rmarkdown)
+ res <- try({
+ rmarkdown::render(infile, output_dir=outdir, quiet=TRUE, ...)
+ })
+ if (inherits(res, 'try-error')) {
+ msg <- attr(res, 'condition')$message
+ out <- paste0('<h1>', .rk.i18n("Rendering the preview failed"), '</h1>')
+ if (length(grep('pandoc', msg))) {
+ out <- paste0(out, .check.for.software('pandoc', .rk.i18n(
+ "The software <tt>pandoc</tt>, required to rendering R markdown files, is not installed, or not in the system path of the running R session. You will need to install pandoc from <a href=\"https://pandoc.org/\">https://pandoc.org/</a>.</br>If it is installed, but cannot be found, try adding it to the system path of the running R session at <a href=\"rkward://settings/rbackend\">Settings->Configure RKward->R-backend</a>.")))
+ }
+ if (length(grep('pdflatex', msg))) {
+ out <- paste0(out, .check.for.software('pdflatex', .rk.i18n("The software <tt>pdflatex</tt> is required for rendering PDF previews. The easiest way to install it is by running <tt>install.packages(\"tinytex\"); library(\"tinytex\"); install_tinytex()</tt>")))
+ }
+ rk.show.html(content=out)
+ stop(.rk.i18n("Rendering the preview failed")) # make sure, the status display sees this as an error
+ } else {
+ if (endsWith(toupper(res), '.PDF')) {
+ rk.show.pdf(res)
+ } else if (endsWith(toupper(res), '.HTML')) {
+ rk.show.html(res)
+ } else {
+ rk.show.html(content=paste0(.rk.i18n("<h1>Unsupported format</h1><p>The preview cannot be shown, here, because the output format is neither HTML, nor PDF. You can try opening it in an external application, using the link, below, or you can change the preview mode to 'R Markdown (HTML)'.</p>"), '<p><a href=\"', res, '\">', res, '</a></p>'))
+ }
+ }
+}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.assign.preview.data.Rd b/rkward/rbackend/rpackages/rkward/man/rk.assign.preview.data.Rd
index 7a795ad3a..e09b2c135 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.assign.preview.data.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.assign.preview.data.Rd
@@ -54,6 +54,6 @@ try ({
}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.call.plugin.Rd b/rkward/rbackend/rpackages/rkward/man/rk.call.plugin.Rd
index 7fe85ffad..601ab03f0 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.call.plugin.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.call.plugin.Rd
@@ -68,6 +68,6 @@ rk.call.plugin ("rkward::t_test_two_vars",
\code{\link{rk.results}}, \url{rkward://page/rkward_output}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.check.for.pandoc.Rd b/rkward/rbackend/rpackages/rkward/man/rk.check.for.pandoc.Rd
index 65e1fac8c..6ad3ce378 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.check.for.pandoc.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.check.for.pandoc.Rd
@@ -29,7 +29,7 @@ rk.check.for.pandoc()
\code{\link{rk.sessionInfo}}
}
\author{
-Meik Michalke \email{rkward at kde.org}
+Meik Michalke \email{rkward-devel at kde.org}
}
\keyword{misc}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.demo.Rd b/rkward/rbackend/rpackages/rkward/man/rk.demo.Rd
index 9daee0b77..0154fa7e0 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.demo.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.demo.Rd
@@ -32,7 +32,7 @@ rk.demo("graphics")
\code{\link{demo}}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{IO}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.download_appimage.Rd b/rkward/rbackend/rpackages/rkward/man/rk.download_appimage.Rd
index be221c311..9f9295a84 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.download_appimage.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.download_appimage.Rd
@@ -65,7 +65,7 @@ rk.download_appimage(dir="~/bin", overwrite=TRUE)
}
}
\author{
-Meik Michalke \email{rkward at kde.org}
+Meik Michalke \email{rkward-devel at kde.org}
}
\keyword{misc}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.edit.Rd b/rkward/rbackend/rpackages/rkward/man/rk.edit.Rd
index 5c4a8dc7e..7a3352333 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.edit.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.edit.Rd
@@ -85,7 +85,7 @@ rk.edit(x)
\code{\link{file.show}}, \code{\link{browseURL}}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{IO}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.eval.as.preview.Rd b/rkward/rbackend/rpackages/rkward/man/rk.eval.as.preview.Rd
index 067f14923..e9ce26afa 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.eval.as.preview.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.eval.as.preview.Rd
@@ -15,7 +15,7 @@ rk.eval.as.preview(
\arguments{
\item{infile}{The input R file, specified as a character string, or a connection (passed to \link{parse}).}
-\item{outfile}{The output HTML file, specified as a character string. If this file exists, it will be overwritting, without further notice!}
+\item{outfile}{The output HTML file, specified as a character string. If this file exists, it will be overwritten, without further notice!}
\item{echo}{Include the source expressions in the output? (boolean)}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.get.tempfile.name.Rd b/rkward/rbackend/rpackages/rkward/man/rk.get.tempfile.name.Rd
index 765576c4a..9c3fbf03e 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.get.tempfile.name.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.get.tempfile.name.Rd
@@ -131,7 +131,7 @@ rk.set.output.html.file(outfile)
\link{rk.print}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{IO}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.graph.on.Rd b/rkward/rbackend/rpackages/rkward/man/rk.graph.on.Rd
index 60e40a267..252fe7816 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.graph.on.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.graph.on.Rd
@@ -56,6 +56,6 @@ rk.graph.off ()
\code{\link{rk.results}}, \code{\link{rk.print}}, \code{\link{rk.get.output.html.file}}, \code{\link[grDevices:dev.off]{dev.off}}, \code{\link[grDevices:svg]{svg}}, \code{\link[grDevices:png]{png}}, \code{\link[grDevices:jpeg]{jpeg}}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{devices}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.label.Rd b/rkward/rbackend/rpackages/rkward/man/rk.label.Rd
index 4d9838435..34065fc2d 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.label.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.label.Rd
@@ -92,6 +92,6 @@ names (rk.list (x$a, x$b)) # "x$a (First column)" "x$b"
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.list.plugins.Rd b/rkward/rbackend/rpackages/rkward/man/rk.list.plugins.Rd
index 9489f3a52..e05130df0 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.list.plugins.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.list.plugins.Rd
@@ -53,6 +53,6 @@ rk.set.plugin.status ("rkward::t_test", visible=FALSE)
\code{\link{rk.call.plugin}} for invoking a plugin, programatically
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.load.pluginmaps.Rd b/rkward/rbackend/rpackages/rkward/man/rk.load.pluginmaps.Rd
index c0d3717ac..261309193 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.load.pluginmaps.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.load.pluginmaps.Rd
@@ -37,6 +37,6 @@ rk.load.pluginmaps()
\code{\link{rk.call.plugin}}, \code{\link[rkwarddev:rk.plugin.skeleton]{rk.plugin.skeleton}}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.misc.Rd b/rkward/rbackend/rpackages/rkward/man/rk.misc.Rd
index 6074e2bf4..eb5abdfe3 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.misc.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.misc.Rd
@@ -55,7 +55,7 @@ str (ir)
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{attribute}
\keyword{misc}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.old.packages.Rd b/rkward/rbackend/rpackages/rkward/man/rk.old.packages.Rd
index 310496166..4d7f2fe84 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.old.packages.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.old.packages.Rd
@@ -75,7 +75,7 @@ rk.old.packages()
}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{attribute}
\keyword{misc}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.printer.device.Rd b/rkward/rbackend/rpackages/rkward/man/rk.printer.device.Rd
index f018e2dba..abf137146 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.printer.device.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.printer.device.Rd
@@ -32,7 +32,7 @@ dev.print (rk.printer.device)
\code{\link{rk.graph.on}}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{device}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.replace.function.Rd b/rkward/rbackend/rpackages/rkward/man/rk.replace.function.Rd
index 9c2378a5e..dbf1fb181 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.replace.function.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.replace.function.Rd
@@ -56,7 +56,7 @@ rk.replace.function ("history", as.environment ("package:utils"),
\code{\link{assignInNamespace}}, \code{\link{debug}}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{IO}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.results.Rd b/rkward/rbackend/rpackages/rkward/man/rk.results.Rd
index 805729b94..e7cb9502a 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.results.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.results.Rd
@@ -125,6 +125,6 @@ if(require("R2HTML", quietly = TRUE)){
\url{rkward://page/rkward_output}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.sessionInfo.Rd b/rkward/rbackend/rpackages/rkward/man/rk.sessionInfo.Rd
index d2ef48ed2..7b77e83d5 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.sessionInfo.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.sessionInfo.Rd
@@ -31,7 +31,7 @@ rk.sessionInfo()
\code{\link{sessionInfo}}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{misc}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.show.messages.Rd b/rkward/rbackend/rpackages/rkward/man/rk.show.messages.Rd
index 45c472d8e..2011a1b6e 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.show.messages.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.show.messages.Rd
@@ -161,6 +161,6 @@ rk.select.list (LETTERS, preselect = c("A", "E", "I", "O", "U"),
\code{\link[base:file.choose]{file.choose}}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.sync.Rd b/rkward/rbackend/rpackages/rkward/man/rk.sync.Rd
index ac4b73f0e..102ab04ef 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.sync.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.sync.Rd
@@ -40,7 +40,7 @@ rk.sync (rkward::rk.record.plot)
\url{rkward://page/rkward_workspace_browser}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{misc}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.with.progress.Rd b/rkward/rbackend/rpackages/rkward/man/rk.with.progress.Rd
index cfcc14a2a..a664902ab 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.with.progress.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.with.progress.Rd
@@ -36,6 +36,6 @@ rk.with.progress({
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.with.window.hints.Rd b/rkward/rbackend/rpackages/rkward/man/rk.with.window.hints.Rd
index 6eedda886..0bc5d2b88 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.with.window.hints.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.with.window.hints.Rd
@@ -44,6 +44,6 @@ it will remain in place, with compatible parameters.
}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkward/man/rk.workplace.Rd b/rkward/rbackend/rpackages/rkward/man/rk.workplace.Rd
index 42ceaeb95..9458fecec 100644
--- a/rkward/rbackend/rpackages/rkward/man/rk.workplace.Rd
+++ b/rkward/rbackend/rpackages/rkward/man/rk.workplace.Rd
@@ -49,6 +49,6 @@ rk.restore.workplace ()
\url{rkward://page/rkward_for_r_users}, \link{rk.get.workspace.url}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/rbackend/rpackages/rkwardtests/man/rktest.expectError.Rd b/rkward/rbackend/rpackages/rkwardtests/man/rktest.expectError.Rd
index 4be4bd906..bca797500 100644
--- a/rkward/rbackend/rpackages/rkwardtests/man/rktest.expectError.Rd
+++ b/rkward/rbackend/rpackages/rkwardtests/man/rktest.expectError.Rd
@@ -33,6 +33,6 @@ if(!rktest.commandFailed(stop("Expected error"))) stop("Failed to generate error
\code{\link[rkwardtests:rktest.makeplugintests]{rktest.makeplugintests}}
}
\author{
-Thomas Friedrichsmeier \email{rkward at kde.org}
+Thomas Friedrichsmeier \email{rkward-devel at kde.org}
}
\keyword{utilities}
diff --git a/rkward/windows/rkcommandeditorwindow.cpp b/rkward/windows/rkcommandeditorwindow.cpp
index 045178cde..10f14f213 100644
--- a/rkward/windows/rkcommandeditorwindow.cpp
+++ b/rkward/windows/rkcommandeditorwindow.cpp
@@ -657,53 +657,6 @@ void RKCommandEditorWindow::discardPreview() {
action_no_preview->setChecked(true);
}
-// TODO: This would probably better go into the R package. The missing ingredient, there, is i18n(), however.
-QString RmarkDownRender(const QString &infile, const QString &outdir, const QString &mode_arg) {
- return QStringLiteral(
- ".check.for.software <- function(command, message) {\n"
- " output <- ''\n"
- " for (i in 1:length(command)) {\n"
- " if (!nzchar(Sys.which(command[i]))) output <- paste0(output, '<h2>', %1, '</h2><p>', message[i], '</p>\n')\n"
- " }\n"
- " output\n"
- "}\n"
- "require(rmarkdown)\n"
- "res <- try({\n"
- " rmarkdown::render(%6, output_dir=%7,%8 quiet=TRUE)\n"
- "})\n"
- "if (inherits(res, 'try-error')) {\n"
- " msg <- attr(res, 'condition')$message\n"
- " out <- paste0('<h1>', %2, '</h1>')\n"
- " if (length(grep('pandoc', msg))) {\n"
- " out <- paste0(out, .check.for.software('pandoc', %3))\n"
- " }\n"
- " if (length(grep('pdflatex', msg))) {\n"
- " out <- paste0(out, .check.for.software('pdflatex', %4))\n"
- " }\n"
- " rk.show.html(content=out)\n"
- " stop('%2')\n" // make sure, the status display sees this as an error
- "} else {\n"
- " if (endsWith(toupper(res), '.PDF')) {\n"
- " rk.show.pdf(res)\n"
- " } else if (endsWith(toupper(res), '.HTML')) {\n"
- " rk.show.html(res)\n"
- " } else {\n"
- " rk.show.html(content=paste0(%5, '<p><a href=\"', res, '\">', res, '</a></p>'))\n"
- " }\n"
- "}\n")
- .arg(
- RObject::rQuote(i18nc("Caption: Some software is missing.", "Missing software")),
- RObject::rQuote(i18n("Rendering the preview failed")),
- RObject::rQuote(i18n("The software <tt>pandoc</tt>, required to rendering R markdown files, is not installed, or not in the system path of the running "
- "R session. You will need to install pandoc from <a href=\"https://pandoc.org/\">https://pandoc.org/</a>.</br>If it is installed, but cannot be found, "
- "try adding it to the system path of the running R session at <a href=\"rkward://settings/rbackend\">Settings->Configure RKward->R-backend</a>.")),
- RObject::rQuote(i18n("The software <tt>pdflatex</tt> is required for rendering PDF previews. The easiest way to install it is by running <tt>install.packages(\"tinytex\"); library(\"tinytex\"); install_tinytex()</tt>")),
- RObject::rQuote(i18n("<h1>Unsupported format</h1><p>The preview cannot be shown, here, because the output format is neither HTML, nor PDF. You can try opening it in an external application, using the link, below, or you can change the preview mode to 'R Markdown (HTML)'.</p>")),
- RObject::rQuote(infile),
- RObject::rQuote(outdir),
- mode_arg);
-}
-
void RKCommandEditorWindow::initPreviewModes(KActionMenu *menu) {
RK_TRACE(COMMANDEDITOR);
@@ -739,7 +692,7 @@ void RKCommandEditorWindow::initPreviewModes(KActionMenu *menu) {
QString arg;
if (group->group()->checkedId() == HTML) arg = u"output_format=\"html_document\", "_s;
else if (group->group()->checkedId() == PDF) arg = u"output_format=\"pdf_document\", "_s;
- return RmarkDownRender(infile, outdir, arg);
+ return return QStringLiteral("rk.render.markdown.preview(%1, %2, %3)").args(RObject::rQuote(infile), RObject::rQuote(outdir), mode_arg);
};
preview_modes->addButton(markdown);
More information about the rkward-tracker
mailing list