You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
1.7 KiB
88 lines
1.7 KiB
'use strict'; |
|
|
|
function isCurrentHelper(path = '/', strict) { |
|
const currentPath = this.path.replace(/^[^/].*/, '/$&'); |
|
|
|
if (strict) { |
|
if (path.endsWith('/')) path += 'index.html'; |
|
path = path.replace(/^[^/].*/, '/$&'); |
|
|
|
return currentPath === path; |
|
} |
|
|
|
path = path.replace(/\/index\.html$/, '/'); |
|
|
|
if (path === '/') return currentPath === '/index.html'; |
|
|
|
path = path.replace(/^[^/].*/, '/$&'); |
|
|
|
return currentPath.startsWith(path); |
|
} |
|
|
|
function isHomeHelper() { |
|
return Boolean(this.page.__index); |
|
} |
|
|
|
function isPostHelper() { |
|
return Boolean(this.page.__post); |
|
} |
|
|
|
function isPageHelper() { |
|
return Boolean(this.page.__page); |
|
} |
|
|
|
function isArchiveHelper() { |
|
return Boolean(this.page.archive); |
|
} |
|
|
|
function isYearHelper(year) { |
|
const { page } = this; |
|
if (!page.archive) return false; |
|
|
|
if (year) { |
|
return page.year === year; |
|
} |
|
|
|
return Boolean(page.year); |
|
} |
|
|
|
function isMonthHelper(year, month) { |
|
const { page } = this; |
|
if (!page.archive) return false; |
|
|
|
if (year) { |
|
if (month) { |
|
return page.year === year && page.month === month; |
|
} |
|
|
|
return page.month === year; |
|
} |
|
|
|
return Boolean(page.year && page.month); |
|
} |
|
|
|
function isCategoryHelper(category) { |
|
if (category) { |
|
return this.page.category === category; |
|
} |
|
|
|
return Boolean(this.page.category); |
|
} |
|
|
|
function isTagHelper(tag) { |
|
if (tag) { |
|
return this.page.tag === tag; |
|
} |
|
|
|
return Boolean(this.page.tag); |
|
} |
|
|
|
exports.current = isCurrentHelper; |
|
exports.home = isHomeHelper; |
|
exports.post = isPostHelper; |
|
exports.page = isPageHelper; |
|
exports.archive = isArchiveHelper; |
|
exports.year = isYearHelper; |
|
exports.month = isMonthHelper; |
|
exports.category = isCategoryHelper; |
|
exports.tag = isTagHelper;
|
|
|