New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

pug-slides-loader

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pug-slides-loader - npm Package Compare versions

Comparing version 1.0.5 to 1.0.6

58

index.js

@@ -5,2 +5,11 @@ /* eslint-disable no-useless-concat */

function checkPathToBeIncluded(id, pathOrder) {
const pathToInclude = pathOrder.find(path => {
const str = `.*revealSlide${id}[^0-9].*`;
const regex = new RegExp(str);
return regex.test(path);
});
return pathToInclude;
}
module.exports = function RevealSliderLoader(source) {

@@ -12,2 +21,16 @@ let newSource = source;

let slidesOrderTag = newSource.match(/<!--inject:order=.*,?-->\n/);
let slidesCustomOrder = [];
let slidesDefaultOrder = [];
if (slidesOrderTag) {
slidesOrderTag = slidesOrderTag[0];
slidesCustomOrder = slidesOrderTag.match(/(\d+,)+\d+|\d+/)[0].split(',');
slidesCustomOrder = [...new Set(slidesCustomOrder)].map(num => +num);
}
const pathOrder = [];
fs.readdir(fromPath, (err, files) => {

@@ -21,6 +44,32 @@ const regex = /(import.*from.*;)(?!.*\1)/g;

if (/slide.*\.pug$/.test(file)) {
extendedImport += `import revealSlide${i} from '${path.resolve(fromPath, file).replace(/\\/g, '/')}';\n`;
stringTemplatesImports += '${' + `revealSlide${i}` + '}\n';
const id = file.replace(/slide[^0-9]+(\d+)\.pug$/, "$1");
if(id){
if (!slidesCustomOrder.length) slidesDefaultOrder.push(+id);
pathOrder.push(`import revealSlide${id} from '${path.resolve(fromPath, file).replace(/\\/g, '/')}';\n`)
}
}
});
// Sort all imports
if(slidesCustomOrder.length && !slidesDefaultOrder.length) {
slidesCustomOrder.forEach(id => {
const pathToInclude = checkPathToBeIncluded(id, pathOrder);
if (pathToInclude) {
extendedImport+=pathToInclude;
stringTemplatesImports+= '${' + `revealSlide${id}` + '}\n';
}
});
} else if (slidesDefaultOrder.length && !slidesCustomOrder.length) {
slidesDefaultOrder.sort((a,b) => a - b);
slidesDefaultOrder = [...new Set(slidesDefaultOrder)];
slidesDefaultOrder.forEach(id => {
const pathToInclude = checkPathToBeIncluded(id, pathOrder);
if (pathToInclude) {
extendedImport+=pathToInclude;
stringTemplatesImports+= '${' + `revealSlide${id}` + '}\n';
}
});
}
if (lastImport) {

@@ -32,4 +81,7 @@ newSource = newSource.replace(lastImport, extendedImport);

newSource = newSource.replace('<!--inject:slides-->', stringTemplatesImports);
if (slidesCustomOrder.length) {
newSource = newSource.replace(slidesOrderTag, '');
}
callback(null, newSource);
});
};
};

2

package.json
{
"name": "pug-slides-loader",
"version": "1.0.5",
"version": "1.0.6",
"description": "Simple Webpack loader for Reveal.js slides (.pug files) to fast inject them in one place",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -42,2 +42,6 @@ ## Custom webpack loader to use with [these](https://github.com/xmelsky/reveal.js-boilerplates) boilerplates

> note: all slides are sorted by default from lower number to highest
> but you can specify custom order.
```

@@ -50,2 +54,3 @@ import Reveal from 'reveal.js';

<!--inject:slides--> // HERE SLIDES WILL BE INJECTED
<!--inject:order=15,18,11,0,2,3,4,5,6,7,8,21,12,--> // CUSTOM RENDER ORDER
<section>

@@ -52,0 +57,0 @@ <img data-src="images/logo.webp">

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc