<commit_before>= Slide Format

You can break your slides up into sections of however many subdirectories deep
you need.  ShowOff will recursively check all the directories mentioned in
your <tt>showoff.json</tt> file for any markdown files (.md).  Each markdown file can
have any number of slides in it, separating each slide with the '!SLIDE'
keyword and optional slide styles.

For example, if you run '<tt>showoff create my_new_pres</tt>' it will create a new
starter presentation for you with one .md file at one/slide.md which will have
the following contents:

    !SLIDE

    # My Presentation #

    !SLIDE bullets incremental transition=fade

    # Bullet Points #

    * first point
    * second point
    * third point

That represents two slides, the first contains just a large title, and the
second is faded into view showing the title and three bullets that are then
incrementally shown. In order for ShowOff to see those slides, your
<tt>showoff.json</tt> file needs to look something like this:

    {
      "name": "Something",
      "description": "Example Presentation",
      "sections": [
        {"section":"one"}
      ]
    }

If you have multiple sections in your talk, you can make this json
array include all the sections you want to show in which order you
want to show them. Template configuration is done in
<tt>showoff.json</tt> as well.

Instead of a hash, you can use a plain string as an entry in the
<tt>sections</tt> section of <tt>showoff.json</tt>. And if that plain string starts
with '#' then it is interpreted not as a filename, but as
markdown. This is used for inserting interstitial slides or notes --
for instance, <NAME>'s {Ruby
Notes}[http://github.com/alexch/ruby_notes] uses it to insert lab
instructions between lecture slide sections, which may vary from venue
to venue.

You can use angle brackets around the `!SLIDE` keyword and styles, if you'd like.
For example:

    <!SLIDE bullets incremental transition=fade>

This lets you keep the ability to emit an HTML document from your Markdown source
file -- say, for a TextMate preview or a GitHub rendering

You can link to specific slides using either a slide number, or a name. The number
can be found in the URL of your browser, and the name is shown in the debug output
or in the upper left of the presenter view.

== Markdown Format

Showoff renders Markdown format as documented at http://daringfireball.net/projects/markdown/syntax.
Many of the rendering engines supported by Showoff provide extensions allowing more
formatting options not available in core Markdown. Each engine provides different options
and the defaults for each are documented in the Markdown Engine section. The full options
supported by each engine can be found in their respective documentations.

Some of the extensions include:

[autolink] Recognize and parse bare links even when they are not marked up properly.
[definition_lists] Parse definition lists, {PHP-Markdown}[https://michelf.ca/projects/php-markdown/extra/#def-list] style.
[strikethrough] Parse strikethrough text surrounded with two <tt>~~</tt> characters.
[superscript] Parse superscripts after a `^` character.
[tables] Parse tables, {PHP-Markdown}[https://michelf.ca/projects/php-markdown/extra/#table] style.
[underline] Parse underscored emphasis as underlines. This is <tt>\_underlined\_</tt> but this is still <tt>\*emphasis\*</tt>.

Showoff extensions to the language are documented below.

= Slide Styles

Some useful styles for each slide are:

[center] centers images on a slide
[full-page] allows an image to take up the whole slide
[bullets] sizes and separates bullets properly (fits up to 5, generally)
[smbullets] sizes and separates more bullets (smaller, closer together)
[subsection] creates a different background for titles
[command] monospaces h1 title slides
[commandline] for pasted commandline sections (needs leading '$' for commands, then output on subsequent lines)
[code] monospaces everything on the slide
[incremental] can be used with 'bullets' and 'commandline' styles, will incrementally update elements on arrow key rather than switch slides
[small] make all slide text 80%
[smaller] make all slide text 70%
[execute] on Javascript, Coffeescript, Ruby, and Shell highlighted code slides, you can click on the code to execute it and display the results on the slide
[printonly] this slide should only appear in the printed version of the presentation
[noprint] this slide will not appear in the printed version of the presentation
[supplemental] rather than adding a slide to the main presentation, add a slide to supplemental materials. See below.
[form=id] Render form elements on this slide with a given form ID. See below, and in FORMS.rdoc.
[background-fit] Scales a background image to the largest size that both height and width are onscreen. The default is to completely fill the slide.

Check out the example directory included to see examples of most of these.

= Supplemental Materials

Supplemental materials may be created by including <tt>supplemental</tt> and the name of a type
in the <!SLIDE> styles. For example, you might have a slide like

    <!SLIDE supplemental exercises>
    # Lab ~~~SECTION:MAJOR~~~.~~~SECTION:MINOR~~~: This is a lab
    ## Objective: Do something
    [... slide content ...]

The supplemental materials may be accessed at http://localhost:9090/supplemental/$type-name.
For example, the material described in the example above would be accessed at
http://localhost:9090/supplemental/exercises. If you have slides and supplemental material
that are related to one another, they could be contained in the same file. This makes
it extraordinarily easy to reorder the presentation.

= Slide Transitions

Transitions can be supplied through the use of transition=tname on the !SLIDE
definition, where tname is one of the following supported transitions:

- blindX
- blindY
- blindZ
- cover
- curtainX
- curtainY
- fade
- fadeZoom
- growX
- growY
- none (this is the default)
- scrollUp
- scrollDown
- scrollLeft
- scrollRight
- scrollHorz
- scrollVert
- shuffle
- slideX
- slideY
- toss
- turnUp
- turnDown
- turnLeft
- turnRight
- uncover
- wipe
- zoom

The transitions are provided by jQuery Cycle plugin. See http://www.malsup.com/jquery/cycle/browser.html to view the effects and http://www.malsup.com/jquery/cycle/adv2.html for how to add custom effects.

= Slide Backgrounds

A custom per slide background can be set in the slide options. For example:

     !SLIDE[bg=customLogo.png]

By default, the background will be scaled to completely cover the slide. If you
specify the <tt>background-fit</tt> slide style, then the background will be
scaled to the largest size that both height and width fit within the slide.

= Language Highlighting

Showoff uses {highlightjs}[https://highlightjs.org] to highlight code blocks. If
you begin a code block with three @-signs followed by a programming language
name, that line will be stripped and the rest of the block will become sparkly
and colorful. You can uppercase the name if you like.<commit_msg>Updated AUTHORING.rdoc regarding code highlighting<commit_after>= Slide Format

You can break your slides up into sections of however many subdirectories deep
you need.  ShowOff will recursively check all the directories mentioned in
your <tt>showoff.json</tt> file for any markdown files (.md).  Each markdown file can
have any number of slides in it, separating each slide with the '!SLIDE'
keyword and optional slide styles.

For example, if you run '<tt>showoff create my_new_pres</tt>' it will create a new
starter presentation for you with one .md file at one/slide.md which will have
the following contents:

    !SLIDE

    # My Presentation #

    !SLIDE bullets incremental transition=fade

    # Bullet Points #

    * first point
    * second point
    * third point

That represents two slides, the first contains just a large title, and the
second is faded into view showing the title and three bullets that are then
incrementally shown. In order for ShowOff to see those slides, your
<tt>showoff.json</tt> file needs to look something like this:

    {
      "name": "Something",
      "description": "Example Presentation",
      "sections": [
        {"section":"one"}
      ]
    }

If you have multiple sections in your talk, you can make this json
array include all the sections you want to show in which order you
want to show them. Template configuration is done in
<tt>showoff.json</tt> as well.

Instead of a hash, you can use a plain string as an entry in the
<tt>sections</tt> section of <tt>showoff.json</tt>. And if that plain string starts
with '#' then it is interpreted not as a filename, but as
markdown. This is used for inserting interstitial slides or notes --
for instance, <NAME>'s {Ruby
Notes}[http://github.com/alexch/ruby_notes] uses it to insert lab
instructions between lecture slide sections, which may vary from venue
to venue.

You can use angle brackets around the `!SLIDE` keyword and styles, if you'd like.
For example:

    <!SLIDE bullets incremental transition=fade>

This lets you keep the ability to emit an HTML document from your Markdown source
file -- say, for a TextMate preview or a GitHub rendering

You can link to specific slides using either a slide number, or a name. The number
can be found in the URL of your browser, and the name is shown in the debug output
or in the upper left of the presenter view.

== Markdown Format

Showoff renders Markdown format as documented at http://daringfireball.net/projects/markdown/syntax.
Many of the rendering engines supported by Showoff provide extensions allowing more
formatting options not available in core Markdown. Each engine provides different options
and the defaults for each are documented in the Markdown Engine section. The full options
supported by each engine can be found in their respective documentations.

Some of the extensions include:

[autolink] Recognize and parse bare links even when they are not marked up properly.
[definition_lists] Parse definition lists, {PHP-Markdown}[https://michelf.ca/projects/php-markdown/extra/#def-list] style.
[strikethrough] Parse strikethrough text surrounded with two <tt>~~</tt> characters.
[superscript] Parse superscripts after a `^` character.
[tables] Parse tables, {PHP-Markdown}[https://michelf.ca/projects/php-markdown/extra/#table] style.
[underline] Parse underscored emphasis as underlines. This is <tt>\_underlined\_</tt> but this is still <tt>\*emphasis\*</tt>.

Showoff extensions to the language are documented below.

= Slide Styles

Some useful styles for each slide are:

[center] centers images on a slide
[full-page] allows an image to take up the whole slide
[bullets] sizes and separates bullets properly (fits up to 5, generally)
[smbullets] sizes and separates more bullets (smaller, closer together)
[subsection] creates a different background for titles
[command] monospaces h1 title slides
[commandline] for pasted commandline sections (needs leading '$' for commands, then output on subsequent lines)
[code] monospaces everything on the slide
[incremental] can be used with 'bullets' and 'commandline' styles, will incrementally update elements on arrow key rather than switch slides
[small] make all slide text 80%
[smaller] make all slide text 70%
[execute] on Javascript, Coffeescript, Ruby, and Shell highlighted code slides, you can click on the code to execute it and display the results on the slide
[printonly] this slide should only appear in the printed version of the presentation
[noprint] this slide will not appear in the printed version of the presentation
[supplemental] rather than adding a slide to the main presentation, add a slide to supplemental materials. See below.
[form=id] Render form elements on this slide with a given form ID. See below, and in FORMS.rdoc.
[background-fit] Scales a background image to the largest size that both height and width are onscreen. The default is to completely fill the slide.

Check out the example directory included to see examples of most of these.

= Supplemental Materials

Supplemental materials may be created by including <tt>supplemental</tt> and the name of a type
in the <!SLIDE> styles. For example, you might have a slide like

    <!SLIDE supplemental exercises>
    # Lab ~~~SECTION:MAJOR~~~.~~~SECTION:MINOR~~~: This is a lab
    ## Objective: Do something
    [... slide content ...]

The supplemental materials may be accessed at http://localhost:9090/supplemental/$type-name.
For example, the material described in the example above would be accessed at
http://localhost:9090/supplemental/exercises. If you have slides and supplemental material
that are related to one another, they could be contained in the same file. This makes
it extraordinarily easy to reorder the presentation.

= Slide Transitions

Transitions can be supplied through the use of transition=tname on the !SLIDE
definition, where tname is one of the following supported transitions:

- blindX
- blindY
- blindZ
- cover
- curtainX
- curtainY
- fade
- fadeZoom
- growX
- growY
- none (this is the default)
- scrollUp
- scrollDown
- scrollLeft
- scrollRight
- scrollHorz
- scrollVert
- shuffle
- slideX
- slideY
- toss
- turnUp
- turnDown
- turnLeft
- turnRight
- uncover
- wipe
- zoom

The transitions are provided by jQuery Cycle plugin. See http://www.malsup.com/jquery/cycle/browser.html to view the effects and http://www.malsup.com/jquery/cycle/adv2.html for how to add custom effects.

= Slide Backgrounds

A custom per slide background can be set in the slide options. For example:

     !SLIDE[bg=customLogo.png]

By default, the background will be scaled to completely cover the slide. If you
specify the <tt>background-fit</tt> slide style, then the background will be
scaled to the largest size that both height and width fit within the slide.

= Language Highlighting

Showoff uses {highlightjs}[https://highlightjs.org] to highlight code blocks. If
you begin a code block with *four spaces* and three @-signs followed by a programming language
name, that line will be stripped and the rest of the block will become sparkly
and colorful. You can uppercase the name if you like.
{'fraction_non_alphanumeric': 0.06454564651228267, 'fraction_numerical': 0.0021116351094530865, 'mean_word_length': 4.287681429103089, 'pattern_counts': {'":': 8, '<': 55, '<?xml version=': 0, '>': 55, 'https://': 6, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4795479', 'n_tokens_mistral': 3829, 'n_tokens_neox': 3646, 'n_words': 1972}