Package 'markdownInput'

Title: Shiny Module for a Markdown Input with Result Preview
Description: An R-Shiny module containing a "markdownInput". This input allows the user to write some markdown code and to preview the result. This input has been inspired by the "comment" window of <https://github.com/>.
Authors: Julien Diot [aut, ctb, cre]
Maintainer: Julien Diot <[email protected]>
License: GPL-3
Version: 0.1.2
Built: 2025-03-07 03:18:50 UTC
Source: https://github.com/juliendiot42/markdowninput

Help Index


Create a markdown input control with a result preview

Description

Create a markdown input control with a result preview

Usage

markdownInput(
  inputId,
  label,
  value = "Some **markdown** _text_",
  theme = "github",
  height = "400px",
  class = ""
)

Arguments

inputId

The codeinput slot that will be used to access the value.

label

Label of the input.

value

The initial text to be contained in the editor.

theme

The Ace theme to be used by the editor. The theme in Ace determines the styling and coloring of the editor. Use getAceModes to enumerate all the themes available.

height

A number (which will be interpreted as a number of pixels) or any valid CSS dimension (such as "50%", "200px", or "auto").

class

The CSS class name of the input. (optional)

Value

A tabset containing two tabs:

  1. "Write" tab: Containing a code editor (aceEditor).

  2. "Preview" tab: Containing the preview of the markdown render.

Author(s)

Julien Diot [email protected]

References

  1. shinyAce package: Vincent Nijs, Forest Fang, Trestle Technology, LLC and Jeff Allen (2019). shinyAce: Ace Editor Bindings for Shiny.

  2. shiny package: Winston Chang, Joe Cheng, JJ Allaire, Yihui Xie and Jonathan McPherson (2018). shiny: Web Application Framework for R.

  3. markdown package: JJ Allaire, Jeffrey Horner, Yihui Xie, Vicent Marti and Natacha Porte (2018). markdown: 'Markdown' Rendering for R.

Examples

## Only run examples in interactive R sessions
if (interactive()) {
 library(shiny)
 library(markdownInput)
 ui <- fluidPage(titlePanel("Markdown input"),
                 sidebarLayout(
                   # inputs:
                   sidebarPanel(
                     markdownInput(
                       "mdInputID",
                       label = "Write your text",
                       value = "Write some _markdown_ **here:**"
                       )
                   ),

                   # outputs:
                   mainPanel(
                   h3("Raw value of the input:"),
                   verbatimTextOutput("rawResult"))
                 ))

 server <- function(input, output, session) {
   # myText is a reactive variable containing the raw markdown text
   myText <- callModule(moduleMarkdownInput, "mdInputID")

   # show "myText"
   output$rawResult <- renderPrint({
     print(myText())
   })

 }

 shinyApp(ui, server)

}

Server function of the markdownInput module

Description

Server function of the markdownInput module

Usage

moduleMarkdownInput(input, output, session, class = "")

Arguments

input

The session's input object.

output

The session's output object.

session

The shiny's session.

class

(optional) The CSS class name of the priview tab.

Value

The reactive value of the input.

Author(s)

Julien Diot [email protected]

References

  1. shinyAce package: Vincent Nijs, Forest Fang, Trestle Technology, LLC and Jeff Allen (2019). shinyAce: Ace Editor Bindings for Shiny.

  2. shiny package: Winston Chang, Joe Cheng, JJ Allaire, Yihui Xie and Jonathan McPherson (2018). shiny: Web Application Framework for R.

  3. markdown package: JJ Allaire, Jeffrey Horner, Yihui Xie, Vicent Marti and Natacha Porte (2018). markdown: 'Markdown' Rendering for R.

Examples

## Only run examples in interactive R sessions
if (interactive()) {
 library(shiny)
 library(markdownInput)
 ui <- fluidPage(titlePanel("Markdown input"),
                 sidebarLayout(
                   # inputs:
                   sidebarPanel(
                     markdownInput(
                       "mdInputID",
                       label = "Write your text",
                       value = "Write some _markdown_ **here:**"
                       )
                   ),

                   # outputs:
                   mainPanel(
                   h3("Raw value of the input:"),
                   verbatimTextOutput("rawResult"))
                 ))

 server <- function(input, output, session) {
   # myText is a reactive variable containing the raw markdown text
   myText <- callModule(moduleMarkdownInput, "mdInputID")

   # show "myText"
   output$rawResult <- renderPrint({
     print(myText())
   })

 }

 shinyApp(ui, server)

}

Run a Shiny application presenting the "markdownInput" package.

Description

Run a Shiny application presenting the "markdownInput" package.

Usage

runExample()