styledocco
Advanced tools
Comparing version 0.6.0 to 0.6.1
12
cli.js
@@ -38,3 +38,5 @@ 'use strict'; | ||
// Get a filename without the extension | ||
var baseFilename = function(str) { return path.basename(str, path.extname(str)); }; | ||
var baseFilename = function(str) { | ||
return path.basename(str, path.extname(str)).replace(/^_/, ''); | ||
}; | ||
@@ -105,7 +107,10 @@ var basePathname = function(file, basePath) { | ||
// accepts that, so we need to read the file both here and for the parser. | ||
if (pp != null) { | ||
// Don't process SASS partials. | ||
if (file.match(/(^|\/)_.*\.s(c|s)ss$/) != null) { | ||
process.nextTick(function() { cb(null, ''); }); | ||
} else if (pp != null) { | ||
exec(pp + ' ' + file, function(err, stdout, stderr) { | ||
// log('styledocco: preprocessing ' + file + ' with ' + pp); | ||
// Fail gracefully on preprocessor errors | ||
if (err != null) console.error(err.message); | ||
if (err != null && options.verbose) console.error(err.message); | ||
if (stderr.length && options.verbose) console.error(stderr); | ||
@@ -198,2 +203,3 @@ cb(null, stdout || ''); | ||
}, function(err, files) { | ||
if (err != null) return cb(err); | ||
files = files.filter(function(file) { | ||
@@ -200,0 +206,0 @@ // No hidden files |
@@ -6,3 +6,3 @@ { | ||
"author": "Jacob Rask <jacob@jacobrask.net>", | ||
"version": "0.6.0", | ||
"version": "0.6.1", | ||
"homepage": "http://jacobrask.github.com/styledocco/", | ||
@@ -9,0 +9,0 @@ "licenses": [ { "type": "MIT", "url": "http://github.com/jacobrask/styledocco/raw/master/LICENSE" } ], |
@@ -77,2 +77,3 @@ // StyleDocco documentation code/preview rendering and handling | ||
addIframe(codeEl, support, idx); | ||
resizeableButtons(); | ||
autoResizeTextArea(codeEl); | ||
@@ -160,50 +161,53 @@ }); | ||
var settingsEl = bodyEl.getElementsByClassName('settings')[0]; | ||
var resizeableEls = bodyEl.getElementsByClassName('resizeable'); | ||
var resizeableElOffset = 30; // `.resizeable` padding | ||
var resizePreviews = function(width) { | ||
document.cookie = 'preview-width=' + width; | ||
forEach(resizeableEls, function(el) { | ||
if (width === 'auto') width = el.parentNode.offsetWidth; | ||
el.style.width = width + 'px'; | ||
// TODO: Add CSS transitions and update height after `transitionend` event | ||
postMessage(el.getElementsByTagName('iframe')[0], 'getHeight'); | ||
}); | ||
}; | ||
var resizeableButtons = function() { | ||
var settingsEl = bodyEl.getElementsByClassName('settings')[0]; | ||
var resizeableEls = bodyEl.getElementsByClassName('resizeable'); | ||
var resizeableElOffset = 30; // `.resizeable` padding | ||
var resizePreviews = function(width) { | ||
document.cookie = 'preview-width=' + width; | ||
forEach(resizeableEls, function(el) { | ||
if (width === 'auto') width = el.parentNode.offsetWidth; | ||
el.style.width = width + 'px'; | ||
// TODO: Add CSS transitions and update height after `transitionend` event | ||
postMessage(el.getElementsByTagName('iframe')[0], 'getHeight'); | ||
}); | ||
}; | ||
// Resize previews to the cookie value. | ||
var previewWidth = keyvalParse(document.cookie)['preview-width']; | ||
if (previewWidth) { | ||
resizePreviews(previewWidth); | ||
removeClass(settingsEl.getElementsByClassName('is-active'), 'is-active'); | ||
var btn = settingsEl.querySelector('button[data-width="' + previewWidth + '"]'); | ||
if (btn) { btn.classList.add('is-active'); } | ||
} | ||
// Resize previews to the cookie value. | ||
var previewWidth = keyvalParse(document.cookie)['preview-width']; | ||
if (previewWidth) { | ||
resizePreviews(previewWidth); | ||
removeClass(settingsEl.getElementsByClassName('is-active'), 'is-active'); | ||
var btn = settingsEl.querySelector('button[data-width="' + previewWidth + '"]'); | ||
if (btn) { btn.classList.add('is-active'); } | ||
} | ||
window.addEventListener('message', function (ev) { | ||
if (ev.data == null || !ev.source) return; | ||
var data = ev.data; | ||
var sourceFrameEl = document.getElementsByName(ev.source.name)[0]; | ||
// Set iframe height | ||
if (data.height != null && sourceFrameEl) { | ||
sourceFrameEl.parentNode.style.height = (data.height + resizeableElOffset) + 'px'; | ||
window.addEventListener('message', function (ev) { | ||
if (ev.data == null || !ev.source) return; | ||
var data = ev.data; | ||
var sourceFrameEl = document.getElementsByName(ev.source.name)[0]; | ||
// Set iframe height | ||
if (data.height != null && sourceFrameEl) { | ||
sourceFrameEl.parentNode.style.height = (data.height + resizeableElOffset) + 'px'; | ||
} | ||
}, false); | ||
// Resizing buttons | ||
if (settingsEl && resizeableEls.length > 0) { | ||
settingsEl.hidden = false; | ||
settingsEl.addEventListener('click', function(event) { | ||
var tagName = event.target.tagName.toLowerCase(); | ||
var btn; | ||
if (tagName === 'button') btn = event.target; | ||
else if (tagName === 'svg') btn = event.target.parentNode; | ||
else return; | ||
event.preventDefault(); | ||
removeClass(settingsEl.getElementsByClassName('is-active'), 'is-active'); | ||
btn.classList.add('is-active'); | ||
var width = btn.dataset.width; | ||
resizePreviews(width); | ||
}); | ||
} | ||
}, false); | ||
}; | ||
// Resizing buttons | ||
if (settingsEl) { | ||
settingsEl.addEventListener('click', function(event) { | ||
var tagName = event.target.tagName.toLowerCase(); | ||
var btn; | ||
if (tagName === 'button') btn = event.target; | ||
else if (tagName === 'i') btn = event.target.parentNode; | ||
else return; | ||
event.preventDefault(); | ||
removeClass(settingsEl.getElementsByClassName('is-active'), 'is-active'); | ||
btn.classList.add('is-active'); | ||
var width = btn.dataset.width; | ||
resizePreviews(width); | ||
}); | ||
} | ||
})(); |
@@ -26,3 +26,3 @@ // StyleDocco documentation user interface elements | ||
var el = event.target; | ||
if (el.tagName.toLowerCase() === 'i') el = el.parentNode; // Button icons | ||
if (el.tagName.toLowerCase() === 'svg') el = el.parentNode; // Button icons | ||
var activateDropdown = false; | ||
@@ -94,3 +94,3 @@ if (el.dataset.toggle != null) { | ||
bodyEl.addEventListener('click', function(event) { | ||
if (event.target.classList.contains('search')) return; | ||
if (event.target.classList && event.target.classList.contains('search')) return; | ||
searchList.hidden = true; | ||
@@ -97,0 +97,0 @@ }); |
@@ -38,3 +38,4 @@ // StyleDocco JavaScript for preview iframes | ||
styleEl.innerText = processedPseudoClasses; | ||
document.getElementsByTagName('head')[0].appendChild(styleEl); | ||
var oldStyleEl = document.getElementsByTagName('style')[0]; | ||
oldStyleEl.parentNode.insertBefore(styleEl, oldStyleEl); | ||
} | ||
@@ -53,3 +54,4 @@ | ||
for (var i = 0, l = els.length; i < l; i++) { | ||
elHeights.push(els[i].offsetTop + els[i].offsetHeight); | ||
elHeights.push(els[i].offsetTop + els[i].offsetHeight + | ||
parseInt(window.getComputedStyle(els[i], null).getPropertyValue('margin-bottom'))); | ||
} | ||
@@ -56,0 +58,0 @@ var height = Math.max.apply(Math, elHeights); |
@@ -59,2 +59,5 @@ 'use strict'; | ||
var htmlEntities = function(str) { | ||
return str.replace(/</g, '<').replace(/>/g, '>'); | ||
}; | ||
@@ -87,6 +90,2 @@ var separate = function(css) { | ||
var htmlEntities = function(str) { | ||
return str.replace(/</g, '<'); | ||
}; | ||
var makeSections = exports.makeSections = function(blocks) { | ||
@@ -93,0 +92,0 @@ return blocks |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
56022
1
16
1330