Модул:Sources/док
Ово је документациона подстраница за Модул:Sources
Овај Луа модул се користи на веома великом броју страница, тако да ће промене на њему бити широко примећене. Молимо да било какве измене тестирате на подстраницама модула /песак или /тестови. Размислите и о покретању расправе о изменама које намеравате да унесете на страници за разговор пре њиховог примењивања. |
Овај модул је предмет заштите страница. То је веома коришћен модул у употреби огромног броја страница или се супституише веома често. Због вандализма или грешака које би утицале на много страница или тривијалног уређивања које би могло да изазове проблеме на серверима, модул је заштићен од уређивања. |
Пре било каквог мењања овог шаблона, молимо да прво истестирате своје промене на подстраници /игралиште и упоредите их на подстраници /тестови. Тестиране промене онда треба да се унесу у једној измени у овај шаблон. |
Начин рада[уреди извор]
Овај модул генерише текст коришћен у фуснотама изведеним са ставки Википодатака.
Функције[уреди извор]
Спољашње[уреди извор]
Спољашње функције прихватају објекте типа фрејма и предвиђени су за позивање из других модула или преко функције рашчлањивања {{#invoke:}}
.
Директно позивање на функције модула у чланцима је крајње непожељно! У ту сврху користите одговарајуће шаблоне.
p.renderSource(frame)[уреди извор]
Враћа текст вики-везе до одређеног извора ради уметања у референцу или библиографију. Погледајте шаблоне {{source}} и {{извор}} који користе ову функцију. Подржава следеће аргументе:
frame.args[1]
— анонимни аргумент који одређује идентификатор објекта на Википодацима помоћу којег би веза требало да се генерише. На пример, Q20750516.frame.args['ref']
— поставља ознаку ref, која се касније може користити у шаблонима попут {{sfn}}.frame.args['ref-year']
— поставља ознаку ref-year, која се користи слично као на ознаци ref.frame.args['part']
— додатни аргумент за разјашњење дела извора на који се позива (на пример, поглавље у књизи).frame.args['parturl']
— веза за део који је описан претходним аргументом.frame.args['pages']
— одређене странице у извору на који се референца успоставља.frame.args['url']
— омогућава изричито одређење која веза ће требати да се постави на извор.frame.args['volume']
— омогућава изричито назначавање тома извора на који се референца односи.frame.args['issue']
— омогућава изричито назначавање издања извора на који се референца односи.
Већина аргумената происходи из utils.copyArgsToSnaks. Сам преносни оквир се налази у p.currentFrame за даљу употребу и на основу аргумената прослеђених функцији artificialSnaks формира вештачки делови, која повезује на извор поменут у frame.args[1]
, кроз својства наведено у (P248) и тема (P805). Подаци се затим преносе у renderReferenceImpl за даљу обраду.
p.renderReference(frame, currentEntity, reference)[уреди извор]
Враћа форматиран вики текст референце датом извору. Подржава исте аргументе као и p.renderSource, а поред тога ref и ref-year. Погледајте шаблоне {{source-ref}} и {{ВП-фуснота}}, користећи ову функцију. Такође се користи у Модул:Wikidata да бисте приказали везе наведене поред упита са Википодатака. Ако недостају currentEntity и reference, ствара сопствени снек помоћу функције artificialSnaks, након чега се прослеђује у renderReferenceImpl. Ако је вики-текст за референцу успешно генерисан, обвијен је ознаком <ref>
уз помоћ frame:extensionTag, при чему назив референце настаје хеширањем прослеђеног вики-текста у mw.hash.hashValue. Чланци са таквим фуснотама стављају се у Категорија:Википедија:Чланци са изворима из Викидата.
Унутрашње[уреди извор]
tokenizeName(fullName)[уреди извор]
Претвара пуно име у пар {презимена одвојена размацима, имена одвојена размацима} . Реализовано у облицима који се могу пронаћи на Википодацима:
- Презиме, Име
- Презиме, Име Име
- Презиме Презиме, Име
- Име Име огли Презиме
- Име Име де Презиме
- Име … Име Презиме (најмање једно и не више од четири појединачна имена)
Овде име, за разлику од презимена, може бити почетно. Ако није испуњен ниједан од горњих формата, враћа се пуно име непромењено.
personNameToAuthorName(fullName)[уреди извор]
Претвара пуно име у облик Презиме И. СИ. користећи tokenizeName.
personNameToResponsibleName(fullName)[уреди извор]
Претвара пуно име у облик И. СИ. Презиме користећи tokenizeName.
getPeopleAsWikitext(context, value, options)[уреди извор]
Претвара списак имена value у викитекст према списку опција options. Опције морају садржати следећа поља:
- separator — разделитељ на списку;
- conjunction — разделитељ пре последњег елемента списка;
- format — функција која трансформише имена у неком нормализованом облику (на пример, personNameToAuthorName);
- nolinks — логичка вредност, мора бити тачно ако је повезивање непожељно;
- preferids — логичка вредност, мора да буде тачно ако желите да вратите ид са Википодатака, а не имена.
Ако на спису има више аутора од броја maxAuthors (тренутно 10), остали се замењују са и др. или његових аналога (ако је језик одређен у контексту, тада i18nEtAl[context.lang], иначе се користи i18nEtAlDefault).
appendProperty(result, context, src, conjunctor, property, url)[уреди извор]
Надодаје src[property] на result, раздвајајући их линијом уписаном conjunctor. Ако је могуће, формира везу до src[url].
generateAuthorLinks(context, src)[уреди извор]
Враћа списак аутора src.author, оформљен путем getPeopleAsWikitext и уоквирен у <i class="wef_low_priority_links"></i>
.
appendTitle(result, context, src)[уреди извор]
Надодаје на result текстуални низ src.part // src.title
или само src.title
ако src.part није прецизирано. Ако је могуће уоквиривање src.part (или src.title ако src.part није прецизирано) у src.url.
appendLanguage(result, context, src)[уреди извор]
Ако се context.lang разликује од i18nDefaultLanguage (српски у нашем случају), тада се назнака тога приписује result кроз Модул:Languages у формату {{ref-lang}}.
appendSubtitle(result, context, src)[уреди извор]
Надодаје на result текстуални низ : src.subtitle
ако је src.subtitle дефинисано.
appendOriginalTitle(result, context, src)[уреди извор]
Надодаје на result текстуални низ = src.originaltitle
ако је src.originaltitle дефинисано.
appendPublication(result, context, src)[уреди извор]
Надодаје на result текстуални низ // src.publication: src.publication.subtitle
ако је дефинисано src.publication.subtitle, или // src.publication
ако је дефинисано src.publication.
appendEditor(result, context, src)[уреди извор]
Надодаје на result текстуални низ / prefix src.editor
ако је дефинисано src.editor, где је prefix дефинисано према context.lang (уобичајено, под ред.
).
appendEdition(result, context, src)[уреди извор]
Надодаје на result текстуални низ — src.edition
ако је src.edition дефинисано.
appendPublicationData(result, context, src)[уреди извор]
Надодаје на result текстуални низ у облику — src.place: src.publisher, src.year.
ако је дефинисан бар један од наведених параметара. Неодређени део је изостављен, заједно са одговарајућом интерпункцијом. Дебело црево се користи само ако је наведено src.place и бар неки од src.publisher и src.year, зарез се ставља само ако је наведен и src.publisher, и src.year. Цртица и тачка користе се ако је наведен барем један од параметара.
appendVolumeAndIssue(result, context, src)[уреди извор]
Надодаје на result текстуални низ у облику — letter_vol src.volume, letter_iss src.issue.
ако је дефинисан бар један од наведених параметара. Зарез се користи ако су наведена оба параметра. letter_vol и letter_iss одређени на основу context.lang (на пример, Т.
и вып.
за руски текст, Vol.
и Iss.
за енглески).
appendPages(result, context, src)[уреди извор]
Надодаје на result текстуални низ у облику — letter src.pages.
ако је src.pages дефинисано, док је као сепаратор у src.pages, ако је распон страница, користи се симбол «—», а letter одређена на основу context.lang (на пример, P.
за енглески и С.
за руски).
appendNumberOfPages(result, context, src)[уреди извор]
Надодаје на result текстуални низ у облику — src.numberOfPages letter
ако је src.numberOfPages дефинисано. При чему је letter утврђено из context.lang (p.
за енглески и с.
за руски).
appendBookSeries(result, context, src)[уреди извор]
Надодаје на result текстуални низ у облику — (src.bookSeries; letter_vol src.bookSeriesVolume, letter_iss src.bookSeriesIssue)
ако је src.bookSeries дефинисано. Тачка са зарезом само ако је дефинисано src.bookSeriesVolume или src.bookSeriesIssue, зарез се користи ако су наведена оба параметра. letter_vol и letter_iss утврђено из context.lang, слично ономе како ради appendVolumeAndIssue.
appendBookSeries(result, context, src)[уреди извор]
Надодаје на result информацију из src.tirage ако је дефинисано. Формат се одређује из context.lang, за енглески језик је то — ed. size: src.tirage
, а за руски — src.tirage экз.
.
appendIdentifiers(result, context, src)[уреди извор]
Надодаје на result идентификаторе ISBN, ISSN, DOI, PMID и arXiv ако су наведени. Идентификаторима се додељује цртица, тачнији формат је дефинисан у табелама options_commas, options_issn, options_doi, options_pmid и options_arxiv.
appendSourceId(result, context, src)[уреди извор]
Надодаје на result у <span class="wikidata_cite citetype" data-entity-id="src.sourceId"></span>
, где citetyle је src.type ако је ово поље дефинисано и citetype_unknown у супоротном случају.
appendAccessDate(result, context, src)[уреди извор]
Надодаје на result текстуални низ у виду <small>Проверено dd month yyyy.</small>
, где dd, month и yyyy потичу од src.accessdate ако је ово поље дефинисано.
populateUrl(context, src)[уреди извор]
Ако је src.url недефинисан, али је src.sourceId познат, покушава доделити src.url везу.
populateYear(src)[уреди извор]
Ако је src.year недефинисан, покушава да испуни са src.dateOfPublication и src.dateOfCreation.
populateTitle(src)[уреди извор]
Ако је src.title недефинисан, покушава да придружи src.url, ако и ово није могуће, додељује ''(недефинисан наслов)''
.
renderSource(context, src)[уреди извор]
Унутрашња функција која генерише текст који ће се приказати у референци. Понаша се на следећи начин:
- Записује src.lang у context.lang (или i18nDefaultLanguage ако src.lang није записан).
- Позива populateUrl, populateTitle и populateYear.
- Формира променљиву result, с почетка дефинисану са generateAuthorLinks(context, src).
- Доследно примењује на result функцију appendTitle—appendAccessDate, док је блок appendEditor—appendAccessDate додатно уоквирен са
<span class="wef_low_priority_links"></span>
artificialSnaks(args)[уреди извор]
Прави вештачки снек, која повезује извор са идентификатором frame.args[1] путем својства наведено у (P248) и тема (P805), а такође прослеђује и аргументе (том, издање итд.).
Услужни подмодули[уреди извор]
- Модул:Sources/utils
- Модул:Sources-authors (не користи се)
- Модул:Sources-title (не користи се)
- Модул:Sources-year (не користи се)
Коришћена својства Википодатака[уреди извор]
Својство | Напомене |
---|---|
аутор (P50) | |
скраћено име аутора (P2093) | |
језик дела или имена (P407) | |
изворни језик дела (P364) | |
одељак (P958) | користи се за означавање наслова чланка у енциклопедији |
наслов (P1476) | ако је потребно преправити назив ознаке ставке |
поднаслов (P1680) | |
пуно дело доступно на (P953) | |
URL архиве (P1065) | |
URL референце (P854) | |
објављено у (P1433) | |
број издања (P393) | |
издавач (P123) | |
место издавања (P291) | |
уредник (P98) | |
страница/е (P304) | |
број страна (P1104) | |
том (P478) | |
публикација (P433) | |
настанак (P571) | |
датум издавања (P577) | |
ISBN-13 (P212) | |
ISBN-10 (P957) | |
ISSN (P236) | |
редни број (P1545) | |
(P818) | |
(P888) |