Notebooks and runnable documents on your own local R.
install.packages("carmar")
Three verbs:
carmar::run() # open the notebook on your R
carmar::listen("https://book.example") # let a published page run chunks here
carmar::use_publishing("path/to/project") # make a Quarto project's chunks runnable
run() starts a local kernel - a separate R process - and opens a
self-contained notebook page in the browser. listen() keeps a kernel
waiting on a fixed port for the R chunks of a published page.
use_publishing() installs the Quarto filter that gives those chunks a Run
button, and check_publishing() verifies the rendered site. sessions()
and stop_kernel() list and stop what is running.
Nothing in the package contacts the network at start; the one network action is yours, per click: searching for and importing a citation style from the CSL repository (a plugin; an administrator can fix the set or point it at a mirror — see Settings > Plugins and the CARMAR_PLUGIN_* settings). On your explicit call it writes
its state under tools::R_user_dir("carmar") and one discovery record under
~/.carmar/run, removed on a clean stop.
The desktop application (a menu-bar helper, file associations, a double-click launcher) is a separate product and is not part of this package; it comes from https://lacarm.com/carmar/.
See vignette("publishing", package = "carmar") for the author's and the
reader's stories.
The Quarto extension is also a plain folder: download carmar-quarto.zip from
https://lacarm.com/carmar/, unzip it inside the book (it creates
_extensions/carmar/), and add - carmar under filters: in _quarto.yml.
use_publishing() does exactly that from R.
make_runnable("report.html") or make_runnable("_book") inserts one
<script> tag before </head> of each HTML file, once. No re-render: the
runtime gives every R block a Run button and a strip at the top of the page.