Modul:Sources/dok
Ovo je dokumentaciona podstranica za Модул:Sources
Ovaj Lua modul se koristi na veoma velikom broju stranica, tako da će promene na njemu biti široko primećene. Molimo da bilo kakve izmene testirate na podstranicama modula /pesak ili /testovi. Razmislite i o pokretanju rasprave o izmenama koje nameravate da unesete na stranici za razgovor pre njihovog primenjivanja. |
Ovaj modul je predmet zaštite stranica. To je veoma korišćen modul u upotrebi ogromnog broja stranica ili se supstituiše veoma često. Zbog vandalizma ili grešaka koje bi uticale na mnogo stranica ili trivijalnog uređivanja koje bi moglo da izazove probleme na serverima, modul je zaštićen od uređivanja. |
Pre bilo kakvog menjanja ovog šablona, molimo da prvo istestirate svoje promene na podstranici /igralište i uporedite ih na podstranici /testovi. Testirane promene onda treba da se unesu u jednoj izmeni u ovaj šablon. |
Način rada[uredi izvor]
Ovaj modul generiše tekst korišćen u fusnotama izvedenim sa stavki Vikipodataka.
Funkcije[uredi izvor]
Spoljašnje[uredi izvor]
Spoljašnje funkcije prihvataju objekte tipa frejma i predviđeni su za pozivanje iz drugih modula ili preko funkcije raščlanjivanja {{#invoke:}}
.
Direktno pozivanje na funkcije modula u člancima je krajnje nepoželjno! U tu svrhu koristite odgovarajuće šablone.
p.renderSource(frame)[uredi izvor]
Vraća tekst viki-veze do određenog izvora radi umetanja u referencu ili bibliografiju. Pogledajte šablone {{source}} i {{izvor}} koji koriste ovu funkciju. Podržava sledeće argumente:
frame.args[1]
— anonimni argument koji određuje identifikator objekta na Vikipodacima pomoću kojeg bi veza trebalo da se generiše. Na primer, Q20750516.frame.args['ref']
— postavlja oznaku ref, koja se kasnije može koristiti u šablonima poput {{sfn}}.frame.args['ref-year']
— postavlja oznaku ref-year, koja se koristi slično kao na oznaci ref.frame.args['part']
— dodatni argument za razjašnjenje dela izvora na koji se poziva (na primer, poglavlje u knjizi).frame.args['parturl']
— veza za deo koji je opisan prethodnim argumentom.frame.args['pages']
— određene stranice u izvoru na koji se referenca uspostavlja.frame.args['url']
— omogućava izričito određenje koja veza će trebati da se postavi na izvor.frame.args['volume']
— omogućava izričito naznačavanje toma izvora na koji se referenca odnosi.frame.args['issue']
— omogućava izričito naznačavanje izdanja izvora na koji se referenca odnosi.
Većina argumenata proishodi iz utils.copyArgsToSnaks. Sam prenosni okvir se nalazi u p.currentFrame za dalju upotrebu i na osnovu argumenata prosleđenih funkciji artificialSnaks formira veštački delovi, koja povezuje na izvor pomenut u frame.args[1]
, kroz svojstva navedeno u (P248) i tema (P805). Podaci se zatim prenose u renderReferenceImpl za dalju obradu.
p.renderReference(frame, currentEntity, reference)[uredi izvor]
Vraća formatiran viki tekst reference datom izvoru. Podržava iste argumente kao i p.renderSource, a pored toga ref i ref-year. Pogledajte šablone {{source-ref}} i {{VP-fusnota}}, koristeći ovu funkciju. Takođe se koristi u Modul:Wikidata da biste prikazali veze navedene pored upita sa Vikipodataka. Ako nedostaju currentEntity i reference, stvara sopstveni snek pomoću funkcije artificialSnaks, nakon čega se prosleđuje u renderReferenceImpl. Ako je viki-tekst za referencu uspešno generisan, obvijen je oznakom <ref>
uz pomoć frame:extensionTag, pri čemu naziv reference nastaje heširanjem prosleđenog viki-teksta u mw.hash.hashValue. Članci sa takvim fusnotama stavljaju se u Kategorija:Vikipedija:Članci sa izvorima iz Vikidata.
Unutrašnje[uredi izvor]
tokenizeName(fullName)[uredi izvor]
Pretvara puno ime u par {prezimena odvojena razmacima, imena odvojena razmacima} . Realizovano u oblicima koji se mogu pronaći na Vikipodacima:
- Prezime, Ime
- Prezime, Ime Ime
- Prezime Prezime, Ime
- Ime Ime ogli Prezime
- Ime Ime de Prezime
- Ime … Ime Prezime (najmanje jedno i ne više od četiri pojedinačna imena)
Ovde ime, za razliku od prezimena, može biti početno. Ako nije ispunjen nijedan od gornjih formata, vraća se puno ime nepromenjeno.
personNameToAuthorName(fullName)[uredi izvor]
Pretvara puno ime u oblik Prezime I. SI. koristeći tokenizeName.
personNameToResponsibleName(fullName)[uredi izvor]
Pretvara puno ime u oblik I. SI. Prezime koristeći tokenizeName.
getPeopleAsWikitext(context, value, options)[uredi izvor]
Pretvara spisak imena value u vikitekst prema spisku opcija options. Opcije moraju sadržati sledeća polja:
- separator — razdelitelj na spisku;
- conjunction — razdelitelj pre poslednjeg elementa spiska;
- format — funkcija koja transformiše imena u nekom normalizovanom obliku (na primer, personNameToAuthorName);
- nolinks — logička vrednost, mora biti tačno ako je povezivanje nepoželjno;
- preferids — logička vrednost, mora da bude tačno ako želite da vratite id sa Vikipodataka, a ne imena.
Ako na spisu ima više autora od broja maxAuthors (trenutno 10), ostali se zamenjuju sa i dr. ili njegovih analoga (ako je jezik određen u kontekstu, tada i18nEtAl[context.lang], inače se koristi i18nEtAlDefault).
appendProperty(result, context, src, conjunctor, property, url)[uredi izvor]
Nadodaje src[property] na result, razdvajajući ih linijom upisanom conjunctor. Ako je moguće, formira vezu do src[url].
generateAuthorLinks(context, src)[uredi izvor]
Vraća spisak autora src.author, oformljen putem getPeopleAsWikitext i uokviren u <i class="wef_low_priority_links"></i>
.
appendTitle(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz src.part // src.title
ili samo src.title
ako src.part nije precizirano. Ako je moguće uokvirivanje src.part (ili src.title ako src.part nije precizirano) u src.url.
appendLanguage(result, context, src)[uredi izvor]
Ako se context.lang razlikuje od i18nDefaultLanguage (srpski u našem slučaju), tada se naznaka toga pripisuje result kroz Modul:Languages u formatu {{ref-lang}}.
appendSubtitle(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz : src.subtitle
ako je src.subtitle definisano.
appendOriginalTitle(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz = src.originaltitle
ako je src.originaltitle definisano.
appendPublication(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz // src.publication: src.publication.subtitle
ako je definisano src.publication.subtitle, ili // src.publication
ako je definisano src.publication.
appendEditor(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz / prefix src.editor
ako je definisano src.editor, gde je prefix definisano prema context.lang (uobičajeno, pod red.
).
appendEdition(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz — src.edition
ako je src.edition definisano.
appendPublicationData(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz u obliku — src.place: src.publisher, src.year.
ako je definisan bar jedan od navedenih parametara. Neodređeni deo je izostavljen, zajedno sa odgovarajućom interpunkcijom. Debelo crevo se koristi samo ako je navedeno src.place i bar neki od src.publisher i src.year, zarez se stavlja samo ako je naveden i src.publisher, i src.year. Crtica i tačka koriste se ako je naveden barem jedan od parametara.
appendVolumeAndIssue(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz u obliku — letter_vol src.volume, letter_iss src.issue.
ako je definisan bar jedan od navedenih parametara. Zarez se koristi ako su navedena oba parametra. letter_vol i letter_iss određeni na osnovu context.lang (na primer, T.
i vыp.
za ruski tekst, Vol.
i Iss.
za engleski).
appendPages(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz u obliku — letter src.pages.
ako je src.pages definisano, dok je kao separator u src.pages, ako je raspon stranica, koristi se simbol «—», a letter određena na osnovu context.lang (na primer, P.
za engleski i S.
za ruski).
appendNumberOfPages(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz u obliku — src.numberOfPages letter
ako je src.numberOfPages definisano. Pri čemu je letter utvrđeno iz context.lang (p.
za engleski i s.
za ruski).
appendBookSeries(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz u obliku — (src.bookSeries; letter_vol src.bookSeriesVolume, letter_iss src.bookSeriesIssue)
ako je src.bookSeries definisano. Tačka sa zarezom samo ako je definisano src.bookSeriesVolume ili src.bookSeriesIssue, zarez se koristi ako su navedena oba parametra. letter_vol i letter_iss utvrđeno iz context.lang, slično onome kako radi appendVolumeAndIssue.
appendBookSeries(result, context, src)[uredi izvor]
Nadodaje na result informaciju iz src.tirage ako je definisano. Format se određuje iz context.lang, za engleski jezik je to — ed. size: src.tirage
, a za ruski — src.tirage эkz.
.
appendIdentifiers(result, context, src)[uredi izvor]
Nadodaje na result identifikatore ISBN, ISSN, DOI, PMID i arXiv ako su navedeni. Identifikatorima se dodeljuje crtica, tačniji format je definisan u tabelama options_commas, options_issn, options_doi, options_pmid i options_arxiv.
appendSourceId(result, context, src)[uredi izvor]
Nadodaje na result u <span class="wikidata_cite citetype" data-entity-id="src.sourceId"></span>
, gde citetyle je src.type ako je ovo polje definisano i citetype_unknown u suporotnom slučaju.
appendAccessDate(result, context, src)[uredi izvor]
Nadodaje na result tekstualni niz u vidu <small>Provereno dd month yyyy.</small>
, gde dd, month i yyyy potiču od src.accessdate ako je ovo polje definisano.
populateUrl(context, src)[uredi izvor]
Ako je src.url nedefinisan, ali je src.sourceId poznat, pokušava dodeliti src.url vezu.
populateYear(src)[uredi izvor]
Ako je src.year nedefinisan, pokušava da ispuni sa src.dateOfPublication i src.dateOfCreation.
populateTitle(src)[uredi izvor]
Ako je src.title nedefinisan, pokušava da pridruži src.url, ako i ovo nije moguće, dodeljuje ''(nedefinisan naslov)''
.
renderSource(context, src)[uredi izvor]
Unutrašnja funkcija koja generiše tekst koji će se prikazati u referenci. Ponaša se na sledeći način:
- Zapisuje src.lang u context.lang (ili i18nDefaultLanguage ako src.lang nije zapisan).
- Poziva populateUrl, populateTitle i populateYear.
- Formira promenljivu result, s početka definisanu sa generateAuthorLinks(context, src).
- Dosledno primenjuje na result funkciju appendTitle—appendAccessDate, dok je blok appendEditor—appendAccessDate dodatno uokviren sa
<span class="wef_low_priority_links"></span>
artificialSnaks(args)[uredi izvor]
Pravi veštački snek, koja povezuje izvor sa identifikatorom frame.args[1] putem svojstva navedeno u (P248) i tema (P805), a takođe prosleđuje i argumente (tom, izdanje itd.).
Uslužni podmoduli[uredi izvor]
- Modul:Sources/utils
- Modul:Sources-authors (ne koristi se)
- Modul:Sources-title (ne koristi se)
- Modul:Sources-year (ne koristi se)
Korišćena svojstva Vikipodataka[uredi izvor]
Svojstvo | Napomene |
---|---|
autor (P50) | |
skraćeno ime autora (P2093) | |
jezik dela ili imena (P407) | |
izvorni jezik dela (P364) | |
odeljak (P958) | koristi se za označavanje naslova članka u enciklopediji |
naslov (P1476) | ako je potrebno prepraviti naziv oznake stavke |
podnaslov (P1680) | |
puno delo dostupno na (P953) | |
URL arhive (P1065) | |
URL reference (P854) | |
objavljeno u (P1433) | |
broj izdanja (P393) | |
izdavač (P123) | |
mesto izdavanja (P291) | |
urednik (P98) | |
stranica/e (P304) | |
broj strana (P1104) | |
tom (P478) | |
publikacija (P433) | |
nastanak (P571) | |
datum izdavanja (P577) | |
ISBN-13 (P212) | |
ISBN-10 (P957) | |
ISSN (P236) | |
redni broj (P1545) | |
(P818) | |
(P888) |