forked from campiaperti/infra
Add 'data-element-attributes' attr. to 'section'.
By default '{\\\.\s*?([^}]+?)}'.
This commit is contained in:
parent
7aa93af0ca
commit
a87ce95794
1 changed files with 10 additions and 8 deletions
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
var DEFAULT_SLIDE_SEPARATOR = '^\n---\n$',
|
var DEFAULT_SLIDE_SEPARATOR = '^\n---\n$',
|
||||||
DEFAULT_NOTES_SEPARATOR = 'note:';
|
DEFAULT_NOTES_SEPARATOR = 'note:';
|
||||||
|
DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '{\\\.\s*?([^}]+?)}';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -218,7 +219,6 @@
|
||||||
xhr.onreadystatechange = function() {
|
xhr.onreadystatechange = function() {
|
||||||
if( xhr.readyState === 4 ) {
|
if( xhr.readyState === 4 ) {
|
||||||
if ( xhr.status >= 200 && xhr.status < 300 ) {
|
if ( xhr.status >= 200 && xhr.status < 300 ) {
|
||||||
|
|
||||||
section.outerHTML = slidify( xhr.responseText, {
|
section.outerHTML = slidify( xhr.responseText, {
|
||||||
separator: section.getAttribute( 'data-separator' ),
|
separator: section.getAttribute( 'data-separator' ),
|
||||||
verticalSeparator: section.getAttribute( 'data-vertical' ),
|
verticalSeparator: section.getAttribute( 'data-vertical' ),
|
||||||
|
@ -277,8 +277,8 @@
|
||||||
* directly on refresh (F5)
|
* directly on refresh (F5)
|
||||||
* http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277
|
* http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277
|
||||||
*/
|
*/
|
||||||
function addAttributeInElement( node, elementTarget ){
|
function addAttributeInElement( node, elementTarget, separator ){
|
||||||
var mardownClassesInElementsRegex = new RegExp( "{\\\.\s*?([^}]+?)}", 'mg' );
|
var mardownClassesInElementsRegex = new RegExp( separator, 'mg' );
|
||||||
var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"=]+?)\"", 'mg' );
|
var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"=]+?)\"", 'mg' );
|
||||||
var nodeValue = node.nodeValue;
|
var nodeValue = node.nodeValue;
|
||||||
if ( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) {
|
if ( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) {
|
||||||
|
@ -297,24 +297,24 @@
|
||||||
* Add attributes to the parent element of a text node,
|
* Add attributes to the parent element of a text node,
|
||||||
* or the element of an attribute node.
|
* or the element of an attribute node.
|
||||||
*/
|
*/
|
||||||
function addAttributes( element )
|
function addAttributes( element, separator )
|
||||||
{
|
{
|
||||||
if ( element.childNodes.length > 0 ) {
|
if ( element.childNodes.length > 0 ) {
|
||||||
|
|
||||||
for ( var i = 0; i < element.childNodes.length; i++ ) {
|
for ( var i = 0; i < element.childNodes.length; i++ ) {
|
||||||
addAttributes( element.childNodes[i] );
|
addAttributes( element.childNodes[i], separator );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var nodeValue;
|
var nodeValue;
|
||||||
var elementTarget;
|
var elementTarget;
|
||||||
// From http://stackoverflow.com/questions/9178174/find-all-text-nodes
|
// From http://stackoverflow.com/questions/9178174/find-all-text-nodes
|
||||||
if ( element.nodeType == Node.TEXT_NODE && /\S/.test(element.nodeValue) ) {
|
if ( element.nodeType == Node.TEXT_NODE && /\S/.test(element.nodeValue) ) {
|
||||||
addAttributeInElement( element, element.parentNode );
|
addAttributeInElement( element, element.parentNode, separator );
|
||||||
}
|
}
|
||||||
if ( element.nodeType == Node.ELEMENT_NODE && element.attributes.length > 0 ) {
|
if ( element.nodeType == Node.ELEMENT_NODE && element.attributes.length > 0 ) {
|
||||||
for ( iattr=0; iattr<element.attributes.length; iattr++ ){
|
for ( iattr=0; iattr<element.attributes.length; iattr++ ){
|
||||||
var attr = element.attributes[iattr];
|
var attr = element.attributes[iattr];
|
||||||
addAttributeInElement(attr, element)
|
addAttributeInElement(attr, element, separator )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -340,7 +340,9 @@
|
||||||
var markdown = getMarkdownFromSlide( section );
|
var markdown = getMarkdownFromSlide( section );
|
||||||
|
|
||||||
section.innerHTML = marked( markdown );
|
section.innerHTML = marked( markdown );
|
||||||
addAttributes( section );
|
addAttributes( section, section.getAttribute( 'data-element-attributes' ) ||
|
||||||
|
section.parentNode.getAttribute( 'data-element-attributes' ) ||
|
||||||
|
DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR );
|
||||||
|
|
||||||
// If there were notes, we need to re-add them after
|
// If there were notes, we need to re-add them after
|
||||||
// having overwritten the section's HTML
|
// having overwritten the section's HTML
|
||||||
|
|
Loading…
Reference in a new issue