npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jekyll-utils

v0.2.0

Published

A collection of Jekyll utilility methods to generate eg. Jekyll permalinks and slugs

Downloads

25

Readme

Jekyll Utils

Build Status Coverage Status dependencies Status Known Vulnerabilities js-semistandard-style

A collection of Jekyll utilility methods to generate eg. Jekyll permalinks and slugs

Requirements

Requires at least Node.js 10.x

Installation

npm install jekyll-utils --save

API Usage

slugify

Slugify a filename or title.

When mode is "none", return the given string.

When mode is "raw", return the given string, with every sequence of spaces characters replaced with a hyphen.

When mode is "default" or nil, non-alphabetic characters are replaced with a hyphen too.

When mode is "pretty", some non-alphabetic characters (._~!$&'()+,;=@) are not replaced with hyphen.

If cased is true, all uppercase letters in the result string are replaced with their lowercase counterparts.

Parameters

  • str string the string to create a slug of
  • mode string how string is slugified. Can be set to "default", "pretty" or "raw" (optional, default default)
  • cased boolean – whether to keep the character casing or not (optional, default false)

Examples

slugify('The _config.yml file')
// => 'the-config-yml-file'
slugify('The _config.yml file', 'pretty')
// => 'the-_config.yml-file'
slugify('The _config.yml file', 'pretty', true)
// => 'The-_config.yml file'

Returns string the slugified string

generateUrl

Parameters

  • template string The String used as template for URL generation, for example "/:path/:basename:output_ext", where a placeholder is prefixed with a colon. Or one of the predefined styles "pretty", "none", "date" or "ordinal". (optional, default date)

  • jekyllResource object A representation of a Jekyll resource such as a Post or a Page

    • jekyllResource.basename_without_ext string The file basename without the file extension.
    • jekyllResource.date (Date | number) The published date of the resource
    • jekyllResource.data object? The resource document's data
      • jekyllResource.data.categories Array<string>? The categories specified on the document
      • jekyllResource.data.slug string? The slug specified on the document
  • Throws Error if not all needed placeholders are found

Returns string the String URL

JekyllUrl

Methods that generate a URL for a resource such as a Post or a Page.

Parameters

  • options object One of :permalink or :template must be supplied.
    • options.template string The String used as template for URL generation, or example "/:path/:basename:output_ext", where a placeholder is prefixed with a colon.
    • options.null string :placeholders - A hash containing the placeholders which will be replaced when used inside the template. E.g. { year: (new Date()).getFullYear() } would replace the placeholder ":year" with the current year.
    • options.permalink string If supplied, no URL will be generated from the template. Instead, the given permalink will be used as URL.

Examples

new JekyllUrl({
  template: '/:categories/:title.html',
  placeholders: {':categories': 'ruby', ':title' => 'something'}
}).toString();

toString

Generates the relative URL of the resource

  • Throws Error if the relative URL contains a colon

Returns string the String URL

generated_permalink

Generates a URL from the permalink

Returns (string | false) the unsanitized String URL

generated_url

Generates a URL from the template

Returns (string | false) the unsanitized String URL

sanitize_url

Parameters
  • str string an unsanitized String URL

Returns string a sanitized String URL, stripping "../../" and multiples of "/", as well as the beginning "/" so we can enforce and ensure it.

escape_path

Escapes a path to be a valid URL path segment

Parameters
  • path string The path to be escaped.
Examples
JekyllUrl.escape_path('/a b')
// => '/a%20b'

Returns string the escaped path.