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