A collection of Jekyll utilility methods to generate eg. Jekyll permalinks and slugs
MIT License
A collection of Jekyll utilility methods to generate eg. Jekyll permalinks and slugs
Requires at least Node.js 10.x
npm install jekyll-utils --save
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.
str
string the string to create a slug ofmode
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
)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
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
Throws Error if not all needed placeholders are found
Returns string the String URL
Methods that generate a URL for a resource such as a Post or a Page.
options
object One of :permalink or :template must be supplied.
options.template
string The String used as template for URL generation,options.null
string :placeholders - A hash containing the placeholders which will beoptions.permalink
string If supplied, no URL will be generated from thenew JekyllUrl({
template: '/:categories/:title.html',
placeholders: {':categories': 'ruby', ':title' => 'something'}
}).toString();
Generates the relative URL of the resource
Returns string the String URL
Generates a URL from the permalink
Returns (string | false
) the unsanitized String URL
Generates a URL from the template
Returns (string | false
) the unsanitized String URL
str
string an unsanitized String URLReturns string a sanitized String URL, stripping "../../" and multiples of "/", as well as the beginning "/" so we can enforce and ensure it.
Escapes a path to be a valid URL path segment
path
string The path to be escaped.JekyllUrl.escape_path('/a b')
// => '/a%20b'
Returns string the escaped path.