Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.20 first-letter Media Specjalna Dyskusja Wikipedysta Dyskusja wikipedysty Wikibooks Dyskusja Wikibooks Plik Dyskusja pliku MediaWiki Dyskusja MediaWiki Szablon Dyskusja szablonu Pomoc Dyskusja pomocy Kategoria Dyskusja kategorii Wikijunior Dyskusja Wikijuniora TimedText TimedText talk Moduł Dyskusja modułu Wydarzenie Dyskusja wydarzenia Szablon:Tabela nawigacyjna 10 32860 556826 556533 2026-09-18T18:14:04Z Persino 2851 556826 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:Tabela nawigacyjna/styles.css" /> {| {{#if:{{{id|}}}|id="{{{id}}}"}} {{#if:{{{styl|}}}|style="{{{styl}}}"}} <!-- --> class="tabela_nawigacyjna {{#switch:{{{funkcja|UkrytaWikitabelowaListaMenu}}} | UkrytaWikitabelowaListaMenu = wikitable collapsible collapsed | PokazanaWikitabelowaListaMenu = wikitable collapsible | StatycznaWikitabelowaListaMenu = wikitable | UkrytaNiewikitabelowaListaMenu = collapsible collapsed | PokazanaNiewikitabelowaListaMenu = collapsible | StatycznaNiewikitabelowaListaMenu = | AutomatycznaUkrytaWikitabelowaListaMenu = wikitable collapsible autocollapse | AutomatycznaUkrytaNiewikitabelowaListaMenu = collapsible autocollapse | WewnętrznaUkrytaWikitabelowaListaMenu = wikitable collapsible innercollapse | WewnętrznaUkrytaNiewikitabelowaListaMenu = collapsible innercollapse | #default = wikitable }} {{{klasa|}}}" {{{opcje|}}} |- ! {{#if:{{{styl nagłówka|}}}|style="{{{styl nagłówka}}}"}} {{#if:{{{klasa nagłówka|}}}|class="{{{klasa nagłówka}}}"}} | {{Div|klasa=tabela_nawigacyjna-tytuł {{{klasa tytułu|}}}|styl={{{styl tytułu|}}}|{{{tytuł}}}}} |- | {{#if:{{{styl komórki|}}}|style="{{{styl komórki}}}"}} {{#if:{{{klasa komórki|}}}|class="{{{klasa komórki}}}"}} | <!-- -->{{Div|klasa=tabela_nawigacyjna-spis {{{klasa spisu|}}}|styl={{{styl spisu|}}}| {{{spis}}}}} |}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | funkcja = ^UkrytaWikitabelowaListaMenu${{!}}^PokazanaWikitabelowaListaMenu${{!}}^StatycznaWikitabelowaListaMenu${{!}}^UkrytaNiewikitabelowaListaMenu${{!}}^PokazanaNiewikitabelowaListaMenu${{!}}^StatycznaNiewikitabelowaListaMenu${{!}}^AutomatycznaUkrytaWikitabelowaListaMenu${{!}}^AutomatycznaUkrytaNiewikitabelowaListaMenu${{!}}^WewnętrznaUkrytaWikitabelowaListaMenu${{!}}^WewnętrznaUkrytaNiewikitabelowaListaMenu$ | id = | styl = | styl nagłówka = | styl tytułu = | klasa nagłówka = | klasa tytułu = | styl komórki = | styl spisu = | klasa komórki = | klasa spisu = | klasa = | opcje = | tytuł = txt! | spis = txt! }}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 3e1h2f6u6vjrt44g9jr9sy07jc88wfh Szablon:Menu listy pozycji kategorii/styles.css 10 55386 556824 539160 2026-09-18T18:05:28Z Persino 2851 556824 sanitized-css text/css table.tablemenu { font-size:0.875rem; line-height:1.2em; display:inline-block; position:relative; border-width:1px !important; border-style:solid !important; border-color:black !important; border-radius:0.3125em !important; } table.tabela_nawigacyjna.tablemenu{ width:fit-content; } table.tablemenu th{ white-space:nowrap; text-overflow:ellipsis; overflow:hidden; padding:0.3em 0.4em; } table.tablemenu tr:last-child{ margin-top:0.25em; z-index:8; position:relative; } table.tablemenu div.lista-kategorii > ul{ background-color:white; position:relative; margin-left:0; list-style-type:none; list-style-position:inside; list-style-image:none; margin-top:0px; margin-bottom:0.625em; } table.tablemenu div.lista-kategorii > ul > li a { display:inline-block; text-decoration:none; color:black; font-size:inherit; line-height:1.4em; width:100%; } table.tablemenu div.lista-kategorii > ul > li { background-color:white; border:1px solid black; margin-bottom:-1px; padding-left:0.3125em; padding-right:0.3125em; padding-top:0; padding-bottom:0; height:1.4em; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; } table.tablemenu div.lista-kategorii > ul > li:hover { background-color:blue; } table.tablemenu div.lista-kategorii > ul > li:hover > a { color:white; } /* Wersja niemobilna */ @media (min-width: 745px){ table.tablemenu{ height:2em; } } table.tablemenu th > .tablemenu_tytuł{ display:inline; } table.tablemenu th > :not(.tablemenu_tytuł){ width:auto !important; max-width:100%; margin-left:0.25em; } @media (min-width: 745px) { table.tablemenu .tablemenu_wykaz{ overflow:auto; max-height:31.25em; box-sizing:border-box; } } /* Wersja mobilna */ @media all and (max-width: 745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ html.client-nojs table.tablemenu th, html.client-js.mw-mf-amc-clientpref-0 table.tablemenu th, /*table.tablemenu:not([expand-table]) th,*/ table.tablemenu[expand-table="true"] th{ border-bottom:1px solid black; } table.tablemenu[expand-table="false"] th{ border-bottom:0; } table.tablemenu { height: 100%; } table.tablemenu div.lista-kategorii > ul { margin:0; margin-bottom:0.2em; padding:0 0.2em; padding-inline: 0.2em; column-gap:0.25em; } table.tablemenu tr:last-child{ margin-top:0.2em !important; } html.client-nojs table.tablemenu.collapsible.collapsed > tbody > tr:first-child > th{ animation: nie_hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tablemenu.collapsible.collapsed > tbody > tr:first-child:hover > th{ animation: hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tablemenu.collapsible.collapsed > tbody > tr:first-child:not(:hover) > th{ animation: nie_hover_odkrywca_tablemenu 5s forwards; } } @keyframes hover_odkrywca_tablemenu { 0% {border-bottom:0;} 99% {border-bottom:0;} 100%{border-bottom:1px solid black;} } @keyframes nie_hover_odkrywca_tablemenu { 0% {border-bottom:1px solid black;} 99% {border-bottom:1px solid black;} 100%{border-bottom:0;} } /*{{Kategoria|Szablony - arkusze stylów}}*/ oov0dm6bmxfssqnga6j0p1u6nui85os 556827 556824 2026-09-18T18:27:18Z Persino 2851 556827 sanitized-css text/css table.tabela_nawigacyjna.tablemenu { font-size:0.875rem; line-height:1.2em; display:inline-block; position:relative; border-width:1px !important; border-style:solid !important; border-color:black !important; border-radius:0.3125em !important; } table.tabela_nawigacyjna.tablemenu{ width:fit-content; } table.tabela_nawigacyjna.tablemenu th{ white-space:nowrap; text-overflow:ellipsis; overflow:hidden; padding:0.3em 0.4em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.25em; z-index:8; position:relative; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul{ background-color:white; position:relative; margin-left:0; list-style-type:none; list-style-position:inside; list-style-image:none; margin-top:0px; margin-bottom:0.625em; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li a { display:inline-block; text-decoration:none; color:black; font-size:inherit; line-height:1.4em; width:100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li { background-color:white; border:1px solid black; margin-bottom:-1px; padding-left:0.3125em; padding-right:0.3125em; padding-top:0; padding-bottom:0; height:1.4em; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover { background-color:blue; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover > a { color:white; } /* Wersja niemobilna */ @media (min-width: 745px){ table.tabela_nawigacyjna.tablemenu{ height:2em; } } table.tabela_nawigacyjna.tablemenu th > .tabela_nawigacyjna-tytuł.tablemenu_tytuł{ display:inline; } table.tabela_nawigacyjna.tablemenu th > :not(.tablemenu_tytuł){ width:auto !important; max-width:100%; margin-left:0.25em; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ padding:0; } @media (min-width: 745px) { table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ overflow:auto; max-height:31.25em; box-sizing:border-box; } } /* Wersja mobilna */ @media all and (max-width: 745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ html.client-nojs table.tabela_nawigacyjna.tablemenu th, html.client-js.mw-mf-amc-clientpref-0 table.tabela_nawigacyjna.tablemenu th, /*table.tabela_nawigacyjna.tablemenu:not([expand-table]) th,*/ table.tabela_nawigacyjna.tablemenu[expand-table="true"] th{ border-bottom:1px solid black; } table.tabela_nawigacyjna.tablemenu[expand-table="false"] th{ border-bottom:0; } table.tabela_nawigacyjna.tablemenu { height: 100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul { margin:0; margin-bottom:0.2em; padding:0 0.2em; padding-inline: 0.2em; column-gap:0.25em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.2em !important; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child > th{ animation: nie_hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:hover > th{ animation: hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:not(:hover) > th{ animation: nie_hover_odkrywca_tablemenu 5s forwards; } } @keyframes hover_odkrywca_tablemenu { 0% {border-bottom:0;} 99% {border-bottom:0;} 100%{border-bottom:1px solid black;} } @keyframes nie_hover_odkrywca_tablemenu { 0% {border-bottom:1px solid black;} 99% {border-bottom:1px solid black;} 100%{border-bottom:0;} } /*{{Kategoria|Szablony - arkusze stylów}}*/ 7pj8emy4ipe8wwc3aig7ita231wo09u 556828 556827 2026-09-18T18:31:53Z Persino 2851 556828 sanitized-css text/css table.tabela_nawigacyjna.tablemenu { font-size:0.875rem; line-height:1.2em; display:inline-block; position:relative; border-width:1px !important; border-style:solid !important; border-color:black !important; border-radius:0.3125em !important; } table.tabela_nawigacyjna.tablemenu{ width:fit-content; } table.tabela_nawigacyjna.tablemenu th{ white-space:nowrap; text-overflow:ellipsis; overflow:hidden; padding:0.3em 0.4em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.25em; z-index:8; position:relative; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul{ background-color:white; position:relative; margin-left:0; list-style-type:none; list-style-position:inside; list-style-image:none; margin-top:0px; margin-bottom:0.625em; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li a { display:inline-block; text-decoration:none; color:black; font-size:inherit; line-height:1.4em; width:100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li { background-color:white; border:1px solid black; margin-bottom:-1px; padding-left:0.3125em; padding-right:0.3125em; padding-top:0; padding-bottom:0; height:1.4em; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover { background-color:blue; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover > a { color:white; } /* Wersja niemobilna */ @media (min-width: 745px){ table.tabela_nawigacyjna.tablemenu{ height:2em; } } table.tabela_nawigacyjna.tablemenu th > .tabela_nawigacyjna-tytuł.tablemenu_tytuł{ display:inline; } table.tabela_nawigacyjna.tablemenu th > :not(.tablemenu_tytuł){ width:auto !important; max-width:100%; margin-left:0.25em; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ padding:0; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii{ margin:0; padding:0; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii > ul{ margin:0; } @media (min-width: 745px) { table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ overflow:auto; max-height:31.25em; box-sizing:border-box; } } /* Wersja mobilna */ @media all and (max-width: 745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ html.client-nojs table.tabela_nawigacyjna.tablemenu th, html.client-js.mw-mf-amc-clientpref-0 table.tabela_nawigacyjna.tablemenu th, /*table.tabela_nawigacyjna.tablemenu:not([expand-table]) th,*/ table.tabela_nawigacyjna.tablemenu[expand-table="true"] th{ border-bottom:1px solid black; } table.tabela_nawigacyjna.tablemenu[expand-table="false"] th{ border-bottom:0; } table.tabela_nawigacyjna.tablemenu { height: 100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul { margin:0; margin-bottom:0.2em; padding:0 0.2em; padding-inline: 0.2em; column-gap:0.25em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.2em !important; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child > th{ animation: nie_hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:hover > th{ animation: hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:not(:hover) > th{ animation: nie_hover_odkrywca_tablemenu 5s forwards; } } @keyframes hover_odkrywca_tablemenu { 0% {border-bottom:0;} 99% {border-bottom:0;} 100%{border-bottom:1px solid black;} } @keyframes nie_hover_odkrywca_tablemenu { 0% {border-bottom:1px solid black;} 99% {border-bottom:1px solid black;} 100%{border-bottom:0;} } /*{{Kategoria|Szablony - arkusze stylów}}*/ tu4xyl269hupvp3gkjmfkmlrbyirn8o 556829 556828 2026-09-18T18:41:09Z Persino 2851 556829 sanitized-css text/css table.tabela_nawigacyjna.tablemenu { font-size:0.875rem; line-height:1.2em; display:inline-block; position:relative; border-width:1px !important; border-style:solid !important; border-color:black !important; border-radius:0.3125em !important; } table.tabela_nawigacyjna.tablemenu{ width:fit-content; } table.tabela_nawigacyjna.tablemenu th{ white-space:nowrap; text-overflow:ellipsis; overflow:hidden; padding:0.3em 0.4em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.25em; z-index:8; position:relative; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul{ background-color:white; position:relative; margin-left:0; list-style-type:none; list-style-position:inside; list-style-image:none; margin-top:0px; margin-bottom:0.625em; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li a { display:inline-block; text-decoration:none; color:black; font-size:inherit; line-height:1.4em; width:100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li { background-color:white; border:1px solid black; margin-bottom:-1px; padding-left:0.3125em; padding-right:0.3125em; padding-top:0; padding-bottom:0; height:1.4em; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover { background-color:blue; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover > a { color:white; } /* Wersja niemobilna */ @media (min-width: 745px){ table.tabela_nawigacyjna.tablemenu{ height:2em; } } table.tabela_nawigacyjna.tablemenu th > .tabela_nawigacyjna-tytuł.tablemenu_tytuł{ display:inline; } table.tabela_nawigacyjna.tablemenu th > :not(.tablemenu_tytuł){ width:auto !important; max-width:100%; margin-left:0.25em; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ padding:0; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii{ margin:0; padding:0; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii > ul{ margin:0; margin-bottom:1px; } @media (min-width: 745px) { table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ overflow:auto; max-height:31.25em; box-sizing:border-box; } } /* Wersja mobilna */ @media all and (max-width: 745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ html.client-nojs table.tabela_nawigacyjna.tablemenu th, html.client-js.mw-mf-amc-clientpref-0 table.tabela_nawigacyjna.tablemenu th, /*table.tabela_nawigacyjna.tablemenu:not([expand-table]) th,*/ table.tabela_nawigacyjna.tablemenu[expand-table="true"] th{ border-bottom:1px solid black; } table.tabela_nawigacyjna.tablemenu[expand-table="false"] th{ border-bottom:0; } table.tabela_nawigacyjna.tablemenu { height: 100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul { margin:0; margin-bottom:0.2em; padding:0 0.2em; padding-inline: 0.2em; column-gap:0.25em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.2em !important; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child > th{ animation: nie_hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:hover > th{ animation: hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:not(:hover) > th{ animation: nie_hover_odkrywca_tablemenu 5s forwards; } } @keyframes hover_odkrywca_tablemenu { 0% {border-bottom:0;} 99% {border-bottom:0;} 100%{border-bottom:1px solid black;} } @keyframes nie_hover_odkrywca_tablemenu { 0% {border-bottom:1px solid black;} 99% {border-bottom:1px solid black;} 100%{border-bottom:0;} } /*{{Kategoria|Szablony - arkusze stylów}}*/ jrlmbb0urw7847qyszder1dlzeextw2 556835 556829 2026-09-18T19:59:53Z Persino 2851 556835 sanitized-css text/css table.tabela_nawigacyjna.tablemenu { font-size:0.875rem; line-height:1.2em; display:inline-block; position:relative; border-width:1px !important; border-style:solid !important; border-color:black !important; border-radius:0.3125em !important; } table.tabela_nawigacyjna.tablemenu{ width:fit-content; } table.tabela_nawigacyjna.tablemenu th{ white-space:nowrap; text-overflow:ellipsis; overflow:hidden; padding:0.3em 0.4em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.25em; z-index:8; position:relative; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul{ background-color:white; position:relative; margin-left:0; list-style-type:none; list-style-position:inside; list-style-image:none; margin-top:0px; margin-bottom:0.625em; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li a { display:inline-block; text-decoration:none; color:black; font-size:inherit; line-height:1.4em; width:100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li { background-color:white; border:1px solid black; margin-bottom:-1px; padding-left:0.3125em; padding-right:0.3125em; padding-top:0; padding-bottom:0; height:1.4em; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover { background-color:blue; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover > a { color:white; } /* Wersja niemobilna */ @media (min-width: 745px){ table.tabela_nawigacyjna.tablemenu{ height:2em; } } table.tabela_nawigacyjna.tablemenu th > .tabela_nawigacyjna-tytuł.tablemenu_tytuł{ display:inline; } table.tabela_nawigacyjna.tablemenu th > :not(.tablemenu_tytuł){ width:auto !important; max-width:100%; margin-left:0.25em; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ padding:0; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii{ margin:0; padding:0; box-sizing:border-box; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii > ul{ margin:0; margin-bottom:1px; box-sizing:border-box; } @media (min-width: 745px) { table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ overflow:auto; max-height:31.25em; box-sizing:border-box; } } /* Wersja mobilna */ @media all and (max-width: 745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ html.client-nojs table.tabela_nawigacyjna.tablemenu th, html.client-js.mw-mf-amc-clientpref-0 table.tabela_nawigacyjna.tablemenu th, /*table.tabela_nawigacyjna.tablemenu:not([expand-table]) th,*/ table.tabela_nawigacyjna.tablemenu[expand-table="true"] th{ border-bottom:1px solid black; } table.tabela_nawigacyjna.tablemenu[expand-table="false"] th{ border-bottom:0; } table.tabela_nawigacyjna.tablemenu { height: 100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul { margin:0; margin-bottom:0.2em; padding:0 0.2em; padding-inline: 0.2em; column-gap:0.25em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.2em !important; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child > th{ animation: nie_hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:hover > th{ animation: hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:not(:hover) > th{ animation: nie_hover_odkrywca_tablemenu 5s forwards; } } @keyframes hover_odkrywca_tablemenu { 0% {border-bottom:0;} 99% {border-bottom:0;} 100%{border-bottom:1px solid black;} } @keyframes nie_hover_odkrywca_tablemenu { 0% {border-bottom:1px solid black;} 99% {border-bottom:1px solid black;} 100%{border-bottom:0;} } /*{{Kategoria|Szablony - arkusze stylów}}*/ 81xbf5nc75ivpqkuxxjr4zxwux52wfy 556854 556835 2026-09-18T22:32:40Z Persino 2851 556854 sanitized-css text/css table.tabela_nawigacyjna.tablemenu { font-size:0.875rem; line-height:1.2em; display:inline-block; position:relative; border-width:1px !important; border-style:solid !important; border-color:black !important; border-radius:0.3125em !important; } table.tabela_nawigacyjna.tablemenu{ width:fit-content; } table.tabela_nawigacyjna.tablemenu th{ white-space:nowrap; text-overflow:ellipsis; overflow:hidden; padding:0.3em 0.4em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.25em; z-index:8; position:relative; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul{ background-color:white; position:relative; margin-left:0; list-style-type:none; list-style-position:inside; list-style-image:none; /*margin-top:0px; margin-bottom:0.625em;*/ } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li a { display:inline-block; text-decoration:none; color:black; font-size:inherit; line-height:1.4em; width:100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li { background-color:white; border:1px solid black; margin-bottom:-1px; padding-left:0.3125em; padding-right:0.3125em; padding-top:0; padding-bottom:0; height:1.4em; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover { background-color:blue; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover > a { color:white; } /* Wersja niemobilna */ @media (min-width: 745px){ table.tabela_nawigacyjna.tablemenu{ height:2em; } } table.tabela_nawigacyjna.tablemenu th > .tabela_nawigacyjna-tytuł.tablemenu_tytuł{ display:inline; } table.tabela_nawigacyjna.tablemenu th > :not(.tablemenu_tytuł){ width:auto !important; max-width:100%; margin-left:0.25em; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ padding:0; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii{ margin:0; padding:0; box-sizing:border-box; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii > ul{ margin:0; margin-bottom:1px; box-sizing:border-box; } @media (min-width: 745px) { table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ overflow:auto; max-height:31.25em; box-sizing:border-box; margin-bottom:0.625em; } } /* Wersja mobilna */ @media all and (max-width: 745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ html.client-nojs table.tabela_nawigacyjna.tablemenu th, html.client-js.mw-mf-amc-clientpref-0 table.tabela_nawigacyjna.tablemenu th, /*table.tabela_nawigacyjna.tablemenu:not([expand-table]) th,*/ table.tabela_nawigacyjna.tablemenu[expand-table="true"] th{ border-bottom:1px solid black; } table.tabela_nawigacyjna.tablemenu[expand-table="false"] th{ border-bottom:0; } table.tabela_nawigacyjna.tablemenu { height: 100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul { margin:0; margin-bottom:0.2em; padding:0 0.2em; padding-inline: 0.2em; column-gap:0.25em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.2em !important; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child > th{ animation: nie_hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:hover > th{ animation: hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:not(:hover) > th{ animation: nie_hover_odkrywca_tablemenu 5s forwards; } } @keyframes hover_odkrywca_tablemenu { 0% {border-bottom:0;} 99% {border-bottom:0;} 100%{border-bottom:1px solid black;} } @keyframes nie_hover_odkrywca_tablemenu { 0% {border-bottom:1px solid black;} 99% {border-bottom:1px solid black;} 100%{border-bottom:0;} } /*{{Kategoria|Szablony - arkusze stylów}}*/ eaqz8j3scc0ztr8jckrftij4ysoeivf 556855 556854 2026-09-18T22:42:58Z Persino 2851 556855 sanitized-css text/css table.tabela_nawigacyjna.tablemenu { font-size:0.875rem; line-height:1.2em; display:inline-block; position:relative; border-width:1px !important; border-style:solid !important; border-color:black !important; border-radius:0.3125em !important; } table.tabela_nawigacyjna.tablemenu{ width:fit-content; } table.tabela_nawigacyjna.tablemenu th{ white-space:nowrap; text-overflow:ellipsis; overflow:hidden; padding:0.3em 0.4em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.25em; z-index:8; position:relative; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul{ background-color:white; position:relative; margin-left:0; list-style-type:none; list-style-position:inside; list-style-image:none; /*margin-top:0px; margin-bottom:0.625em;*/ } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li a { display:inline-block; text-decoration:none; color:black; font-size:inherit; line-height:1.4em; width:100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li { background-color:white; border:1px solid black; margin-bottom:-1px; padding-left:0.3125em; padding-right:0.3125em; padding-top:0; padding-bottom:0; height:1.4em; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover { background-color:blue; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover > a { color:white; } /* Wersja niemobilna */ @media (min-width: 745px){ table.tabela_nawigacyjna.tablemenu{ height:2em; } } table.tabela_nawigacyjna.tablemenu th > .tabela_nawigacyjna-tytuł.tablemenu_tytuł{ display:inline; } table.tabela_nawigacyjna.tablemenu th > :not(.tablemenu_tytuł){ width:auto !important; max-width:100%; margin-left:0.25em; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ padding:0; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii{ margin:0; padding:0; box-sizing:border-box; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii > ul{ margin:0; margin-bottom:1px; box-sizing:border-box; } @media (min-width: 745px) { table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ overflow:auto; max-height:31.25em; box-sizing:border-box; } table.tabela_nawigacyjna.tablemenu > tbody > tr:not(:first-child) > td{ padding-bottom:0.625em; } } /* Wersja mobilna */ @media all and (max-width: 745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ html.client-nojs table.tabela_nawigacyjna.tablemenu th, html.client-js.mw-mf-amc-clientpref-0 table.tabela_nawigacyjna.tablemenu th, /*table.tabela_nawigacyjna.tablemenu:not([expand-table]) th,*/ table.tabela_nawigacyjna.tablemenu[expand-table="true"] th{ border-bottom:1px solid black; } table.tabela_nawigacyjna.tablemenu[expand-table="false"] th{ border-bottom:0; } table.tabela_nawigacyjna.tablemenu { height: 100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul { margin:0; margin-bottom:0.2em; padding:0 0.2em; padding-inline: 0.2em; column-gap:0.25em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.2em !important; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child > th{ animation: nie_hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:hover > th{ animation: hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:not(:hover) > th{ animation: nie_hover_odkrywca_tablemenu 5s forwards; } } @keyframes hover_odkrywca_tablemenu { 0% {border-bottom:0;} 99% {border-bottom:0;} 100%{border-bottom:1px solid black;} } @keyframes nie_hover_odkrywca_tablemenu { 0% {border-bottom:1px solid black;} 99% {border-bottom:1px solid black;} 100%{border-bottom:0;} } /*{{Kategoria|Szablony - arkusze stylów}}*/ hskvjc7q55jwhgdrv3h2npe2iek5788 556856 556855 2026-09-18T22:54:11Z Persino 2851 556856 sanitized-css text/css table.tabela_nawigacyjna.tablemenu { font-size:0.875rem; line-height:1.2em; display:inline-block; position:relative; border-width:1px !important; border-style:solid !important; border-color:black !important; border-radius:0.3125em !important; } table.tabela_nawigacyjna.tablemenu{ width:fit-content; } table.tabela_nawigacyjna.tablemenu th{ white-space:nowrap; text-overflow:ellipsis; overflow:hidden; padding:0.3em 0.4em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.25em; z-index:8; position:relative; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul{ background-color:white; position:relative; margin-left:0; list-style-type:none; list-style-position:inside; list-style-image:none; /*margin-top:0px; margin-bottom:0.625em;*/ } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li a { display:inline-block; text-decoration:none; color:black; font-size:inherit; line-height:1.4em; width:100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li { background-color:white; border:1px solid black; margin-bottom:-1px; padding-left:0.3125em; padding-right:0.3125em; padding-top:0; padding-bottom:0; height:1.4em; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover { background-color:blue; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul > li:hover > a { color:white; } /* Wersja niemobilna */ @media (min-width: 745px){ table.tabela_nawigacyjna.tablemenu{ height:2em; } } table.tabela_nawigacyjna.tablemenu th > .tabela_nawigacyjna-tytuł.tablemenu_tytuł{ display:inline; } table.tabela_nawigacyjna.tablemenu th > :not(.tablemenu_tytuł){ width:auto !important; max-width:100%; margin-left:0.25em; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ padding:0; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii{ margin:0; padding:0; box-sizing:border-box; } table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz > .lista-kategorii > ul{ margin:0; margin-bottom:1px; box-sizing:border-box; } @media (min-width: 745px) { table.tabela_nawigacyjna.tablemenu div.tabela_nawigacyjna-spis.tablemenu_wykaz{ overflow:auto; max-height:31.25em; box-sizing:border-box; } } /* Wersja mobilna */ @media all and (max-width: 745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ html.client-nojs table.tabela_nawigacyjna.tablemenu th, html.client-js.mw-mf-amc-clientpref-0 table.tabela_nawigacyjna.tablemenu th, /*table.tabela_nawigacyjna.tablemenu:not([expand-table]) th,*/ table.tabela_nawigacyjna.tablemenu[expand-table="true"] th{ border-bottom:1px solid black; } table.tabela_nawigacyjna.tablemenu[expand-table="false"] th{ border-bottom:0; } table.tabela_nawigacyjna.tablemenu { height: 100%; } table.tabela_nawigacyjna.tablemenu div.lista-kategorii > ul { margin:0; margin-bottom:0.2em; padding:0 0.2em; padding-inline: 0.2em; column-gap:0.25em; } table.tabela_nawigacyjna.tablemenu tr:last-child{ margin-top:0.2em !important; margin-bottom:0.2em !important; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child > th{ animation: nie_hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:hover > th{ animation: hover_odkrywca_tablemenu 0s forwards; } html.client-nojs table.tabela_nawigacyjna.tablemenu.collapsible.collapsed > tbody > tr:first-child:not(:hover) > th{ animation: nie_hover_odkrywca_tablemenu 5s forwards; } } @keyframes hover_odkrywca_tablemenu { 0% {border-bottom:0;} 99% {border-bottom:0;} 100%{border-bottom:1px solid black;} } @keyframes nie_hover_odkrywca_tablemenu { 0% {border-bottom:1px solid black;} 99% {border-bottom:1px solid black;} 100%{border-bottom:0;} } /*{{Kategoria|Szablony - arkusze stylów}}*/ irdrfbb8fiuku43saklr1acktox3530 Szablon:Menu listy pozycji kategorii 10 55388 556823 533554 2026-09-18T17:53:52Z Persino 2851 556823 wikitext text/x-wiki <includeonly><templatestyles src="Szablon:Menu listy pozycji kategorii/styles.css" />{{Tabela nawigacyjna | id = {{{id|}}} | styl = {{{styl|}}} | klasa = tablemenu {{{klasa|}}} | opcje = {{{opcje|}}} | klasa tytułu = tablemenu_tytuł | tytuł = {{{tytuł|Lista pozycji}}} | funkcja = UkrytaNiewikitabelowaListaMenu | klasa spisu = tablemenu_wykaz | spis = {{ListaKategorii|{{{kategoria|Kategorie}}}}} }}</includeonly><noinclude>{{Dokumentacja|Szablon:Menu listy pozycji kategorii/opis}}</noinclude> qw53936xxyliqlk292h9olu8cakvsac Szablon:Menu listy pozycji kategorii/opis 10 55389 556825 539155 2026-09-18T18:08:10Z Persino 2851 /* Przykład */ 556825 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon do tworzenia menu listy pozycji kategorii: '''{{#switch:{{ROOTPAGENAME}}|Menu listy pozycji kategorii|#default={{Nobold|podanej w szablonie jako}} parametr {{Nobold|(zmienna: {{Parametr|kategoria}}) z pewnym podanym}} tytułem ({{Nobold|zmienna: {{Parametr|tytuł}}}})|Menu listy kategorii portali={{lk|Podręczniki według portalu}}, {{Nobold|o tytule:}} Kategorie portali|Menu listy kategorii poziomu={{lk|Podręczniki według poziomu}}, {{Nobold|o tytule:}} Kategorie poziomu|Menu listy kategorii statusu={{lk|Podręczniki według statusu}}, {{Nobold|o tytule:}} Kategorie statusu|Menu listy kategorii tematycznych={{lk|Podręczniki według tematu}}, {{Nobold|o tytule:}} Kategorie tematyczne|Menu listy kategorii Światy dla dzieci={{lk|Wikijunior:Światy dla dzieci}}, {{Nobold|o tytule:}} Kategorie Światy dla dzieci}}'''. == Opis parametrów == ; Parametry szablonu * {{Code|id}} - identyfikator menu listy pozycji kategorii (sugerowany), * {{Code|styl}} - styl głównej ramki (opcjonalny), * {{Code|klasa}} - dodatkowe obiekty do klasy (opcjonalny), * {{Code|opcje}} - opcje inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}, (opcjonalny). ; Zmienne używane w szablonie {{s|Menu listy pozycji kategorii}} * {{Code|tytuł}} - tytuł menu (wymagany), * {{Code|kategoria}} - kategoria, dla której ma wyświetlić listę (wymagany). == Przykład == ; Przykład {{#ifeq:{{ROOTPAGENAME}}|Menu listy pozycji kategorii |{{s|Menu listy pozycji kategorii|tytuł{{=}}Menu listy kategorii szablonowych i szablonów|kategoria{{=}}Szablony}} |{{s|{{ROOTPAGENAME}}}} }} ; Wynik {{#ifeq:{{ROOTPAGENAME}}|Menu listy pozycji kategorii |{{Menu listy pozycji kategorii|tytuł=Menu listy kategorii szablonowych i szablonów|kategoria=Szablony}} |{{ {{ROOTPAGENAME}}}} }} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "styl": { "description": "Styl głównej ramki", "type": "string" }, "klasa": { "description": "Klasa głównej ramki", "type": "string" }, "tytuł": { "description": "Tytuł ramki. Zmienna używana w szablonie: {{Menu listy pozycji kategorii}}.", "type": "string", "required": true }, "kategoria": { "description": "Kategoria (przestrzeń) wyświetlanej listy. Zmienna używana w szablonie: {{Menu listy pozycji kategorii}}.", "type": "string", "required": true }, "id": { "description": "Identyfikator menu.", "type": "string", "suggested": true }, "opcje": { "description": "Opcje menu.", "type": "string" } }, "paramOrder": [ "id", "styl", "klasa", "opcje", "tytuł", "kategoria" ], "description": "Szablon do tworzenia menu listy pozycji kategorii w szablonie: Menu listy pozycji kategorii, wyświetlający pozycje w podanej kategorii, Menu listy kategorii portali, wyświetlający pozycje: Podręczniki według portalu, Menu listy kategorii poziomu, wyświetlający pozycje: Podręczniki według poziomu, Menu listy kategorii statusu, wyświetlający pozycje: Podręczniki według statusu, Menu listy kategorii tematycznych, wyświetlający pozycje: Podręczniki według tematu, lub Menu listy kategorii Światy dla dzieci, wyświetlający pozycje: Wikijunior:Światy dla dzieci." } </templatedata> == Zobacz też == ; Ogólnie * {{s|Tabela nawigacyjna}} - szablon wykorzystywany w budowie tego szablonu. ; Szablony wykorzystujące szablon {{s|Tabela nawigacyjna}} * {{s|Menu listy pozycji kategorii}} - szablon tworzący menu listy, zbudowany o szablon: {{s|Tabela nawigacyjna}}, kategorii podanej kategorii z podanym tytułem menu listy, o niego są zbudowane inne szablony menu list poniżej: ** {{s|Menu listy kategorii portali}} - szablon tworzący menu listy kategorii portali wyświetlającej pozycje w kategorii: {{lk|Podręczniki według portalu}}, ** {{s|Menu listy kategorii poziomu}} - szablon tworzący menu listy kategorii poziomu wyświetlającej pozycje w kategorii: {{lk|Podręczniki według poziomu}}, ** {{s|Menu listy kategorii statusu}} - szablon tworzący menu listy kategorii statusu wyświetlającej pozycje w kategorii: {{lk|Podręczniki według statusu}}, ** {{s|Menu listy kategorii tematycznych}} - szablon tworzący menu listy kategorii tematycznych wyświetlającej pozycje w kategorii: {{lk|Podręczniki według tematu}}, ** {{s|Menu listy kategorii Światy dla dzieci}} - szablon tworzący menu listy kategorii światów dla dzieci wyświetlającej pozycje w kategorii: {{lk|Wikijunior:Światy dla dzieci}}. {{Szablony ramek formułujące kod}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony menu opartych o tabele | sortuj spacją 1 = {{#ifeq:{{ROOTPAGENAME}}|Menu listy pozycji kategorii|tak}} | Szablony pudełek opartych o tabelki | Szablony ramek tworzące wikikod }} </includeonly> 5aka3bq2l6s10hbxycq47fi9t23qek9 Wikipedysta:Persino/Gadget-Vector-2022.css/main.css 2 58973 556782 556779 2026-09-18T12:19:31Z Persino 2851 556782 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } .mw-header{ padding-top:4px; padding-bottom:4px; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } .vector-pinnable-element{ padding-top:3px; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } .mw-logo{ min-width:auto; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } #mw-content-text .mw-parser-output code{ position:relative; } .mw-parser-output pre{ margin-top:8px; margin-bottom:8px; background-color: #f8f9fa; color: #000; border: 1px solid #eaecf0; word-wrap:break-word; word-break:break-word; hyphens:auto; box-sizing:border-box; font-size:110%; } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } #mw-content-text{ margin-top:10px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } .mw-parser-output hr{ font-size:1.2em; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } /**/ .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } #p-navigation.mw-portlet-navigation{ margin-top:0px; } .vector-menu.mw-portlet:not(.mw-portlet-navigation){ margin-top:4px; } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } 8z621n9n1fe2mk6h04eymlgod4yuwwq 556786 556782 2026-09-18T12:26:41Z Persino 2851 556786 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } .mw-header{ padding-top:4px; padding-bottom:4px; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } .vector-pinnable-element{ padding-top:3px; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } .mw-logo{ min-width:auto; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } #mw-content-text{ margin-top:10px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } /**/ .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } #p-navigation.mw-portlet-navigation{ margin-top:0px; } .vector-menu.mw-portlet:not(.mw-portlet-navigation){ margin-top:4px; } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } 2k013hjbmvdrui60k1c3a0tf2y9mbsu 556789 556786 2026-09-18T12:52:55Z Persino 2851 556789 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } .mw-header{ padding-top:4px; padding-bottom:4px; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .mw-logo{ min-width:auto; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } #mw-content-text{ margin-top:10px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } #p-navigation.mw-portlet-navigation{ margin-top:0px; } .vector-menu.mw-portlet:not(.mw-portlet-navigation){ margin-top:4px; } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } aoazbe2plgsrgmjcvil9i9fnabxnosk 556791 556789 2026-09-18T13:26:06Z Persino 2851 556791 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } #mw-content-text{ margin-top:10px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } #p-navigation.mw-portlet-navigation{ margin-top:0px; } .vector-menu.mw-portlet:not(.mw-portlet-navigation){ margin-top:4px; } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } pvw3uhif52sqd6s06de82vnm7hmh12a 556794 556791 2026-09-18T13:30:05Z Persino 2851 556794 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } #mw-content-text{ margin-top:10px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } 0vzuhs48a6elam2advea0dqsdc8p2j0 556797 556794 2026-09-18T13:34:58Z Persino 2851 556797 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } #mw-content-text{ margin-top:10px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } mh79lssd8u048cic5t4qrlsbx945ghm 556798 556797 2026-09-18T13:42:36Z Persino 2851 556798 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } bws7u1jexsvl1p003ifcukqz9f8swmd 556801 556798 2026-09-18T13:54:07Z Persino 2851 556801 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .wb-langlinks-link > a::before{ margin-left:-8px; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } lqk5gnbvnzqs00ddwxq30ysp59hmsp9 556803 556801 2026-09-18T13:56:37Z Persino 2851 556803 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .wb-langlinks-link > a::before{ margin-left:-8px; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } 2pnsxf451x9al1gcl687r97xk4t5r4k 556807 556803 2026-09-18T14:22:51Z Persino 2851 556807 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } .catlinks{ margin-top:7px !important; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .wb-langlinks-link > a::before{ margin-left:-8px; } button.cdx-button{ z-index:1; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } 8updf04fp75z32406i6u48rg8oz354s 556810 556807 2026-09-18T14:30:56Z Persino 2851 556810 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } .catlinks{ margin-top:7px !important; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } button.cdx-button{ z-index:1; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } njwu05rh5bxhkiauhygl530b47pelk2 556812 556810 2026-09-18T14:36:06Z Persino 2851 556812 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } .catlinks{ margin-top:7px !important; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } ao6cgmfiripvlx8eo57h322xmo2mw0w 556814 556812 2026-09-18T14:45:31Z Persino 2851 556814 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } .catlinks{ margin-top:7px !important; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } /*.mw-ui-icon{ font-size:1rem; }*/ body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } /*.noarticletext{ margin-top:0; margin-bottom:7px; } #contentsub::after{ content:''; display:block; }*/ .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } ozklob778mn0o7tfeurthtxufd2cmuf 556815 556814 2026-09-18T15:30:34Z Persino 2851 556815 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } /*.mw-ui-icon{ font-size:1rem; }*/ body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } /*.noarticletext{ margin-top:0; margin-bottom:7px; } #contentsub::after{ content:''; display:block; }*/ .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } kgqqt5hj7ix6uzu5adejzt8cq9p8uvc 556816 556815 2026-09-18T15:35:13Z Persino 2851 556816 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; /*word-break: break-word;*/ } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:transparent; background-attachment:fixed; margin-left:0; margin-right:0; } .vector-feature-limited-width-clientpref-0 .mw-page-container{ background-color:white; } .vector-feature-limited-width-clientpref-1 .mw-page-container{ background-color:cornflowerblue; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } /**/ #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } /*.mw-ui-icon{ font-size:1rem; }*/ body{ font-size:1rem; line-height:1.4em; } body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } /*.noarticletext{ margin-top:0; margin-bottom:7px; } #contentsub::after{ content:''; display:block; }*/ .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } e1k5a9h7f5ohxmq359c2zpmuzib1q4z Szablon:Tabela nawigacyjna/styles.css 10 59605 556822 556546 2026-09-18T17:45:11Z Persino 2851 556822 sanitized-css text/css table.tabela_nawigacyjna, table.tabela_nawigacyjna > tbody, table.tabela_nawigacyjna > tbody > tr, table.tabela_nawigacyjna > tbody > tr > th, table.tabela_nawigacyjna > tbody > tr > td{ width:100%; max-width:100%; display:block; box-sizing:border-box; } table.tabela_nawigacyjna{ width:auto; } table.tabela_nawigacyjna, table.tabela_nawigacyjna > tbody, table.tabela_nawigacyjna > tbody > tr{ border:0; } table.tabela_nawigacyjna > tbody > tr:first-child > th > div.tabela_nawigacyjna-tytuł, table.tabela_nawigacyjna > tbody > tr:first-child > td > div.tabela_nawigacyjna-tytuł{ box-sizing:border-box; width:calc( 100% - 6em ); } table.tabela_nawigacyjna > tbody > tr:last-child > th, table.tabela_nawigacyjna > tbody > tr:last-child > td{ padding:0; } table.tabela_nawigacyjna > tbody > tr:last-child > th > div, table.tabela_nawigacyjna > tbody > tr:last-child > td > div{ padding:0.5em; } table.tabela_nawigacyjna > tbody > tr:last-child > th, table.tabela_nawigacyjna > tbody > tr:last-child > td{ border-top:0; } table.tabela_nawigacyjna > tbody > tr:last-child > th > div > p:first-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > p:first-child{ margin-top:0; } table.tabela_nawigacyjna > tbody > tr:last-child > th > div > p:last-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > p:last-child{ margin-bottom:0; } table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ul:first-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ol:first-child{ margin-top:0; } table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ul:last-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ol:last-child{ margin-bottom:0; } table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ul, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ol{ margin-left:0; margin-right:0; list-style-position: inside; margin-inline-start: 0; } table.tabela_nawigacyjna.szerokość{ display:flex; flex-direction:row; width:auto; margin-left:0; margin-right:0; margin-top:0.2em; margin-bottom:0; } table.tabela_nawigacyjna, table.tabela_nawigacyjna *{ word-wrap:break-word; word-break:break-word; } table.tabela_nawigacyjna.szerokość > tbody{ display:table; } table.tabela_nawigacyjna.szerokość > tbody, table.tabela_nawigacyjna.szerokość > tbody > tr, table.tabela_nawigacyjna.szerokość > tbody > tr, table.tabela_nawigacyjna.szerokość > tbody > tr, hr + table.tabela_nawigacyjna, hr + style + table.tabela_nawigacyjna, hr + link + table.tabela_nawigacyjna{ margin-top:0; } table.tabela_nawigacyjna:last-child{ margin-bottom:0; } @media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){ html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{ animation: nie_hover_odkrywca 0s forwards; } html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{ animation: hover_odkrywca 0s forwards; } html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{ animation: nie_hover_odkrywca 5s forwards; } html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{ animation: hover_odkrywca 0s forwards; } html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{ animation: nie_hover_odkrywca 5s forwards; } html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{ animation: hover_odkrywca 0s forwards; } } @keyframes hover_odkrywca { 0% { opacity:0; visibility:hidden; height:0; overflow:hidden; position:absolute; } 99% { opacity:0; visibility:hidden; height:0; overflow:hidden; position:absolute; } 100%{ opacity:1; visibility:visible; height:auto; overflow:visible; position:relative; } } @keyframes nie_hover_odkrywca { 0% { opacity:1; visibility:visible; height:auto; overflow:visible; position:relative; } 99% { opacity:1; visibility:visible; height:auto; overflow:visible; position:relative; } 100%{ opacity:0; visibility:hidden; height:0; overflow:hidden; position:absolute; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ bzr3ztk3iphxygepr2szzq2uf7dp6ht 556877 556822 2026-09-19T10:08:48Z Persino 2851 556877 sanitized-css text/css @media all{ table.tabela_nawigacyjna, table.tabela_nawigacyjna > tbody, table.tabela_nawigacyjna > tbody > tr, table.tabela_nawigacyjna > tbody > tr > th, table.tabela_nawigacyjna > tbody > tr > td{ width:100%; max-width:100%; display:block; box-sizing:border-box; } } table.tabela_nawigacyjna{ width:auto; } table.tabela_nawigacyjna, table.tabela_nawigacyjna > tbody, table.tabela_nawigacyjna > tbody > tr{ border:0; } table.tabela_nawigacyjna > tbody > tr:first-child > th > div.tabela_nawigacyjna-tytuł, table.tabela_nawigacyjna > tbody > tr:first-child > td > div.tabela_nawigacyjna-tytuł{ box-sizing:border-box; width:calc( 100% - 6em ); } table.tabela_nawigacyjna > tbody > tr:last-child > th, table.tabela_nawigacyjna > tbody > tr:last-child > td{ padding:0; } table.tabela_nawigacyjna > tbody > tr:last-child > th > div, table.tabela_nawigacyjna > tbody > tr:last-child > td > div{ padding:0.5em; } table.tabela_nawigacyjna > tbody > tr:last-child > th, table.tabela_nawigacyjna > tbody > tr:last-child > td{ border-top:0; } table.tabela_nawigacyjna > tbody > tr:last-child > th > div > p:first-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > p:first-child{ margin-top:0; } table.tabela_nawigacyjna > tbody > tr:last-child > th > div > p:last-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > p:last-child{ margin-bottom:0; } table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ul:first-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ol:first-child{ margin-top:0; } table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ul:last-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ol:last-child{ margin-bottom:0; } table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ul, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ol{ margin-left:0; margin-right:0; list-style-position: inside; margin-inline-start: 0; } table.tabela_nawigacyjna.szerokość{ display:flex; flex-direction:row; width:auto; margin-left:0; margin-right:0; margin-top:0.2em; margin-bottom:0; } table.tabela_nawigacyjna, table.tabela_nawigacyjna *{ word-wrap:break-word; word-break:break-word; } table.tabela_nawigacyjna.szerokość > tbody{ display:table; } table.tabela_nawigacyjna.szerokość > tbody, table.tabela_nawigacyjna.szerokość > tbody > tr, table.tabela_nawigacyjna.szerokość > tbody > tr, table.tabela_nawigacyjna.szerokość > tbody > tr, hr + table.tabela_nawigacyjna, hr + style + table.tabela_nawigacyjna, hr + link + table.tabela_nawigacyjna{ margin-top:0; } table.tabela_nawigacyjna:last-child{ margin-bottom:0; } @media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){ html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{ animation: nie_hover_odkrywca 0s forwards; } html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{ animation: hover_odkrywca 0s forwards; } html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{ animation: nie_hover_odkrywca 5s forwards; } html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{ animation: hover_odkrywca 0s forwards; } html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{ animation: nie_hover_odkrywca 5s forwards; } html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{ animation: hover_odkrywca 0s forwards; } } @keyframes hover_odkrywca { 0% { opacity:0; visibility:hidden; height:0; overflow:hidden; position:absolute; } 99% { opacity:0; visibility:hidden; height:0; overflow:hidden; position:absolute; } 100%{ opacity:1; visibility:visible; height:auto; overflow:visible; position:relative; } } @keyframes nie_hover_odkrywca { 0% { opacity:1; visibility:visible; height:auto; overflow:visible; position:relative; } 99% { opacity:1; visibility:visible; height:auto; overflow:visible; position:relative; } 100%{ opacity:0; visibility:hidden; height:0; overflow:hidden; position:absolute; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ axistf57j3qfi8fuqzghhxobb8qff79 556878 556877 2026-09-19T10:10:22Z Persino 2851 Anulowano wersję [[Special:Diff/556877|556877]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]]) 556878 sanitized-css text/css table.tabela_nawigacyjna, table.tabela_nawigacyjna > tbody, table.tabela_nawigacyjna > tbody > tr, table.tabela_nawigacyjna > tbody > tr > th, table.tabela_nawigacyjna > tbody > tr > td{ width:100%; max-width:100%; display:block; box-sizing:border-box; } table.tabela_nawigacyjna{ width:auto; } table.tabela_nawigacyjna, table.tabela_nawigacyjna > tbody, table.tabela_nawigacyjna > tbody > tr{ border:0; } table.tabela_nawigacyjna > tbody > tr:first-child > th > div.tabela_nawigacyjna-tytuł, table.tabela_nawigacyjna > tbody > tr:first-child > td > div.tabela_nawigacyjna-tytuł{ box-sizing:border-box; width:calc( 100% - 6em ); } table.tabela_nawigacyjna > tbody > tr:last-child > th, table.tabela_nawigacyjna > tbody > tr:last-child > td{ padding:0; } table.tabela_nawigacyjna > tbody > tr:last-child > th > div, table.tabela_nawigacyjna > tbody > tr:last-child > td > div{ padding:0.5em; } table.tabela_nawigacyjna > tbody > tr:last-child > th, table.tabela_nawigacyjna > tbody > tr:last-child > td{ border-top:0; } table.tabela_nawigacyjna > tbody > tr:last-child > th > div > p:first-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > p:first-child{ margin-top:0; } table.tabela_nawigacyjna > tbody > tr:last-child > th > div > p:last-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > p:last-child{ margin-bottom:0; } table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ul:first-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ol:first-child{ margin-top:0; } table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ul:last-child, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ol:last-child{ margin-bottom:0; } table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ul, table.tabela_nawigacyjna > tbody > tr:last-child > td > div > ol{ margin-left:0; margin-right:0; list-style-position: inside; margin-inline-start: 0; } table.tabela_nawigacyjna.szerokość{ display:flex; flex-direction:row; width:auto; margin-left:0; margin-right:0; margin-top:0.2em; margin-bottom:0; } table.tabela_nawigacyjna, table.tabela_nawigacyjna *{ word-wrap:break-word; word-break:break-word; } table.tabela_nawigacyjna.szerokość > tbody{ display:table; } table.tabela_nawigacyjna.szerokość > tbody, table.tabela_nawigacyjna.szerokość > tbody > tr, table.tabela_nawigacyjna.szerokość > tbody > tr, table.tabela_nawigacyjna.szerokość > tbody > tr, hr + table.tabela_nawigacyjna, hr + style + table.tabela_nawigacyjna, hr + link + table.tabela_nawigacyjna{ margin-top:0; } table.tabela_nawigacyjna:last-child{ margin-bottom:0; } @media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){ html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{ animation: nie_hover_odkrywca 0s forwards; } html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{ animation: hover_odkrywca 0s forwards; } html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{ animation: nie_hover_odkrywca 5s forwards; } html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{ animation: hover_odkrywca 0s forwards; } html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{ animation: nie_hover_odkrywca 5s forwards; } html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{ animation: hover_odkrywca 0s forwards; } } @keyframes hover_odkrywca { 0% { opacity:0; visibility:hidden; height:0; overflow:hidden; position:absolute; } 99% { opacity:0; visibility:hidden; height:0; overflow:hidden; position:absolute; } 100%{ opacity:1; visibility:visible; height:auto; overflow:visible; position:relative; } } @keyframes nie_hover_odkrywca { 0% { opacity:1; visibility:visible; height:auto; overflow:visible; position:relative; } 99% { opacity:1; visibility:visible; height:auto; overflow:visible; position:relative; } 100%{ opacity:0; visibility:hidden; height:0; overflow:hidden; position:absolute; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ bzr3ztk3iphxygepr2szzq2uf7dp6ht Wikibooks:Moduły/StronicowyParser/StronaSubst 4 63523 556857 556713 2026-09-19T05:57:48Z Persino 2851 556857 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} == Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}. Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą. * Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Najważniejsze zmienne: | nagłówek1 = tak | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}. | 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak | 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}. | 6 = Funkcje: | nagłówek6 = tak | 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową. | 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa. | 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału. | 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak | 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy. | 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły. | 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki. }} A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana. Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}). A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza. == {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} == Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej. === Opis funkcji === Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}). Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem. | 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony. | 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 5 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''. }} Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}. Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony. === Funkcje lokalne === ==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ==== Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Powtarzane(rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną. }} Przykład użycia: <syntaxhighlight lang="lua"> local liczba_powtarzanego=Powtarzane(naglowek); </syntaxhighlight> ==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ==== Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak parametrów. | komórka1 = 1 }} Przykład analizy funkcji, podając je właściwie ciało: <syntaxhighlight lang="lua"> if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; </syntaxhighlight> ==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ==== Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. * To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)); end ); </syntaxhighlight> Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. ==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ==== Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą ksiązki, wtedy w tekście w znaczniku nie jes podawaany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''CSS''': {{Code|display:none}}. Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty. | 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem. | 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. }} ==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ==== Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,. Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr. Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}. Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}. Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}. Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale. | 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały. | 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami. | 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then ... --- ciało przez właściwą pętlą; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do ... ---- ciało pętli przez tą funkcję; tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po tej funkcji; end; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ==== Funkcja liczy poziom rozdziału, który może być różnego typu, np. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł. | 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział. | 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział. | 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział. | 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=0; for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed tą funkcją; local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy); ... ---- ciało pętli po tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ==== Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, względem jego poziomów rozdziałów różnych typów, w którym leży on. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł. | 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}. | 4 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_dla_strony=0; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony); ... ---- Dalsza część ciała danego okrążenia pętli; end; end; </syntaxhighlight> ==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ==== Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł. | 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}. | 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}. | 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}. | 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}. | 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}. | 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}. }} Przykłady użycia: ; Pierwszy dla listowania artukułów danego rozdziału <syntaxhighlight lang="lua"> for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; if(substrona==rozdzial)then if(ktore==licznik_numer_tego_samego_rozdzialu)then ... ---- ciało czści kodu przed; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- dalsza częśc kodu po; end; end; end; </syntaxhighlight> ; Drugi do listowania artykułów książki <syntaxhighlight lang="lua"> for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed wywołaniem tej funkcji; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po wywołaniu tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ==== Funkcja operująca na parametrach szablonu: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych. W tym przypadku dla aktualngo artykułu, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli mamy do czynienia z niekatualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}. | 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki. | 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem. | 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp. }} Gdy artykuł jest: w wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą. Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytul|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> {{Hr}} W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}. Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod </syntaxhighlight> Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}. | 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}. ===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} ===== Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}. Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod; </syntaxhighlight> Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}. ==== Funkcje analizujące strony zbiorcze lub inne ==== ===== {{Śródtytuł|NieFun}}{{Code|NieFun}} ===== Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(parametr) return "";end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}. | 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu. | 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów. | 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu. }} Parametry funkcji zwracanej: * {{Code|parametr}} - jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}. ===== {{Śródtytuł|TakFun}}{{Code|TakFun}} ===== Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}. Definicja pogladowa funkcji: <syntaxhighlight lang="lua"> local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. ===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} ===== Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7x80df4mrbht8scl74dui2js94ntucw 556858 556857 2026-09-19T06:00:22Z Persino 2851 /* {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} */ 556858 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} == Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}. Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą. * Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Najważniejsze zmienne: | nagłówek1 = tak | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}. | 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak | 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}. | 6 = Funkcje: | nagłówek6 = tak | 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową. | 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa. | 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału. | 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak | 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy. | 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły. | 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki. }} A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana. Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}). A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza. == {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} == Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej. === Opis funkcji === Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}). Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem. | 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony. | 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 5 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''. }} Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}. Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony. === Funkcje lokalne === ==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ==== Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Powtarzane(rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną. }} Przykład użycia: <syntaxhighlight lang="lua"> local liczba_powtarzanego=Powtarzane(naglowek); </syntaxhighlight> ==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ==== Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak parametrów. | komórka1 = 1 }} Przykład analizy funkcji, podając je właściwie ciało: <syntaxhighlight lang="lua"> if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; </syntaxhighlight> ==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ==== Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. * To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)); end ); </syntaxhighlight> Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. ==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ==== Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą książki, wtedy w tekście w znaczniku nie jes podawaany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''CSS''': {{Code|display:none}}. Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty. | 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem. | 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. }} ==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ==== Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,. Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr. Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}. Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}. Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}. Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale. | 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały. | 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami. | 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then ... --- ciało przez właściwą pętlą; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do ... ---- ciało pętli przez tą funkcję; tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po tej funkcji; end; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ==== Funkcja liczy poziom rozdziału, który może być różnego typu, np. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł. | 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział. | 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział. | 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział. | 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=0; for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed tą funkcją; local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy); ... ---- ciało pętli po tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ==== Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, względem jego poziomów rozdziałów różnych typów, w którym leży on. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł. | 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}. | 4 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_dla_strony=0; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony); ... ---- Dalsza część ciała danego okrążenia pętli; end; end; </syntaxhighlight> ==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ==== Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł. | 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}. | 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}. | 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}. | 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}. | 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}. | 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}. }} Przykłady użycia: ; Pierwszy dla listowania artukułów danego rozdziału <syntaxhighlight lang="lua"> for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; if(substrona==rozdzial)then if(ktore==licznik_numer_tego_samego_rozdzialu)then ... ---- ciało czści kodu przed; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- dalsza częśc kodu po; end; end; end; </syntaxhighlight> ; Drugi do listowania artykułów książki <syntaxhighlight lang="lua"> for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed wywołaniem tej funkcji; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po wywołaniu tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ==== Funkcja operująca na parametrach szablonu: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych. W tym przypadku dla aktualngo artykułu, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli mamy do czynienia z niekatualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}. | 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki. | 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem. | 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp. }} Gdy artykuł jest: w wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą. Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytul|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> {{Hr}} W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}. Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod </syntaxhighlight> Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}. | 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}. ===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} ===== Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}. Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod; </syntaxhighlight> Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}. ==== Funkcje analizujące strony zbiorcze lub inne ==== ===== {{Śródtytuł|NieFun}}{{Code|NieFun}} ===== Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(parametr) return "";end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}. | 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu. | 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów. | 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu. }} Parametry funkcji zwracanej: * {{Code|parametr}} - jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}. ===== {{Śródtytuł|TakFun}}{{Code|TakFun}} ===== Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}. Definicja pogladowa funkcji: <syntaxhighlight lang="lua"> local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. ===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} ===== Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dhcicby94dhm2p20usc0t0ara7qjjgt 556859 556858 2026-09-19T06:06:31Z Persino 2851 /* {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} */ 556859 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} == Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}. Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą. * Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Najważniejsze zmienne: | nagłówek1 = tak | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}. | 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak | 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}. | 6 = Funkcje: | nagłówek6 = tak | 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową. | 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa. | 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału. | 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak | 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy. | 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły. | 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki. }} A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana. Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}). A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza. == {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} == Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej. === Opis funkcji === Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}). Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem. | 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony. | 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 5 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''. }} Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}. Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony. === Funkcje lokalne === ==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ==== Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Powtarzane(rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną. }} Przykład użycia: <syntaxhighlight lang="lua"> local liczba_powtarzanego=Powtarzane(naglowek); </syntaxhighlight> ==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ==== Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Zmienna mówi, że strona została przeanalizowana parserem strony zbiorczej, dlatego jest ustawiana właśnie ta zmienna. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak parametrów. | komórka1 = 1 }} Przykład analizy funkcji, podając je właściwie ciało: <syntaxhighlight lang="lua"> if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; </syntaxhighlight> ==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ==== Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. * To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)); end ); </syntaxhighlight> Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. ==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ==== Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą książki, wtedy w tekście w znaczniku nie jes podawaany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''CSS''': {{Code|display:none}}. Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty. | 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem. | 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. }} ==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ==== Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,. Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr. Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}. Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}. Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}. Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale. | 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały. | 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami. | 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then ... --- ciało przez właściwą pętlą; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do ... ---- ciało pętli przez tą funkcję; tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po tej funkcji; end; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ==== Funkcja liczy poziom rozdziału, który może być różnego typu, np. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł. | 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział. | 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział. | 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział. | 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=0; for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed tą funkcją; local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy); ... ---- ciało pętli po tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ==== Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, względem jego poziomów rozdziałów różnych typów, w którym leży on. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł. | 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}. | 4 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_dla_strony=0; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony); ... ---- Dalsza część ciała danego okrążenia pętli; end; end; </syntaxhighlight> ==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ==== Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł. | 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}. | 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}. | 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}. | 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}. | 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}. | 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}. }} Przykłady użycia: ; Pierwszy dla listowania artukułów danego rozdziału <syntaxhighlight lang="lua"> for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; if(substrona==rozdzial)then if(ktore==licznik_numer_tego_samego_rozdzialu)then ... ---- ciało czści kodu przed; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- dalsza częśc kodu po; end; end; end; </syntaxhighlight> ; Drugi do listowania artykułów książki <syntaxhighlight lang="lua"> for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed wywołaniem tej funkcji; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po wywołaniu tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ==== Funkcja operująca na parametrach szablonu: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych. W tym przypadku dla aktualngo artykułu, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli mamy do czynienia z niekatualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}. | 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki. | 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem. | 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp. }} Gdy artykuł jest: w wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą. Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytul|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> {{Hr}} W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}. Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod </syntaxhighlight> Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}. | 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}. ===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} ===== Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}. Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod; </syntaxhighlight> Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}. ==== Funkcje analizujące strony zbiorcze lub inne ==== ===== {{Śródtytuł|NieFun}}{{Code|NieFun}} ===== Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(parametr) return "";end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}. | 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu. | 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów. | 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu. }} Parametry funkcji zwracanej: * {{Code|parametr}} - jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}. ===== {{Śródtytuł|TakFun}}{{Code|TakFun}} ===== Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}. Definicja pogladowa funkcji: <syntaxhighlight lang="lua"> local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. ===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} ===== Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 12vpkehqe5bhr9kr5q7ot8np9sybz1m 556860 556859 2026-09-19T06:11:58Z Persino 2851 /* {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} */ 556860 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} == Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}. Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą. * Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Najważniejsze zmienne: | nagłówek1 = tak | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}. | 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak | 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}. | 6 = Funkcje: | nagłówek6 = tak | 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową. | 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa. | 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału. | 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak | 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy. | 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły. | 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki. }} A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana. Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}). A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza. == {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} == Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej. === Opis funkcji === Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}). Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem. | 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony. | 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 5 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''. }} Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}. Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony. === Funkcje lokalne === ==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ==== Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Powtarzane(rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną. }} Przykład użycia: <syntaxhighlight lang="lua"> local liczba_powtarzanego=Powtarzane(naglowek); </syntaxhighlight> ==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ==== Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Zmienna mówi, że strona została przeanalizowana parserem strony zbiorczej, dlatego jest ustawiana właśnie ta zmienna, i że to jest strona zbiorcza. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak parametrów. | komórka1 = 1 }} Przykład analizy funkcji, podając je właściwie ciało: <syntaxhighlight lang="lua"> if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; </syntaxhighlight> ==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ==== Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. * To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)); end ); </syntaxhighlight> Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. ==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ==== Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą książki, wtedy w tekście w znaczniku nie jes podawaany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''CSS''': {{Code|display:none}}. Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty. | 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem. | 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. }} ==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ==== Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,. Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr. Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}. Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}. Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}. Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale. | 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały. | 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami. | 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then ... --- ciało przez właściwą pętlą; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do ... ---- ciało pętli przez tą funkcję; tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po tej funkcji; end; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ==== Funkcja liczy poziom rozdziału, który może być różnego typu, np. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł. | 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział. | 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział. | 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział. | 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=0; for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed tą funkcją; local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy); ... ---- ciało pętli po tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ==== Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, względem jego poziomów rozdziałów różnych typów, w którym leży on. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł. | 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}. | 4 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_dla_strony=0; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony); ... ---- Dalsza część ciała danego okrążenia pętli; end; end; </syntaxhighlight> ==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ==== Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł. | 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}. | 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}. | 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}. | 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}. | 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}. | 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}. }} Przykłady użycia: ; Pierwszy dla listowania artukułów danego rozdziału <syntaxhighlight lang="lua"> for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; if(substrona==rozdzial)then if(ktore==licznik_numer_tego_samego_rozdzialu)then ... ---- ciało czści kodu przed; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- dalsza częśc kodu po; end; end; end; </syntaxhighlight> ; Drugi do listowania artykułów książki <syntaxhighlight lang="lua"> for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed wywołaniem tej funkcji; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po wywołaniu tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ==== Funkcja operująca na parametrach szablonu: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych. W tym przypadku dla aktualngo artykułu, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli mamy do czynienia z niekatualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}. | 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki. | 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem. | 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp. }} Gdy artykuł jest: w wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą. Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytul|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> {{Hr}} W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}. Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod </syntaxhighlight> Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}. | 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}. ===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} ===== Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}. Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod; </syntaxhighlight> Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}. ==== Funkcje analizujące strony zbiorcze lub inne ==== ===== {{Śródtytuł|NieFun}}{{Code|NieFun}} ===== Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(parametr) return "";end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}. | 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu. | 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów. | 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu. }} Parametry funkcji zwracanej: * {{Code|parametr}} - jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}. ===== {{Śródtytuł|TakFun}}{{Code|TakFun}} ===== Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}. Definicja pogladowa funkcji: <syntaxhighlight lang="lua"> local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. ===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} ===== Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> aqdz9bn7v5ym0lhqex9f5jkne23e72s 556861 556860 2026-09-19T06:28:14Z Persino 2851 /* {{Śródtytuł|TakFun}}{{Code|TakFun}} */ 556861 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} == Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}. Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą. * Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Najważniejsze zmienne: | nagłówek1 = tak | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}. | 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak | 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}. | 6 = Funkcje: | nagłówek6 = tak | 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową. | 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa. | 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału. | 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak | 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy. | 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły. | 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki. }} A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana. Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}). A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza. == {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} == Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej. === Opis funkcji === Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}). Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem. | 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony. | 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 5 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''. }} Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}. Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony. === Funkcje lokalne === ==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ==== Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Powtarzane(rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną. }} Przykład użycia: <syntaxhighlight lang="lua"> local liczba_powtarzanego=Powtarzane(naglowek); </syntaxhighlight> ==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ==== Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Zmienna mówi, że strona została przeanalizowana parserem strony zbiorczej, dlatego jest ustawiana właśnie ta zmienna, i że to jest strona zbiorcza. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak parametrów. | komórka1 = 1 }} Przykład analizy funkcji, podając je właściwie ciało: <syntaxhighlight lang="lua"> if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; </syntaxhighlight> ==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ==== Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. * To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)); end ); </syntaxhighlight> Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. ==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ==== Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą książki, wtedy w tekście w znaczniku nie jes podawaany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''CSS''': {{Code|display:none}}. Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty. | 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem. | 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. }} ==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ==== Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,. Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr. Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}. Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}. Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}. Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale. | 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały. | 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami. | 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then ... --- ciało przez właściwą pętlą; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do ... ---- ciało pętli przez tą funkcję; tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po tej funkcji; end; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ==== Funkcja liczy poziom rozdziału, który może być różnego typu, np. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł. | 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział. | 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział. | 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział. | 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=0; for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed tą funkcją; local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy); ... ---- ciało pętli po tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ==== Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, względem jego poziomów rozdziałów różnych typów, w którym leży on. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł. | 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}. | 4 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_dla_strony=0; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony); ... ---- Dalsza część ciała danego okrążenia pętli; end; end; </syntaxhighlight> ==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ==== Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł. | 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}. | 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}. | 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}. | 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}. | 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}. | 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}. }} Przykłady użycia: ; Pierwszy dla listowania artukułów danego rozdziału <syntaxhighlight lang="lua"> for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; if(substrona==rozdzial)then if(ktore==licznik_numer_tego_samego_rozdzialu)then ... ---- ciało czści kodu przed; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- dalsza częśc kodu po; end; end; end; </syntaxhighlight> ; Drugi do listowania artykułów książki <syntaxhighlight lang="lua"> for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed wywołaniem tej funkcji; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po wywołaniu tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ==== Funkcja operująca na parametrach szablonu: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych. W tym przypadku dla aktualngo artykułu, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli mamy do czynienia z niekatualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}. | 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki. | 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem. | 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp. }} Gdy artykuł jest: w wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą. Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytul|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> {{Hr}} W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}. Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod </syntaxhighlight> Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}. | 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}. ===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} ===== Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}. Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod; </syntaxhighlight> Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}. ==== Funkcje analizujące strony zbiorcze lub inne ==== ===== {{Śródtytuł|NieFun}}{{Code|NieFun}} ===== Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(parametr) return "";end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}. | 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu. | 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów. | 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu. }} Parametry funkcji zwracanej: * {{Code|parametr}} - jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}. ===== {{Śródtytuł|TakFun}}{{Code|TakFun}} ===== Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, lub druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. Definicja pogladowa funkcji: <syntaxhighlight lang="lua"> local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. ===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} ===== Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7xeq6aln1f5v0hc08qsy4jdsqgjdl8u 556862 556861 2026-09-19T06:29:50Z Persino 2851 /* {{Śródtytuł|TakFun}}{{Code|TakFun}} */ 556862 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} == Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}. Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą. * Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Najważniejsze zmienne: | nagłówek1 = tak | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}. | 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak | 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}. | 6 = Funkcje: | nagłówek6 = tak | 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową. | 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa. | 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału. | 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak | 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy. | 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły. | 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki. }} A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana. Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}). A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza. == {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} == Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej. === Opis funkcji === Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}). Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem. | 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony. | 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 5 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''. }} Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}. Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony. === Funkcje lokalne === ==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ==== Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Powtarzane(rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną. }} Przykład użycia: <syntaxhighlight lang="lua"> local liczba_powtarzanego=Powtarzane(naglowek); </syntaxhighlight> ==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ==== Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Zmienna mówi, że strona została przeanalizowana parserem strony zbiorczej, dlatego jest ustawiana właśnie ta zmienna, i że to jest strona zbiorcza. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak parametrów. | komórka1 = 1 }} Przykład analizy funkcji, podając je właściwie ciało: <syntaxhighlight lang="lua"> if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; </syntaxhighlight> ==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ==== Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. * To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)); end ); </syntaxhighlight> Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. ==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ==== Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą książki, wtedy w tekście w znaczniku nie jes podawaany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''CSS''': {{Code|display:none}}. Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty. | 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem. | 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. }} ==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ==== Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,. Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr. Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}. Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}. Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}. Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale. | 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały. | 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami. | 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then ... --- ciało przez właściwą pętlą; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do ... ---- ciało pętli przez tą funkcję; tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po tej funkcji; end; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ==== Funkcja liczy poziom rozdziału, który może być różnego typu, np. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł. | 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział. | 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział. | 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział. | 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=0; for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed tą funkcją; local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy); ... ---- ciało pętli po tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ==== Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, względem jego poziomów rozdziałów różnych typów, w którym leży on. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł. | 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}. | 4 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_dla_strony=0; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony); ... ---- Dalsza część ciała danego okrążenia pętli; end; end; </syntaxhighlight> ==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ==== Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł. | 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}. | 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}. | 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}. | 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}. | 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}. | 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}. }} Przykłady użycia: ; Pierwszy dla listowania artukułów danego rozdziału <syntaxhighlight lang="lua"> for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; if(substrona==rozdzial)then if(ktore==licznik_numer_tego_samego_rozdzialu)then ... ---- ciało czści kodu przed; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- dalsza częśc kodu po; end; end; end; </syntaxhighlight> ; Drugi do listowania artykułów książki <syntaxhighlight lang="lua"> for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed wywołaniem tej funkcji; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po wywołaniu tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ==== Funkcja operująca na parametrach szablonu: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych. W tym przypadku dla aktualngo artykułu, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli mamy do czynienia z niekatualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}. | 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki. | 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem. | 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp. }} Gdy artykuł jest: w wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą. Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytul|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> {{Hr}} W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}. Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod </syntaxhighlight> Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}. | 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}. ===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} ===== Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}. Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod; </syntaxhighlight> Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}. ==== Funkcje analizujące strony zbiorcze lub inne ==== ===== {{Śródtytuł|NieFun}}{{Code|NieFun}} ===== Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(parametr) return "";end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}. | 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu. | 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów. | 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu. }} Parametry funkcji zwracanej: * {{Code|parametr}} - jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}. ===== {{Śródtytuł|TakFun}}{{Code|TakFun}} ===== Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, lub druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. Definicja pogladowa funkcji: <syntaxhighlight lang="lua"> local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _2 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} ===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} ===== Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 91won9hv7cr9ij0xn61o6oeq4vndpxl 556863 556862 2026-09-19T06:36:59Z Persino 2851 /* {{Śródtytuł|TakFun}}{{Code|TakFun}} */ 556863 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} == Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}. Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą. * Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Najważniejsze zmienne: | nagłówek1 = tak | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}. | 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak | 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}. | 6 = Funkcje: | nagłówek6 = tak | 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową. | 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa. | 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału. | 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak | 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy. | 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły. | 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki. }} A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana. Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}). A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza. == {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} == Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej. === Opis funkcji === Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}). Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem. | 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony. | 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 5 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''. }} Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}. Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony. === Funkcje lokalne === ==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ==== Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Powtarzane(rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną. }} Przykład użycia: <syntaxhighlight lang="lua"> local liczba_powtarzanego=Powtarzane(naglowek); </syntaxhighlight> ==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ==== Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Zmienna mówi, że strona została przeanalizowana parserem strony zbiorczej, dlatego jest ustawiana właśnie ta zmienna, i że to jest strona zbiorcza. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak parametrów. | komórka1 = 1 }} Przykład analizy funkcji, podając je właściwie ciało: <syntaxhighlight lang="lua"> if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; </syntaxhighlight> ==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ==== Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. * To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)); end ); </syntaxhighlight> Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. ==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ==== Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą książki, wtedy w tekście w znaczniku nie jes podawaany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''CSS''': {{Code|display:none}}. Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty. | 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem. | 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. }} ==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ==== Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,. Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr. Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}. Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}. Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}. Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale. | 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały. | 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami. | 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then ... --- ciało przez właściwą pętlą; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do ... ---- ciało pętli przez tą funkcję; tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po tej funkcji; end; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ==== Funkcja liczy poziom rozdziału, który może być różnego typu, np. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł. | 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział. | 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział. | 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział. | 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=0; for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed tą funkcją; local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy); ... ---- ciało pętli po tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ==== Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, względem jego poziomów rozdziałów różnych typów, w którym leży on. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł. | 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}. | 4 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_dla_strony=0; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony); ... ---- Dalsza część ciała danego okrążenia pętli; end; end; </syntaxhighlight> ==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ==== Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł. | 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}. | 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}. | 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}. | 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}. | 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}. | 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}. }} Przykłady użycia: ; Pierwszy dla listowania artukułów danego rozdziału <syntaxhighlight lang="lua"> for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; if(substrona==rozdzial)then if(ktore==licznik_numer_tego_samego_rozdzialu)then ... ---- ciało czści kodu przed; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- dalsza częśc kodu po; end; end; end; </syntaxhighlight> ; Drugi do listowania artykułów książki <syntaxhighlight lang="lua"> for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed wywołaniem tej funkcji; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po wywołaniu tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ==== Funkcja operująca na parametrach szablonu: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych. W tym przypadku dla aktualngo artykułu, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli mamy do czynienia z niekatualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}. | 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki. | 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem. | 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp. }} Gdy artykuł jest: w wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą. Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytul|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> {{Hr}} W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}. Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod </syntaxhighlight> Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}. | 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}. ===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} ===== Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}. Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod; </syntaxhighlight> Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}. ==== Funkcje analizujące strony zbiorcze lub inne ==== ===== {{Śródtytuł|NieFun}}{{Code|NieFun}} ===== Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(parametr) return "";end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}. | 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu. | 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów. | 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu. }} Parametry funkcji zwracanej: * {{Code|parametr}} - jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}. ===== {{Śródtytuł|TakFun}}{{Code|TakFun}} ===== Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, lub druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. Definicja pogladowa funkcji: <syntaxhighlight lang="lua"> local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu}} | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}} | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} ===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} ===== Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> f8ce9yghmfj4vu7kdhxmi1vah4sp9tg 556864 556863 2026-09-19T06:39:46Z Persino 2851 /* {{Śródtytuł|TakFun}}{{Code|TakFun}} */ 556864 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} == Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}. Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą. * Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Najważniejsze zmienne: | nagłówek1 = tak | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}. | 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak | 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}. | 6 = Funkcje: | nagłówek6 = tak | 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową. | 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa. | 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału. | 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak | 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy. | 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły. | 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki. }} A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana. Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}). A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza. == {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} == Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej. === Opis funkcji === Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}). Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem. | 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony. | 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 5 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''. }} Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}. Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony. === Funkcje lokalne === ==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ==== Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Powtarzane(rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną. }} Przykład użycia: <syntaxhighlight lang="lua"> local liczba_powtarzanego=Powtarzane(naglowek); </syntaxhighlight> ==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ==== Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Zmienna mówi, że strona została przeanalizowana parserem strony zbiorczej, dlatego jest ustawiana właśnie ta zmienna, i że to jest strona zbiorcza. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak parametrów. | komórka1 = 1 }} Przykład analizy funkcji, podając je właściwie ciało: <syntaxhighlight lang="lua"> if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; </syntaxhighlight> ==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ==== Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. * To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)); end ); </syntaxhighlight> Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. ==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ==== Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą książki, wtedy w tekście w znaczniku nie jes podawaany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''CSS''': {{Code|display:none}}. Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty. | 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem. | 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. }} ==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ==== Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,. Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr. Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}. Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}. Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}. Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale. | 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały. | 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami. | 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then ... --- ciało przez właściwą pętlą; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do ... ---- ciało pętli przez tą funkcję; tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po tej funkcji; end; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ==== Funkcja liczy poziom rozdziału, który może być różnego typu, np. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł. | 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział. | 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział. | 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział. | 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=0; for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed tą funkcją; local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy); ... ---- ciało pętli po tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ==== Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, względem jego poziomów rozdziałów różnych typów, w którym leży on. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł. | 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}. | 4 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_dla_strony=0; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony); ... ---- Dalsza część ciała danego okrążenia pętli; end; end; </syntaxhighlight> ==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ==== Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł. | 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}. | 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}. | 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}. | 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}. | 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}. | 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}. }} Przykłady użycia: ; Pierwszy dla listowania artukułów danego rozdziału <syntaxhighlight lang="lua"> for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; if(substrona==rozdzial)then if(ktore==licznik_numer_tego_samego_rozdzialu)then ... ---- ciało czści kodu przed; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- dalsza częśc kodu po; end; end; end; </syntaxhighlight> ; Drugi do listowania artykułów książki <syntaxhighlight lang="lua"> for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed wywołaniem tej funkcji; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po wywołaniu tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ==== Funkcja operująca na parametrach szablonu: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych. W tym przypadku dla aktualngo artykułu, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli mamy do czynienia z niekatualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}. | 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki. | 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem. | 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp. }} Gdy artykuł jest: w wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą. Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytul|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> {{Hr}} W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}. Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod </syntaxhighlight> Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}. | 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}. ===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} ===== Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}. Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod; </syntaxhighlight> Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}. ==== Funkcje analizujące strony zbiorcze lub inne ==== ===== {{Śródtytuł|NieFun}}{{Code|NieFun}} ===== Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(parametr) return "";end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}. | 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu. | 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów. | 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu. }} Parametry funkcji zwracanej: * {{Code|parametr}} - jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}. ===== {{Śródtytuł|TakFun}}{{Code|TakFun}} ===== Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, lub druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. Definicja pogladowa funkcji: <syntaxhighlight lang="lua"> local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}} | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}} | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} ===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} ===== Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> j9khb61bcpy7xwr96nkggqo962ouazo 556868 556864 2026-09-19T07:10:38Z Persino 2851 /* {{Śródtytuł|NieFun}}{{Code|NieFun}} */ 556868 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} == Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}. Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą. * Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Najważniejsze zmienne: | nagłówek1 = tak | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}. | 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak | 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}. | 6 = Funkcje: | nagłówek6 = tak | 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową. | 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa. | 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału. | 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak | 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy. | 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły. | 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki. }} A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana. Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}). A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza. == {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} == Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej. === Opis funkcji === Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}). Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem. | 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony. | 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 5 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''. }} Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}. Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony. === Funkcje lokalne === ==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ==== Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Powtarzane(rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną. }} Przykład użycia: <syntaxhighlight lang="lua"> local liczba_powtarzanego=Powtarzane(naglowek); </syntaxhighlight> ==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ==== Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Zmienna mówi, że strona została przeanalizowana parserem strony zbiorczej, dlatego jest ustawiana właśnie ta zmienna, i że to jest strona zbiorcza. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak parametrów. | komórka1 = 1 }} Przykład analizy funkcji, podając je właściwie ciało: <syntaxhighlight lang="lua"> if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; </syntaxhighlight> ==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ==== Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. * To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)); end ); </syntaxhighlight> Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. ==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ==== Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą książki, wtedy w tekście w znaczniku nie jes podawaany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''CSS''': {{Code|display:none}}. Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty. | 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem. | 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. }} ==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ==== Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,. Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr. Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}. Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}. Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}. Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale. | 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały. | 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami. | 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then ... --- ciało przez właściwą pętlą; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do ... ---- ciało pętli przez tą funkcję; tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po tej funkcji; end; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ==== Funkcja liczy poziom rozdziału, który może być różnego typu, np. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł. | 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział. | 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział. | 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział. | 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=0; for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed tą funkcją; local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy); ... ---- ciało pętli po tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ==== Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, względem jego poziomów rozdziałów różnych typów, w którym leży on. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł. | 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}. | 4 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_dla_strony=0; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony); ... ---- Dalsza część ciała danego okrążenia pętli; end; end; </syntaxhighlight> ==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ==== Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł. | 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}. | 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}. | 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}. | 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}. | 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}. | 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}. }} Przykłady użycia: ; Pierwszy dla listowania artukułów danego rozdziału <syntaxhighlight lang="lua"> for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; if(substrona==rozdzial)then if(ktore==licznik_numer_tego_samego_rozdzialu)then ... ---- ciało czści kodu przed; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- dalsza częśc kodu po; end; end; end; </syntaxhighlight> ; Drugi do listowania artykułów książki <syntaxhighlight lang="lua"> for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed wywołaniem tej funkcji; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po wywołaniu tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ==== Funkcja operująca na parametrach szablonu: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych. W tym przypadku dla aktualngo artykułu, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli mamy do czynienia z niekatualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}. | 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki. | 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem. | 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp. }} Gdy artykuł jest: w wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą. Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytul|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> {{Hr}} W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}. Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod </syntaxhighlight> Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}. | 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}. ===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} ===== Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}. Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod; </syntaxhighlight> Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}. ==== Funkcje analizujące strony zbiorcze lub inne ==== ===== {{Śródtytuł|NieFun}}{{Code|NieFun}} ===== Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(parametr) return "";end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}. | 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu. | 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów. | 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu. }} Parametry funkcji zwracanej: {{OpisParametr | 1 = {{Code|parametr}} | _1 = Jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}. }} ===== {{Śródtytuł|TakFun}}{{Code|TakFun}} ===== Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, lub druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. Definicja pogladowa funkcji: <syntaxhighlight lang="lua"> local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}} | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}} | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} ===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} ===== Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3sglp7ypfqfylmuc9k00psx72ufuc2e 556869 556868 2026-09-19T07:11:01Z Persino 2851 /* {{Śródtytuł|NieFun}}{{Code|NieFun}} */ 556869 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/StronaSubst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Śródtytuł|p.AnalizaStronaSubst}}{{Code|p.AnalizaStronaSubst}} == Funkcja sprawdzająca, czy dana strona jest strona zbiorczą o nazwie: w wersji do czytania: {{Tt|Wersja do czytania}} {{Patrz|Wersja do czytania}}, o nazwie: {{Code|nazwa artykulu}} {{LinkPatrz|nazwa artykulu}}, równej subnazwie danej książki: {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, np. nazwa książki: {{lg|Matematyka dla liceum}}, to ta strona jest wtedy: {{lg|Matematyka dla liceum/Matematyka dla liceum}}, lub wersji do druku: {{Tt|Wersja do druku}} {{Patrz|Wersja do druku}}, jak: {{lg|Matematyka dla liceum/Wersja do druku}}. Funkcja sprawdza, czy dana strona równa nazwie rozdziału, do której należą jakieś artykuły, jest stroną zbiorczą. Aby dana nazwa artykułu: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}} była stroną zbiorczą, to nie może być o nazwie: {{Code|Spis treści}}, {{Code|Spis rzeczy}}, {{Code|Bibliografia}} i {{Code|Licencja}}, czyli taką prawidłową stroną, np. jest: {{lg|Matematyka dla liceum/Zaczynamy}}. Gdy dany artykuł, jest nierówny: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, należy do zbioru normalnych artykułów, to wtedy to nie jest na pewno stroną zbiorczą. * Do wskazania, czy to jest strona zbiorcza, używamy tej funkcji, a do liczenia zawartości szablonów: {{Code|{{s|StronaSubst}}}} {{Patrz|StronaSubst-Szablon}} i {{Code|{{s|KsiążkaSubst}}}} {{Patrz|KsiążkaSubst-Szablon}}, wykorzystujemy do tego:{{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, i w niej funkcję nadrzędną: {{LinkŚródtytuł|WoluminSubst}}, która analizuje te dwa typy szablonów, i w zależności od tego uruchamia odpowiednie procedury wykonawcze, a dla tego drugiego szablonu, natomiast jest uruchomiana instrukcja: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, w celu przeanalizowania, czy wskazana strona jest stroną zbiorczą, nawet tą symulowaną, i jakie artykuły należą do tej właśnie strony, i je wypisuje w wywołaniu funkcyjnym. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce_spis,pelnanazwastrony,TakFun-AnalizaStronaSubst,NieFun-AnalizaStronaSubst,FunRozdzial-AnalizaStronaSubst,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Najważniejsze zmienne: | nagłówek1 = tak | 2 = {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} |_2 = Tablica, która jest wynikiem, jego wartości zwracanej, działania dołączacza modułów: {{Code|mw.loadData("Module:StronicowyParser/informacje")}}, a w nim zmiennej: {{Code|tablica_zebranych_danych_woluminowych}}. | 3 = {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{Patrz|tab_lista_artykulow_w_ksiazce_spis}} | _3 = Tablica rozdziałów i artykułów oraz o nich informacji, różnych spisów treści należącej do danej książki, ta tablica ma ściśle określoną strukturę omówioną w artykule: {{Code|{{lr2|Moduły/StronicowyParser/SpisTreści}}}}. | 4 = Zmienne potrzebne do zmiany nawigacji na inny niż dany artykuł, czy książkę: | nagłówek4 = tak | 5 = {{Code|pelnanazwastrony}} {{Patrz|pelnanazwastrony}} | _5 = Jest to nazwa jednostki z przestrzenią nazw, ona jest wykorzystywana w parametrach pudełkowych: {{Code|{{m|Pudełko}}}}, modułu {{Code|{{ld|StronicowyParser|Stronicowego Parsera}}}}. | 6 = Funkcje: | nagłówek6 = tak | 7 = {{Code|TakFun}} {{Patrz|TakFun-AnalizaStronaSubst}} | _7 = Ona (musi być zdefiniowana) jest używana, gdy dana strona jest stroną zbiorczą, ale zwykle nierozdziałową. | 8 = {{Code|NieFun}} {{Patrz|NieFun-AnalizaStronaSubst}} | _8 = Ona (musi być zdefiniowana) jest używana, gdy dana strona nie jest stroną zbiorczą, ale jest artykułem spisu, też w wypadku, gdy strona nie ma artykułów spisu, bo nie jest książką, tylko np. stronami w innej przestrzeni, czy niby-przestrzeni, niż książkowa. | 9 = {{Code|FunRozdzial}} {{Patrz|FunRozdzial-AnalizaStronaSubst}} | _9 = Ona (funkcja opcjonalna, w przeciwnym wypadku jest wykorzystywane: {{LinkPatrz|TakFun-AnalizaStronaSubst}}) jest używana, gdy dana strona jest zbiorczą, ale rozdziałową, równą nazwie rozdziału. | 10 = Zmienne nazw {{Patrz|ZMIENNE_NAZWOWE}}: | nagłówek10 = tak | 11 = {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}} | _11 = Nazwa przestrzeni nazw, do której należy dany artykuł, czy książka, do której on należy. | 12 = {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} | _12 = Mazwa przestrzeni książki, do której należy dana książka. | 13 = {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} | _13 = Subnazwa książki, do której należą jej artykuły. | 14 = {{Code|nazwa_artykulu}} {{Patrz|nazwa_artykulu}} | _14 = Nazwa artykułu danej książki, bez pełnej nazwy książki. }} A gdy parametr: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{Patrz|pelnanazwastrony-istnieje}}, lub parametry: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, lub {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, nie istnieją, wtedy są uzyskiwane parametry pudełkowe, co na tej podstawie, gdy pełna nazwa strony: {{Code|pelnanazwastrony}} {{LinkPatrz|pelnanazwastrony}}, istnieje {{LinkPatrz|pelnanazwastrony-istnieje}}, lub {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, nie istnieje {{Patrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, to są liczone parametry strony z tego, a jeżeli wtedy strona nadal nie ma artykułów, to funkcja jest zatrzymywana, bo np. to ta nibyże książka nie może mieć strony zbiorczej, przeciwnym wypadku otrzymywane są parametry: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A gdy warunki: {{LinkPatrz|pelnanazwastrony-istnieje}} i {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis-nie-istnieje}}, nie są spełnione, to dane są uzyskiwane bezpośrednio z tabeli: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, tzn.: {{LinkPatrz|ZMIENNE_NAZWOWE}}. A jeżeli ten pierwszy warunek nie jest spełniony, to są liczone parametry z: {{LinkPatrz|ZMIENNE_NAZWOWE}}, uzyskiwany jest z niego spis rozdziałów i do nich artykułów, w zmiennej: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}, a jeżeli strona nie może mieć spisu, to funkcja jest zatrzymawana. Jeżeli spis strony jednak istnieje po policzeniu, lub nie (wtedy to jest parametrem tej funkcji), wtedy funkcja sprawdza, czy nazwa przestrzeni nazw {{LinkPatrz|nazwa_przestrzeni}} jest: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}}, lub {{Np|Wikibooks|link=tak}} w niby-przestrzeni nazw: {{lr2|Brudnopis}} z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, albo {{Np|User|link=tak}} (ale nie strona główna użytkownka, ale inne strony w tej przestrzeni, co jest policzone z: {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}). A jeżeli któraś z tych parametrów jest spełnione, wtedy jest sprawdzane, czy artykuł: {{Code|nazwa_artykulu}} {{LinkPatrz|nazwa_artykulu}}, czy jest artykułem książki, co w przypadku stron zbiorczych rozdziałowych jest anulowany status strony zbiorczej, a w przypadku innym ta strona jest jednak stroną zbiorczą. A w innym wypadku, gdy to nie jest ta rozdziałowa, to jest sprawdzane, czy to jest strona zbiorcza. == {{Śródtytuł|p.LiczOperacjeStronZbiorczych}}{{Code|p.LiczOperacjeStronZbiorczych}} == Tutaj jest zawarty opis tej funkcji i podfunkcji lokalnych dostępne tylko w niej, a nie gdzie indziej. === Opis funkcji === Gdy strona jest stroną zbiorczą, strona musi być w przestrzeni książkowej, lub gdy parametry pudełkowe: {{Code|{{m|Pudełko}}}}, wskazują na nią, to w przeciwnym wypadku parametry stron zbiorczych nie są liczone i nie są ustawiane, normalnie są liczone, za pomocą wywołań szablonowych: {{Code|{{s|StronaSubst}}}} {{LinkPatrz|StronaSubst-Szablon}} - gdy jest liczony pojedynczy artykuł, {{Code|{{s|KsiążkaSubst}}}} {{LinkPatrz|KsiążkaSubst-Szablon}} - gdy liczymy całą stronę zbiorczą ze wszystkich stron z jakich składa się książka, oprócz artykułów, różnych stron zbiorczych. Ten pierwszy wywołujemy zawsze z parametrami liczonej strony (artykułu książki), a to drugie nie wywołujemy zwykle z parametrami, po prostu wywołanie jest prawie zawsze bezparametrowe. Te szablony umieszczamy na stronie zbiorczej lub symulowanej stronie zbiorczej, za pomocą szablonu {{s|Podręcznik}}, zobacz też zbiór szablonów ustawień {{Code|config}}, tego szablonu, tzn: {{s|Podręcznik/Ustawienia/}} {{Patrz|Podręcznik/Ustawienia/}}, co jest uwarunkowane wewnętrznym kodem w: {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, w funkcji: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}. Przykład ustawień {{LinkPatrz|Podręcznik/Ustawienia/}} symulowanej strony zbiorczej możemy znaleźć na stronie: {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:StronaSubst/config}}}} (szablonu {{LinkPatrz|StronaSubst-Szablon}}) lub {{Code|{{ls2|Podręcznik/Ustawienia/Szablon:KsiążkaSubst/config}}}} (szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}). Funkcja wykorzystuje jako podstawę do działania procedurę zwracajace jakieś parametry: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.LiczOperacjeStronZbiorczych(glowna_tablica,tekst_rozwiniety_calego_artykulu,spis,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,tablica_danych_parametrow_szablonu_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|glowna_tablica}} {{Patrz|glowna_tablica}} | _1 = Zmienna taka jak: {{Code|self}}, jest to zmienna obiektowa, co ona pozwala uruchomić tę funkcję bez tego parametru, jeżeli napiszemy wywołanie tej funkcji nie z: {{Code|.}}, tylko z: {{Code|:}}, wtedy jest brany obiekt z aktualnej tablicy, dzięki któremu liczymy pewne parametry, ten przed dwukropkiem. | 2 = {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} | _2 = Tekst zakodowany całej strony. | 3 = {{Code|spis}} {{Patrz|spis}} | _3 = Jest to spis rozdziałów i jego artykułów, jest to zmienna, taka jak: {{Code|tab_lista_artykulow_w_ksiazce_spis}} {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 4 = {{Code|nazwa_modulu_strony}} {{Patrz|nazwa_modulu_strony}} | _4 = Uchwyt bazy danych {{Code|{{m|Szablonowe}}}}, używany zamiast: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 5 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{Patrz|tablica_obiektow_strony_dany_modul_strony}} | _5 = Gdy nie podano zmiennej: {{Code|nazwa_modulu_strony}}, wtedy jest używana ta zmienna, jest to zmienna bazy danych, tej samej bazy, co dotyczy: {{LinkPatrz|nazwa_modulu_strony}}. | 6 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _6 = Zmienna, w której są zawarte rozkładania parametrów tabeli bazy danych: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}, na czynniki pierwsze, aby znów tego nie robił, gdy pierwszy raz badamy jakiś element jej, to rozłożenie jest umieszzczane w tej właśnie tabeli, a za drugim lub trzecim razem, itd., tego nie robić, w ten sposób można przyszybszyć '''{{ld|StronicowyParser|Stronicowy parser}}'''. }} Funkcja ma w swoje definicji bezpośrednio zmienne: {{Code|toc_nowe}} do tworzenia spisu treści, którą zapisujemy pod zmienną: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}} w podtablicy {{Code|TOC_StronaZbiorcza}} {{Patrz|TOC_StronaZbiorcza}}. Również ona używa funkcji: {{LinkŚródtytuł|Powtarzane}}, tzn. {{LinkPatrz|tab_powtarzane}}, do liczenia, ile razy dany rozdział się powtarza, w celu policzenia unikalnych identyfikatorów do nich, aby można było się do nich odwołać za pomocą linków wewnętrznych linkujących do bieżącej, lub nie, strony. === Funkcje lokalne === ==== {{Śródtytuł|Powtarzane}}{{Code|Powtarzane}} ==== Funkcja, którego parametrem jest rozdział. Liczy numer takiego samego rozdziału. Do swojego działania funkcja wykorzystuje tabelę {{Code|tab_powtarzane}} {{Patrz|tab_powtarzane}} zdefiniowanej w funkcji: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, aby uzyskać unikalność danego nagłówka, tworząc kolejne pozycje spisu treści na stronie zbiorczej. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function Powtarzane(rozdzial)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Podany rozdzial spisu treści lub podanego rozdzialu w artykułach, w zależności od sytuacji, w której uruchomiono tą zmienną. }} Przykład użycia: <syntaxhighlight lang="lua"> local liczba_powtarzanego=Powtarzane(naglowek); </syntaxhighlight> ==== {{Śródtytuł|CzyStronaSubst}}{{Code|CzyStronaSubst}} ==== Funkcja sprawdzająca, czy składowa tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a później jego podelement: {{Code|CzyStronaSubst}} {{Patrz|CzyStronaSubst}}, czy nie istnieje, a jeżeli tak, to ustaw jego wartość na: {{Code|tak}}. Zmienna mówi, że strona została przeanalizowana parserem strony zbiorczej, dlatego jest ustawiana właśnie ta zmienna, i że to jest strona zbiorcza. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function CzyStronaSubst()...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = Brak parametrów. | komórka1 = 1 }} Przykład analizy funkcji, podając je właściwie ciało: <syntaxhighlight lang="lua"> if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak"; end; </syntaxhighlight> ==== {{Śródtytuł|WoluminSubst}}{{Code|WoluminSubst}} ==== Funkcja wyszukuje w zakodowanym tekście szablony: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}} i {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, przy pomocy: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{linkPatrz|tablica_obiektow_strony_dany_modul_strony}}, wywołując dla nich odpowiednie kolejno funkcje: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-WoluminSubst}} i {{Code|KsiążkaSubst}} {{LinkPatrz|KsiazkaSubst-WoluminSubst}}. * To jest główna funkcja w: {{LinkŚródtytuł|p.LiczOperacjeStronZbiorczych}}, od której liczymy szablony stron zbiorczych. I całą historię tego liczenia od tego zaczynamy, w przypadku całościowego liczenia takich stron na stronie zbiorczej, funkcja wykorzystuje do tego celu: {{LinkŚródtytuł|p.AnalizaStronaSubst}}, a do części szczególnej, dla jednego artykułu, używa do tego: {{LinkŚródtytuł|StronaSubst}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony,StronaSubst,KsiazkaSubst)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tekst_rozwiniety_calego_artykulu}} | _1 = Jak w: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Jest to przeszukiwany tekst, w celu wyszukania szablonów: {{s|StronaSubst}} i {{s|KsiążkaSubst}}. | 2 = {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_strony}}. Jest to uchwyt bazy kodowania zamiast używania zmiennej: {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. | 3 = {{Code|tablica_obiektow_strony_dany_modul_strony}} {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}} | _3 = Jak w: {{LinkPatrz|tablica_obiektow_strony_dany_modul_strony}}. Jeśli jest nienilowe, to używamy zamiast: {{Code|nazwa_modulu_strony}} {{LinkPatrz|nazwa_modulu_strony}}. | 4 = {{Code|StronaSubst}} {{Patrz|StronaSubst-WoluminSubst}} | _4 = Funkcja wywoływana, gdy napotkano szablon: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}. | 5 = {{Code|KsiazkaSubst}} {{Patrz|KsiazkaSubst-WoluminSubst}} | _5 = Funkcja wywoływana, gdy napotkano szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}. }} Przykłady wykorzystania: <syntaxhighlight lang="lua"> WoluminSubst(tekst_rozwiniety_calego_artykulu,nazwa_modulu_strony,tablica_obiektow_strony_dany_modul_strony, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ... p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,spis_artykulow,pelnanazwastrony,TakFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),NieFun(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny),FunRozdzial(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny)); end ); </syntaxhighlight> Funkcja wykorzystuje pierwszą funkcję, wywołując inną funkcję: {{LinkŚródtytuł|StronaSubst}}, a druga funkcję: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. ==== {{Śródtytuł|StronaSubstParametr}}{{Code|StronaSubstParametr}} ==== Funkcja liczy łańcuch znakowy odpowiadający pojedynczemu wywołaniu, dotyczący danego rozdziału strony zbiorczej, czyli dla pojedynczego wywołania szablonu: {{LinkPatrz|StronaSubst-Szablon}}, lub dla pojedynczego artykułu z wielu generowanych przez szablon: {{LinkPatrz|KsiążkaSubst-Szablon}}. Szablon tworzy rozdział w postaci linku do artykułu, wtedy w nagłówku nie jest podawany adres pełny artykułu, tylko nazwa tego linku jest równa podanej nazwie nagłówka, chociaż adres jest pełną nazwą książki, wtedy w tekście w znaczniku nie jes podawaany wcale żaden artykuł, ani w ogóle tekst, a jeżeli ona nie jest linkiem, to nagłówek i jego rozdział jest w postaci tekstu, wtedy w tekście rozdziału jest podawany pełny adres artykułu, a jeżeli, mamy włączony postęp, wtedy to jest ukryte właściwością '''CSS''': {{Code|display:none}}. Rozdział jest pod elementem {{Tag|div|parametry=style="display:block;" class="rozdział_książki"}}, o odpowiednim poziomie, gdy poziom jest {{Code|nil}}, to wtedy przyjmuje on domyślną wartość {{Code|1}}, tworzonym przez funkcję: {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}. Następnym elementem jest postęp, pod warunkiem, jeżeli ustawiono zmienną: {{Code|postep}}, a dalej w osobnym {{ZobaczTeż|strona_subst}}: {{Tag|div|parametry=class="strona_subst"}}, jest zawartość rozdziału w postaci naszego adresu, lub w postaci wartości pustej, gdy rozdział jest linkiem, wtedy zmienna: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}, jest niepusta, według ustawień funkcji: {{LinkŚródtytuł|StronaSubst}}, a więc tak się dzieke również w przypadku szablonu: {{s|StronaSubst}} {{LinkPatrz|StronaSubst-Szablon}}, gdy ta funkcja została wywołana przez niego. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubstParametr(strona,naglowek_strony,link,p,postep,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|strona}} {{Patrz|strona-StronaSubstParametr}} | _1 = Jak w: {{LinkPatrz|1-StronaSubst}} - jest to nazwa artykułu, który wraz z pozostałymi wartościami nazw książki, tworzy pełny adres, który mieści się na stronie w odpowiedniej sekcji w: {{LinkZobaczTeż|strona_subst}}, a jeżeli zmienna: {{Code|postęp}} {{LinkPatrz|postep-StronaSubstParametr}}, jest niepusta, wtedy ten rozdział jest ukryty, przeciwnie już nie. Ten adres może mieścić się w linku w nagłówku, w przypadku podania {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. a ten znacznik podany tutaj jest wtedy pusty. | 2 = {{Code|naglowek_strony}} {{Patrz|naglowek_strony-StronaSubstParametr}} | _2 = Nagłówek strony tworzony z pełnego adresu strony, który jest podstroną wraz z nagłówkiem. | 3 = {{Code|link}} {{Patrz|link-StronaSubstParametr}} | _3 = Jak w: {{LinkPatrz|link-StronaSubst}}, tylko ta zmienna jest w postaci logicznej, jak ta ostatnia jest niepusta, wtedy ta zmienna odpowiada wartości logicznej prawda, w przeciwnym wypadku mamy fałsz. Wtedy nagłówek jest linkiem, a zawartość znacznika: {{LinkZobaczTeż|strona_subst}}, jest pusta. | 4 = {{Code|p}} {{Patrz|p-StronaSubstParametr}} | _4 = Poziom tworzonego nagłówka rozdziału dodatniego równaniowego, jeżeli {{Code|p {{=}} nil}}, wtedy domyślny poziom jest 1, ten poziom jest liczba calkowitą dodatnią. To odpowiada pewnej liczbie równa się po obu jego stronach nagłówka: {{Code|naglowek_strony}} {{LinkPatrz|naglowek_strony-StronaSubstParametr}}. | 5 = {{Code|postep}} {{Patrz|postep-StronaSubstParametr}} | _5 = Jak w: {{LinkPatrz|postep-StronaSubst}}, z wartością logiczną, jak u w: {{LinkPatrz|link-StronaSubstParametr}}. | 6 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _6 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. Nazwy potrzebne do strorzenia pełnej nazwy adtesu strony, która mieści się w atrybucie adresu w linku w sekcji, lub w znaczniku: {{LinkPatrz|link-StronaSubst}}, w zależności od podanego parametru: {{Code|link}} {{LinkPatrz|link-StronaSubstParametr}}. }} ==== {{Śródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}}{{Code|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} ==== Funkcja liczy pojedynczą pozycję dla artykułu, na stronie zbiorczej, przy wywołaniu szablonu {{LinkPatrz|KsiążkaSubst-Szablon}}. Nie liczy tylko strony typu: wersji: wersji do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}} i wersji do druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}, i ich nie rozwaza w zbiorze artykułów,. Gdy nie jest włączony parametr sekcji, ale też jest wyłączony parametr naglówków, to wtedy strona nie uwzględnia, że strony mogą się powtarzać, w przeciwnym wypadku, dalsze repetowane strony są nie uwzględniane, bo np. strony mogą być z nagłówkami w spisie treści, więc w tym przypadku ma sens używać ten parametr. Gdy na stronie jest włączony parametr sekcji, to dla nazw strony niepowtarzających się, liczy stronę w postaci listy tej samej nazwy strony z jego nagłówkami, tzn. po: {{Code|#}}. Funkcja wykorzystuje do liczenia pojedynczej pozycji artykularnej, a w przypadku włączonej sekcji, również te z nagłówkiem, aby policzyć pozycję adresową dla tekstu rozdziału, tzn. używa do tego: {{LinkŚródtytuł|StronaSubstParametr}}. Fukcja do powtarzanych nagłówków na stronie wykorzystuje funkcję: {{LinkŚródtytuł|Powtarzane}}. Funkcję wywołuje się w pętli aż do granicy dojścia do ostatniego artykułu w rozdziale, czy książce, to zależy w jakiej stronie szablon: {{s|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-Szablon}}, się znalazł, czy to w artykule przyprządkowanym danemu rozdziałowi, która jest w tym przypadku stroną zbiorczą, ale nie zawsze, czy innym, czyli normalną stroną zbiorczą, czy to w wersji do czytania, czy druku. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrowa_strony}} {{Patrz|tabela_parametrowa_strony}} | _1 = Tabela charakteryzujaca dany artykuł, w tym rozdziale. | 2 = {{Code|naglowki}} {{Patrz|naglowki}} | _2 = Parametr uwzględniający, gdy strony na różnych spisach treści na stronie mogą posiadać sobie nagłówki. | 3 = {{Code|sekcje}} {{Patrz|sekcje}} | _3 = Dla stron robi stronę zbiorczą z artykułów, w której dla pojedynczego takiego liczy je nagłówkami, którymi są poszczególne rozdziały na stronie. | 4 = {{Code|postep}} | _4 = Jak w: {{LinkPatrz|postep-StronaSubstParametr}}, wykorzystywany przez {{LinkŚródtytuł|StronaSubstParametr}}, w celu zamienienia adresu na postęp. | 5 = {{Code|tablica_stron}} {{Patrz|tablica_stron}} | _5 = Tablica zebranych stron przez tą funkcję przekazywana i zwracaną przez nią iteracyjnie, w prztoadku, gdy jest wyłączony parametr nagłówków,aby strony się nie powtarzały. | 6 = {{Code|wikikod}} {{Patrz|wikikod}} | _6 = Wikikod strony tworzony iteracyjnie dla strony zbiorczej dla poszczególnych artykułów książki, nawet tych z nagłówkami. | 7 = {{Code|toc_nowe}} {{Patrz|toc_nowe}} | _7 = Są tutaj liczone pozycje w spisie treści rozważanego artykułu, nawet tych z nagłówkami, w odpowiedni sposób, by wszystkie linki w niej szły do tej samej strony. Jest liczony spis, nawet wtedy, gdy początkowo go tam nie było. | 8 = {{Code|HNumer}} {{Patrz|HNumer}} | _8 = Funkcja zwracana przez: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, która służy do liczenia poziomu w strukturze rozdziałów dodatnich równaniowych. | 9 = {{Code|m_roznica}} {{Patrz|m_roznica}} | _9 = Jest to fatyczny poziom rozdziału liczony przez funkcję: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}. Jest {{ZobaczTeż|m_roznica}} to poziom głównego nagłówka rozdziału, którym jest artykuł. Bez rozdziałów w artykule. | 10 = {{Code|m_uzyskane}} | _10 = Jest to poziom tego: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, liczony przez: {{Code|HNumer}} {{LinkPatrz|HNumer}}, który oddaje ssens strukturze rozdziałów i w nich artykułów. Podobnie jak dla: {{LinkZobaczTeż|m_roznica}}, ale ten policzony z: {{Code|m_roznica}} {{LinkPatrz|m_roznica}}, co na podstawie tego otrzymujemy właśnie to. Właśnie policzony z te funkcji, bardziej oddaje ssens struktury poziomów rozdziałów niż jego goły surowy odpowiednil }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then ... --- ciało przez właściwą pętlą; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do ... ---- ciało pętli przez tą funkcję; tablica_stron,wikikod,toc_nowe=ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego(tabela_parametrowa_strony,naglowki,sekcje,postep,tablica_stron,wikikod,toc_nowe,HNumer,m_roznica,m_uzyskane,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po tej funkcji; end; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstu}}{{Code|PoziomNapisowyWprowadzeniaTekstu}} ==== Funkcja liczy poziom rozdziału, który może być różnego typu, np. dodatni normalny, centrowany znacznikowy lub szablonowy, ujemny albo zerowy. Jeżeli w rozdziale znajduje się artykuł, to jedynie może być to rozdział dodatni niezależnie jaki. Rozdział centrowany jest ważniejszy niż ten dodatni normalny. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstu(tab_lista,licznik_rozdzial_centrowany,licznik_rozdzial_dodatni,licznik_rozdzial_srednikowy,licznik_rozdzial_zerowy)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} {{Patrz|tab_lista}} | _1 = Tabela przedstawiające pozycję rozdziału i i jego artykułów, dla danego rozdziału, do którego należy artykuł. | 2 = {{Code|poziom_rozdzial_centrowany}} | _2 = Poziom rozdziału dodatniego centrowanego, w którym leży dany rozdział. | 3 = {{Code|poziom_rozdzial_dodatni}} | _3 = Poziom rozdziału dodatniego normalnego, w którym leży dany rozdział. | 4 = {{Code|poziom_rozdzial_srednikowy}} | _4 = Poziom rozdziału ujemnego średnikowego (zaczynający się od {{Code|;}}), w którym leży dany rozdział. | 5 = {{Code|poziom_rozdzial_zerowy}} | _5 = Poziom rozdziału zerowego, w którym leży dany rozdzial. }} Przykłady użycia: <syntaxhighlight lang="lua"> local poziom_rozdzial_dodatni=0; local poziom_rozdzial_zerowy=0; local poziom_rozdzial_centrowany=0; local poziom_rozdzial_srednikowy=0; for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed tą funkcją; local m=PoziomNapisowyWprowadzeniaTekstu(tab_lista,poziom_rozdzial_centrowany,poziom_rozdzial_dodatni,poziom_rozdzial_srednikowy,poziom_rozdzial_zerowy); ... ---- ciało pętli po tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}}{{Code|PoziomNapisowyWprowadzeniaTekstuArtykularny}} ==== Funkcja liczy poziom artykułu, w którym on leży, może on leżeć w rozdziale dodatnim normalnym, a nawet centrowanym znacznikowym lub szablonowym, czy nawet średnikowym, bądź zerowym, względem jego poziomów rozdziałów różnych typów, w którym leży on. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} | _2 = Poziom rozdziału dodatniego, do której należy artykuł. | 3 = {{Code|tabela_parametrowa_strony}} | _3 = Jak w: {{LinkPatrz|tabela_parametrowa_strony}}. | 4 = {{Code|liczba_poziomu_zerowego_dla_strony}} | _4 = Poziom zerowy rozdziału zerowego, do ktorej należy artykuł. | 5 = {{Code|liczba_poziomu_srednikowego_dla_strony}} | _5 = Poziom sredniowy (ujemny ale napisany za pomocą początkowego średnika), do której należy dany artykuł. }} Przykłady użycia: <syntaxhighlight lang="lua"> if(tab_lista[2])then local liczba_poziomu_zerowego_dla_strony=0; local liczba_poziomu_srednikowego_dla_strony=0; for _,tabela_parametrowa_strony in ipairs(tab_lista[2])do local m_roznica=PoziomNapisowyWprowadzeniaTekstuArtykularny(tab_lista,m,tabela_parametrowa_strony,liczba_poziomu_zerowego_dla_strony,liczba_poziomu_srednikowego_dla_strony); ... ---- Dalsza część ciała danego okrążenia pętli; end; end; </syntaxhighlight> ==== {{Śródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}{{Code|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}} ==== Funkcja liczy wszystkie pozycje artykularne, tzn. wszystkich artyków rozważanego podręcznika, czy to w postaci linków inteligetnych, czy zwykłych linków wewnętrznych, dla danego rozdziału, wykorzystuje do tego celu funkcje: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstuArtykularny}} - do liczenia poziomu artykułów, i {{LinkŚródtytuł|ListowanieNapisoweWprowadzeniaTekstuOrazAdresuArtykularnego}} - do listowania pojedynczego artykułu, w zależności od podanych w nim zmiennych. Raz liczy rozdział z jego artykułami, i pod nim wraz z ich rozdziałami i poziomami, a za innym razem jako pojedynczy rozdział z tylko jego artykułami, nie rozważając ich zawartości. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista}} | _1 = Jak w: {{LinkPatrz|tab_lista}}. | 2 = {{Code|m}} {{Patrz|m}} | _2 = Jest to poziom napisu wprowadzenia tekstu, w którym leży dany artykuł. | 3 = {{Code|naglowki}} | _3 = Jak w: {{LinkPatrz|naglowki}}. | 4 = {{Code|sekcje}} | _4 = Jak w: {{LinkPatrz|sekcje}}. | 5 = {{Code|HNumer}} | _5 = Jak w: {{LinkPatrz|HNumer}}. | 6 = {{Code|tablica_stron}} | _6 = Jak w: {{LinkPatrz|tablica_stron}}. | 7 = {{Code|wikikod}} | _7 = Jak w: {{LinkPatrz|wikikod}}. | 8 = {{Code|toc_nowe}} | _8 = Jak w: {{LinkPatrz|toc_nowe}}. }} Przykłady użycia: ; Pierwszy dla listowania artukułów danego rozdziału <syntaxhighlight lang="lua"> for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local rozdzial=tab_lista[1][1]; if(substrona==rozdzial)then if(ktore==licznik_numer_tego_samego_rozdzialu)then ... ---- ciało czści kodu przed; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,0,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- dalsza częśc kodu po; end; end; end; </syntaxhighlight> ; Drugi do listowania artykułów książki <syntaxhighlight lang="lua"> for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do ... ---- ciało pętli przed wywołaniem tej funkcji; tablica_stron,wikikod,toc_nowe=ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu(tab_lista,m,naglowki,sekcje,postep,HNumer,tablica_stron,wikikod,toc_nowe,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); ... ---- ciało pętli po wywołaniu tej funkcji; end; </syntaxhighlight> ==== {{Śródtytuł|StronaSubst}}{{Code|StronaSubst}} ==== Funkcja operująca na parametrach szablonu: {{LinkPatrz|StronaSubst-Szablon}}, na danym artykule, w książce bieżącym lub innym, ale należącym do przestrzeni książkowej, przy pomocy zmiennych nazw, pod warunkiem, gdy mamy argument: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywy, wtedy zbieramy parametry różnych książek dla strony zbiorczej ustawionej za pomocą parametrów pudełkowych, w innym przypadku parametry strony zbiorczej należącego do aktualnej książki. Też możemy liczyć parametry stron zbiorczych z poziomu innych stron przy pomocy parametrów pudełkowych. W tym przypadku dla aktualngo artykułu, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|StronaSubst}} {{Patrz|StronaSubst-StronaSubst}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli mamy do czynienia z niekatualnym artykułem, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|StronaSubstInne}} {{Patrz|StronaSubstInne-StronaSubst}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function StronaSubst(tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} | _1 = Parametry szablonu: {{LinkPatrz|StronaSubst-Szablon}}. | 2 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny}} | _2 = Funkcja mówi, że wykorzystujemy artykuł aktualnej książki. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}} i {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Opis parametrów tablicy: {{LinkPatrz|tabela_parametrow_szablonu}}: {{OpisParametrów | 1 = {{Code|1}} {{Patrz|1-StronaSubst}} | _1 = Artykuł danej książki, bez pełnej nazwy książki. | 2 = {{Code|link}} {{Patrz|link-StronaSubst}} | _2 = Gdy niepusta, wtedy wyświetlany napis w nagłówku jest linkiem, w przeciwny wypadku zwykłym tekstem. | 3 = {{Code|postep}} {{Patrz|postep-StronaSubst}} | _3 = Uruchamia postęp zamiast wyświetlania tekstu linku w postaci pełnego adresu strony, ewentualnie z nagłówkiem, kiedy nagłówek nie jest linkiem do artykułu strony, a gdy jest link według {{LinkPatrz|link-StronaSubst}}, to wtedy tylko wyświetli się postęp. }} Gdy artykuł jest: w wersji: do czytania: {{LinkPatrz|Wersja do czytania}}, lub druku: {{LinkPatrz|Wersja do druku}}, to wtedy funkcja zwraca wartość pustą. Funkcja liczy nagłówek ze zmiennej: {{Code|strona}} {{LinkPatrz|1-StronaSubst}}, a następnie ile razy został powtórzony, liczymy to z: {{LinkŚródtytul|Powtarzane}}. Ten wynik wykorzystujemy, to liczenia spisu treści: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Wynik dla danego artykułu liczymi z funkcji: {{LinkŚródtytuł|StronaSubstParametr}}, jest to: {{Code|str}} {{Patrz|str}}. On jest zapisywany pod różnymi zmiennymi w tablicach wielowymiarowych, w zależności, czy podan parametry pudełkowe. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubst}} {{LinkPatrz|StronaSubst-StronaSubst}}, jest tworzona wielowymiarowa zmienna, pod którą jest zapisywany ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|StronaSubstInne}} {{LinkPatrz|StronaSubstInne-StronaSubst}}, jest tworzona wielowymiarowa zmienna, też parametrów nazw książki, pod którą zapisywany jest ten wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][strona][(czy_link and "tak" or "")]=str; </syntaxhighlight> {{Hr}} W obu tworzonych tabelach zależy to od parametru, od wartości zmiennej: {{Code|strona}}, czyli: {{LinkPatrz|1-StronaSubst}}, którą jest nazwą artykułu, a gdy mamy niepustą zmienną: {{Code|link}} {{LinkPatrz|link-StronaSubst}}, wtedy następna zmienna jest ustawiana na: {{Code|tak}}, w przeciwnym wypadku mamy, dla niej, ciąg pusty, a pod: {{Code|str}}, jest ukryta zawartość szablonu {{LinkPatrz|StronaSubst-Szablon}}. ==== KsiążkaSubst ==== ===== {{Śródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}{{Code|AnalizowanieStronyWoluminuWprowadzeniaTekstu}} ===== Funkcja liczy strony zbiorcze dla danego rozdziału, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy niepodano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki artykuł istnieje, to program tej funkcji jest zakańczany, a jeżeli nie, to sprawdzane jest, czy taki rozdział, któremu symbolizuje artykuł książki, w której leży ten szablon, czy rzeczywiście jest zbiorczy. Jeżeli mamy do czynienia z nieaktualną książką tylko inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeśli funkcja nie zakończyła przedwcześnie pracy, wtedy ona liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{Code|postep}} {{LinkPatrz|postep-StronaSubstParametr}}, {{Code|ktore}} {{Patrz|ktore}}, jeżeli tej zmiennej nie podano, to ona domyślnie przyjmuje wartość {{Code|1}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. Funkcja liczy numer tego samego rozdziału. Ona wykorzystuje do tego zmienną: {{Code|ktore}} {{LinkPatrz|ktore}}, aby policzyć ten ściśle określony rozdział, by zwrócić wikikod {{LinkPatrz|wikikod}}. Dla aktualnego wyszukanego rozdziału zgodnego z nazwą artykułu jako strona zbiorcza, jeżeli taki istnieje, wtedy funkcja wyświetla jakiolwiek wynik, np. też z artykułami, jeżeli w nim istnieją takie. Funkcja wtedy inicjuje zmienną: {{Code|HNumer}} {{LinkPatrz|HNumer}} jako wynik z {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}, następnie, za pomocą niej, listuje wynik przy pomocy: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}, uzyskując w ten sposób wikikod {{LinkPatrz|wikikod}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy - aktualny artykuł, jeśli nie podano parametrów pudełkowych, lub one wskazują na ten artykuł, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa - nieaktualny artykuł, parametry pudełkowe już są, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|KsiążkaSubstInneRozdział}} {{Patrz|KsiążkaSubstInneRozdział-AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, jest tworzona odpowiednia podtablica ze zmiennych nazw książki, a tam w końcu, pod kluczem artykułu, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInneRozdział"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki][substrona]=wikikod </syntaxhighlight> Funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całego rozdziału, lub ciąg pusty, jeżeli takiego rozdziału nie znaleziono. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} | _2 = Jak w: {{LinkPatrz|substrona}}. | 3 = {{Code|tabela_parametrow_szablonu}} | _3 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _5 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|FunRozdzial}}. ===== {{Śródtytuł|AnalizowanieWoluminu}}{{Code|AnalizowanieWoluminu}} ===== Funkcja liczy strony zbiorcze dla całej ksiązki, oprócz wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, i druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. W tym przypadku dla aktualnej książki, gdy nie podano zmiennych pudełkowych, funkcja sprawdza zmienną: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-AnalizowanieWoluminu}}, a jeżeli taki, już policzony, artykuł istnieje, to program tej funkcji jest zakańczany. Jeżeli nie mamy do czynienia z aktualną książką tylko z inną, i podano parametry pudełkowe, to funkcja sprawdza też w: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, zmienną: {{Code|KsiążkaSubstInne}} {{Patrz|KsiążkaSubstInne-AnalizowanieWoluminu}}, i w kolejnych jego podtablicach, tzn. utworzonych jako tablica wielowymiarowa kolejno zbudowanych ze zmiennych: {{Code|nazwa_przestrzeni}} {{LinkPatrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{LinkPatrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{LinkPatrz|nazwa_ksiazki}}, czy one są nierówne {{Code|nil}}, a jeżeli tak to funkcja zakańcza pracę. Jeżeli funkcja przedwcześnie nie zakończyła pracy, wtedy liczy parametry: {{Code|naglowki}} {{LinkPatrz|naglowki}}, {{Code|sekcje}} {{LinkPatrz|sekcje}} i {{LinkPatrz|postep-StronaSubstParametr}}, z {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}, oraz inicjowana jest funkcja: {{Code|HNumer}} {{LinkPatrz|HNumer}}, przy pomocy innej: {{Code|{{sr|#p.LiczonyHNumer|p=StronicowyParser/Potrzebne}}}}. Możliwe jest ze rozdział może nie składać się z żadnych artykułów, czyli funkcja liczy wszystkie rozdziały będące przed danymi artykułami. Ona liczy ich poziom z: {{LinkŚródtytuł|PoziomNapisowyWprowadzeniaTekstu}}, tzn. {{Code|m}} {{Patrz|m-AnalizowanieWoluminu}}, aby funkcja poszła dalej w pętli, to ona nie może być poziomem {{LinkPatrz|m-AnalizowanieWoluminu}} równy zero, rozdział równy pustemu łańcuchowi, {{Code|Spis treści}}, {{Code|Bibliografia}}, {{Code|Zobacz też}}, {{Code|Inne}} i {{Code|Licencja}}, co na podstawie tego jest liczony jego numer poziomu z: {{Code|HNumer}} {{LinkPatrz|HNumer}}, tzn. {{Code|m_uzyskane}} {{Patrz|m_uzyskane}}, a następnie rozdział z {{Code|{{sr|#p.NapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały}}}}, a do niego był wsadzony jako drugi parametr, tzn. tą ostatnią policzoną zmienną. Dalej jest wskazywany, które jest powtórzenie danego rozdziału z {{LinkŚródtytuł|Powtarzane}}, co na tej podstawie, licząc od tego pierwszego takiego rozdziału, co ten numer jest wykorzystywany w tablicy liczączej spis treści, strony zbiorczej, czyli: {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}. Co potem po wszystkich rozdziałach, nie posiadających w sobie artykułów, lub nie, wtedy liczymy listę artykułów w danym rozdziale, jego wikikod, i zaaktualizowaną wersję:, {{Code|toc_nowe}} {{LinkPatrz|toc_nowe}}, według funkcji: {{LinkŚródtytuł|ListowanieNaPodstawieRodzajuNapisuWProwadzeniaTekstu}}. Według tej funkcji: cały taki wynik jest otoczony: {{Tag|div|parametry=class="klasa_książki"}}, a w niej są rozdziały, a te rozdziały wraz artykułami są okrążone: {{Tag|div|parametry=class="klasa_naglowka klasa_nagłówka"}}. Dla aktualnej książki wynik jest zapisywany pod zmienną: {{Code|KsiążkaSubst}} {{LinkPatrz|KsiążkaSubst-AnalizowanieWoluminu}}, jeśli nie podano parametrów pudełkowych, w przeciwnym wypadku pod: {{Code|KsiążkaSubstInne}} {{LinkPatrz|KsiążkaSubstInne-AnalizowanieWoluminu}}. Dla parametru: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, który jest prawdziwy, wtedy funkcja zbiera dane w tabeli: {{Code|glowna_tablica}} {{LinkPatrz|glowna_tablica}}, a właściwie jej element: {{Code|tabela_listy_danych_analizy_ksiazki}} {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną o kluczu: {{Code|KsiążkaSubst}} {{Patrz|KsiążkaSubst-StronaSubst}}, jest zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod; </syntaxhighlight> A gdy zmienna: {{Code|czy_artykul_aktualny}} {{LinkPatrz|czy_artykul_aktualny}}, jest fałszywa, wtedy dla: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki-CzyStronaSubst}}, a w niej pod zmienną: {{Code|StronaSubstInne}} {{Patrz|KsiążkaSubstInne-StronaSubst}}, jest tworzona ta wielowymiarowa zmienna, pod którą jesst zapisywany wynik: <syntaxhighlight lang="lua"> glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubstInne"][nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=wikikod; </syntaxhighlight> Widzimy, że funkcja zwraca w ten sposób uzyskany wikikod {{LinkPatrz|wikikod}} dla całej książki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu)...end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny}}. | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} Funkcja jest wykorzystywana w definicji funkcji zwracanej: {{LinkŚródtytuł|TakFun}}. ==== Funkcje analizujące strony zbiorcze lub inne ==== ===== {{Śródtytuł|NieFun}}{{Code|NieFun}} ===== Jest to funkcja zwracająca inną funkcję, która to z kolei zwraca zawsze wartość pustą. Funkcja zwracana jest to funkcja: {{LinkPatrz|NieFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Ta funkcja zwracana przez funkcję w nagłówku jest wykorzystywana wtedy, gdy nie mamy do czynienia z żadną stroną zbiorczą, tylko ze zwykłym artykułem. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local NieFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(parametr) return "";end; end; </syntaxhighlight> Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu-NieFun}} | _1 = Tabela parametrów szablonu: {{LinkPatrz|KsiążkaSubst-Szablon}}. | 2 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu-NieFun}} | _2 = Nazwa tego szablonu. | 3 = {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow-NieFun}} | _3 = Tabela jego modyfikatorów. | 4 = {{Code|czy_artykul_aktualny}} {{Patrz|czy_artykul_aktualny-NieFun}} | _4 = Czy dotyczy aktualnej książki, dla danego artykułu, na stronie zbiorczej tego woluminu. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|parametr}} | _1 = Jest to dowolny parametr, w: {{Code|{{ld2|StronicowyParser/StronaSubst}}}}, przyjmuje wartość: {{Code|nil}}. }} ===== {{Śródtytuł|TakFun}}{{Code|TakFun}} ===== Funkcja zwracająca inną funkcję, której wywołanie jest funkcją z: {{LinkPatrz|TakFun-AnalizaStronaSubst}}, w: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zwraca zawsze wartość odpowiadającą wartości logicznej prawdziwej. Tą funkcją zwracaną przez funkcję w nagłówku mamy do czynienia, gdy mamy do czynienia ze stronami zbiorczymi odpowiadzialnymi za stronę o: wersji: do czytania: {{Tt|Wersja do czytania}} {{LinkPatrz|Wersja do czytania}}, lub druku: {{Tt|Wersja do druku}} {{LinkPatrz|Wersja do druku}}. Definicja pogladowa funkcji: <syntaxhighlight lang="lua"> local TakFun=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieWoluminu(tab_lista_artykulow_w_ksiazce,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieWoluminu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale nie rozdziałowej, tzn. te jednostki, które nie są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|tabela_parametrow_szablonu}} | _2 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}} | 3 = {{Code|czy_artykul_aktualny}} | _3 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}} | 4 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _4 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} ===== {{Śródtytuł|FunRozdzial}}{{Code|FunRozdzial}} ===== Funkcja zwraca inna funkcję, która jest tym: {{LinkPatrz|FunRozdzial-AnalizaStronaSubst}}, z: {{LinkŚródtytuł|p.AnalizaStronaSubst}}. Funkcja zwracana zawsze zwraca wartość odpowiadająca wartości logicznej prawdziwej. Tą funkcję zwracaną przez funkcję w nagłówku używaną, gdy mamy do czynienia, ze stronami zbiorczymi odpowiadzialnymi za rozdziały, która zbiera artykuły danego rozdziału. Definicja poglądowa funkcji: <syntaxhighlight lang="lua"> local FunRozdzial=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,czy_artykul_aktualny) return function(tab_lista_artykulow_w_ksiazce,substrona,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) AnalizowanieStronyWoluminuWprowadzeniaTekstu(tab_lista_artykulow_w_ksiazce,substrona,tabela_parametrow_szablonu,czy_artykul_aktualny,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return "tak"; end; end; </syntaxhighlight> Funkcja wywołuje funkcję: {{LinkŚródtytuł|AnalizowanieStronyWoluminuWprowadzeniaTekstu}}, do analizy woluminu, pojedynczego na stronie zbiorczej, ale rozdziałowej, tzn. te jednostki, które są zbiorczym obiektem dla stron danego rozdziału. Parametry funkcji: {{OpisParametrów | 1 = {{Code|tabela_parametrow_szablonu}} | _1 = Jak w: {{LinkPatrz|tabela_parametrow_szablonu-NieFun}}. | 2 = {{Code|nazwa_szablonu}} | _2 = Jak w: {{LinkPatrz|nazwa_szablonu-NieFun}}. | 3 = {{Code|tabela_modyfikatorow}} | _3 = Jak w: {{LinkPatrz|tabela_modyfikatorow-NieFun}}. | 4 = {{Code|czy_artykul_aktualny}} | _4 = Jak w: {{LinkPatrz|czy_artykul_aktualny-NieFun}}. }} Parametry funkcji zwracanej: {{OpisParametrów | 1 = {{Code|tab_lista_artykulow_w_ksiazce}} | _1 = Jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce_spis}}. | 2 = {{Code|substrona}} {{Patrz|substrona}} | _2 = Nazwa artykułu strony zbiorczej rozdziałowej. | 3 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, {{Code|nazwa_ksiazki}}, {{Code|nazwa_artykulu}} | _3 = Kolejno jak w: {{LinkPatrz|nazwa_przestrzeni}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki}}, {{LinkPatrz|nazwa_ksiazki}} i {{LinkPatrz|nazwa_artykulu}}. }} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8if7cd8kszmr7zu3zhe5ixc8p8eyd2f Wikipedysta:Persino/Gadget-Vector-2022.css 2 64123 556784 556780 2026-09-18T12:20:32Z Persino 2851 556784 css text/css @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/main.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/window.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/menu.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/before-content.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/header.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/parser.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/skin-night.css&action=raw&ctype=text/css"; r4dybvfv5nti0wh0xo4dgwkvhv18wmh 556790 556784 2026-09-18T12:54:04Z Persino 2851 556790 css text/css @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/main.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/window.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/menu.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/before-content.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/header.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/parser.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/tools.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/skin-night.css&action=raw&ctype=text/css"; 24nhubs9gwcezzmugvrefhz5ta9sarp 556793 556790 2026-09-18T13:26:55Z Persino 2851 556793 css text/css @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/main.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/window.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/menu.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/before-content.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/header.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/parser.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/tools.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/main-header.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/skin-night.css&action=raw&ctype=text/css"; 17b4ef0sdkhriu11m07tw57ce4h654e 556800 556793 2026-09-18T13:43:33Z Persino 2851 556800 css text/css @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/main.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/window.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/menu.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/before-content.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/header.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/parser.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/tools.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/main-header.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/content.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/skin-night.css&action=raw&ctype=text/css"; 85wyolnut6sffab63047d7okczclaws 556809 556800 2026-09-18T14:25:22Z Persino 2851 556809 css text/css @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/main.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/window.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/menu.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/before-content.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/header.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/parser.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/tools.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/main-header.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/content.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/category.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/preference.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/other.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/skin-night.css&action=raw&ctype=text/css"; 44lt2pjdex3vjitw6atn7aqd2527c0t Wikipedysta:Persino/Gadget-Vector-2022.css/menu.css 2 64320 556795 556770 2026-09-18T13:30:35Z Persino 2851 556795 css text/css #mw-panel .vector-menu-heading:not(.mw-menu-inactive), #vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){ background-color:whitesmoke; } #mw-panel .mw-menu-inactive, #vector-main-menu-pinned-container .mw-menu-inactive, #vector-main-menu-unpinned-container .mw-menu-inactive, #vector-page-tools-pinned-container .mw-menu-inactive, #vector-page-tools-unpinned-container .mw-menu-inactive{ background-color:lightsteelblue; color:white; } #mw-panel .vector-menu-heading, #vector-main-menu-pinned-container .vector-menu-heading, #vector-main-menu-unpinned-container .vector-menu-heading, #vector-page-tools-pinned-container .vector-menu-heading, #vector-page-tools-unpinned-container .vector-menu-heading{ padding-left:5px !important; padding-right:5px !important; margin-left:0 !important; display:block; border-radius:5px; border:1px solid #c8ccd1; margin-top:3px; margin-bottom:0; } #mw-panel .vector-menu-content:not(.mw-items-inactive), #vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive), #vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive), #vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){ display:block; border-radius:5px; border:1px solid #c8ccd1; padding: 5px; margin-top:2px; } #mw-panel .vector-menu-content:not(.mw-items-inactive) > ul, #vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul, #vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul, #vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{ margin-top:0; } #mw-panel .mw-items-inactive, #vector-main-menu-unpinned-container .mw-items-inactive, #vector-page-tools-pinned-container .mw-items-inactive, #vector-page-tools-unpinned-container .mw-items-inactive{ display:none; } .vector-main-menu #p-navigation .vector-menu-heading{ display:block; } #p-navigation.mw-portlet-navigation{ margin-top:0px; } .vector-menu.mw-portlet:not(.mw-portlet-navigation){ margin-top:4px; } #mw-panel .vector-main-menu-action, #vector-main-menu-unpinned-container .vector-main-menu-action, #vector-page-tools-pinned-container .vector-main-menu-action, #vector-page-tools-unpinned-container .vector-main-menu-action{ display:none; } .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{ display:block; outline:1px solid #eaecf0; border-radius:10px; box-sizing:border-box; width:100%; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ background-color:blue !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{ background-color:green !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ color:white !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{ display:block; width:100%; text-decoration:none; font-size: 0.8125rem; line-height:1.4em; box-sizing:border-box; padding:0 5px !important; } mlbi3mjf6v0gxl7f5he52jyfluvzkdb Wikipedysta:Persino/Gadget-Vector-2022.css/before-content.css 2 64321 556787 556776 2026-09-18T12:30:38Z Persino 2851 556787 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators)), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators)), body.action-edit .vector-body-before-content{ display:none; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } om1ppq3cgsgo16pli0uinzcrhb2b88a 556830 556787 2026-09-18T19:32:36Z Persino 2851 556830 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } ft4efl3qck5ruaud9d3aqqkvddyug8y 556831 556830 2026-09-18T19:45:50Z Persino 2851 556831 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } cppnxixyxqxhpg9yvma2fuodgf56f8v 556832 556831 2026-09-18T19:49:18Z Persino 2851 556832 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators{ order:1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } pl9re8edgqycyx2w5v59fc977q38k4u 556833 556832 2026-09-18T19:55:40Z Persino 2851 556833 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 2oltos3fhc9hzlb9mhi9qjlhof7iv1w 556834 556833 2026-09-18T19:56:42Z Persino 2851 556834 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } qcczfjkctr0gw4e49oyjtvjed5uvw2s 556836 556834 2026-09-18T20:09:21Z Persino 2851 556836 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } rnsmdw4tpju2oc3zjo8glicl9wp51au 556837 556836 2026-09-18T20:13:52Z Persino 2851 556837 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } goj2r36ky0p31lmmr04i0cfougj2d4k 556838 556837 2026-09-18T20:23:51Z Persino 2851 556838 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators:has( > *) )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 453t0639dl1swywohqn0b4bqabs9hk5 556839 556838 2026-09-18T20:32:39Z Persino 2851 556839 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:2px; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } rnjdjcgzob0ctjqnbsuru414809ebkq 556840 556839 2026-09-18T20:33:31Z Persino 2851 556840 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } gttbso0jiegjqn1rlpgp8zlcs3nmvuy 556842 556840 2026-09-18T20:38:49Z Persino 2851 556842 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 8erhdpkiog1g0qc34xtb8rije04o4pj 556843 556842 2026-09-18T20:43:52Z Persino 2851 556843 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 046r3ti5k38tl4u75xk7yoll30ditpl 556844 556843 2026-09-18T20:46:25Z Persino 2851 556844 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )), .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 5bm6u1rolhmyifzdjdunry8b2ze58nm 556845 556844 2026-09-18T20:49:10Z Persino 2851 556845 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )), .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 8yzqquut5v1x7vjugjvelyak1j22u4f 556846 556845 2026-09-18T20:55:06Z Persino 2851 556846 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } /*body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )),*/ body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )), .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } mkypnsuc0io3blcnafs2drvmu68cnic 556847 556846 2026-09-18T21:00:56Z Persino 2851 556847 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } /*body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )),*/ body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *), .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )), .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 85i09c0qxzjz0hyw8u73iw8d7p9fmsa 556848 556847 2026-09-18T21:02:58Z Persino 2851 556848 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:3px 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } /*body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )),*/ body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:1; width: 100%; align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )), .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } nrkv9gfqhurqtkisevd1zfollqnob3k 556849 556848 2026-09-18T21:08:17Z Persino 2851 556849 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } /*body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )),*/ body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:1; width: 100%; align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )), .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } ovoqd0gt5vfzesrpvuxb2fy4wtk93nj 556850 556849 2026-09-18T21:17:07Z Persino 2851 556850 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } /*body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )),*/ body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )), .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 7a58nmggnefs7cms96qfhzupaevsa7n 556851 556850 2026-09-18T21:20:15Z Persino 2851 556851 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } /*body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )),*/ body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } l9fbajjx9expphl6w92m1y1adpec05o 556852 556851 2026-09-18T21:22:07Z Persino 2851 556852 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } dzlh3394l3cqc3498ppcwo186kzge9l 556853 556852 2026-09-18T21:25:26Z Persino 2851 556853 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } mot89lrjv390inqag8f6v0mxdi0lfvh 556865 556853 2026-09-19T06:53:19Z Persino 2851 556865 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } ctsmivyzq5jgiyes04zh78x97b6kai8 556866 556865 2026-09-19T06:57:28Z Persino 2851 556866 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 7ue3p6j9p45ule8imzgyflz4tvp8wvo 556867 556866 2026-09-19T06:58:21Z Persino 2851 556867 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } d6hyxq3jctufed2icbwpjnelqosu7ai 556870 556867 2026-09-19T09:13:55Z Persino 2851 556870 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 7r08ro0d5snl0o0fbp8msapb1p7bwus 556871 556870 2026-09-19T09:15:19Z Persino 2851 556871 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } am5zo2flqf8s1umlc1u0ikb9jo9dcns 556872 556871 2026-09-19T09:16:46Z Persino 2851 556872 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:2px 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } bkfp7f2jkx9fj9yx9yonfqfoma9ldj1 556873 556872 2026-09-19T09:19:06Z Persino 2851 556873 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.125em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } mq0f443cip17tx54mugo84yjku0jfc8 556874 556873 2026-09-19T09:22:34Z Persino 2851 556874 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } knk6238jsz5whxw8ibmv7rnayjc13r6 556875 556874 2026-09-19T09:30:32Z Persino 2851 556875 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 1jaaav7bwwy8cqxfwlmkgy3vitr58qz 556876 556875 2026-09-19T09:32:16Z Persino 2851 556876 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items: flex-end; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } hue1lf3pdl8ik4c2q4smj2j1l33x1zg 556879 556876 2026-09-19T10:55:43Z Persino 2851 556879 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; /*width: 100%;*/ align-items: flex-end; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width: 100%; align-items:center; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } nwn4auxa3bj40eygvil42xu64opx70f 556880 556879 2026-09-19T11:01:42Z Persino 2851 556880 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width:auto; align-items:center; justify-content: end; border-bottom: 1px solid #c8ccd1; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } oyaqqvxhrkbegeusgoq340hxgg7c99s 556881 556880 2026-09-19T11:07:07Z Persino 2851 556881 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ):has( > .mw-indicators > * ) > #contentSub{ border-top: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } a9hy246p90iu06jip49ruyn6ki92u7r 556882 556881 2026-09-19T11:21:51Z Persino 2851 556882 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ):has( > .mw-indicators > * ) > #contentSub{ border-top: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)), #contentSub > #mw-content-subtitle:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)){ border-bottom:1px solid #c8ccd1; margin:auto 0; width:100%; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } drk5fpgj10stlc54pq2zsi295vb7duk 556883 556882 2026-09-19T11:24:25Z Persino 2851 556883 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ):has( > .mw-indicators > * ) > #contentSub{ border-top: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)), #contentSub > #mw-content-subtitle:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)){ border-bottom:1px solid #c8ccd1; margin:auto 0; width:100%; padding:0.25em 0; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } bi0wb3f6aqpufzbz0xk096yoegw2kq6 556884 556883 2026-09-19T11:25:44Z Persino 2851 556884 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ):has( > .mw-indicators > * ) > #contentSub{ border-top: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)), #contentSub > #mw-content-subtitle:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)){ border-bottom:1px solid #c8ccd1; margin:auto 0; width:100%; padding-bottom:0.25em; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } l0xjt1qpt1acoo9alq8kicwpw9dd9te 556885 556884 2026-09-19T11:31:24Z Persino 2851 556885 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25em 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ):has( > .mw-indicators > * ) > #contentSub{ border-top: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding: 2px 0; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 2px 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0.25em; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)), #contentSub > #mw-content-subtitle:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)){ border-bottom:1px solid #c8ccd1; margin:auto 0; width:100%; padding-bottom:0.25em; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 1c3roxcd6w8fwa2nsaxkj4742reqous 556886 556885 2026-09-19T11:38:42Z Persino 2851 556886 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25rem 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ):has( > .mw-indicators > * ) > #contentSub{ border-top: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding:0.25rem 0; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding: 0.25rem 0; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0.25rem; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)), #contentSub > #mw-content-subtitle:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)){ border-bottom:1px solid #c8ccd1; margin:auto 0; width:100%; padding-bottom:0.25rem; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 896znsoyxux7pdql4f94hi3phzn0b72 556887 556886 2026-09-19T11:41:20Z Persino 2851 556887 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25rem 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ):has( > .mw-indicators > * ) > #contentSub{ border-top: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding:0.25rem 0; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding-bottom: 0.25rem; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages){ border-bottom:0; padding-bottom:0.25rem; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)), #contentSub > #mw-content-subtitle:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)){ border-bottom:1px solid #c8ccd1; margin:auto 0; width:100%; padding-bottom:0.25rem; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } g9qcow63s7nydhqvkdqvyn0o7o8ibhu 556888 556887 2026-09-19T11:46:46Z Persino 2851 556888 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25rem 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ):has( > .mw-indicators > * ) > #contentSub{ border-top: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding:0.25rem 0; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding-bottom: 0.25rem; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages, > #contentSub > #pwContent){ border-bottom:0; padding:0; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)), #contentSub > #mw-content-subtitle:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)){ border-bottom:1px solid #c8ccd1; margin:auto 0; width:100%; padding:0.25rem 0; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } hu51atbh4wgb75n9l3a9dktzt3ydnz1 556889 556888 2026-09-19T11:49:59Z Persino 2851 556889 css text/css body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } .vector-body-before-content #contentSub:has( > #mw-content-subtitle > .cdx-message){ width:100%; } .vector-body-before-content #contentSub, .vector-body-before-content #contentSub2, .vector-body-before-content #siteSub, .vector-body-before-content .mw-indicators{ margin:auto 0; } .vector-body-before-content #contentSub > :not(:empty){ margin:auto 0; } .vector-body-before-content #siteSub{ font-size:1em; line-height:1.4; } .vector-body-before-content #contentSub:has( > *:not(:empty)){ display:block !important; } .vector-body-before-content #contentSub:not(:has( > *:not(:empty))){ display:none; } .vector-body-before-content #contentSub{ order:1; display:block; margin:auto 0; } .vector-body-before-content #siteSub{ display:none; } .vector-body-before-content #siteSub:not(:has( ~ #contentSub > *:not(:empty))){ display:block; order:1; } .vector-body-before-content .mw-indicators{ order:2; } .vector-body-before-content{ font-size:1rem; line-height:1.4; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; padding:0.25rem 0; border-bottom:1px solid #c8ccd1; } body.action-view:has(.mw-body-header > .mw-indicators) .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > * )), body.action-submit .vector-body-before-content:not(:has(#contentSub > *:not(:empty))):not(:has( > .mw-indicators > *)), body.action-edit .vector-body-before-content{ display:none; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ){ flex-direction:column; } .vector-body-before-content > .mw-indicators:not(:has( > *)){ display:none; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > #siteSub{ order:1; } .vector-body-before-content:not(:has( > #contentSub > :not(:empty))) > .mw-indicators:has( > *){ order:2; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > #contentSub{ order:2; display:block !important; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ):has( > .mw-indicators > * ) > #contentSub{ border-top: 1px solid #c8ccd1; } .vector-body-before-content:has( > #contentSub > #mw-content-subtitle > .cdx-message ) > .mw-indicators:has( > *){ order:1; padding:0.25rem 0; width:auto; align-items:center; justify-content: end; } .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages), .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub, .vector-body-before-content:not(:has( > .mw-indicators > * )):has( > #contentSub > #mw-content-subtitle > .subpages) > #contentSub > #mw-content-subtitle, .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ width:100%; } .vector-body-before-content:not(:has( > .mw-indicators > * )) > #contentSub > #mw-content-subtitle > .subpages{ padding-bottom: 0.25rem; border-bottom: 1px solid #c8ccd1; margin-bottom:4px; } .vector-body-before-content:not(:has( > .mw-indicators > * )):not(:has( > #contentSub > #mw-content-subtitle > .cdx-message )):has( > #contentSub > #mw-content-subtitle > .subpages, > #contentSub > #pwContent){ border-bottom:0; padding:0; } /**/ .vector-body-before-content > #siteSub{ font-size:0.9rem; line-height:1.2; } #contentSub > #pwContent:not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)), #contentSub > #mw-content-subtitle:not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)){ margin:auto 0; width:100%; padding:0.25rem 0; } #contentSub > #pwContent:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)), #contentSub > #mw-content-subtitle:not(:last-child):not(:empty):not(:has( > .mw-indicators > * )):not(:has( > .cdx-message)){ border-bottom:1px solid #c8ccd1; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.9rem; line-height:1.2em; } /*html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; }*/ #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .cdx-message:not(:last-child){ margin:10px 0; } #mw-content-subtitle .cdx-message:last-child{ margin:10px 0 8px 0; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin:auto 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } 4tzm5123ee8fq2pw8p5xo266018cgs6 Wikipedysta:Persino/Gadget-Vector-2022.css/header.css 2 64322 556781 556778 2026-09-18T12:01:11Z Persino 2851 556781 css text/css .vector-page-titlebar-blank .mw-indicators{ display:none; } .mw-body-header > .vector-toc-landmark{ width:1.5rem; height:2.125rem; } .mw-body-header{ position:relative; height:2.6rem; box-sizing:border-box; } .mw-body-header > .firstHeading:not(:hover){ height:100%; box-sizing:border-box } body .firstHeading:not(:hover) > .plainlinks, body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{ display:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } body .firstHeading > .plainlinks, body:not(.action-view) .firstHeading > .plainlinks{ text-shadow:none; } .mw-body h1.firstHeading{ font-size: 1.6rem; line-height: 1.4; } body.action-view:not(.ns-special) .firstHeading{ min-height:100%; box-sizing:border-box; overflow:hidden; } body.action-view:not(.ns-special) .firstHeading:not(:hover){ height:100%; } body.action-view:not(.ns-special) .firstHeading:not(:hover){ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; padding-top:6px; margin-right:7px; } body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){ display:block !important; } body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){ display:none !important; } html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){ display:flex; flex-direction:row; justify-content:flex-start; } body:not(.action-view) .firstHeading:not(:hover), body.action-view.ns-special .firstHeading:not(:hover), html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; padding-top:6px; } body:not(.action-view) firstHeading:first-child:not(:hover), body.action-view.ns-special firstHeading:first-child:not(:hover), html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){ margin-left:0; } html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){ margin-left:5px; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){ margin-left:0; } body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type, body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{ order:4; } body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle, body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{ order:5; } body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main, body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{ order:3; } body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering, body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{ order:1; } body.ns-0 .firstHeading:not(:hover) > *[lang], body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{ order:2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } body.ns-0 .firstHeading > .mw-editsection{ height:1.2em; line-height:3.8; } body.ns-0 .firstHeading:not(:hover) > .mw-editsection{ order:4; } body .firstHeading:hover{ display:block; border:1px solid #eaecf0; border-radius:10px; background-color:white; position:absolute; top:0; /*left:-6px;*/ width:auto; padding:5px; z-index:2; } .mw-body-header:has( > .firstHeading:hover):has( > .mw-indicators){ justify-content:flex-end; } .mw-body-header:has( > .firstHeading:hover):has( > #p-lang-btn){ justify-content:flex-end; } .firstHeading:first-child:hover{ left:-6px; } html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{ left:1.4375rem; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{ left:-6px; } header.mw-body-header{ justify-content:space-between; width:100%; box-sizing:border-box; } #vector-main-menu > div.vector-pinnable-header{ margin-left:5px; } body .firstHeading:hover{ word-wrap:break-word; hyphens:auto; width:auto; } html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{ display:grid !important; justify-content:start; grid-template-columns:auto auto auto auto minmax(auto,1fr); } body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{ grid-row-start:1; grid-row-end:2; grid-column-start:1; grid-column-end:2; width:auto; } body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child, body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{ grid-row-start:1; grid-row-end:2; grid-column-start:3; grid-column-end:4; width:auto; } body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{ grid-row-start:1; grid-row-end:2; grid-column-start:2; grid-column-end:3; width:auto; } body.ns-0.action-view .firstHeading:hover > .mw-editsection{ grid-row-start:1; grid-row-end:2; grid-column-start:4; grid-column-end:5; width:auto; } body.ns-0.action-view .firstHeading:hover > .plainlinks{ grid-row-start:auto; grid-row-end:auto; grid-column-start:1; grid-column-end:6; width:auto; } body.action-view .firstHeading:hover{ display:block !important; } /*.mw-body-header > .mw-indicators{ order:3; margin-top:auto; margin-bottom:3px; }*/ #ca-addsection{ margin-left:0; margin-right:0; } .vector-page-titlebar{ flex-wrap:nowrap; } /**/ .vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{ padding:0.3125em !important; } #vector-page-titlebar-toc-label{ height: 2.125rem; max-width: 28rem; min-height:unset; } .vector-toc-landmark{ margin-top:auto; margin-bottom:0; } .mw-body-header .mw-portlet-lang{ margin-right:0; } #vector-page-titlebar-toc-checkbox{ display:none; } body .firstHeading:hover > .plainlinks, body:not(.action-view) .firstHeading:hover > .plainlinks{ display:block; } 4yt7cabg2t02arz75rajfja6j09ulns Wikipedysta:Persino/Gadget-Vector-2022.css/parser.css 2 64323 556783 2026-09-18T12:19:38Z Persino 2851 Utworzono nową stronę „/**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.f…” 556783 css text/css /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } /**/ #mw-content-text .mw-parser-output > p:first-child{ margin-top:0; } #mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{ margin-bottom:0; } #mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).floatright:first-child + p, #mw-content-text .mw-parser-output > :not(p).tleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).tright:first-child + p{ margin-top:0; } #mw-content-text .mw-parser-output .template-documentation:first-of-type{ margin-top:0; box-sizing:border-box; } #mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{ margin-top:10px !important; box-sizing:border-box !important; } #mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){ margin-top:3px !important; margin-bottom:3px !important; } #mw-content-text .mw-parser-output #documentation-meta-data:last-child{ margin-top:3px !important; margin-bottom:0 !important; } mje2wzdon4rj6tpbmsoq4j3hucebilx 556785 556783 2026-09-18T12:26:25Z Persino 2851 556785 css text/css /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } /**/ #mw-content-text .mw-parser-output > p:first-child{ margin-top:0; } #mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{ margin-bottom:0; } #mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).floatright:first-child + p, #mw-content-text .mw-parser-output > :not(p).tleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).tright:first-child + p{ margin-top:0; } #mw-content-text .mw-parser-output .template-documentation:first-of-type{ margin-top:0; box-sizing:border-box; } #mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{ margin-top:10px !important; box-sizing:border-box !important; } #mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){ margin-top:3px !important; margin-bottom:3px !important; } #mw-content-text .mw-parser-output #documentation-meta-data:last-child{ margin-top:3px !important; margin-bottom:0 !important; } /**/ #mw-content-text .mw-parser-output code{ position:relative; } .mw-parser-output pre{ margin-top:8px; margin-bottom:8px; background-color: #f8f9fa; color: #000; border: 1px solid #eaecf0; word-wrap:break-word; word-break:break-word; hyphens:auto; box-sizing:border-box; font-size:110%; } .mw-parser-output hr{ font-size:1.2em; } hk49jq91b4z5s9h2cv9hsckrt9zqo81 Wikipedysta:Persino/Gadget-Vector-2022.css/tools.css 2 64324 556788 2026-09-18T12:52:49Z Persino 2851 Utworzono nową stronę „html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pi…” 556788 css text/css html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } /**/ .vector-pinnable-element{ padding-top:3px; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } /**/ #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } /**/ .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } kyq33uyogwaf02kaahz8zru6bumlgeb 556802 556788 2026-09-18T13:54:16Z Persino 2851 556802 css text/css html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } /**/ .vector-pinnable-element{ padding-top:3px; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } /**/ #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } /**/ .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } akksf90q2bcj7k9m575qgsw84ynxqo1 556804 556802 2026-09-18T13:56:45Z Persino 2851 556804 css text/css html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } /**/ .vector-pinnable-element{ padding-top:3px; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } /**/ #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } /**/ .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } ndo9hhq72nwj5w03b96scdcfxndec4k 556818 556804 2026-09-18T16:07:24Z Persino 2851 556818 css text/css html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } /**/ .vector-pinnable-element{ padding-top:3px; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } /**/ #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } /**/ .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } kjgeuy85uobamszzru9apekouvxphj4 556821 556818 2026-09-18T16:14:13Z Persino 2851 556821 css text/css html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } /**/ .vector-pinnable-element{ padding-top:3px; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } /**/ #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } /**/ .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } lt2p5pnplx1tbw467uu0k4h6t9jzxwz Wikipedysta:Persino/Gadget-Vector-2022.css/main-header.css 2 64325 556792 2026-09-18T13:26:14Z Persino 2851 Utworzono nową stronę „.mw-header{ padding-top:4px; padding-bottom:4px; } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:1…” 556792 css text/css .mw-header{ padding-top:4px; padding-bottom:4px; } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .mw-logo{ min-width:auto; } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } etg0cydnx7a01emmi4hd1psyptcw6oa 556796 556792 2026-09-18T13:34:17Z Persino 2851 556796 css text/css .mw-header{ padding-top:4px; padding-bottom:4px; } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .mw-logo{ min-width:auto; } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } 61z4ksv6skyerag7zyw4pm38gsodvjl 556813 556796 2026-09-18T14:36:25Z Persino 2851 556813 css text/css .mw-header{ padding-top:4px; padding-bottom:4px; } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .mw-logo{ min-width:auto; } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } button.cdx-button{ z-index:1; } frlrras06bef21r4zefp5jwao7gb6b9 556819 556813 2026-09-18T16:07:30Z Persino 2851 556819 css text/css .mw-header{ padding-top:4px; padding-bottom:4px; } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .mw-logo{ min-width:auto; } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } button.cdx-button{ z-index:1; } 2uqg3go49ejgduflbtw56d042v5rkqw 556820 556819 2026-09-18T16:13:49Z Persino 2851 556820 css text/css .mw-header{ padding-top:4px; padding-bottom:4px; } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .mw-logo{ min-width:auto; } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } button.cdx-button{ z-index:1; } 727i9qfx31ons10t880r3xa03c6muoh Wikipedysta:Persino/Gadget-Vector-2022.css/content.css 2 64326 556799 2026-09-18T13:42:42Z Persino 2851 Utworzono nową stronę „#mw-content-text{ margin-top:10px; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-…” 556799 css text/css #mw-content-text{ margin-top:10px; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } crrup7amjqec5ett6vhn0ord5gur86a 556817 556799 2026-09-18T15:35:18Z Persino 2851 556817 css text/css #mw-content-text{ margin-top:10px; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } .catlinks{ margin-top:7px !important; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-edit #bodyContent #editform{ margin-top:5px; } 3egz469v244agjecvvrn8krmv2haegj 556841 556817 2026-09-18T20:38:42Z Persino 2851 556841 css text/css #mw-content-text{ margin-top:10px; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } #mw-content-text, #mw-content-text .cdx-message, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.cdx-message):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-text > .cdx-message:first-child{ margin:10px 0; } #mw-content-text > .cdx-message{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.cdx-message):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } .catlinks{ margin-top:7px !important; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-edit #bodyContent #editform{ margin-top:5px; } adgga74d4leyxixf22vbcfydw8y3icy Wikipedysta:Persino/Gadget-Vector-2022.css/category.css 2 64327 556805 2026-09-18T14:18:12Z Persino 2851 Utworzono nową stronę „.mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::…” 556805 css text/css .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } 0rkyv3z7rhzpgn75r4jq8e7sf6vcsus Wikipedysta:Persino/Gadget-Vector-2022.css/other.css 2 64328 556806 2026-09-18T14:19:11Z Persino 2851 Utworzono nową stronę „.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-con…” 556806 css text/css .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:0; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } lohce97t3d5olv4918xmrjzkr30qpmr Wikipedysta:Persino/Gadget-Vector-2022.css/preference.css 2 64329 556808 2026-09-18T14:23:30Z Persino 2851 Utworzono nową stronę „div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; }” 556808 css text/css div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } 6ovcv5vk7d2ndrv8vtaior3bbzx953h 556811 556808 2026-09-18T14:31:04Z Persino 2851 556811 css text/css div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .wb-langlinks-link > a::before{ margin-left:-8px; } aavm7cvdopkcazokp502t3f4qjkp9u7