Extension:Shiny

From MediaWiki.org
Jump to navigation Jump to search
MediaWiki extensions manualManual:Extensions
Crystal Clear action run.svg
Shiny

Release status:Extension status experimental

ImplementationTemplate:Extension#type Tag
DescriptionTemplate:Extension#description Allows to embed Shiny apps on pages
Author(s)Template:Extension#username Sigbert Klinke (Sigberttalk)
Latest versionTemplate:Extension#version 0.1 (2016-02-28)
MediaWikiTemplate:Extension#mediawiki 1.26+
Database changesTemplate:Extension#needs-updatephp No
LicenseTemplate:Extension#license GNU General Public License 2.0 or later
Download
TagsTemplate:Extension#tags

  • <shiny>
Hooks usedTemplate:Extension#hook
ParserFirstCallInitManual:Hooks/ParserFirstCallInit

Translate the Shiny extension if it is available at translatewiki.net

Check usage and version matrix.

The Shiny extension allows to embed Shiny apps in pages. The Shiny server uses itself the programming language R, which is a free software environment for statistical computing and graphics, on pages.


Requirements[edit]

  • R is a free software environment for statistical computing and graphics. It needs to be installed (probably available in your Linux distribution) and in the PATH: the command R should work on the command line.
  • The Shiny server lets you put shiny web applications online. It needs to be installed separately.

Download[edit]

You can obtain the extension from GitHub.

Installation[edit]

The following subpages describe the installation process for

with an Apache web server. For other linux systems or web servers the description needs to be adapted.

Extension files[edit]

extension.json
stores the setup instructions.
Shiny_body.php
stores the execution code for the extension.

All other files in the <my.wiki>/extensions/Shiny could be deleted.

Configuration[edit]

The file extension.json contains three configuration variables which could be set:

 "config": {
    "ShinyR":      "/usr/bin/R",
    "ShinyAppDir": "/srv/shiny-server/mediawiki",
    "ShinyUrl":    "http://localhost/shiny/mediawiki"
 },
ShinyR
the path and command to execute R. You may query it in your system for it by which R
ShinyAppDir
the path where the Shiny apps are stored. Note that the actually path where app.R is stored is /srv/shiny-server/mediawiki/<my.wiki.name>/<page.title>/<shiny.app.name>
ShinyUrl
the URL which is called to access a Shiny app. Note that the actually URL for a shiny app is http://localhost/shiny/mediawiki/<my.wiki.name>/<page.title>/<shiny.app.name>

Usage[edit]

For a simple example put into a wiki page:

<shiny output="plot" name="test">
hist(rnorm(314))
</shiny>

It shows a histogram of 314 standard normal distributed.

Some hints for development:

  • For developing an Shiny app you are urged to use RStudio. If the app runs under RStudio then it will also work with MediaWiki.
  • If you do not intend to write interactive apps then you should consider Extension:R.

shiny tag[edit]

The shiny tag can have the following attributes:

output="..."
... corresponds to
data dataTableOutput and renderDataTable
image imageOutput and renderImage
plot plotOutput and renderPlot
print verbatimTextOutput and renderPrint
table tableOutput and renderTable
text textOutput and renderText
verb print
Note if output is omited then between the start and end tag is a fully fledged shiny app is expected.
name="..."
the name of the Shiny app. If not set then a hash value from the R program is derived.
CAUTION: Omitting the name may lead to a lot of subdirectories for the shiny server, therefore choose a name!
width="..."
the width of the windows in pixel (default: 800)
height="..."
the height of the windows in pixel (default: 600)
seamless="..."
if the Shiny app is embedded seamlessly (seamless="seamless", default) or not (any other text for seamless)
sandbox="..."
enables extra restrictions on the content that can appear in the inline frame. (default: allow-same-origin allow-scripts). The value of the attribute can either be an empty string (all the restrictions are applied), or a space-separated list of tokens that lift particular restrictions. Valid tokens are:
Token Allows
allow-forms the embedded browsing context to submit forms
allow-popups to open popups (like from window.open, target="_blank", showModalDialog)
allow-same-origin the content to be treated as being from its normal origin
allow-scripts the embedded browsing context to run scripts (but not create pop-up windows)
allow-top-navigation the embedded browsing context to navigate (load) content to the top-level browsing context.

Errors[edit]

In the wiki page is only an <iframe ...>...</iframe> shown instead of the Shiny app.
In case that an error occurs the extension shows the resulting HTML code instead of embedding. Check for typos/errors in the options or in your R program.
In the Shiny app is only displayed ERROR: Key / already in use
Delete from your R code the runApp(...) line.

Security[edit]

Currently are no security measures implemented.

See also[edit]