#
# NOTE that the defaults defined here are essentially NOT used
# in the code, but if only for documentation purposes it is important
# that they reflect the defaults that are hardwired in main.js
#
Type: Jupyter Notebook Extension
Compatibility: 5.x
Name: RISE
Main: main.js
Description: "Turn your Jupyter Notebooks into a live presentation (slideshow)"
Link: README.md
Icon: rise.png
Parameters:
#
- name: rise.autolaunch
  description: >
     <code>autolaunch</code>: autorun slideshow upon opening if set; active only
     on notebooks that have a 'livereveal' or 'rise' section in their
     metadata; this provision is here to avoid starting RISE
     on regular notebooks that are not intended for slideshow.
  input_type: checkbox
  default: false
#
- name: rise.enable_chalkboard
  description: >
    <code>enable_chalkboard</code>: if set, turn on the <code>chalkboard</code>
    plugin to <code>reveal</code>. <br/>When enabled, this plugin adds two buttons
    next to the help button. It also reacts to the following additional
    keyboard commands:
    <ul>
    <li><code>[</code> to turn the whole space into an empty chalkboard;</li>
    <li><code>]</code> to start adding free drawings to the current slide;</li>
    <li><code>\</code> to download chalkboard drawing;</li>
    <li><code>=</code>to reset chalkboard drawing on the current slide;</li>
    <li><code>-</code> to clear the chalkboard.</li>
    </ul>
  input_type: checkbox
  default: false
#
- name: rise.enable_leap_motion
  description: >
    <code>enable_leap_motion</code>: to use the leap motion device. xxx this needs more details.
  input_type: checkbox
  default: false
#
# xxx: could be useful to add more policies
# like allowing to start on a hard-wired slide number
#
- name: rise.start_slideshow_at
  description: >
    <code>start_slideshow_at</code>: a string that describes where to start the slideshow
    this can be either <code>beginning</code> (start on first slide)
    or <code>selected</code> (start on the slide that contains the currently selected cell)
  input_type: text
  default: selected
#
# the code also has provision for setting this to 'first'
# but that's really not useful so I leave it out of this description
#
- name: rise.auto_select
  description: >
    <code>auto_select</code>: a string that specifies how to select cells when new contents
    is displayed during the slideshow (typically, new slide or new fragment).
    It can be either <code>none</code> (no automatic selection),
    or <code>code</code> (select first code cell in new content).
  input_type: text
  default: code
#
# a companion to the above - probably not needed
#
- name: rise.auto_select_fragment
  description: >
    <code>auto_select_fragment</code>: when auto_select is not <code>none</code>, this boolean
    says if auto selection focuses on the current fragment or considers
    the whole slide. Probably safe to keep as true.
  input_type: checkbox
  default: true
#
# headers and footer and background image
#
- name: rise.header
  description: >
    <code>header</code>: the html text for a header that will show up on all slides.
    <strong>(effective only if <code>overlay</code> is not defined)</strong>
  input_type: text
  default:
#
- name: rise.footer
  description: >
    <code>footer</code>: the html text for a footer that will show up on all slides.
    <strong>(effective only if <code>overlay</code> is not defined)</strong>
  input_type: text
  default:
#
- name: rise.backimage
  description: >
    <code>backimage</code>: a (relative) filename for a background image that will show up on all slides.
    <strong>(effective only if <code>overlay</code> is not defined)</strong>
  input_type: text
  default:
#
- name: rise.overlay
  description: >
    <code>overlay</code>: some html text that will be inserted as-is on all pages. If this is provided,
    the 3 previous settings (header, footer and backimage) are ignored altogether.
  input_type: text
  default:
#
# the UI elements for RISE itself
#
- name: rise.toolbar_icon
  description: >
    <code>toolbar_icon</code>: font-awesome class for the RISE button in toolbar
  default: fa-bar-chart
#
- name: rise.shortcuts.slideshow
  description: <code>rise.shortcuts.slideshow</code> shortcut to enter and exit slideshow
  input_type: hotkey
  default: alt-r
- name: rise.shortcuts.toggle-slide
  description: <code>rise.shortcuts.toggle-slide</code> shortcut to toggle the 'slide' tag on current cell
  input_type: hotkey
  default: shift-i
- name: rise.shortcuts.toggle-subslide
  description: <code>rise.shortcuts.toggle-subslide</code> shortcut to toggle the 'subslide' tag on current cell
  input_type: hotkey
  default: shift-u
- name: rise.shortcuts.toggle-fragment
  description: <code>rise.shortcuts.toggle-fragment</code> shortcut to toggle the 'fragment' tag on current cell
  input_type: hotkey
  default: shift-f
- name: rise.shortcuts.toggle-notes
  description: <code>rise.shortcuts.toggle-notes</code> shortcut to toggle the 'notes' tag on current cell
  input_type: hotkey
  default: none
- name: rise.shortcuts.toggle-skip
  description: <code>rise.shortcuts.toggle-skip</code> shortcut to toggle the 'skip' tag on current cell
  input_type: hotkey
  default: none
- name: rise.shortcuts.render-all-cells
  description: <code>rise.shortcuts.render-all-cells</code> shortcut to put all cells in render mode
  input_type: hotkey
  default: none
- name: rise.shortcuts.edit-all-cells
  description: <code>rise.shortcuts.edit-all-cells</code> shortcut to put all cells in edit mode
  input_type: hotkey
  default: none
- name: rise.shortcuts.rise-nbconfigurator
  description: >
    <code>rise.shortcuts.rise-nbconfigurator</code> shortcut to open the nbconfigurator
    pane for the RISE extension in a new tab (or window, depending on your browser config).
  input_type: hotkey
  default: shift-c

#
# passed to reveal as-is
#
- name: rise.theme
  description: >
    <code>theme</code>: <strong>This setting, like all the ones below,
    is passed directly to <a href="https://github.com/hakimel/reveal.js">
    <code>reveal.js</code> see this doc</a></strong>.
    <br/> theme: <a href="https://github.com/hakimel/reveal.js#theming">
    see a list of reveal's available native themes</a>.
    Note that dark themes from reveal do not work well with RISE,
    at least not without additional and manual tweaks.
  input_type: string
  default: 'simple'
#
- name: rise.transition
  description: >
    <code>transition</code>: at least available: none - fade - slide - convex - concave - zoom - cube - linear
  input_type: string
  default: 'linear'
#
- name: rise.slideNumber
  description: >
    <code>slideNumber</code>: a string to specify if and how to number slides;
    <a href="https://github.com/hakimel/reveal.js#slide-number" target='_'>see reveal's explanations.</a>
  input_type: string
  default: true
#
- name: rise.width
  description: >
    <code>width</code>: a css width attribute, like <code>1920px</code> or <code>10cm</code> or
    <code>100%</code>.
    <strong>Remember that you can always zoom in and out</strong>
    with you browser's native keyboard shortcuts
    like typically <code>Command +</code> or <code>Command -</code>.
  input_type: string
  default: 100%
#
- name: rise.height
  description: >
    <code>height</code>: ditto for slide height.
  default: "100%"
#
- name: rise.controls
  description: >
    <code>controls</code>: add buttons to exit and get help
  input_type: checkbox
  default: true
#
- name: rise.progress
  description: >
    <code>progress</code>: show progress as a line at the bottom
  input_type: checkbox
  default: true
#
- name: rise.history
  description: >
    <code>history</code>: Push each slide change to the browser history
  input_type: checkbox
  default : true,
#
- name: rise.scroll
  description: >
    <code>scroll</code>: see reveal documentation
  input_type: checkbox
  default: false
#
- name: rise.center
  description: >
    <code>center</code>: see reveal documentation
  input_type: checkbox
  default: true
#
# I prefer to keep these 2 unexposed, it's unclear how to properly enter
# floats using the configurator UI, and it may be more harmful than helpful
# on the long run
# - name: rise.margin
#   description: >
#     margin: see reveal documentation
#   input_type: float
#   default: 0.1
# #
# - name: rise.minScale
#   description: >
#     minScale: we need this for codemirror to work righ
#   input_type: float
#   default: 1.0
#
