diff --git a/lib/ppt.js b/lib/ppt.js index 7045411..8e8c981 100644 --- a/lib/ppt.js +++ b/lib/ppt.js @@ -1,4 +1,5 @@ import Pptxgen from 'pptxgenjs'; +import slugify from '@sindresorhus/slugify'; function toPlainText(blocks = []) { return ( @@ -18,17 +19,6 @@ function toPlainText(blocks = []) { ); } -function slugify(text) { - return text - .toString() - .toLowerCase() - .replace(/\s+/g, '-') // Replace spaces with - - .replace(/[^w-]+/g, '') // Remove all non-word chars - .replace(/--+/g, '-') // Replace multiple - with single - - .replace(/^-+/, '') // Trim - from start of text - .replace(/-+$/, ''); // Trim - from end of text -} - const backgroundImages = { pca: [ {path: '/static/ppts/bgimg.jpg'}, diff --git a/package-lock.json b/package-lock.json index b0a983d..f6e180a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5163,6 +5163,38 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, + "@sindresorhus/slugify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.0.tgz", + "integrity": "sha512-ujZRbmmizX26yS/HnB3P9QNlNa4+UvHh+rIse3RbOXLp8yl6n1TxB4t7NHggtVgS8QmmOtzXo48kCxZGACpkPw==", + "requires": { + "@sindresorhus/transliterate": "^0.1.1", + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + } + } + }, + "@sindresorhus/transliterate": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.1.tgz", + "integrity": "sha512-QSdIQ5keUFAZ3KLbfbsntW39ox0Ym8183RqTwBq/ZEFoN3NQAtGV+qWaNdzKpIDHgj9J2CQ2iNDRVU11Zyr7MQ==", + "requires": { + "escape-string-regexp": "^2.0.0", + "lodash.deburr": "^4.1.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, "@stripe/react-stripe-js": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.2.2.tgz", @@ -16163,6 +16195,11 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" }, + "lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" + }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", diff --git a/package.json b/package.json index c94e548..6174f57 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "@sanity/block-content-to-react": "^2.0.7", "@sanity/client": "^1.150.7", "@sanity/image-url": "^0.140.22", + "@sindresorhus/slugify": "^1.1.0", "@stripe/react-stripe-js": "^1.2.2", "@stripe/stripe-js": "^1.12.1", "@theme-ui/color": "^0.3.5",