Модул:Соурцес/док
Ово је документациона подстраница за Модул: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], кроз својства Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). и Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value).. Подаци се затим преносе у 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] путем својства Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). и Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value)., а такође прослеђује и аргументе (том, издање итд.).
Услужни подмодули
- Модул:Sources/utils
- Модул:Sources-authors (не користи се)
- Модул:Sources-title (не користи се)
- Модул:Sources-year (не користи се)
Коришћена својства Википодатака
| Својство | Напомене |
|---|---|
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | користи се за означавање наслова чланка у енциклопедији |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | ако је потребно преправити назив ознаке ставке |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). | |
| Lua грешка in Модул:WD at line 450: attempt to index field 'wikibase' (a nil value). |