mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-15 23:54:42 -04:00
Update to make slide mode support all extra syntax and change it's rendering engine
This commit is contained in:
parent
160b51d16a
commit
d39f1fc700
7 changed files with 376 additions and 87 deletions
|
@ -5,27 +5,15 @@
|
|||
*/
|
||||
(function( root, factory ) {
|
||||
if( typeof exports === 'object' ) {
|
||||
module.exports = factory( require( './marked' ) );
|
||||
module.exports = factory();
|
||||
}
|
||||
else {
|
||||
// Browser globals (root is window)
|
||||
root.RevealMarkdown = factory( root.marked );
|
||||
root.RevealMarkdown = factory();
|
||||
root.RevealMarkdown.initialize();
|
||||
}
|
||||
}( this, function( marked ) {
|
||||
|
||||
if( typeof marked === 'undefined' ) {
|
||||
throw 'The reveal.js Markdown plugin requires marked to be loaded';
|
||||
}
|
||||
|
||||
if( typeof hljs !== 'undefined' ) {
|
||||
marked.setOptions({
|
||||
highlight: function( lang, code ) {
|
||||
return hljs.highlightAuto( lang, code ).value;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}( this, function() {
|
||||
|
||||
var DEFAULT_SLIDE_SEPARATOR = '^\r?\n---\r?\n$',
|
||||
DEFAULT_NOTES_SEPARATOR = 'note:',
|
||||
DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$',
|
||||
|
@ -364,10 +352,10 @@
|
|||
var notes = section.querySelector( 'aside.notes' );
|
||||
var markdown = getMarkdownFromSlide( section );
|
||||
|
||||
var rendered = marked( markdown );
|
||||
rendered = preventXSS(rendered);
|
||||
|
||||
section.innerHTML = rendered;
|
||||
var rendered = md.render(markdown);
|
||||
rendered = preventXSS(rendered);
|
||||
var result = postProcess(rendered);
|
||||
section.innerHTML = result[0].outerHTML;
|
||||
addAttributes( section, section, null, section.getAttribute( 'data-element-attributes' ) ||
|
||||
section.parentNode.getAttribute( 'data-element-attributes' ) ||
|
||||
DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR,
|
||||
|
|
65
public/js/slide.js
Normal file
65
public/js/slide.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
var body = $(".slides").html();
|
||||
$(".slides").html(S(body).unescapeHTML().s);
|
||||
|
||||
function extend() {
|
||||
var target = {};
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
for (var key in source) {
|
||||
if (source.hasOwnProperty(key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
}
|
||||
|
||||
// Optional libraries used to extend on reveal.js
|
||||
var deps = [{
|
||||
src: serverurl + '/vendor/reveal.js/lib/js/classList.js',
|
||||
condition: function() {
|
||||
return !document.body.classList;
|
||||
}
|
||||
}, {
|
||||
src: serverurl + '/js/reveal-markdown.js',
|
||||
condition: function() {
|
||||
return !!document.querySelector('[data-markdown]');
|
||||
}
|
||||
}, {
|
||||
src: serverurl + '/vendor/reveal.js/plugin/notes/notes.js',
|
||||
async: true,
|
||||
condition: function() {
|
||||
return !!document.body.classList;
|
||||
}
|
||||
}];
|
||||
|
||||
// default options to init reveal.js
|
||||
var defaultOptions = {
|
||||
controls: true,
|
||||
progress: true,
|
||||
slideNumber: true,
|
||||
history: true,
|
||||
center: true,
|
||||
transition: 'none',
|
||||
dependencies: deps
|
||||
};
|
||||
|
||||
// options from URL query string
|
||||
var queryOptions = Reveal.getQueryHash() || {};
|
||||
|
||||
var options = extend(defaultOptions, queryOptions);
|
||||
Reveal.initialize(options);
|
||||
|
||||
viewAjaxCallback = function () {
|
||||
Reveal.layout();
|
||||
};
|
||||
|
||||
function renderSlide() {
|
||||
var title = document.title;
|
||||
finishView($(event.currentSlide));
|
||||
document.title = title;
|
||||
Reveal.layout();
|
||||
}
|
||||
|
||||
Reveal.addEventListener('ready', renderSlide);
|
||||
Reveal.addEventListener('slidechanged', renderSlide);
|
Loading…
Add table
Add a link
Reference in a new issue