Template:Breadcrumbs
Examples
1. Breadcrumbs to the ship «Acolyte of Adhara» using its category hierarchy: Ships
→ Cabal of Sol Ships
(category) → Cabal of Sol Combat Ships
(category)
2. Same as above, but with option to remove "Category: " from the page names that have them.
3. Same as first example, but with name overrides (override params are placed at the end of the template): (1) Cabal of Sol Ships
(category) → Cabal of Sol
, (2) Cabal of Sol Combat Ships
(category) → Cabal of Sol
4. Same as first example, but with name overrides (override params placed after their respective links): (1) Cabal of Sol Ships
(category) → Cabal of Sol
, (2) Cabal of Sol Combat Ships
(category) → Cabal of Sol
Allows to generate breadcrumbs for arbitrary paths.
Parameter | Description | Type | Status | |
---|---|---|---|---|
Remove category from name | remove category name | If set removes "Category: " from category names.
| Boolean | suggested |
Page 1 | page 1 1 | 1st page. | Page name | required |
Page 1 name override | page 1 name | An override for the 1st page name. | Line | optional |
Page 2 | page 2 2 | 2nd page. | Page name | suggested |
Page 2 name override | page 2 name | An override for the 2nd page name. | Line | optional |
Page 3 | page 3 3 | 3rd page. | Page name | suggested |
Page 3 name override | page 3 name | An override for the 3rd page name. | Line | optional |
Page 4 | page 4 4 | 4th page. | Page name | suggested |
Page 4 name override | page 4 name | An override for the 4th page name. | Line | optional |
Page 5 | page 5 5 | 5th page. | Page name | suggested |
Page 5 name override | page 5 name | An override for the 5th page name. | Line | optional |
Page 6 | page 6 6 | 6th page. | Page name | suggested |
Page 6 name override | page 6 name | An override for the 6th page name. | Line | optional |
Page 7 | page 7 7 | 7th page. | Page name | suggested |
Page 7 name override | page 7 name | An override for the 7th page name. | Line | optional |
Page 8 | page 8 8 | 8th page. | Page name | suggested |
Page 8 name override | page 8 name | An override for the 8th page name. | Line | optional |
Javascript script used to generate the template data
const recordsToGenerate = 8;
const templateData = {
params: {
"remove category name": {
"label": "Remove category from name",
"description": "If set removes \"Category: \" from category names.",
"type": "boolean",
"default": "false",
"suggested": "true"
}
},
description: "Allows to generate breadcrumbs for arbitrary paths.",
paramOrder: [
"remove category name"
],
format: "inline"
};
for (let i = 1; i <= recordsToGenerate; i++) {
const pageParamName = `page ${i}`;
const pageNameOverrideParamName = `page ${i} name`;
templateData.params[pageParamName] = {
"aliases": [
`${i}`
],
"label": `Page ${i}`,
"description": `${getOrdinalNum(i)} page.`,
"type": "wiki-page-name",
"required": i === 1,
...(i > 1 ? { suggested: true } : {})
};
templateData.params[pageNameOverrideParamName] = {
"label": `Page ${i} name override`,
"description": `An override for the ${getOrdinalNum(i)} page name.`,
"type": "line",
};
templateData.paramOrder.push(pageParamName);
templateData.paramOrder.push(pageNameOverrideParamName);
}
download(JSON.stringify(templateData, null, 4), 'result.json');
function getOrdinalNum(num) {
switch (num) {
case 1:
return '1st';
case 2:
return '2nd';
case 3:
return '3rd';
default:
return `${num}th`
}
}
function download(data, filename) {
const file = new Blob([data], { type: 'text' });
const link = document.createElement("a");
const url = URL.createObjectURL(file);
link.href = url;
link.download = filename;
document.body.appendChild(link);
link.click();
link.remove();
}