UNPKG

nuxtpress

Version:

NuxtPress is a professional blog module for nuxt.js

21 lines (19 loc) 654 B
const removeDiacritics = require('diacritics').remove; // eslint-disable-next-line no-control-regex const rControl = /[\u0000-\u001f]/g; const rSpecial = /[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'<>,.?/]+/g; module.exports = function slugify(str) { return removeDiacritics(str) // Remove control characters .replace(rControl, '') // Replace special characters .replace(rSpecial, '-') // Remove continous separators .replace(/-{2,}/g, '-') // Remove prefixing and trailing separtors .replace(/^-+|-+$/g, '') // ensure it doesn't start with a number (#121) .replace(/^(\d)/, '_$1') // lowercase .toLowerCase(); };