"use strict"; // http://ruhoh.com/docs/2/pages/#toc_41 /* If a page has a permalink, that permalink should be respected. Otherwise it should use the the permalink for that collection. */ var tags, permalinkTransforms, cases, path = /*exports.path ||*/ require("path"); tags = { year: "Year from the page’s filename", month: "Month from the page’s filename", day: "Day from the page’s filename", path: "The page file's path relative to the base of your website.", relative_path: "The page file's path relative to its name-spaced directory.", filename: "The page file's filename (path is not included).", categories: "The specified categories for this page. If more than one category is set, only the first one is used. If no categories exist, the URL omits this parameter.", i_month: "Month from the page’s filename without leading zeros.", i_day: "Day from the page’s filename without leading zeros.", title: "The title, as a slug.", slug: "alias of title", name: "alias of title", collection: "i.e. posts/ or essays/ or whatever/", }; function pad(str, n) { str = str.toString(); if (str.length < n) { str = "0" + str; } return str; } // https://www.youtube.com/watch?v=1NryFD9_hR0&list=RDOeLUK4a6Ojc&index=2 cases = { "/:title.html": "/my-title.html", ":title/": "/my-title/", "/:bad/:title/": "/:bad/my-title/", "/:slug/": "/my-title/", "/:path/:name.html": "/posts/fun/my-title.html", "/:relative_path/:name/": "/fun/my-title/", "/:year-:month-:day/:name": "/2015-07-04/my-title/", "/:year/:i_month/:i_day/:name": "/2015/7/4/my-title/", "/:filename.html": "/my-file-name.html", "/:filename": "/my-file-name/", "/:filename/": "/my-file-name/", "/:collection/:title/": "/posts/my-title/", "/:collection/:filename": "/posts/my-file-name/", "/:something/:or/:other": "/:something/:or/:other/", "/:categories/:title/": "/desi/my-title/", }; Object.keys(cases).forEach(function (tpl) { var entity, tpld; entity = { year: "2015", month: "07", day: "04", title: "My Title", slug: "my-title", name: "My-File-Name.html", relativePath: "posts/fun", path: "posts/fun/My-File-Name.html", collection: "posts", yml: { categories: ["desi"] }, }; tpld = permalinker(tpl, entity); if (cases[tpl] !== tpld) { console.error("[ERROR]"); console.error(tpl + " " + tpld + " " + cases[tpl]); throw new Error( "Did not template permalink correctly. " + tpl + " " + tpld + " " + cases[tpl] ); } });