Модул: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)[уреди извор]

Претвара пуно име у пар {презимена одвојена размацима, имена одвојена размацима} . Реализовано у облицима који се могу пронаћи на Википодацима:

  1. Презиме, Име
  2. Презиме, Име Име
  3. Презиме Презиме, Име
  4. Име Име огли Презиме
  5. Име Име де Презиме
  6. Име … Име Презиме (најмање једно и не више од четири појединачна имена)

Овде име, за разлику од презимена, може бити почетно. Ако није испуњен ниједан од горњих формата, враћа се пуно име непромењено.

personNameToAuthorName(fullName)[уреди извор]

Претвара пуно име у облик Презиме И. СИ. користећи tokenizeName.

personNameToResponsibleName(fullName)[уреди извор]

Претвара пуно име у облик И. СИ. Презиме користећи tokenizeName.

getPeopleAsWikitext(context, value, options)[уреди извор]

Претвара списак имена value у викитекст према списку опција options. Опције морају садржати следећа поља:

  1. separator — разделитељ на списку;
  2. conjunction — разделитељ пре последњег елемента списка;
  3. format — функција која трансформише имена у неком нормализованом облику (на пример, personNameToAuthorName);
  4. nolinks — логичка вредност, мора бити тачно ако је повезивање непожељно;
  5. 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)[уреди извор]

Унутрашња функција која генерише текст који ће се приказати у референци. Понаша се на следећи начин:

  1. Записује src.lang у context.lang (или i18nDefaultLanguage ако src.lang није записан).
  2. Позива populateUrl, populateTitle и populateYear.
  3. Формира променљиву result, с почетка дефинисану са generateAuthorLinks(context, src).
  4. Доследно примењује на result функцију appendTitle—appendAccessDate, док је блок appendEditor—appendAccessDate додатно уоквирен са &lt;span class="wef_low_priority_links"&gt;&lt;/span&gt;

artificialSnaks(args)[уреди извор]

Прави вештачки снек, која повезује извор са идентификатором frame.args[1] путем својства наведено у (P248) и тема (P805), а такође прослеђује и аргументе (том, издање итд.).

Услужни подмодули[уреди извор]

Коришћена својства Википодатака[уреди извор]

Својство Напомене
аутор (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)

Тестови [ уређивање ][уреди извор]