Skip to content

Instantly share code, notes, and snippets.

@ritalin
Forked from aaronwolen/slides.md
Last active September 7, 2018 12:52
Show Gist options
  • Save ritalin/6572006 to your computer and use it in GitHub Desktop.
Save ritalin/6572006 to your computer and use it in GitHub Desktop.
Customized Pandoc (http://johnmacfarlane.net/pandoc/) template for reveal.js (http://lab.hakim.se/reveal-js/#/) Add the feature displaying fragment. Add the feature changing background color.

% Title % Name % Date

My first slide { fragment=fade-in target=li }

Displaying fragment for specified target element.

List

  • this
  • is
  • cool

Variables

The following variables can be defined from the command line:

  • theme
  • transition
pandoc -t html5 --template=template-revealjs.html \
	--standalone --section-divs \
  --variable theme="beige" \
  --variable transition="linear" \
  slides.md -o slides.html

Background color { bg_color=coral }

Change background color.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>$title$</title>
<meta name="description" content="$title$">
$for(author)$
<meta name="author" content="$author$" />
$endfor$
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="reveal_js/css/reveal.min.css">
$if(theme)$
<link rel="stylesheet" href="reveal_js/css/theme/$theme$.css" id="theme">
$else$
<link rel="stylesheet" href="reveal_js/css/theme/default.css" id="theme">
$endif$
<link href="reveal_js/reveal.user.css" rel="stylesheet" type="text/css">
<!-- For syntax highlighting -->
$if(highlight-style)$
<link rel="stylesheet" href="reveal_js/lib/css/$highlight-style$.css">
$else$
<link rel="stylesheet" href="reveal_js/lib/css/zenburn.css">
$endif$
<!-- If the query includes 'print-pdf', use the PDF print sheet -->
<script>
document.write( '<link rel="stylesheet" href="reveal_js/css/print/' +
( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) +
'.css" type="text/css" media="print">' );
</script>
<!--[if lt IE 9]>
<script src="reveal_js/lib/js/html5shiv.js"></script>
<![endif]-->
$for(header-includes)$
$header-includes$
$endfor$
</head>
<body>
$for(include-before)$
$include-before$
$endfor$
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="slides">
<section>
<h1>$title$</h1>
$for(author)$<h3>$author$</h3>$endfor$
<p>
<h4>$date$</h4>
</p>
</section>
$if(toc)$
<section>
<h2>Outline</h2>
<nav id="$idprefix$TOC">
$toc$
</nav>
</section>
$endif$
$body$
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="reveal_js/lib/js/head.min.js"></script>
<script src="reveal_js/js/reveal.min.js"></script>
<script>
jQuery('section').removeAttr('id');
jQuery('section[target]')
.map(function(i, el) {
jQuery(el).find(el.attributes.target.value)
.map(function() {
jQuery(this).addClass('fragment ' + el.attributes.fragment.value)
});
});
jQuery('section[bg_color]')
.map(function(i, el) {
jQuery(el).attr('data-background', el.attributes.bg_color.value);
});
</script>
<script>
// Full list of configuration options available here:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
// available themes are in /css/theme
$if(theme)$
theme: Reveal.getQueryHash().theme || '$theme$',
$else$
theme: Reveal.getQueryHash().theme || 'default',
$endif$
// default/cube/page/concave/zoom/linear/fade/none
$if(transition)$
transition: Reveal.getQueryHash().transition || '$transition$',
$else$
transition: Reveal.getQueryHash().transition || 'default',
$endif$
// Optional libraries used to extend on reveal.js
dependencies: [
{ src: 'reveal_js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
// { src: 'reveal_js/plugin/markdown/markd.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
// { src: 'reveal_js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'reveal_js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'reveal_js/plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'reveal_js/plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
// { src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } }
]
});
</script>
</body>
</html>
@Quantum-cross
Copy link

Wow! Just wanted to say I somehow found this. It's a lifesaver!

@Tagirijus
Copy link

Tagirijus commented Sep 7, 2018

Quite nice. I had to tweak it a bit. Maybe due to a newer revealjs version? I don't know. Feel free to check out my fork:

https://gist.github.com/Tagirijus/837abb01ceca40cc02ad7b5a56f12e67

With this you also can now use -V revealjs-url=/home/manu/Dokumente/Code/Javascript/reveal.js to set up a specific revealjs directory.

Edit: { bg_color=... } still does not work though .. ... fixed in Revision 18

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment