modella-slug

create slugs for models

Usage no npm install needed!

<script type="module">
  import modellaSlug from 'https://cdn.skypack.dev/modella-slug';
</script>

README

model-slug

create slugs for models

Installation

In the browser (with component):

component install modella/slug

On the server (with node.js):

npm install modella-slug

Example

var slug = require('slug');

var Blog = modella('blog')
  .attr('title')
  .attr('content')
  .use(slug('title'))

  var b = new Blog();
  b.title('A seriously interesting title');
  b.slug();
  // => 'a-seriously-interesting-title'

Multi-Attribute Example

var slug = require('slug');

var Blog = modella('blog')
  .attr('title')
  .attr('author')
  .attr('content')
  .use(slug(['title', 'author'], ':title-by-:author'));

  var b = new Blog();
  b.title('Some blog post');
  b.slug();
  // => 'some-blog-post-by-'

  b.author('Ryan S.');
  b.slug();
  // => 'some-blog-post-by-ryan-s'

Function Based Example

var slug = require('slug');


var Blog = modella('blog')
  .attr('title')
  .attr('author')
  .attr('content');

var getBlogSlug = function(blog) {
  var result = blog.title();
  if(blog.author()) {
    result += ' by ' + blog.author();
  }
  return result;
};

  Blog.use(slug(['author', 'title'], getBlogSlug));

  var b = new Blog();
  b.title('Some blog post');

  b.slug();
  // => 'some-blog-post'

  b.author('Ryan S.');
  b.slug();
  // => 'some-blog-post-by-ryan-s'

License

MIT