User:AKAAkira/SimpleNav: Difference between revisions
Jump to navigation
Jump to search
m Admittedly more bulky, but again, a bit of leeway for auto-navving anything with another word subbed for "Chapter" |
m Forgot to trim extra... |
||
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<!-- Table properties --> | |||
{| border="1" cellpadding="5" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaaaaa solid; padding: 0.2em; border-collapse: collapse;" | {| border="1" cellpadding="5" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaaaaa solid; padding: 0.2em; border-collapse: collapse;" | ||
|- | |- | ||
<!-- First box, if potential previous page exists --> | |||
<!-- Check1: Checks if the "back" manual override is used --> | |||
{{#if: {{{b|{{{back|}}} }}} | |||
<!-- Check1 True: "back" manual override is being used --> | |||
<!-- Check and if page exists, provide link to page with "back" argument placed after current volume number (e.g. Prologue) --> | |||
| {{#ifexist: {{#sub: {{FULLPAGENAME}} | 0 | {{#pos: {{FULLPAGENAME}} | {{#sub: {{#sub: {{FULLPAGENAME}} | {{#if: {{#pos: {{FULLPAGENAME}} | Volume }} | {{#expr: {{#pos: {{FULLPAGENAME}} | Volume }} +6 }} }} }} | {{#len: {{#iferror: {{#expr: {{#sub: {{#sub: {{FULLPAGENAME}} | {{#if: {{#pos: {{FULLPAGENAME}} | Volume }} | {{#expr: {{#pos: {{FULLPAGENAME}} | Volume }} +6 }} }} }} | 0 | 3 }} + 0 }} | {{#iferror: {{#expr: {{#sub: {{#sub: {{FULLPAGENAME}} | {{#if: {{#pos: {{FULLPAGENAME}} | Volume }} | {{#expr: {{#pos: {{FULLPAGENAME}} | Volume }} +6 }} }} }} | 0 | 2 }} + 0 }} }} }} }} }} }} }} {{{b|{{{back}}} }}} <!-- SPACE BEFORE {{{b}}} IS IMPORTANT HERE --> | |||
| {{!}} Back to [[ {{#sub: {{FULLPAGENAME}} | |||
|- | |- | ||
|} | |}<noinclude> | ||
Sandbox page for this template. The real page is at [[Template:SimpleNav]]. | |||
TODO: | |||
*<s>Make it say "Volume" when on Volume page.</s> | |||
*<s>Make it readable</s> Better than before, at least... | |||
*<s>Make it easy to tell what the arguments are asking for</s> | |||
*<s>Insert "beforename" and "aftername"</s> | |||
*Make it work even if there's something after the volume number aside from the usual (e.g. "Preview") | |||
*Check whether this still works with * or ' in pagename | |||
*<s>Make it tolerant to pages with space after colon</s> | |||
*This thing is case-sensitive... | |||
Edit notes (use a text editor to interchange code with capital letters to improve readability): | |||
<pre> | <pre> | ||
In case of multiple layers of argument defaulting (such as in the case of {{{b|{{{before|}}} }}} ), | |||
it's important to make sure there's no space immediately after the pipe, | |||
or else it may insert an unwanted one (usually right after the page title's colon) | |||
{{#rpos: {{#sub: {{FULLPAGENAME}} | 0 | -3 }} | }} | |||
produces the zero-based position of SPACE_BEFORE_LAST_WORD | |||
*substring-ing -5 allows it to count out the potential space in "Chapter 1" | |||
*also, it's important to use #rpos and not #pos here since the last space, | |||
or the first space from the /right/, is being looked for | |||
*returns -1 if there is no space in title (this is the product of using #rpos and not #pos) | |||
{{#sub: {{FULLPAGENAME}} | 0 | {{#pos: {{FULLPAGENAME}} | : }} }} | |||
produces the string SERIES_TITLE | |||
*title should not have a colon in it for this helper function to work | |||
*returns FULLPAGENAME if string ":" doesn't exist in title, | |||
but /should/ be ignorable since it will return false on #ifexist | |||
{{#sub: {{FULLPAGENAME}} | 0 | {{#pos: {{FULLPAGENAME}} | Volume }} }} | |||
produces the string ALL_BEFORE_VOLUMES_V | |||
*SERIES_TITLE should not have string "Volume" in it for this helper function to work | |||
*SERIES_TITLE is not used because this retains the space after a colon, if there is one | |||
*returns FULLPAGENAME if string "Volume" does not exist in title | |||
but /should/ be ignorable since this is only used in ifexist cases with colon taken out | |||
{{#sub: {{FULLPAGENAME}} | {{#pos: {{FULLPAGENAME}} | Volume }} }} | |||
produces the string ALL_AFTER_VOLUMES_V | |||
{{#if: {{#pos: {{FULLPAGENAME}} | Volume }} | {{#expr: {{#pos: {{FULLPAGENAME}} | Volume }} +6 }} }} | |||
{{# | produces the zero-based position AFTER_VOLUMES_E | ||
produces the zero-based position | *SERIES_TITLE should not have string "Volume" in it for this helper function to work | ||
*returns nothing if "Volume" does not exist in pagename | |||
{{#sub:{{ | {{#iferror: {{#expr: {{#sub: {{#sub: {{FULLPAGENAME}} | AFTER_VOLUMES_E }} | 0 | 3 }} + 0 }} | ||
produces the | | {{#iferror: {{#expr: {{#sub: {{#sub: {{FULLPAGENAME}} | AFTER_VOLUMES_E }} | 0 | 2 }} + 0 }} }} | ||
}} | |||
produces the integer VOL_NUMBER | |||
*returns nothing if "volume" does not exist in FULLPAGENAME, or if volume number is not a pure integer | |||
*heavily reliant on the fact that NO VOLUME NUMBER GOES INTO THREE DIGITS | |||
*(kinda hard to search&replace in notepad, break it into two segments, and remember to turn the line breaks into spaces) | |||
{{#sub: | {{#sub: {{#sub: {{FULLPAGENAME}} | AFTER_VOLUMES_E }} | {{#len: VOL_NUMBER }} }} | ||
produces | produces the string ALL_AFTER_VOLUME_NUMBER | ||
*including the space immediately after, though this /should/ be ignorable | |||
*returns FULLPAGENAME if "Volume" is not in the FULLPAGENAME | |||
*returns all after Volume's e if volume number is not a pure integer | |||
{{# | {{#sub: {{FULLPAGENAME}} | 0 | {{#pos: {{FULLPAGENAME}} | ALL_AFTER_VOLUME_NUMBER }} }} | ||
produces the | produces the string ALL_UP_TO_VOLUME_NUMBER | ||
*here, while parsing the space included in ALL_AFTER_VOLUME_NUMBER is /ignored/, | |||
which means there's a space included right after ALL_UP_TO_VOLUME_NUMBER instead, | |||
though again this /should/ be ignorable | |||
*returns nothing if "volume" does not exist in FULLPAGENAME | |||
*returns all before Volume's e if volume number is not a pure integer | |||
{{# | {{#iferror: {{#expr: {{#sub: {{FULLPAGENAME}} | -2 }} + 0 }} | ||
| {{#sub: {{FULLPAGENAME}} | -1 }} | |||
produces | }} | ||
produces the integer CHAPTER_NUM | |||
*returns the final character in PAGENAME if chapter number isn't the last thing in FULLPAGENAME | |||
*works only if chapter number does not exceed three or more digits | |||
</pre> | </pre> | ||
</noinclude> | </noinclude> |
Latest revision as of 23:46, 26 May 2014
Return to Main Page |
Sandbox page for this template. The real page is at Template:SimpleNav.
TODO:
Make it say "Volume" when on Volume page.Make it readableBetter than before, at least...Make it easy to tell what the arguments are asking forInsert "beforename" and "aftername"- Make it work even if there's something after the volume number aside from the usual (e.g. "Preview")
- Check whether this still works with * or ' in pagename
Make it tolerant to pages with space after colon- This thing is case-sensitive...
Edit notes (use a text editor to interchange code with capital letters to improve readability):
In case of multiple layers of argument defaulting (such as in the case of {{{b|{{{before|}}} }}} ), it's important to make sure there's no space immediately after the pipe, or else it may insert an unwanted one (usually right after the page title's colon) {{#rpos: {{#sub: {{FULLPAGENAME}} | 0 | -3 }} | }} produces the zero-based position of SPACE_BEFORE_LAST_WORD *substring-ing -5 allows it to count out the potential space in "Chapter 1" *also, it's important to use #rpos and not #pos here since the last space, or the first space from the /right/, is being looked for *returns -1 if there is no space in title (this is the product of using #rpos and not #pos) {{#sub: {{FULLPAGENAME}} | 0 | {{#pos: {{FULLPAGENAME}} | : }} }} produces the string SERIES_TITLE *title should not have a colon in it for this helper function to work *returns FULLPAGENAME if string ":" doesn't exist in title, but /should/ be ignorable since it will return false on #ifexist {{#sub: {{FULLPAGENAME}} | 0 | {{#pos: {{FULLPAGENAME}} | Volume }} }} produces the string ALL_BEFORE_VOLUMES_V *SERIES_TITLE should not have string "Volume" in it for this helper function to work *SERIES_TITLE is not used because this retains the space after a colon, if there is one *returns FULLPAGENAME if string "Volume" does not exist in title but /should/ be ignorable since this is only used in ifexist cases with colon taken out {{#sub: {{FULLPAGENAME}} | {{#pos: {{FULLPAGENAME}} | Volume }} }} produces the string ALL_AFTER_VOLUMES_V {{#if: {{#pos: {{FULLPAGENAME}} | Volume }} | {{#expr: {{#pos: {{FULLPAGENAME}} | Volume }} +6 }} }} produces the zero-based position AFTER_VOLUMES_E *SERIES_TITLE should not have string "Volume" in it for this helper function to work *returns nothing if "Volume" does not exist in pagename {{#iferror: {{#expr: {{#sub: {{#sub: {{FULLPAGENAME}} | AFTER_VOLUMES_E }} | 0 | 3 }} + 0 }} | {{#iferror: {{#expr: {{#sub: {{#sub: {{FULLPAGENAME}} | AFTER_VOLUMES_E }} | 0 | 2 }} + 0 }} }} }} produces the integer VOL_NUMBER *returns nothing if "volume" does not exist in FULLPAGENAME, or if volume number is not a pure integer *heavily reliant on the fact that NO VOLUME NUMBER GOES INTO THREE DIGITS *(kinda hard to search&replace in notepad, break it into two segments, and remember to turn the line breaks into spaces) {{#sub: {{#sub: {{FULLPAGENAME}} | AFTER_VOLUMES_E }} | {{#len: VOL_NUMBER }} }} produces the string ALL_AFTER_VOLUME_NUMBER *including the space immediately after, though this /should/ be ignorable *returns FULLPAGENAME if "Volume" is not in the FULLPAGENAME *returns all after Volume's e if volume number is not a pure integer {{#sub: {{FULLPAGENAME}} | 0 | {{#pos: {{FULLPAGENAME}} | ALL_AFTER_VOLUME_NUMBER }} }} produces the string ALL_UP_TO_VOLUME_NUMBER *here, while parsing the space included in ALL_AFTER_VOLUME_NUMBER is /ignored/, which means there's a space included right after ALL_UP_TO_VOLUME_NUMBER instead, though again this /should/ be ignorable *returns nothing if "volume" does not exist in FULLPAGENAME *returns all before Volume's e if volume number is not a pure integer {{#iferror: {{#expr: {{#sub: {{FULLPAGENAME}} | -2 }} + 0 }} | {{#sub: {{FULLPAGENAME}} | -1 }} }} produces the integer CHAPTER_NUM *returns the final character in PAGENAME if chapter number isn't the last thing in FULLPAGENAME *works only if chapter number does not exceed three or more digits