Викиречник
srwiktionary
https://sr.wiktionary.org/wiki/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B0
MediaWiki 1.48.0-wmf.1
case-sensitive
Медиј
Посебно
Разговор
Корисник
Разговор с корисником
Викиречник
Разговор о викиречнику
Датотека
Разговор о датотеци
Медијавики
Разговор о Медијавикију
Шаблон
Разговор о шаблону
Помоћ
Разговор о помоћи
Категорија
Разговор о категорији
Портал
Разговор о порталу
Додатак
Разговор о додатку
TimedText
TimedText talk
Модул
Разговор о модулу
Догађај
Разговор о догађају
поука
0
44622
721569
721396
2026-11-03T11:39:00Z
Akybgd
9643
721569
wikitext
text/x-wiki
{{sr-naslov|поука|pouka|1|sr}}
{{Падежи|
|ном_јед=поука
|ном_мн=поуке
|ген_јед=поуке
|ген_мн=поука
|дат_јед=поуци
|дат_мн=поукама
|аку_јед=поуку
|аку_мн=поуке
|вок_јед=поуко
|вок_мн=поуке
|инс_јед=поуком
|инс_мн=поукама
|лок_јед=поуци
|лок_мн=поукама
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''по̏ука''' <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/975/mode/2up]]</ref>
}}
{{Слогови|по-у-ка|по-у-ке}}
{{Значење|
: [1.] [[поучавање|Поучавање]]. — Учитељева поука се продужавала целог полугођа. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/975/mode/2up]]</ref>
: [2.] Поучан савет, поучни савети. – Из приче смо извукли моралну поуку. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/975/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.] [[поучавање]], [[предлог]], [[наук]], [[савет]], [[сугестија]], [[препорука]], [[упутство]], [[наговор]], [[мишљење]], [[прекор]], ''[[Викиречник:Фигуративне речи|фиг.]]'' [[школа]] [[фиг.]], [[укор]], [[наравоученије]], [[опомена]], [[лекција]], [[пример]] {{R:Recnik Sinonima}}
: [2.1.] [[обучавање]], [[подучавање]], [[лекција]], [[излагање]], [[час]], [[обука]], [[курс]], [[течај]], [[предавање]] {{R:Recnik Sinonima}}
}}
{{Примери|
: [1.1.] Учитељева поука се продужавала целог полугођа.
: [2.1.] Из приче смо извукли моралну поуку.
}}
{{Асоцијације|
: [1.1.] [[поучан]], [[поучљив]], [[поучно]]
: [1.1.] [[поучљивост]], [[поучност]], [[поучавање]]
: [1.1.] [[поучити]], [[поучавати]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
f21fizhm0dkds9c1drcba2o1jsvhft8
šav
0
51741
721551
721517
2026-11-03T09:17:27Z
Akybgd
9643
721551
wikitext
text/x-wiki
{{sr-naslov|шав|šav|2|sr}}
{{Падежи|
|ном_јед=šav
|ном_мн=šavovi
|ген_јед=šava
|ген_мн=šavova
|дат_јед=šavu
|дат_мн=šavovima
|аку_јед=šav
|аку_мн=šavove
|вок_јед=šave
|вок_мн=šavovi
|инс_јед=šavom
|инс_мн=šavovima
|лок_јед=šavu
|лок_мн=šavovima
}}
=== Именица ===
{{српски-именица|род=м}}
{{Облици|
: [1.1.] '''šȁv''' <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1496/mode/2up]]</ref>
}}
{{Слогови|šav|ša-vo-vi}}
{{Значење|
: [1.] Linija po kojoj se šije, spoj dva sašivena komada tkanine, kože i sl., rub: iscepati se po šavu, oparati šavove. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1496/mode/2up]]</ref>
: [1.1.] U [[sanskrt]]u nailazimo na imenicu ženskog roda '''[[सेवनी]]''' <ref>Monijer Vilijams - Keln (1899), “Sеvana” in A Sanskrit–English Dictionary - Sanskrt (drugi stupac) strana 1247: [[https://www.sanskrit-lexicon.uni-koeln.de/scans/csl-apidev/servepdf.php?dict=MW&page=1247,2]]</ref> (čita se) '''sevani''' jedno od značenja je isto kao i u srpskom jeziku.
: [2.] Spoj dvaju komada lima i sl. dobijen zavarivanjem ili zakovicama. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1496/mode/2up]]</ref>
: [3.] Prirodni spoj kostiju lobanje u obliku cik-cak linije. • hirurški ~ med. veštački spoj razdvojenog tkiva pojedinih organa svilenim koncem i sl. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1496/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.] [[opšivak]], [[rub]], [[porub]], [[obrub]], [[optok]], [[pervaz]], [[opšitak]], [[opšiv]], [[bordura]], [[opšav]], [[podrub]] {{R:Recnik Sinonima}}
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[šiti]], [[krpiti]], [[štepati]], [[sašiti]]
: [1.1.] [[šivenje]], [[vezenje]], [[resa]], [[ukras]], [[šav]], [[drangulija]], [[figurica]], [[ornament]], [[bod]], [[nakit]], [[štrik]], [[vezivo]], ''[[Викиречник:Регионализми|рег.]]'' [[šupljika]] [[рег.]], [[štikeraj]] [[рег.]], [[rupičasta čipka]] <!-- ? арајеш ? --> {{R:Recnik Sinonima}}
: [1.1.] [[šivati]], [[zašivati]], [[izušivati]], [[opšivati]], [[prišivati]], [[prošivati]], [[sašivati]], [[ušivati]]
}}
{{Изведене речи|
: [1.1.] [[šavni]]
}}
{{П-лево}}
{{П|bs|1|шав (šav) m.}}
{{П|bg|1|шев (šev) m.}}
{{П|en|1|seam}}
{{П|zh|1|线缝 (šienfung)}}
{{П|hu|1|varrás (varaš)}}
{{П|mk|1|шав (šav) m.}}
{{П|fa|1|درز (darz)}}
{{П|pl|1|szew (šev) m.}}
{{П|ru|1|шов (šov) m.}}
{{П-средина}}
{{П|sa|1|सेवनी (sevani) ž.}}
{{П|sk|1|šev m.}}
{{П|sl|1|šev m.}}
{{П|hsb|1|šow m.}}
{{П|dsb|1|šaw m.}}
{{П|sh|1|шав (šav) m.}}
{{П|hi|1|सीवन (sivan)}}
{{П|hr|1|šav m.}}
{{П|cs|1|šev m.}}
{{П-десно}}
== Референце ==
{{reflist}}
n2yvwuzvatoh7oluytkc3umnsi27f2z
зобити
0
72924
721548
721541
2026-11-03T08:26:28Z
Akybgd
9643
721548
wikitext
text/x-wiki
{{sr-naslov|зобити|zobiti|1|sr}}
=== Глагол ===
{{српски-глагол|род=несврш.}}
{{Облици|
: [1.1.] '''зо̀бити''', -ӣм <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зо-би-ти|}}
{{Значење|
: [1.] Давати зоб или другу зрнасту храну стоци. <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [2.] Добро хранити, товити стоку. <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.] [[зобати]] <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Примери|
: [1.1.] Када им [овцама] дају кукуруз, мекиње, зоб, жито, кажу да их зобе. <ref name="Мирјана Малуцков, О овчарству у југоисточном Банату.">Мирјана Малуцков, О овчарству у југоисточном Банату. — Рад, 35, 1993, 187—198, стр. 194.</ref> <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.2.] И ондак до̀чекаш да се о̀тели и мо̑раш да је зо̏биш. [[српски говор у Зрењанину (Банат)|Зрењанин]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.3.] О̏нда и̏ма̄ду мле́ка да о̀доју ја̏га̄њце, кад се зо̀бу, а кад се не зо̀бу, о̏нда су ло̏ше. [[српски говор у Куманима (Банат)|Кумане]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.4.] Он зоби своје коње само кукурузима. [[српски говор у Бегечу (Бачка)|Бегеч]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.5.] Ни́је ми чо̀век ту̑, ено га у шта́лог, зо̀би ко̀ње. <ref name="Гордана Галетин, Из лексичке проблематике северне Шајкашке.">Гордана Галетин, Из лексичке проблематике северне Шајкашке. — ППЈ, 16, 1980, 59—92.</ref> <ref name="Биљана Марић, Из лексике Ченеја (румунски Банат) ">Биљана Марић, Из лексике Ченеја (румунски Банат) (рукопис дипломског рада).</ref> [[српски говор у Ченеју (Румунија)|Ченеј]], [[српски говор у Равном Селу (Бачка)|Равно Село]], [[српски говор у Турији (Бачка)|Турија]], [[српски говор у Чуругу (Бачка)|Чуруг]], [[српски говор у Госпођинцима (Бачка)|Госпођинци]], [[српски говор у Жабљу (Бачка)|Жабаљ]], [[српски говор у Ђурђеву (Бачка)|Ђурђево]], [[српски говор у Каћу (Бачка)|Каћ]], [[српски говор у Новом Милошеву (Банат)|Ново Милошево]], [[српски говор у Иванди (Румунија)|Иванда]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.6.] Ми̏слим да не̏ ваља ста̏лно зо̀бити ма̑рву. <ref name="Биљана Марић, Из лексике Ченеја (румунски Банат) ">Биљана Марић, Из лексике Ченеја (румунски Банат) (рукопис дипломског рада).</ref> [[српски говор у Ченеју (Румунија)|Ченеј]], [[српски говор у Турији (Бачка)|Турија]], [[српски говор у Равном Селу (Бачка)|Равно Село]], [[српски говор у Чуругу (Бачка)|Чуруг]], [[српски говор у Госпођинцима (Бачка)|Госпођинци]], [[српски говор у Жабљу (Бачка)|Жабаљ]], [[српски говор у Новом Милошеву (Банат)|Ново Милошево]], [[српски говор у Иванди (Румунија)|Иванда]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Асоцијације|
: [1.1.] [[зобни]], [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобеница]], [[зобиште]], [[зобница]]
: [1.1.] [[зобати]]
}}
{{Изведене речи|
: [1.1.] [[зобљење]]
}}
== Референце ==
{{reflist}}
8j4kz8x86wfgpyas3r6di32lqsb3yje
зобати
0
76119
721546
721538
2026-11-03T08:14:15Z
Akybgd
9643
721546
wikitext
text/x-wiki
{{sr-naslov|зобати|zobati|1|sr}}
=== Глагол ===
{{српски-глагол|род=несврш.}}
{{Облици|
: [1.1.] '''зо̀бати''', зо̏бље̄м <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зо-ба-ти|}}
{{Значење|
: [1.] Јести зоб или сличну храну (обично о коњима). <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [2.] Кљуцати зрневље, бобице, мрвице (о пернатој живини, птицама); јести зрнасте плодове зрно по зрно. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [3.] Јести: ~ со. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.] [[зобити]] [[српски говор у Бегечу (Бачка)|Бегеч]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[зобни]], [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобеница]], [[зобиште]], [[зобница]]
: [1.1.] [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
ex93e2nrmvm0w5ccesqarq1xxyuw58s
721566
721546
2026-11-03T10:49:45Z
Akybgd
9643
721566
wikitext
text/x-wiki
{{sr-naslov|зобати|zobati|1|sr}}
=== Глагол ===
{{српски-глагол|род=несврш.}}
{{Облици|
: [1.1.] '''зо̀бати''', зо̏бље̄м <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зо-ба-ти|}}
{{Значење|
: [1.] Јести зоб или сличну храну (обично о коњима). <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [2.] Кљуцати зрневље, бобице, мрвице (о пернатој живини, птицама); јести зрнасте плодове зрно по зрно. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [3.] Јести: ~ со. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.] [[зобити]] [[српски говор у Бегечу (Бачка)|Бегеч]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[зобни]], [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобеница]], [[зобљење]], [[зобиште]], [[зобница]]
: [1.1.] [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
2x6ztc0uth1uslz0nva2i05wh9c7fig
зобница
0
76650
721572
199498
2026-11-03T11:56:49Z
Akybgd
9643
721572
wikitext
text/x-wiki
{{sr-naslov|зобница|zobnica|1|sr}}
{{Падежи|
|ном_јед=зобница
|ном_мн=зобнице
|ген_јед=зобнице
|ген_мн=зобница
|дат_јед=зобници
|дат_мн=зобницама
|аку_јед=зобницу
|аку_мн=зобнице
|вок_јед=зобницо
|вок_мн=зобнице
|инс_јед=зобницом
|инс_мн=зобницама
|лок_јед=зобници
|лок_мн=зобницама
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''зо̀бница''', '''зо̏бница''' <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зоб-ни-ца|зоб-ни-це}}
{{Значење|
: [1.] Торба у којој се носи и из које се даје коњу зоб. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>, [[српски говор у Црвеној Цркви (Банат)|Црвена Црква]]<ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [2.] Храна коју орач понесе себи на орање. [[српски говор у Црвеној Цркви (Банат)|Црвена Црква]]<ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.]
}}
{{Примери|
: [1.1.] Ѝзгризли ко̏њи и зо̏бницу. [[српски говор у Лаћарку (Срем)|Лаћарак]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.2.] Ако ко̀њи ра̑де це̏о да̑н, тре̏ба им по̀не̄ти у зо̏бници ма̏ло зо̏би јел куку̀рӯза па нек је̏ду. <ref name="Гордана Галетин, Из лексичке проблематике северне Шајкашке.">Гордана Галетин, Из лексичке проблематике северне Шајкашке. — ППЈ, 16, 1980, 59—92.</ref> [[српски говор у Јарку (Срем)|Јарак]], [[српски говор у Јамени (Срем)|Јамена]], [[српски говор у Бачинцима (Срем)|Бачинци]], [[српски говор у Ердевику (Срем)|Ердевик]], [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]], [[српски говор у Нерадину (Срем)|Нерадин]], [[српски говор у Крчедини (Срем)|Крчедин]], [[српски говор у Голубинцима (Срем)|Голубинци]], [[српски говор у Платичеву (Срем)|Платичево]], [[српски говор у Грабовцима (Срем)|Грабовци]], [[српски говор у Огару (Срем)|Огар]], [[српски говор у Купинову (Срем)|Купиново]], [[српски говор у Батајници (Срем)|Батајница]], [[српски говор у Товаришеву (Бачка)|Товаришево]], [[српски говор у Молу (Бачка)|Мол]], [[српски говор у Чуругу (Бачка)|Чуруг]], [[српски говор у Госпођинцима (Бачка)|Госпођинци]], [[српски говор у Жабљу (Бачка)|Жабаљ]], [[српски говор у Каћу (Бачка)|Каћ]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.3.] Понео је зобницу, али није понео и зоб па није ни позобио коње. [[српски говор у Бегечу (Бачка)|Бегеч]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.4.] Забо̀равио да на̀пуни зо̀бницу, а по̀шо у̏ поље. <ref name="Анђелка Петровић, Пастирска терминологија Буковца">Анђелка Петровић, Пастирска терминологија Буковца (рукопис дипломског рада).</ref> [[српски говор у Јаши Томић (Банат)|Јаша Томић]], [[српски говор у Гибарцу (Срем)|Гибарац]], [[српски говор у Вишњићеву (Срем)|Вишњићево]], [[српски говор у Сремској Рачи (Срем)|Сремска Рача]], [[српски говор у Сремској Митровици (Срем)|Сремска Митровица]], [[српски говор у Голубинцима (Срем)|Голубинци]], [[српски говор у Буковцу (Срем)|Буковац]], [[српски говор у Новом Сланкамену (Срем)|Нови Сланкамен]], [[српски говор у Белегишу (Срем)|Белегиш]], [[српски говор у Суботици (Бачка)|Суботица]], [[српски говор у Равном Селу (Бачка)|Равно Село]], [[српски говор у Турији (Бачка)|Турија]], [[српски говор у Госпођинцима (Бачка)|Госпођинци]], [[српски говор у Ђурђеву (Бачка)|Ђурђево]], [[српски говор у Новом Кнежевцу (Банат)|Нови Кнежевац]], [[српски говор у Итебеју (Банат)|Итебеј]], [[српски говор у Шурјану (Банат)|Шурјан]], [[српски говор у Боки (Банат)|Бока]], [[српски говор у Неузини (Банат)|Неузина]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Асоцијације|
: [1.1.] [[зобни]], [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобеница]], [[зобиште]], [[зобљење]]
: [1.1.] [[зобати]], [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
nk0k59rijiy8srrimbexdni6fwtprbl
зобеница
0
77601
721553
200449
2026-11-03T09:46:59Z
Akybgd
9643
721553
wikitext
text/x-wiki
{{sr-naslov|зобеница|zobenica|1|sr}}
{{Падежи|
|ном_јед=шав
|ном_мн=шавови
|ген_јед=шава
|ген_мн=шавова
|дат_јед=шаву
|дат_мн=шавовима
|аку_јед=шав
|аку_мн=шавове
|вок_јед=шаве
|вок_мн=шавови
|инс_јед=шавом
|инс_мн=шавовима
|лок_јед=шаву
|лок_мн=шавовима
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''зобеница''' <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зобеница|зобенице}}
{{Значење|
: [1.] Хлеб од зоби, овсеница. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [2.] Ракија од зоби. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [2.1.] [[зобаја]]
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[зобни]], [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобиште]], [[зобљење]], [[зобница]] [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.1.] [[зобати]], [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
r1f9vf8yn3zsdiujkya2z3dqwnscwo8
721554
721553
2026-11-03T09:47:35Z
Akybgd
9643
721554
wikitext
text/x-wiki
{{sr-naslov|зобеница|zobenica|1|sr}}
{{Падежи|
|ном_јед=зобеница
|ном_мн=зобенице
|ген_јед=зобенице
|ген_мн=зобеница
|дат_јед=зобеници
|дат_мн=зобеницама
|аку_јед=зобеницу
|аку_мн=зобенице
|вок_јед=зобеницо
|вок_мн=зобенице
|инс_јед=зобеницом
|инс_мн=зобеницама
|лок_јед=зобеници
|лок_мн=зобеницама
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''зобеница''' <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зобеница|зобенице}}
{{Значење|
: [1.] Хлеб од зоби, овсеница. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [2.] Ракија од зоби. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [2.1.] [[зобаја]]
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[зобни]], [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобиште]], [[зобљење]], [[зобница]] [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.1.] [[зобати]], [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
b7am2aeaxqtiiovrfijryc5gmeu8ghj
721555
721554
2026-11-03T09:49:44Z
Akybgd
9643
721555
wikitext
text/x-wiki
{{sr-naslov|зобеница|zobenica|1|sr}}
{{Падежи|
|ном_јед=зобеница
|ном_мн=зобенице
|ген_јед=зобенице
|ген_мн=зобеница
|дат_јед=зобеници
|дат_мн=зобеницама
|аку_јед=зобеницу
|аку_мн=зобенице
|вок_јед=зобеницо
|вок_мн=зобенице
|инс_јед=зобеницом
|инс_мн=зобеницама
|лок_јед=зобеници
|лок_мн=зобеницама
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''зобѐница''' <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зо-бе-ни-ца|зо-бе-ни-це}}
{{Значење|
: [1.] Хлеб од зоби, овсеница. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [2.] Ракија од зоби. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [2.1.] [[зобаја]]
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[зобни]], [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобиште]], [[зобљење]], [[зобница]] [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.1.] [[зобати]], [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
o5clonh5qtozvc9xz1ysfrysjpru2cu
zobiti
0
149775
721549
383264
2026-11-03T08:26:55Z
Akybgd
9643
721549
wikitext
text/x-wiki
{{sr-naslov|зобити|zobiti|2|sr}}
=== Глагол ===
{{српски-глагол|род=несврш.}}
{{Облици|
: [1.1.] '''zòbiti''', -īm <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|zo-bi-ti|}}
{{Значење|
: [1.] Davati zob ili drugu zrnastu hranu stoci. <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [2.] Dobro hraniti, toviti stoku. <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.] [[zobati]] <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Примери|
: [1.1.] Kada im [ovcama] daju kukuruz, mekinje, zob, žito, kažu da ih zobe. <ref name="Мирјана Малуцков, О овчарству у југоисточном Банату.">Мирјана Малуцков, О овчарству у југоисточном Банату. — Рад, 35, 1993, 187—198, стр. 194.</ref> <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.2.] И ондак до̀чекаш да се о̀тели и мо̑раш да је зо̏биш. [[српски говор у Зрењанину (Банат)|Зрењанин]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.3.] О̏нда и̏ма̄ду мле́ка да о̀доју ја̏га̄њце, кад се зо̀бу, а кад се не зо̀бу, о̏нда су ло̏ше. [[српски говор у Куманима (Банат)|Кумане]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.4.] On zobi svoje konje samo kukuruzima. [[српски говор у Бегечу (Бачка)|Бегеч]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.5.] Níje mi čòvek tȗ, eno ga u štálog, zòbi kònje. <ref name="Гордана Галетин, Из лексичке проблематике северне Шајкашке.">Гордана Галетин, Из лексичке проблематике северне Шајкашке. — ППЈ, 16, 1980, 59—92.</ref> <ref name="Биљана Марић, Из лексике Ченеја (румунски Банат) ">Биљана Марић, Из лексике Ченеја (румунски Банат) (рукопис дипломског рада).</ref> [[српски говор у Ченеју (Румунија)|Ченеј]], [[српски говор у Равном Селу (Бачка)|Равно Село]], [[српски говор у Турији (Бачка)|Турија]], [[српски говор у Чуругу (Бачка)|Чуруг]], [[српски говор у Госпођинцима (Бачка)|Госпођинци]], [[српски говор у Жабљу (Бачка)|Жабаљ]], [[српски говор у Ђурђеву (Бачка)|Ђурђево]], [[српски говор у Каћу (Бачка)|Каћ]], [[српски говор у Новом Милошеву (Банат)|Ново Милошево]], [[српски говор у Иванди (Румунија)|Иванда]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.6.] Ми̏слим да не̏ ваља ста̏лно зо̀бити ма̑рву. <ref name="Биљана Марић, Из лексике Ченеја (румунски Банат) ">Биљана Марић, Из лексике Ченеја (румунски Банат) (рукопис дипломског рада).</ref> [[српски говор у Ченеју (Румунија)|Ченеј]], [[српски говор у Турији (Бачка)|Турија]], [[српски говор у Равном Селу (Бачка)|Равно Село]], [[српски говор у Чуругу (Бачка)|Чуруг]], [[српски говор у Госпођинцима (Бачка)|Госпођинци]], [[српски говор у Жабљу (Бачка)|Жабаљ]], [[српски говор у Новом Милошеву (Банат)|Ново Милошево]], [[српски говор у Иванди (Румунија)|Иванда]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Асоцијације|
: [1.1.] [[zobni]], [[zobeni]]
: [1.1.] [[zob]], [[zobanica]], [[zobaja]], [[zobenica]], [[zobište]], [[zobnica]]
: [1.1.] [[zobati]]
}}
{{Изведене речи|
: [1.1.] [[zobljenje]]
}}
== Референце ==
{{reflist}}
3iqmfcnb24d6ez95du32komq34dkq6v
721550
721549
2026-11-03T08:35:01Z
Akybgd
9643
721550
wikitext
text/x-wiki
{{sr-naslov|зобити|zobiti|2|sr}}
=== Глагол ===
{{српски-глагол|род=несврш.}}
{{Облици|
: [1.1.] '''zòbiti''', -īm <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|zo-bi-ti|}}
{{Значење|
: [1.] Davati zob ili drugu zrnastu hranu stoci. <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [2.] Dobro hraniti, toviti stoku. <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.] [[zobati]] <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Примери|
: [1.1.] Kada im [ovcama] daju kukuruz, mekinje, zob, žito, kažu da ih zobe. <ref name="Мирјана Малуцков, О овчарству у југоисточном Банату.">Мирјана Малуцков, О овчарству у југоисточном Банату. — Рад, 35, 1993, 187—198, стр. 194.</ref> <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.2.] I ondak dòčekaš da se òteli i mȏraš da je zȍbiš. [[српски говор у Зрењанину (Банат)|Зрењанин]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.3.] Ȍnda ȉmādu mléka da òdoju jȁgānjce, kad se zòbu, a kad se ne zòbu, ȍnda su lȍše. [[српски говор у Куманима (Банат)|Кумане]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.4.] On zobi svoje konje samo kukuruzima. [[српски говор у Бегечу (Бачка)|Бегеч]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.5.] Níje mi čòvek tȗ, eno ga u štálog, zòbi kònje. <ref name="Гордана Галетин, Из лексичке проблематике северне Шајкашке.">Гордана Галетин, Из лексичке проблематике северне Шајкашке. — ППЈ, 16, 1980, 59—92.</ref> <ref name="Биљана Марић, Из лексике Ченеја (румунски Банат) ">Биљана Марић, Из лексике Ченеја (румунски Банат) (рукопис дипломског рада).</ref> [[српски говор у Ченеју (Румунија)|Ченеј]], [[српски говор у Равном Селу (Бачка)|Равно Село]], [[српски говор у Турији (Бачка)|Турија]], [[српски говор у Чуругу (Бачка)|Чуруг]], [[српски говор у Госпођинцима (Бачка)|Госпођинци]], [[српски говор у Жабљу (Бачка)|Жабаљ]], [[српски говор у Ђурђеву (Бачка)|Ђурђево]], [[српски говор у Каћу (Бачка)|Каћ]], [[српски говор у Новом Милошеву (Банат)|Ново Милошево]], [[српски говор у Иванди (Румунија)|Иванда]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.6.] Mȉslim da nȅ valja stȁlno zòbiti mȃrvu. <ref name="Биљана Марић, Из лексике Ченеја (румунски Банат) ">Биљана Марић, Из лексике Ченеја (румунски Банат) (рукопис дипломског рада).</ref> [[српски говор у Ченеју (Румунија)|Ченеј]], [[српски говор у Турији (Бачка)|Турија]], [[српски говор у Равном Селу (Бачка)|Равно Село]], [[српски говор у Чуругу (Бачка)|Чуруг]], [[српски говор у Госпођинцима (Бачка)|Госпођинци]], [[српски говор у Жабљу (Бачка)|Жабаљ]], [[српски говор у Новом Милошеву (Банат)|Ново Милошево]], [[српски говор у Иванди (Румунија)|Иванда]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Асоцијације|
: [1.1.] [[zobni]], [[zobeni]]
: [1.1.] [[zob]], [[zobanica]], [[zobaja]], [[zobenica]], [[zobište]], [[zobnica]]
: [1.1.] [[zobati]]
}}
{{Изведене речи|
: [1.1.] [[zobljenje]]
}}
== Референце ==
{{reflist}}
gvhy2sl6g3zrcnfbj1393n6xy8jj02a
zobati
0
152975
721547
721539
2026-11-03T08:14:41Z
Akybgd
9643
721547
wikitext
text/x-wiki
{{sr-naslov|зобати|zobati|2|sr}}
=== Глагол ===
{{српски-глагол|род=несврш.}}
{{Облици|
: [1.1.] '''zòbati''', zȍbljēm <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|zo-ba-ti|}}
{{Значење|
: [1.] Jesti zob ili sličnu hranu (obično o konjima). <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [2.] Kljucati zrnevlje, bobice, mrvice (o pernatoj živini, pticama); jesti zrnaste plodove zrno po zrno. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [3.] Jesti: ~ so. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.] [[zobiti]] [[српски говор у Бегечу (Бачка)|Бегеч]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[zobni]], [[zobeni]]
: [1.1.] [[zob]], [[zobanica]], [[zobaja]], [[zobenica]], [[zobište]], [[zobnica]]
: [1.1.] [[zobiti]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
1wopp3uroolx1dk4gknqzvpiz1ctt32
721565
721547
2026-11-03T10:49:15Z
Akybgd
9643
721565
wikitext
text/x-wiki
{{sr-naslov|зобати|zobati|2|sr}}
=== Глагол ===
{{српски-глагол|род=несврш.}}
{{Облици|
: [1.1.] '''zòbati''', zȍbljēm <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|zo-ba-ti|}}
{{Значење|
: [1.] Jesti zob ili sličnu hranu (obično o konjima). <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [2.] Kljucati zrnevlje, bobice, mrvice (o pernatoj živini, pticama); jesti zrnaste plodove zrno po zrno. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [3.] Jesti: ~ so. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.] [[zobiti]] [[српски говор у Бегечу (Бачка)|Бегеч]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[zobni]], [[zobeni]]
: [1.1.] [[zob]], [[zobanica]], [[zobaja]], [[zobenica]], [[zobljenje]], [[zobište]], [[zobnica]]
: [1.1.] [[zobiti]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
6za53zkzybp3anox10v686e5evodyuu
zobnica
0
153504
721573
348554
2026-11-03T11:57:00Z
Akybgd
9643
721573
wikitext
text/x-wiki
{{sr-naslov|зобница|zobnica|2|sr}}
{{Падежи|
|ном_јед=zobnica
|ном_мн=zobnice
|ген_јед=zobnice
|ген_мн=zobnica
|дат_јед=zobnici
|дат_мн=zobnicama
|аку_јед=zobnicu
|аку_мн=zobnice
|вок_јед=zobnico
|вок_мн=zobnice
|инс_јед=zobnicom
|инс_мн=zobnicama
|лок_јед=zobnici
|лок_мн=zobnicama
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''zòbnica''', '''zȍbnica''' <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|zob-ni-ca|zob-ni-ce}}
{{Значење|
: [1.] Torba u kojoj se nosi i iz koje se daje konju zob. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>, [[српски говор у Црвеној Цркви (Банат)|Црвена Црква]]<ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [2.] Hrana koju orač ponese sebi na oranje. [[српски говор у Црвеној Цркви (Банат)|Црвена Црква]]<ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.]
}}
{{Примери|
: [1.1.] Ìzgrizli kȍnji i zȍbnicu. [[српски говор у Лаћарку (Срем)|Лаћарак]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.2.] Ako kònji rȃde cȅo dȃn, trȅba im pònēti u zȍbnici mȁlo zȍbi jel kukùrūza pa nek jȅdu. <ref name="Гордана Галетин, Из лексичке проблематике северне Шајкашке.">Гордана Галетин, Из лексичке проблематике северне Шајкашке. — ППЈ, 16, 1980, 59—92.</ref> [[српски говор у Јарку (Срем)|Јарак]], [[српски говор у Јамени (Срем)|Јамена]], [[српски говор у Бачинцима (Срем)|Бачинци]], [[српски говор у Ердевику (Срем)|Ердевик]], [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]], [[српски говор у Нерадину (Срем)|Нерадин]], [[српски говор у Крчедини (Срем)|Крчедин]], [[српски говор у Голубинцима (Срем)|Голубинци]], [[српски говор у Платичеву (Срем)|Платичево]], [[српски говор у Грабовцима (Срем)|Грабовци]], [[српски говор у Огару (Срем)|Огар]], [[српски говор у Купинову (Срем)|Купиново]], [[српски говор у Батајници (Срем)|Батајница]], [[српски говор у Товаришеву (Бачка)|Товаришево]], [[српски говор у Молу (Бачка)|Мол]], [[српски говор у Чуругу (Бачка)|Чуруг]], [[српски говор у Госпођинцима (Бачка)|Госпођинци]], [[српски говор у Жабљу (Бачка)|Жабаљ]], [[српски говор у Каћу (Бачка)|Каћ]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.3.] Poneo je zobnicu, ali nije poneo i zob pa nije ni pozobio konje. [[српски говор у Бегечу (Бачка)|Бегеч]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.4.] Zabòravio da nàpuni zòbnicu, a pòšo ȕ polje. <ref name="Анђелка Петровић, Пастирска терминологија Буковца">Анђелка Петровић, Пастирска терминологија Буковца (рукопис дипломског рада).</ref> [[српски говор у Јаши Томић (Банат)|Јаша Томић]], [[српски говор у Гибарцу (Срем)|Гибарац]], [[српски говор у Вишњићеву (Срем)|Вишњићево]], [[српски говор у Сремској Рачи (Срем)|Сремска Рача]], [[српски говор у Сремској Митровици (Срем)|Сремска Митровица]], [[српски говор у Голубинцима (Срем)|Голубинци]], [[српски говор у Буковцу (Срем)|Буковац]], [[српски говор у Новом Сланкамену (Срем)|Нови Сланкамен]], [[српски говор у Белегишу (Срем)|Белегиш]], [[српски говор у Суботици (Бачка)|Суботица]], [[српски говор у Равном Селу (Бачка)|Равно Село]], [[српски говор у Турији (Бачка)|Турија]], [[српски говор у Госпођинцима (Бачка)|Госпођинци]], [[српски говор у Ђурђеву (Бачка)|Ђурђево]], [[српски говор у Новом Кнежевцу (Банат)|Нови Кнежевац]], [[српски говор у Итебеју (Банат)|Итебеј]], [[српски говор у Шурјану (Банат)|Шурјан]], [[српски говор у Боки (Банат)|Бока]], [[српски говор у Неузини (Банат)|Неузина]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
}}
{{Асоцијације|
: [1.1.] [[zobni]], [[zobeni]]
: [1.1.] [[zob]], [[zobanica]], [[zobaja]], [[zobenica]], [[zobište]], [[zobljenje]]
: [1.1.] [[zobati]], [[zobiti]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
jq9g11ti5ee0dp56m2e9uqjpid353u8
zobenica
0
154454
721556
383410
2026-11-03T09:50:32Z
Akybgd
9643
721556
wikitext
text/x-wiki
{{sr-naslov|зобеница|zobenica|2|sr}}
{{Падежи|
|ном_јед=zobenica
|ном_мн=zobenice
|ген_јед=zobenice
|ген_мн=zobenica
|дат_јед=zobenici
|дат_мн=zobenicama
|аку_јед=zobenicu
|аку_мн=zobenice
|вок_јед=zobenico
|вок_мн=zobenice
|инс_јед=zobenicom
|инс_мн=zobenicama
|лок_јед=zobenici
|лок_мн=zobenicama
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''zobènica''' <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|zo-be-ni-ca|zo-be-ni-ce}}
{{Значење|
: [1.] Hleb od zobi, ovsenica. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
: [2.] Rakija od zobi. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [2.1.] [[zobaja]]
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[zobni]], [[zobeni]]
: [1.1.] [[zob]], [[zobanica]], [[zobaja]], [[zobište]], [[zobljenje]], [[zobnica]] [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.1.] [[zobati]], [[zobiti]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
8a8pusyj9fs021xqxvnjjk2r7qyl5yc
Медијавики:Gadget-Cat-a-lot.css
8
277365
721543
720198
2026-11-02T23:09:29Z
Maintenance script
4153
Use thumb.wikimedia.org for thumbnails ([[phab:T427465]], Operator: Ladsgroup)
721543
css
text/css
#cat_a_lot
{
bottom: 0;
display: block;
position: fixed;
right: 0;
z-index: 100;
padding: 5px;
-moz-box-shadow: 0 2px 4px rgba(0,0,0,0.5);
-webkit-box-shadow: 0 2px 4px rgba(0,0,0,0.5);
box-shadow: 0 2px 4px rgba(0,0,0,0.5);
background-color: #FEF6E7;
}
#cat_a_lot_data, #cat_a_lot_mark_counter
{
display: none;
}
#cat_a_lot_data ul
{
list-style-image: none;
list-style-type: none;
margin: 0 0 0 5px;
}
#cat_a_lot_selections, #cat_a_lot_mark_counter, #cat_a_lot_settings
{
background: url(/w/skins/Vector/images/portal-break.png) no-repeat;
padding: 5px;
}
#cat_a_lot_remove
{
font-weight: bold;
display: block;
}
a {
cursor:pointer;
}
.cat_a_lot_move, .cat_a_lot_action
{
font-weight: bold;
}
.cat_a_lot_feedback
{
border: 1px #A9DE16 solid !important;
background: #EAF2CB url(//upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif) no-repeat 8px 14px !important;
padding-left: 2.85em !important;
padding-top: 10px !important;
font-size: 1.1em !important;
}
.cat_a_lot_done {
background-image: url(//thumb.wikimedia.org/wikipedia/commons/thumb/0/0e/Dialog-apply.svg/60px-Dialog-apply.svg.png)!important;
background-position: 8px 50% !important;
padding-top: 0 !important;
}
#cat_a_lot_searchcatname {
font-size: 112%;
margin: -5px 0 5px -5px;
width: 102%;
}
.skin-vector #cat_a_lot {
font-size: .75em;
}
.cat_a_lot_markAsDone {
background-color: #BABABA;
}
.cat_a_lot_selected
{
background-color: #DF6;
}
#cat_a_lot_no_found, #cat_a_lot_last_selected, #cat_a_lot_settings {
font-weight:bold;
}
#cat_a_lot_last_selected
{
outline:1px dotted #999;
}
#cat_a_lot_category_list table
{
width: 100%;
border-collapse: collapse;
}
#cat_a_lot_category_list tr:hover
{
background-color: #fc3;
}
#cat_a_lot_category_list
{
overflow: auto;
}
0gfkg2psfjb61g3xbbga3s4aumxpn2n
Медијавики:Gadget-ProveIt-classic.js
8
277417
721544
604146
2026-11-02T23:09:31Z
Maintenance script
4153
Use thumb.wikimedia.org for thumbnails ([[phab:T427465]], Operator: Ladsgroup)
721544
javascript
text/javascript
/* _____________________________________________________________________________
* | |
* | === WARNING: GLOBAL GADGET FILE === |
* | Changes to this page affect many users. |
* | Please discuss changes on the talk page or on [[WT:Gadget]] before editing. |
* |_____________________________________________________________________________|
*/
// <nowiki>
/*
* Imported from Git commit 72b9abf17fe33ab8af55a7cfb074a9beb35365ab as of 2015-03-09 from https://github.com/proveit-js/proveit
* Changes should be made through that GitHub project.
*/
/*
* ProveIt ([[User:ProveIt GT]]) is a powerful GUI tool for viewing, adding, editing, and inserting references on Wikipedia.
*
* Copyright 2008 - 2011
*
* Georgia Tech Research Corporation
*
* Atlanta, GA 30332-0415
*
* Copyright 2011 -
*
* Matthew Flaschen
*
* ALL RIGHTS RESERVED
*
* ProveIt is available under the GNU Free Documentation License (GFDL-1.3.txt), Creative Commons
* Attribution/Share-Alike License 3.0 (http://creativecommons.org/licenses/by-sa/3.0/), and the GNU
* General Public License 2 (GPL-2.txt)
*
* Includes icons from the Silk set (http://www.famfamfam.com/lab/icons/silk/), by Mark James, used under
* the Creative Commons Attribution 3.0 License.
*/
/**
* Electronic Learning Communities
* @module elc
*/
( function ( mw, $ ) {
/*
Second parameter (pre-existing proveit object, if any) passed to extend overrides first.
Gives users option to easily override initial constants, such as shouldAddSummary.
If proveit is unintentionally imported more than once, the first import will take precedence.
*/
/**
* Main class and namespace for ProveIt software. This is the only global variable.
* @class proveit
*/
var proveit = window.proveit = $.extend({
/**
* Approximately half the height of the edit box. Used in scrolling when highlighting text.
* @type Number
*/
HALF_EDIT_BOX_HEIGHT: 200,
// This could be preference-controlled, instead of hard-coded.
/**
* Language used for descriptions
* @type String
*/
LANG: "en",
/**
* Text before param name (e.g. url, title, etc.) in creation box, to avoid collisions with unrelated ids.
* @type String
*/
NEW_PARAM_PREFIX: "newparam",
/**
* Text before param name (e.g. url, title, etc.) in edit box, to avoid collisions with unrelated ids.
* @type String
*/
EDIT_PARAM_PREFIX: "editparam",
GUI_ID: "proveit",
/* Used to map between keys, including citation parameter names, and human-readable text. It can be
* internationalized easily. Add descriptions.xx , where xx is
* the ISO 639-1 code for a language, then set proveit.LANG to "xx"
* to use the new descriptions.
*/
descriptions :
{
en :
{
agency: "Agency",
name: "Name",
author: "Author (L, F)",
author2: "Author two (L, F)",
author3: "Author three (L, F)",
author4: "Author four (L, F)",
author5: "Author five (L, F)",
author6: "Author six (L, F)",
author7: "Author seven (L, F)",
author8: "Author eight (L, F)",
author9: "Author nine (L, F)",
last: "Last name",
last2: "Last name (auth. two)",
last3: "Last name (auth. three)",
last4: "Last name (auth. four)",
last5: "Last name (auth. five)",
last6: "Last name (auth. six)",
last7: "Last name (auth. seven)",
last8: "Last name (auth. eight)",
last9: "Last name (auth. nine)",
first: "First name",
first2: "First name (auth. two)",
first3: "First name (auth. three)",
first4: "First name (auth. four)",
first5: "First name (auth. five)",
first6: "First name (auth. six)",
first7: "First name (auth. seven)",
first8: "First name (auth. eight)",
first9: "First name (auth. nine)",
authorlink: "Author article name",
title: "Title",
trans_title: "Title in English",
publisher: "Publisher",
year: "Year",
location: "Location",
place: "Location of work",
isbn: "ISBN",
id: "ID",
doi: "DOI",
page: "Page",
pages: "Pages",
quote: "Quote",
month: "Month",
journal: "Journal",
edition: "Edition",
volume: "Volume",
issue: "Issue",
url: "URL",
date: "Publication date",
accessdate: "Access date",
coauthors: "Co-authors",
booktitle: "Title of Proceedings",
contribution: "Contribution/Chapter",
encyclopedia: "Encyclopedia",
newsgroup: "Newsgroup",
version: "Version",
site: "Site",
newspaper: "Newspaper",
"publication-place": "Publication location",
editor: "Editor (L, F)",
article: "Article",
pubplace: "Publisher location",
pubyear: "Publication year",
inventor: "Inventor (L, F)",
"issue-date": "Issue date",
"patent-number": "Patent number",
"country-code": "Country code (XX)",
work: "Work",
format: "Format",
issn: "ISSN",
pmid: "PMID",
chapter: "Chapter",
web: "Web",
book: "Book",
conference: "Conference",
news: "News",
paper: "Paper",
"press release": "Press release",
interview: "Interview",
"AV media": "Audiovisual work",
subject: "Subject",
subjectlink: "Subject article name",
subject2: "Subject two",
subjectlink2: "Subject two article name",
subject3: "Subject three",
subjectlink3: "Subject three article name",
subject4: "Subject four",
interviewer: "Interviewer",
cointerviewers: "Co-interviewers",
type: "Type",
program: "Program",
callsign: "Call sign",
city: "City",
archiveurl: "Archive URL",
archivedate: "Date archived",
episode: "Episode",
episodelink: "Episode article name",
series: "Series",
serieslink: "Series article name",
credits: "Credits",
network: "Network",
station: "Station",
airdate: "Airdate",
began: "Start date",
ended: "End date",
season: "Season number",
seriesno: "Season number",
number: "Number",
minutes: "Minutes",
transcript: "Transcript",
transcripturl: "Transcript URL",
people: "People",
medium: "Production medium",
language: "Language",
time: "Time",
oclc: "OCLC",
ref: "Anchor ID",
deadurl: 'Dead URL?',
raw: 'Unknown format'
},
// Finnish translation by Olli (ollinpostit at gmail.com)
fi: {
agency: "Edustaja",
name: "Nimi",
author: "Tekijä",
author2: "Tekijä kaksi",
author3: "Tekijä kolme",
author4: "Tekijä neljä",
author5: "Tekijä viisi",
author6: "Tekijä kuusi",
author7: "Tekijä seitsemän",
author8: "Tekijä kahdeksan",
author9: "Tekijä yhdeksän",
last: "Sukunimi",
last2: "Sukunimi (tekijä 2)",
last3: "Sukunimi (tekijä 3)",
last4: "Sukunimi (tekijä 4)",
last5: "Sukunimi (tekijä 5)",
last6: "Sukunimi (tekijä 6)",
last7: "Sukunimi (tekijä 7)",
last8: "Sukunimi (tekijä 8)",
last9: "Sukunimi (tekijä 9)",
first: "Etunimi",
first2: "Etunimi (tekijä 2)",
first3: "Etunimi (tekijä 3)",
first4: "Etunimi (tekijä 4)",
first5: "Etunimi (tekijä 5)",
first6: "Etunimi (tekijä 6)",
first7: "Etunimi (tekijä 7)",
first8: "Etunimi (tekijä 8)",
first9: "Etunimi (tekijä 9)",
authorlink: "Tekijästä kertova sivu",
title: "Otsikko",
publisher: "Julkaisija",
year: "Vuosi",
location: "Paikka",
place: "Työn paikka",
isbn: "ISBN",
id: "ID",
doi: "DOI",
page: "Sivu",
pages: "Sivuja",
quote: "Lainaus",
month: "Kuukausi",
journal: "Aikakauslehti",
edition: "Painos",
volume: "Vuosikerta",
issue: "Numero",
url: "Osoite",
date: "Julkaisupäivä",
accessdate: "Luettu",
coauthors: "Muut tekijät",
booktitle: "Jatko-osien otsikko",
contribution: "Osallistuminen/yhteistyö",
encyclopedia: "Tietosanakirja",
newsgroup: "Uutisryhmä",
version: "Versio",
site: "Sivusto",
newspaper: "Sanomalehti",
"publication-place": "Julkaisupaikka",
editor: "Toimittaja",
article: "Artikkeli",
pubplace: "Julkaisijan paikka",
pubyear: "Julkaisuvuosi",
inventor: "Keksijä",
"issue-date": "Saatavilla päivänä",
"patent-number": "Patenttinumero",
"country-code": "Maakoodi (XX)",
work: "Työ",
format: "Muoto",
issn: "ISSN",
pmid: "PMID",
chapter: "Luku",
web: "Verkko",
book: "Kirja",
conference: "Kokous",
news: "Uutiset",
paper: "Lehti",
"press release": "Lehdistötiedote",
interview: "Haastattelu",
subject: "Otsikko",
subjectlink: "Artikkelin otsikko",
subject2: "Otsikko kaksi",
subjectlink2: "Artikkelin kaksi otsikko",
subject3: "Otsikko kolme",
subjectlink3: "Artikkelin kolme otsikko",
subject4: "Otsikko neljä",
interviewer: "Haastattelija",
cointerviewers: "Muut haastattelijat",
type: "Tyyppi",
program: "Ohjelma",
callsign: "Call sign",
city: "Kaupunki",
archiveurl: "Arkiston osoite",
archivedate: "Arkistointipäivämäärä",
episode: "Jakso",
episodelink: "Jakson sivun nimi",
series: "Sarja",
serieslink: "Sarjan sivun nimi",
credits: "Tekijät",
network: "Verkko",
station: "Asema",
airdate: "Lähetyspäivä",
began: "Aloituspäivä",
ended: "Lopetuspäivä",
season: "Kauden numero",
seriesno: "Kauden numero",
number: "Numero",
minutes: "Minuutit",
transcript: "Puhtaaksi kirjoitettu teksti",
transcripturl: "Puhtaaksikirjoitetun osoite",
video: "Video",
people: "Ihmiset",
medium: "Tuotantomedia",
language: "Kieli",
time: "Aika",
oclc: "OCLC",
ref: "Ankkurin ID-tunnus"
}
},
/**
* Optional preference to specify default date format for new references.
* If set, it overrides the general date preference from Special:Preferences.
*
* @type {String} supported date format string
*/
dateFormatString: null,
/**
* Singleton used to format dates according to user preference
*
* @type DateFormatter
*/
dateFormatter: null,
/**
* Gets the effective preference for date format. If there is no ProveIt-specific
* preference already at proveit.dateFormatString, it will determine the correct preference
* from MW user preferences. Then, it will store that value to proveit.dateFormatString
*
* @return {String} format string to use for dates
*/
getDatePreference: function () {
if (this.dateFormatString === null) {
this.dateFormatString = mw.user.options.get('date');
}
return this.dateFormatString;
},
/**
* Returns descriptions for the current language.
* @return {Object} descriptions
*/
getDescriptions: function()
{
//this could be made Cite-specific if needed.
return this.descriptions[proveit.LANG];
},
/**
* String added to logs for easy search
* @type String
*/
LOG_MARKER: "[ProveIt] ",
/**
* Convenience log function
* @param {...Object} var_args objects (including strings) to log
*/
log: function()
{
var args = Array.prototype.slice.call(arguments);
args.unshift(this.LOG_MARKER);
mw.log.apply(mw, args);
},
/**
* Log error object if possible, using error (preferable), or log, if available.
* @param {Error} ex error object
*/
logException: function(ex)
{
var args = [ex, ex.stack];
if(typeof(console) === "object" && $.isFunction(console.error))
{
args.unshift(this.LOG_MARKER);
console.error.apply(null, args);
}
else
{
this.log.apply(this, args);
}
},
/**
* Returns true if the page has a wikitext edit box
*
* @return {Boolean} true if the page has a wikitext edit box, false otherwise
*/
isEditPage: function()
{
var contentModel = mw.config.get( 'wgPageContentModel' ),
action = mw.config.get( 'wgAction' );
return contentModel === 'wikitext' && ( action === 'edit' || action === 'submit' );
},
/**
* Returns true if the page is likely to contain references
* @return {Boolean} true if page is supported, false otherwise
*/
isSupportedPage: function()
{
var namespace = mw.config.get( 'wgCanonicalNamespace' ),
pageName = mw.config.get( 'wgPageName' );
// "Regular" article, userspace, or Wikipedia:Sandbox (exception for testing).
return ( namespace === '' || namespace === 'User' || pageName === 'Wikipedia:Sandbox');
},
/**
* Convenience function. Returns the refbox element.
* @return {$Node} reference box
*/
getReferenceBox: function()
{
return $("#refs");
},
/**
* Provides the x (left) and y (top) offsets to a given element. From QuirksMode (http://www.quirksmode.org/js/findpos.html), a freely available site by Peter-Paul Koch
* @param {Node} node any HTML node
* @return {Object} offsets to node, as object with left and top properties.
*/
getPosition: function(node)
{
var left = 0, top = 0;
do
{
left += node.offsetLeft;
top += node.offsetTop;
} while (node = node.offsetParent);
return {"left": left, "top": top};
},
/**
* Highlights a given length of text, at a particular index.
* @param {Number} startInd start index in Wikipedia edit box
* @param {Number} length length of string to highlight
* @return {Boolean} always true
*/
highlightLengthAtIndex: function(startInd, length)
{
if(startInd < 0 || length < 0)
{
this.log("highlightStringAtIndex: invalid negative arguments");
}
var box = this.getTextbox();
var origText = box.value;
var editTop = this.getPosition(box).top;
box.value = origText.substring(0, startInd);
box.focus();
box.scrollTop = 1000000; //Larger than any real textarea (hopefully)
var curScrollTop = box.scrollTop;
box.value += origText.substring(startInd);
if(curScrollTop > 0)
{
box.scrollTop = curScrollTop + this.HALF_EDIT_BOX_HEIGHT;
}
$(box).focus().textSelection('setSelection',
{
start: startInd,
end: startInd + length
});
editTop = this.getPosition(box).top;
window.scroll(0, editTop);
return true;
},
/**
* Highlights the first instance of a given string in the MediaWiki edit box.
* @param {String} targetStr the string in the edit box to highlight
* @return {Boolean} true if successful, false otherwise
*/
highlightTargetString: function(targetStr)
{
var origText = this.getTextboxText();
var startInd = origText.indexOf(targetStr);
if(startInd == -1)
{
this.log("Target string \"" + targetStr + "\" not found.");
return false;
}
return this.highlightLengthAtIndex(startInd, targetStr.length);
},
/**
* Convenience function. Returns the raw MediaWiki textarea element.
* @return {Node} the edit box element
*/
getTextbox: function()
{
return $("#wpTextbox1")[0];
},
/**
* Provides value of edit box with CR normalization
*
* @return {String} value of edit box with CRs stripped if document.selection exists
*/
getTextboxText: function()
{
var box = this.getTextbox();
var value = box.value;
if(!box.selectionStart && document.selection) // IE 8-like behavior
{
value = value.replace(/\r\n/g, "\n");
}
return value;
},
/**
* Returns raw edit form element, which contains MWEditBox, among other things.
* @return {Node} the edit form element
*/
getMWEditForm: function()
{
return $("#editform")[0];
},
/**
* Runs a given function on submission of edit form
* @param {Function} subFunc function to run on submission
*/
addOnsubmit: function(subFunc)
{
var form = this.getMWEditForm();
if(!form)
{
throw new Error("No edit form, possibly due to protected page.");
}
form.addEventListener("submit", subFunc, false);
},
/**
* Returns the raw MW edit summary element
* @return {Node} the edit summary element
*/
getSummary: function()
{
return $("#wpSummary")[0];
},
/**
* Keep track of whether we have already added an onsubmit function to include ProveIt in the summary.
* This guarantees the function will not be run twice.
* @type Boolean
*/
summaryFunctionAdded: false,
/**
* Does the user want us to ever add "Edited by ProveIt" summary?
* @type Boolean
*/
shouldAddSummary: true,
/**
* ProveIt should be visible on load (rather than requiring toolbar button click) on supported edit pages
* @type Boolean
*/
loadVisible: true,
/**
* Maximize ProveIt when it first becomes visible. If false, it will start minimized. This has no effect on when it becomes visible.
* @type Boolean
*/
loadMaximized: false,
/**
* Specifies to include ProveIt edit summary on next save.
* Can be disabled by modifying shouldAddSummary
*/
includeProveItEditSummary: function()
{
if(this.shouldAddSummary && !this.summaryFunctionAdded)
{
try
{
var thisproveit = this;
this.addOnsubmit(function()
{
var summary = thisproveit.getSummary();
if(summary.value.indexOf("ProveIt") == -1)
{
summary.value += " (edited with [[User:ProveIt_GT|ProveIt]])";
}
});
this.summaryFunctionAdded = true;
}
catch(e)
{
this.log("Failed to add onsubmit handler. e.message: " + e.message);
}
}
},
/**
* Setup button so users can load ProveIt on demand
*/
setupButton: function()
{
var $box = $(this.getTextbox());
// Ensures wikiEditor is loaded
$box.on('wikiEditor-toolbar-buildSection-main', function(event, section)
{
delete section.groups.insert.tools.reference;
section.groups.insert.tools.proveit = {
label: 'ProveIt',
type: 'button',
icon: '//thumb.wikimedia.org/wikipedia/commons/thumb/1/19/ProveIt_logo_for_user_boxes.svg/22px-ProveIt_logo_for_user_boxes.svg.png',
action: {
type: 'callback',
execute: function()
{
proveit.toggleVisibility();
}
}
};
});
},
/**
* Sets up ProveIt if we're on an edit page. This includes setting up the toolbar button. Depending on configuration and the current page, it may also call load to show ProveIt.
*/
setup: function()
{
if(this.isEditPage())
{
if(this.loadVisible && this.isSupportedPage())
{
this.load();
}
this.setupButton();
}
},
/**
* Loads dependencies and creates GUI
*/
load: function()
{
$(function() {
var dependencies = ['jquery.ui', 'jquery.textSelection', 'mediawiki.util'];
var preference = proveit.getDatePreference();
proveit.dateFormatter = new proveit.DateFormatter(preference);
mw.loader.using(dependencies, function() {
try {
proveit.createGUI();
if(proveit.loadMaximized)
{
proveit.toggleViewAddVisibility();
}
}
catch(ex) {
proveit.logException(ex);
}
}, function(ex, errorDependencies) {
proveit.log('Failed to load one of: ', errorDependencies);
});
});
},
/**
* Clears the refBox of refBoxRows, except for dummy rows.
* @return {Boolean} false if refBox wasn't found
*/
clearRefBox: function()
{
var box = this.getReferenceBox();
if(box == null)
{
this.log("Ref box is not loaded yet.");
return false;
}
$("tr:not('tr#dummyRef')", box).remove();
return true;
},
/** Inserts ref text into MW edit box.
* @param {String} ref Reference text to insert
* @param {Boolean} full Insert the full reference text if true, citation otherwise.
* @return {Boolean} false if errors
*/
insertRefIntoMWEditBox: function(ref, full)
{
var txtarea = this.getTextbox();
if(!txtarea)
{
this.log("insertRefIntoMWEditBox: txtarea is null");
return false;
}
txtarea = $(txtarea);
var insertionText = ref.getInsertionText(full);
// Replace existing selection (if any), then scroll
txtarea.textSelection('encapsulateSelection',
{
peri: insertionText,
replace: true
});
var caretPos = txtarea.textSelection('getCaretPosition', {startAndEnd: true});
// This is slightly redundant. It is called primarily for the scrollig workaround
this.highlightLengthAtIndex(caretPos[0], caretPos[1] - caretPos[0]);
this.includeProveItEditSummary();
},
/**
* Modifies reference object from user-edited GUI. The reference object is mutated in place, so the return value is only for convenience.
*
* @param {Node} editPane the raw element of the editPane
* @param {AbstractReference} ref the original citation object we're modifying
*
* @return {AbstractReference} same ref that was passed in
*/
changeRefFromEditPane: function(ref, editPane)
{
var paramBoxes = $(editPane).find("div.input-row");
var refName = $('#editrefname').val();
ref.name = refName != "" ? refName : null; // Save blank names as null
// Clear old params
ref.params = {};
var paramName, paramVal;
for (var i = 0; i < paramBoxes.length; i++)
{
var paramRow = paramBoxes[i];
var valueTextbox = $(paramRow).find(".paramvalue")[0];
if($(paramRow).hasClass("addedrow")) // Added with "Add another field"
{
paramName = $.trim($(paramRow).find(".paramdesc")[0].value);
}
else
{
paramName = valueTextbox.id.substring(this.EDIT_PARAM_PREFIX.length);
}
this.log("paramName: " + paramName);
paramVal = $.trim(valueTextbox.value);
this.log("paramVal: " + paramVal);
if (paramName != "" && paramVal != "")
{
ref.params[paramName] = paramVal;
}
}
if (ref.toString() != ref.orig)
{
ref.save = false;
}
ref.update();
return ref;
},
/**
* Creates refBoxRow, updates numbering for all refBoxRows, replaces old refBoxRow with new one, and updates ref text in MWEditBox.
* @param {AbstractReference} ref the ref we want to save.
*/
saveRefFromEdit: function(ref)
{
if(!ref.save)
{
var newRichItem = this.makeReferenceBoxRow(ref, true);
var oldRichItem = $('.selected', this.getReferenceBox()).get(0);
var oldNumber = $('td.number', oldRichItem).text();
$('td.number', newRichItem).text(oldNumber); // preserve old numbering
oldRichItem.parentNode.replaceChild(newRichItem, oldRichItem);
$(newRichItem).addClass('selected');
ref.updateInText();
this.includeProveItEditSummary();
}
},
/**
* Updates the edit pane when you choose a reference to edit.
* @param {AbstractReference} ref the ref that was chosen.
*/
updateEditPane: function(ref)
{
$('#editrefname').val(ref.name || "");
// Don't contaminate actual object with junk params.
var tempParams = {};
for(var param in ref.params) {
tempParams[param] = ref.params[param];
}
// Add default params with blank values.
var defaults = ref.getDefaultParams();
for(var i = 0; i < defaults.length; i++)
{
if(!tempParams[defaults[i]])
{
tempParams[defaults[i]] = "";
}
}
var required = ref.getRequiredParams();
var paramNames = [];
for(var item in tempParams) //First run through just to get names.
{
paramNames.push(item);
}
var sorter = ref.getSorter();
if(sorter)
{
paramNames.sort(sorter);
}
else
{
paramNames.sort();
}
/* Sort them to provide consistent interface. Uses custom sort order (which is easily tweaked)
where possible.
Javascript does destructive sorting, which in this case, is convenient...
*/
$('#edit-fields').children('.paramlist').children().remove('div:not(.hidden)'); // clear all fields in the edit box (except the hidden ones)
for(var j = 0; j < paramNames.length; j++)
{
this.addPaneRow($("#edit-pane").get(), tempParams, this.getDescriptions(), paramNames[j], required[paramNames[j]], true);
}
var acceptButton = $('#edit-buttons .accept');
var acceptEdit = function()
{
proveit.changeRefFromEditPane(ref, $("#edit-pane").get());
proveit.saveRefFromEdit(ref);
$("#edit-pane").hide();
$("#view-pane").show();
};
// Without setTimeout, scoll reset doesn't work in Firefox.
setTimeout(function()
{
// Reset scroll
$('#edit-fields').scrollTop(0);
}, 0);
acceptButton.off('click.proveit').on('click.proveit', acceptEdit);
},
/**
* Add a row to an editPane or addPane.
* @param {Node} root root element for pane
* @param {Object} params the param object from the reference, or null for added rows.
* @param {Object} descs description object to use, or null for no description
* @param {String} item the current param name
* @param {Boolean} req true if current param name is required, otherwise not required.
* @param {Boolean} fieldType true for label, false for textbox.
*/
addPaneRow: function(root, params, descs, item, req, fieldType)
{
var id = fieldType ? "preloadedparamrow" : "addedparamrow";
var newline = $('#'+id).clone(); // clone the hidden row
$(newline).attr('id',''); // clear the ID (can't have two elements with same ID)
//this.activateRemoveField(newline);
var paramName = $('.paramdesc', newline).eq(0);
var paramValue = $('.paramvalue', newline).eq(0);
$('.paramlist', root).append(newline);
if(req) // if field is required...
{
$(paramName).addClass('required'); // visual indicator that label is required
$('.delete-field', newline).remove(); // don't let people remove required fields
}
else
{
this.activateRemoveField(newline);
}
if(fieldType) // the description/name is a label (not a textbox)
{
paramName.attr("for", this.EDIT_PARAM_PREFIX + item);
paramValue.attr('id',this.EDIT_PARAM_PREFIX + item);
var desc = descs[item];
if(!desc)
{
this.log("Undefined description for param: " + item + ". Using directly as description.");
desc = item;
}
$(paramName).text(desc).attr('title', item);
$(paramValue).val(params[item]);
}
else
{
// added a new row, so make it fancy
$(newline).show('highlight',{},'slow');
$('.inputs', root).scrollTop(100000);
}
},
/*
* these are the current style and insert values to denote which one is
* currently active
*/
/**
* true signifies cite-style references, citation-style otherwise. Used when creating a reference.
* @type Boolean
*/
togglestyle: true,
// TODO: This should be eliminated if only name only inserts are allowed.
/** true signifies full references, name-only otherwise. Used when inserting.
* Note that new references are always inserted in full.
*
* @type Boolean
*/
toggleinsert: false,
/* Cross-Browser Split 1.0.1
(c) Steven Levithan <stevenlevithan.com>; MIT License
http://blog.stevenlevithan.com/archives/cross-browser-split
An ECMA-compliant, uniform cross-browser split method
*/
/**
* Cross-browser implementation of ECMAScript String.prototype.split function.
*
* @param {String} str input string to split
* @param separator separator to split on, as RegExp or String
* @param {Number} limit limit on number of splits. If the parameter is absent, no limit is imposed.
* @return {Array} array resulting from split
*/
split: function (str, separator, limit)
{
// if `separator` is not a regex, use the native `split`
if (Object.prototype.toString.call(separator) !== "[object RegExp]") {
return proveit.split._nativeSplit.call(str, separator, limit);
}
var output = [],
lastLastIndex = 0,
flags = (separator.ignoreCase ? "i" : "") +
(separator.multiline ? "m" : "") +
(separator.sticky ? "y" : ""),
separator = RegExp(separator.source, flags + "g"), // make `global` and avoid `lastIndex` issues by working with a copy
separator2, match, lastIndex, lastLength;
str = str + ""; // type conversion
if (!proveit.split._compliantExecNpcg) {
separator2 = RegExp("^" + separator.source + "$(?!\\s)", flags); // doesn't need /g or /y, but they don't hurt
}
/* behavior for `limit`: if it's...
- `undefined`: no limit.
- `NaN` or zero: return an empty array.
- a positive number: use `Math.floor(limit)`.
- a negative number: no limit.
- other: type-convert, then use the above rules. */
if (limit === undefined || +limit < 0) {
limit = Infinity;
} else {
limit = Math.floor(+limit);
if (!limit) {
return [];
}
}
while (match = separator.exec(str)) {
lastIndex = match.index + match[0].length; // `separator.lastIndex` is not reliable cross-browser
if (lastIndex > lastLastIndex) {
output.push(str.slice(lastLastIndex, match.index));
// fix browsers whose `exec` methods don't consistently return `undefined` for nonparticipating capturing groups
if (!proveit.split._compliantExecNpcg && match.length > 1) {
match[0].replace(separator2, function () {
for (var i = 1; i < arguments.length - 2; i++) {
if (arguments[i] === undefined) {
match[i] = undefined;
}
}
});
}
if (match.length > 1 && match.index < str.length) {
Array.prototype.push.apply(output, match.slice(1));
}
lastLength = match[0].length;
lastLastIndex = lastIndex;
if (output.length >= limit) {
break;
}
}
if (separator.lastIndex === match.index) {
separator.lastIndex++; // avoid an infinite loop
}
}
if (lastLastIndex === str.length) {
if (lastLength || !separator.test("")) {
output.push("");
}
} else {
output.push(str.slice(lastLastIndex));
}
return output.length > limit ? output.slice(0, limit) : output;
},
// TODO: Remove the split code, and just use a regular regex (with two main groups for name and val), iteratively. Regex.find? Make name and val indices match, and rework calling code as needed. Also, check how this was done in the original code.
/**
* Overly clever regex to parse template string (e.g. |last=Smith|first=John|title=My Life Story) into name and value pairs.
*
* names is an array of all names, and values is an array of all values. They have equal lengths.
*
* @param {String} workingString template string to parse.
* @return {Object} object with two properties, names and values.
*/
splitKeysAndValues: function (workingString)
{
var split = {};
// The first component is "ordinary" text (no pipes), while the second is a correctly balanced wikilink, with optional pipe. Any combination of the two can appear.
split.names = proveit.split(workingString.substring(workingString.indexOf("|") + 1), /=(?:[^|]*?(?:\[\[[^|\]]*(?:\|(?:[^|\]]*))?\]\])?)+(?:\||\}\})/);
split.names.length--; // Remove single empty element at end
split.values = proveit.split(workingString.substring(workingString.indexOf("=") + 1, workingString.indexOf("}}")), /\|[^|=]*=/);
return split;
},
/**
* Scan for references in the MWEditBox, and create a reference object and refBoxRow for each.
*/
scanForReferences: function()
{
// these are strings used to allow the correct parsing of the ref
var workingstring;
var cutupstring;
this.clearRefBox();
var textValue = this.getTextboxText();
// since we should pick the name out before we get to the reference type, here's a variable to hold it
var name;
// key - name
// value -
// object - key - "reference", value - reference obj . Avoids repeating same object in references array.
// key - "strings", value - array of orig strings
var citations = {};
// Array of reference objects. At end of function, addNewElement called on each.
var references = [];
// allRefs should count opening refs, but not ref citation (not <ref name="..."" />)
var allRefs = textValue.match(/<[\s]*ref[^\/>]*>/gi);
// currentScan holds the parsed (match objects) list of references. Regex matches full or name-only reference.
var currentScan = textValue.match(/<[\s]*ref[^>]*>(?:[^<]*<[\s]*\/[\s]*ref[\s]*>)?/gi); // [^<]* doesn't handle embedded HTML tags (or comments) correctly.
// if there are results,
if (currentScan)
{
for (var i = 0; i < currentScan.length; i++)
{
var reference = this.makeReference(currentScan[i]);
if(reference) // Full reference object
{
name = reference.name;
if(!name) // with no name, no possibility of repeat name.
{
references.push(reference);
}
}
else // Not full reference. Possibly citation.
{
var match = currentScan[i].match(this.REF_REGEX);
name = match && (match[1] || match[2] || match[3]);
}
if(name)
{
if(!citations[name])
{
// Create array of original reference strings
citations[name] = {};
if(!citations[name].strings)
{
citations[name].strings = [];
}
}
if(reference && !citations[name].reference) // reference, and not already one for this name
{
citations[name].reference = reference;
references.push(reference);
}
// Add to array
citations[name].strings.push(currentScan[i]);
}
}
}
for(var j = 0; j < references.length; j++)
{
if(references[j].name)
{
var citation = citations[references[j].name];
references[j].setCitationStrings(citation.strings);
}
this.addNewElement(references[j]);
}
},
/**
* Regex for parsing any reference text.
* @type RegExp
*/
REF_REGEX: /<[\s]*ref[\s]*name[\s]*=[\s]*(?:(?:\"(.*?)\")|(?:\'(.*?)\')|(?:(.*?)))[\s]*\/?[\s]*>/,
/**
* Factory function for references. Takes text of a reference, and returns instance of the appropriate class.
* @param {String} refText reference string
* @return {AbstractReference} null if refText isn't a ref, otherwise the reference object
*/
makeReference: function(refText)
{
var isReference = /<[\s]*ref[^>]*>[^<]*\S[^<]*<[\s]*\/[\s]*ref[\s]*>/.test(refText); // Tests for reference (non-citation);
if(!isReference)
{
return null;
}
var citeFunction = refText.match(/{{[\s]*cite/i) ? this.CiteReference : refText.match(/{{[\s]*Citation/i) ? this.CitationReference : this.RawReference;
if(citeFunction != this.RawReference)
{
var workingstring = refText.match(/{{[\s]*(cite|Citation)[\s\S]*?}}/i)[0];
var match = refText.match(this.REF_REGEX);
if(match && match != null)
{
var name = match[1] || match[2] || match[3]; // 3 possibilities, corresponding to above regex, are <ref name="foo">, <ref name='bar'>, and <ref name=baz>
}
var cutupstring = workingstring.split(/\|/g);
// This little hack relies on the fact that 'e' appears first as the last letter of 'cite', and the type is next.
if(citeFunction == this.CiteReference)
{
var beforeBar = cutupstring[0];
var typeStart = beforeBar.toLowerCase().indexOf('e');
// First end curly brace
var rightCurly = beforeBar.indexOf('}');
// Usually, rightCurly will be -1. But this takes into account empty references like <ref>{{cite web}}</ref>
var typeEnd = rightCurly != -1 ? rightCurly : beforeBar.length;
// grab the type, then trim it.
var type = $.trim(beforeBar.substring(typeStart + 1, typeEnd));
}
}
// type may be undefined, but that's okay.
var citation = new citeFunction({"name": name, "type": type, "save": true, "inMWEditBox": true, "orig": refText});
if(citeFunction != this.RawReference)
{
var split = this.splitKeysAndValues(workingstring);
var names = split.names;
var values = split.values;
for (var j = 0; j < names.length; j++)
{
/* Drop blank space, and |'s without params, which are never correct for
citation templates.*/
var paramName = $.trim(names[j]).replace(/(?:\s*\|)*(.*)/, "$1");
var paramVal = $.trim(values[j]);
// Should there be a setParam function? It could handle empty values, and even drop (siliently or otherwise) invalid parameters. Alternatively, should params be passed in the constructor?
if (paramVal != "")
{
citation.params[paramName] = paramVal;
}
}
}
return citation;
},
// TODO: Use https://gerrit.wikimedia.org/r/#/c/67166/ when merged.
/**
* Date-formatting class
*
* @param {String} format one of the format strings supported by MW core.
* Currently, the supported values are 'default', 'mdy', 'dmy', 'ymd', and 'ISO 8601'.
* If an unknown value is passed, it will use wgDefaultDateFormat.
*/
DateFormatter: function (format) {
// 1-indexed (due to filler item at 0), in page content language.
var monthNames = mw.config.get('wgMonthNames');
var supportedFormats = ['mdy', 'dmy', 'ymd', 'ISO 8601'];
if($.inArray(format, supportedFormats) === -1) {
format = mw.config.get('wgDefaultDateFormat');
}
function getMonthName(date) {
return monthNames[date.getMonth() + 1];
}
this.formatAsMdy = function(date) {
return getMonthName(date) + ' ' + date.getDate() + ', ' + date.getFullYear();
};
this.formatAsDmy = function(date) {
return date.getDate() + ' ' + getMonthName(date) + ' ' + date.getFullYear();
};
this.formatAsYmd = function(date) {
return date.getFullYear() + ' ' + getMonthName(date) + ' ' + date.getDate();
};
this.formatAsISO8601 = function(date) {
return date.getFullYear() + '-' +
(date.getMonth() < 9 ? '0' : '') + (date.getMonth() + 1) + '-' +
(date.getDate() < 10 ? '0' : '') + date.getDate();
};
var formatters = {
mdy: this.formatAsMdy,
dmy: this.formatAsDmy,
ymd: this.formatAsYmd,
'ISO 8601': this.formatAsISO8601
};
/**
* Formats date according to stored preference
*
* @param {Date} date date to format
*
* @return {String} formatted date as String
*/
this.format = function(date) {
return formatters[format](date);
};
},
/**
* Root reference type. Parent of RawReference, CiteReference, and CitationReference.
* @class AbstractReference
* @for proveit
* @constructor
* @param {Object} argObj argument object with keys for each option
*/
AbstractReference: function(argObj)
{
// CiteReference has a non-trivial override of this. This is defined early (and conditionally) because it is used in the constructor.
if(!this.setType)
{
/**
* @param {String} type type of reference
*/
this.setType = function(type)
{
this.type = type;
};
}
/**
* Update citation strings after changing reference. This runs after modifying a reference's fields (name, params), but before changing orig
*/
this.update = function()
{
var newCiteText = this.toString();
var strings = this.getCitationStrings();
/*
* Update main citation in strings list.
*
* TODO:
* Use strings array here to find and update citations that are not main references. As is, they are orphaned.
* Both array and textbox should be updated.
* It may be enough to just set all non-main citations in text and array to this.getInsertionText(false).
* However, if they remove the name entirely (not recommended), that would be a problem.
*/
if(strings.length > 0) // This implies there was a name before
{
for(var i = 0; i < strings.length; i++)
{
// If we find the full citation as a citation, update to the new text.
if(strings[i] == this.orig)
{
// this.orig itself is updated in updateInText
strings[i] = newCiteText;
}
}
}
else if(this.name != null) // They have added a name, so we should have a main citation.
{
// Now that it has a name, it is a citation to itself.
strings.push(newCiteText);
}
};
/**
* <ref name /> for reference
* @type String
*/
this.name = argObj.name != "" ? argObj.name : null; // Save blank names as null
/*
type of reference, e.g. cite web, cite news. Also used (including for CitationReference objects) to determine default fields.
*/
this.setType(argObj.type);
//TODO: Re-examine whether both (or indeed either) of save or inMWEditBox are really necessary. Can it be determined from context?
/**
* flag to determine whether citation must be saved. false indicates "dirty" citation that has yet to be updated in text and metadata.
* @type Boolean
*/
this.save = argObj.save;
/**
* true if and only if the ref is in the MW edit box with the same value as this object's orig.
* @type Boolean
*/
this.inMWEditBox = argObj.inMWEditBox;
/**
* original wikitext for reference
* @type String
*/
this.orig = argObj.orig;
/**
* mapping of parameter names to values
* @type Object
*/
this.params = {};
/**
* Convenience method. Returns sorter for parameters.
* @return {Function} sorter for parameters
*/
this.getSorter = function()
{
var thisCite = this; // Make closure work as intended.
// Sorter uses paramSortKey first, then falls back on alphabetical order.
return function(paramA, paramB)
{
var aInd = thisCite.getSortIndex(paramA);
var bInd = thisCite.getSortIndex(paramB);
if(aInd != -1 && bInd != -1)
{
return aInd - bInd;
}
else
{
proveit.log('Parameter missing from getSortIndex, which causes the sort to be invalid. paramA: ', paramA, ', aInd: ', aInd, ', paramB: ', paramB, ', bInd: ', bInd);
if(paramA < paramB)
{
return -1;
}
else if(paramA == paramB)
{
return 0;
}
else
{
return 1;
}
}
};
};
/**
* Returns true if this reference is valid, false otherwise.
* Assume all AbstractReference objects are valid. Can be overridden in subtypes.
* @return {Boolean} AbstractReference.isValid always returns true
*/
this.isValid = function(){return true;};
/**
* Generates label for reference using title, author, etc.
* @return {String} the label that was generated
*/
this.getLabel = function()
{
var label = "";
if (this.params.author)
{
label = this.params.author + "; ";
}
else if (this.params.last)
{
label = this.params.last;
if (this.params.first)
{
label += ", " + this.params.first;
}
label += "; ";
}
if (this.params.title)
{
label += this.params.title;
}
if(label == "")
{
var value;
for (value in this.params)
{
break;
}
if(value) // There could be no parameters
{
label = value;
}
}
return label;
};
/**
* Gets insertion text (for edit box).
*
* TODO: Generate a regex object instead (getInsertionRegExp), so highlighting would not fail due to trivial changes (e.g. spacing).
* @param {Boolean} full If true, insert full text, otherwise ref name only
* @return {String} insertion text
*/
this.getInsertionText = function(full)
{
if(full)
{
return this.toString();
}
else
{
if(this.name)
{
return "<ref name=\"" + this.name + "\" />";
}
else
{
throw new Error("getInsertionText: ref.name is null");
}
}
};
/**
* Updates this reference in the edit box.
*/
this.updateInText = function()
{
var txtarea = proveit.getTextbox();
if (!txtarea || txtarea == null)
return;
txtarea.focus();
var text = proveit.getTextboxText();
text = text.replace(this.orig, this.toString());
// Do replacement in textarea.
txtarea.value = text;
// Baseline for future modifications
this.orig = this.toString();
this.save = true;
proveit.highlightTargetString(this.toString());
};
/**
* Internal helper method for toString.
* @param {String} template template for ref (currently "cite" or "Citation"
* @param {Boolean} includeType true to include this.type, false otherwise
* @return {String} string for current reference
*/
this.toStringInternal = function(template, includeType)
{
if(this.name)
{
var returnstring = "<ref name=\"" + this.name + "\">";
}
else
{
var returnstring = "<ref>";
}
returnstring += "{{" + template + (includeType ? " " + this.type : "");
for (var name in this.params)
{
returnstring += " | " + name + "=" + this.params[name];
}
returnstring += "}}</ref>";
return returnstring;
};
/**
* Array of citation strings for this reference.
* @type Array
*/
this.citationStrings = [];
/**
* Sets citationStrings to an array
* @param {Array} strings array of citation strings, not null
*/
this.setCitationStrings = function(strings)
{
this.citationStrings = strings;
};
/**
* Gets array of citationStrings.
* @return {Array} (possibly empty) array of citation strings. Will not return null.
*/
this.getCitationStrings = function()
{
return this.citationStrings;
};
/**
* Get icon URL for reference
* @return {String} icon URL
*/
this.getIcon = function()
{
return '//upload.wikimedia.org/wikipedia/commons/d/dd/Silk-Page_white.png';
};
},
/**
* Constructor for CiteReference type.
* @class CiteReference
* @for proveit
* @constructor
* @extends AbstractReference
* @param {Object} argObj the argument object, with keys for each option
*/
CiteReference: function(argObj)
{
/* This is basically a fast representation of the template redirects, along with
* self-mappings.
*/
var typeNameMappings =
{
web: "web",
book: "book",
journal: "journal",
conference: "conference",
encyclopedia: "encyclopedia",
news: "news",
newsgroup: "newsgroup",
paper: "journal",
"press release": "press release",
"pressrelease": "press release",
interview: "interview",
episode: "episode",
"AV media": "AV media",
DVD: "AV media",
audio: "AV media",
"av media": "AV media",
cd: "AV media",
dvd: "AV media",
media: "AV media",
movie: "AV media",
"music video": "AV media",
video: "AV media",
visual: "AV media"
};
// Sets the type (e.g. web for cite web), applying the mappings. This is up top because it is used in AbstractReference constructor.
this.setType = function(rawType)
{
var mappedType = typeNameMappings[rawType];
if(mappedType != null)
this.type = mappedType;
else
this.type = rawType; // Use naive type as fallback.
};
/**
* Returns the type for display purposes, based on description messages. For example, for "AV media" it currently returns "Audiovisual work".
*
* @return {String} type for display
*/
this.getTypeForDisplay = function()
{
return proveit.getDescriptions()[this.type];
};
proveit.AbstractReference.call(this, argObj);
// TODO: Should CiteReference.getSortIndex and CitationReference.getSortIndex be merged into AbstractCitation? Less fine-grained, but simpler to maintain.
/**
* Returns the sort index for a given parameter
* @param {String} param parameter name
* @return {Number} sort index if found, otherwise -1
*/
this.getSortIndex = function(param)
{
// This is the order fields will be displayed or outputted.
return $.inArray(param, [
"url",
"title",
"trans_title",
"encyclopedia",
"publisher",
"work",
"date",
"agency",
"accessdate",
"author",
"last",
"first",
"subject",
"subjectlink",
"inventor",
"editor",
"author2",
"last2",
"first2",
"subject2",
"subjectlink2",
"author3",
"last3",
"first3",
"subject3",
"subjectlink3",
"author4",
"last4",
"first4",
"subject4",
"author5",
"last5",
"first5",
"author6",
"last6",
"first6",
"author7",
"last7",
"first7",
"author8",
"last8",
"first8",
"author9",
"last9",
"first9",
"authorlink",
"coauthors",
"interviewer",
"cointerviewers",
"type",
"newsgroup",
"journal",
"booktitle",
"program",
"episodelink",
"series",
"serieslink",
"credits",
"network",
"station",
"callsign",
"city",
"airdate",
"began",
"ended",
"season",
"seriesno",
"number",
"minutes",
"transcript",
"transcripturl",
"people",
"year",
"month",
"article",
"contribution",
"format",
"medium",
"newspaper",
"conference",
"volume",
"edition",
"issue",
"location",
"pages",
"page",
"language",
"isbn",
"issn",
"oclc",
"doi",
"pmid",
"id",
"archiveurl",
"archivedate",
"deadurl",
"time",
"quote",
"ref"
]);
};
/**
* Returns this reference as a string.
* @return {String} reference as string
*/
this.toString = function()
{
return this.toStringInternal("cite", true);
};
// References without these parameters will be flagged in red.
// True indicates required (null, or undefined, means not required)
var requiredParams =
{
web: { "url": true, "title": true},
book: { "title": true },
journal: { "title": true },
conference: { "title": true },
encyclopedia: { "title": true, "encyclopedia": true },
news: { "title": true, "work": true, "date": true },
newsgroup: { "title": true },
"press release" : { "title": true },
interview: { "last": true }, // TODO: Interview requires last *or* subject. Currently, we can't represent that.
episode: { "title": true },
"AV media": { "title": true }
};
/**
* Return required parameters for this citation type.
* @return {Object} object with required parameters as keys and true as value; empty object for unknown type
*/
this.getRequiredParams = function()
{
var curReq = requiredParams[this.type];
if(curReq)
return curReq;
else
return {}; // Return empty object rather than null to avoid dereferencing null.
};
// These paramaters will be auto-suggested when editing.
var defaultParams =
{
web: [ "url", "title", "author", "accessdate", "work", "publisher", "date", "pages"],
book: [ "title", "author", "authorlink", "year", "isbn", "publisher", "location", "pages", "url" ],
journal: [ "title", "author", "journal", "volume", "issue", "year", "month", "pages", "url", "doi", "pmid" ],
conference: [ "conference", "title", "booktitle", "author", "editor", "year", "month", "url", "id", "accessdate", "location", "pages", "publisher" ],
encyclopedia: [ "title", "encyclopedia", "author", "editor", "accessdate", "edition", "year",
"publisher", "volume", "location", "pages" ],
news: [ "title", "author", "url", "work", "date", "accessdate", "pages", "location", "agency" ],
newsgroup: [ "title", "author", "date", "newsgroup", "id", "url", "accessdate" ],
"press release" : [ "title", "url", "publisher", "date", "accessdate" ],
interview: ["last", "first", "subjectlink", "interviewer", "title", "callsign", "city", "date", "program", "accessdate"],
episode: ["title", "series", "credits", "airdate", "city", "network", "season"],
"AV media": ["people", "date", "url", "title", "medium", "location", "publisher"]
};
/**
* Returns default parameters (to be suggested when editing) for current reference
* @return {Array} array of default parameter names; empty array if unknown
*/
this.getDefaultParams = function()
{
var curDefault = defaultParams[this.type];
if(curDefault)
return curDefault;
else
return []; // Return empty array rather than null to avoid dereferencing null.
};
this.isValid = function()
{
if(this.type == '')
{
return false;
}
var req = this.getRequiredParams();
var i = 0;
var allFound = true;
for(var reqParam in req)
{
/* Ignore parameters in req object that are null, undefined, or false.
They are not required. */
if(!req[reqParam])
continue;
allFound &= (reqParam in this.params);
if(!allFound)
break;
}
return allFound;
};
var iconMapping =
{
web: "//upload.wikimedia.org/wikipedia/commons/f/f0/Silk-Page_white_world.png",
book: "//upload.wikimedia.org/wikipedia/commons/1/1e/Silk-Book.png",
journal: "//upload.wikimedia.org/wikipedia/commons/f/f8/Silk-Page_white_text.png",
news: "//upload.wikimedia.org/wikipedia/commons/3/32/Silk-Newspaper.png",
newsgroup: "//upload.wikimedia.org/wikipedia/commons/5/5c/Silk-Comments.png",
"press release": "//upload.wikimedia.org/wikipedia/commons/b/bd/Silk-Transmit_blue.png",
interview: "//upload.wikimedia.org/wikipedia/commons/f/f7/Silk-Telephone.png",
episode: "//upload.wikimedia.org/wikipedia/commons/b/b2/Silk-Television.png",
"AV media": "//upload.wikimedia.org/wikipedia/commons/1/1a/Silk-film.png"
};
var superGetIcon = this.getIcon;
this.getIcon = function()
{
var icon = iconMapping[this.type];
if(icon)
{
return icon;
}
return superGetIcon.call(this);
};
},
/**
* A function for citation style refs.
* @class CitationReference
* @for proveit
* @constructor
* @extends AbstractReference
* @param {Object} argObj argument object with keys for each option
*/
CitationReference: function(argObj) {
proveit.AbstractReference.call(this, argObj);
// None currently required;
var requiredParams = {};
// These paramaters will be auto-suggested when editing.
var defaultParams =
{
web: [ "url", "author", "title", "date", "accessdate"],
news: [ "author", "title", "newspaper", "url", "publication-place", "volume", "issue", "date", "pages"],
encyclopedia: ["author", "editor", "contribution", "title", "publisher", "place", "year", "volume", "pages"],
book: ["author", "title", "publisher", "place", "year"],
journal: ["author", "title", "journal", "volume", "issue", "year", "pages"],
patent: ["inventor", "title", "issue-date", "patent-number", "country-code"]
};
/**
* Returns the sort index for a given parameter
* @param {String} param parameter name
* @return {Number} sort index if found, otherwise -1
*/
this.getSortIndex = function(param)
{
// This is the order fields will be displayed or outputted.
return $.inArray(param, [
"last",
"first",
"url",
"author",
"editor",
"contribution",
"author-link",
"last2",
"first2",
"author2-link",
"publication-date",
"inventor",
"title",
"issue-date",
"patent-number",
"country-code",
"journal",
"volume",
"newspaper",
"issue",
"date",
"publisher",
"place",
"year",
"edition",
"publication-place",
"series",
"version",
"pages",
"page",
"id",
"isbn",
"doi",
"oclc",
"accessdate"
]);
};
/**
* Returns this reference as a string.
* @return {String} reference as string
*/
this.toString = function()
{
return this.toStringInternal("Citation", false);
};
/**
* Return required parameters for this citation type.
* @return {Object} object with required parameters as keys and true as value; empty object for unknown type
*/
this.getRequiredParams = function()
{
return requiredParams;
};
/**
* Returns default parameters (to be suggested when editing) for current reference
* @return {Array} array of default parameter names; empty array if unknown
*/
this.getDefaultParams = function()
{
if(this.type)
{
return defaultParams[this.type];
}
else
{
return ["url", "title", "author", "date", "publisher"]; // Can't determine more specific defaults when editing a pre-existing Citation.
}
};
},
/**
* Constructor for RawReference type.
* @class RawReference
* @for proveit
* @constructor
* @extends AbstractReference
* @param {Object} argObj the argument object, with keys for each option
*/
RawReference: function(argObj)
{
proveit.AbstractReference.call(this, argObj);
this.type = 'raw';
/**
* Returns this reference as a string.
* @return {String} reference as string
*/
this.toString = function()
{
return this.orig;
};
this.params['title'] = this.orig;
this.getIcon = function()
{
return 'https://upload.wikimedia.org/wikipedia/commons/d/db/Silk-Page_white_code_red.png';
};
this.getTypeForDisplay = function()
{
return proveit.getDescriptions()['raw'];
};
},
// TODO: This should be unified with changeRefFromEditPane
/**
* Convert the current contents of the add citation panel to a reference (i.e CiteReference(), CitationReference())
* @for proveit
* @param {Node} box typepane root of add GUI (pane for specific type, e.g. journal)
* @return {AbstractReference} ref or null if no panel exists yet.
*/
getReferenceFromAddPane: function(box)
{
var $box = $(box);
var type = $box.data('proveitRefType');
// get <ref> name
var refName = $('#addrefname').val();
var citeFunc = this.togglestyle ? this.CiteReference : this.CitationReference;
var ref = new citeFunc({"name": refName, "type": type});
var paramName, paramVal;
var paramList = $(".paramlist", box)[0];
var paramRows = $('div', paramList);
for (var i = 0; i < paramRows.length; i++)
{
var paramRow = paramRows[i];
var valueTextbox = $(".paramvalue", paramRow)[0];
if($(paramRow).hasClass("addedrow")) // Added with "Add another field"
{
paramName = $.trim($(".paramdesc", paramRow)[0].value);
}
else
{
paramName = valueTextbox.id.substring(this.NEW_PARAM_PREFIX.length);
}
paramVal = $.trim(valueTextbox.value);
if(paramName != "" && paramVal != "")
{ // Non-blank
ref.params[paramName] = paramVal;
}
}
ref.update();
return ref;
},
/**
* Called from the add citation panel, this is the function used to
* add the actual citation.
*
* @param {AbstractReference} ref reference being added
*/
addReference: function(ref) {
// get this working, lots of typing here.
this.addNewElement(ref);
ref.orig = ref.toString();
/*
* Cycle through the boxes and grab the id's versus the values, watch
* for the final box and make sure to grab the type as well
*/
this.insertRefIntoMWEditBox(ref, true); // true means insert full text here, regardless of global toggle.
ref.save = true;
ref.inMWEditBox = true;
},
/**
* Clear all rows of passed in add citation panes.
* @param {Node} citePanes raw DOM element
*/
clearCitePanes: function(citePanes)
{
if(citePanes.hasChildNodes())
{
citePanes.removeChild(citePanes.firstChild);
}
},
/**
* Add event handler to Delete Field button in Add/Edit Reference panes
* @param {Node} fieldRow the fieldRow DOM element to remove
*/
activateRemoveField: function(fieldRow) {
$('.delete-field', fieldRow).click(function() {
$(fieldRow).hide(
'highlight',{},'slow',
function() {
$(fieldRow).remove();
}
);
});
},
/**
* Changes the panel for the add reference panel to the correct type of entry
* @param {Node} menu Raw HTML menu element
*/
changeAddPane: function(menu) {
// Reset scroll
$('#add-fields').scrollTop(0);
$(menu.parentNode).show(); // cite/citation vbox.
var citePanes = $(".addpanes", menu.parentNode.parentNode).get(0);
this.clearCitePanes(citePanes);
var newRefType = menu.value;
var genPane = document.getElementById("dummyCitePane").cloneNode(true);
var $genPane = $(genPane).attr('id', '');
$genPane.data('proveitRefType', newRefType);
// name the ref-name-row
$('.ref-name-row', $genPane).children('input').attr('id','addrefname');
$('.ref-name-row', $genPane).children('label').attr('for','addrefname');
// Somewhat hackish. What's a better way?
var newRef;
if(menu.id == "citemenu")
{
newRef = new this.CiteReference({});
}
else
{
newRef = new this.CitationReference({});
}
newRef.type = newRefType;
var descs = this.getDescriptions();
var defaultParams = newRef.getDefaultParams().slice(0); // copy
defaultParams.sort(newRef.getSorter());
//var required = newRef.getRequiredParams();
// Possibly, Cite objects should automatically include default parameters in their param maps. That would seem to make this simpler.
for(var i = 0; i < defaultParams.length; i++)
{
newRef.params[defaultParams[i]] = "";
}
// Should there be a getParamKeys or similar function for this, or even getSortedParamKeys?
var newParams = [];
for(param in newRef.params)
{
newParams.push(param);
}
newParams.sort(newRef.getSorter());
var required = newRef.getRequiredParams();
var paramList = $(".paramlist", $genPane)[0];
for(var i = 0; i < newParams.length; i++)
{
var param = newParams[i];
var paramBox;
if(descs[param])
{
paramBox = document.getElementById("preloadedparamrow").cloneNode(true);
var label = $('.paramdesc', paramBox);
if(required[param])
{
label.addClass("required");
$('.delete-field', paramBox).remove(); // don't let people remove required fields
}
else
{
this.activateRemoveField(paramBox);
}
label.text(descs[param]);
// Basically the same code as nameHbox above
label.attr("for", this.NEW_PARAM_PREFIX + param);
if(param == 'accessdate')
$('.paramvalue', paramBox).val(this.dateFormatter.format(new Date));
}
else
{
// Throwing an error here doesn't make sense if user-added fields can be copied over.
// throw new Error("Undefined description for param: " + param);
paramBox = document.getElementById("addedparamrow").cloneNode(true);
var nameTextbox = $(".paramdesc", paramBox)[0];
nameTextbox.setAttribute("value", param);
}
paramBox.id = "";
this.activateRemoveField(paramBox);
$(".paramvalue", paramBox)[0].id = this.NEW_PARAM_PREFIX + param;
//paramBox.childNodes[2].value = newRef.params[param]; // Causes parameters to disappear. Why?
paramList.appendChild(paramBox);
}
$(citePanes).prepend($genPane);
},
/**
* Creates and returns a hidden element holding the template elements
* (placeholder elements later cloned and filled with real data)
*
* @return {jQuery} $root Hidden root element holding templates
*/
createTemplateElement: function() {
var $root = $('<div>', {
id: 'proveit-templates'
});
// Dummy cite pane
var dummyCite = $('<div>', {
id: 'dummyCitePane',
"class": 'typepane'
});
var $addRefNameRow = this.createReferenceNameRow();
//$('input', $addRefNameRow).attr('id', 'addrefname');
//$('label', $addRefNameRow).attr('for', 'addrefname');
dummyCite.append($addRefNameRow);
dummyCite.append($('<div>', {"class": 'paramlist'}));
$root.append(dummyCite);
var preloadedparam = $('<div>', {
id: 'preloadedparamrow',
"class": 'preloadedrow input-row'
}).append($('<label>', {
"class": 'paramdesc'
}));
var paramvalue = $('<input>', {
"class": 'paramvalue',
tabindex: 0
});
preloadedparam.append(paramvalue);
var deleteButton = $('<button>', {
"class": 'delete-field',
tabindex: -1
}).text('delete field');
deleteButton.button({
icons: {
primary: 'ui-icon-close'
},
text: false
});
preloadedparam.append(deleteButton);
$root.append(preloadedparam);
var addedparam = $('<div>', {
id: 'addedparamrow',
"class": 'addedrow input-row'}).
append($('<input>', {
"class": 'paramdesc',
tabindex: 0
})).
append(paramvalue.clone()).
append(deleteButton.clone());
$root.append(addedparam);
return $root;
},
/**
* Creates a row to be used to input name attribute of the ref (<ref name="..." />)
*
* @return {jQuery} <ref> name row
*/
createReferenceNameRow: function() {
// div.ref-name-row
var $refNameRow = $('<div>', {
"class": 'ref-name-row',
tabindex: -1
});
var refLabel = $('<label>', {
"for": 'editrefname',
title: 'This is a unique identifier that can be used to refer to this reference elsewhere on the page.',
"class": 'paramdesc'
}).text('<ref> name');
$refNameRow.append(refLabel);
$refNameRow.append($('<input>', {
id: 'editrefname',
"class": 'paramvalue',
tabindex: 0
}));
return $refNameRow;
},
/**
* Create ProveIt HTML GUI
*/
createGUI: function()
{
if(this.getGUI().length > 0)
{
// GUI already created
return false;
}
// more JqueryUI CSS: http://blog.jqueryui.com/2009/06/jquery-ui-172/
var gui = $('<div>', {id: this.GUI_ID});
var $tabs = $('<div>', {id: 'proveit-tabs'});
var created = $('<h1>');
var createdLink = $('<a>').attr({title: 'Created by the ELC Lab at Georgia Tech',
href: 'http://proveit.cc.gatech.edu',
target: '_blank'});
// Main logo in upper-right
var logo = $('<img>' ).attr( {src: 'https://upload.wikimedia.org/wikipedia/commons/0/0d/ProveIt_user_interface_logo.png', alt: 'ProveIt', height: 30, width: 118 } );
createdLink.append(logo);
created.append(createdLink);
// Minimize/maximize button
var showHideButton = $('<button>', {
id: 'proveit-show-hide-toggle'
} ).text('show/hide');
created.append(showHideButton);
$tabs.append(created);
var header = $('<ul>');
var view = $('<li>');
// View tab link
var viewTab = $('<a/>', {id: 'proveit-view-tab', "class": 'tab-link', href: '#proveit-view-edit-panel'}).text('References (');
var numRefs = $('<span>').attr({id: 'numRefs'}).text('0');
viewTab.append(numRefs, ')');
view.append(viewTab);
header.append(view);
var add = $('<li>');
// Add tab link
var addTab = $('<a>').attr({id: 'proveit-add-tab', "class": 'tab-link', href: '#proveit-add-panel'}).text('Add a Reference');
add.append(addTab);
header.append(add);
$tabs.append(header);
// View and edit panel
var viewEditPanel = $('<div>', {id: 'proveit-view-edit-panel'});
// View pane used for displaying references; within view tab
var viewPane = $('<div>', {id: 'view-pane'});
var viewScroll = $('<div>', {"class": 'scroll',
style: 'height: 210px;'});
// Ref list root element
var refTable = $('<table>', {id: 'refs'});
var dummyRef = $('<tr>', {id: 'dummyRef',
style: 'display: none;'});
dummyRef.append($('<td>', {"class": 'number'})).
append($('<td>', {"class": 'type'})).
append($('<td>', {"class": 'title'}));
//append($('<td>', {"class": 'details'}));
var editTd = $('<td>', {"class": 'edit'}).
append($('<button>', {text: 'edit'}));
dummyRef.append(editTd);
refTable.append(dummyRef);
viewScroll.append(refTable);
viewPane.append(viewScroll);
viewEditPanel.append(viewPane);
// div#edit-pane, within view tab
var editPane = $('<div>', {id: 'edit-pane', style: 'display: none'});
// div#edit-fields
var editFields = $('<div>', {id: 'edit-fields',
"class": 'inputs scroll',
style: 'height: 170px',
tabindex: -1});
var refNameRow = this.createReferenceNameRow();
// div.paramlist
var paramList = $('<div/>', {"class": 'paramlist'});
editFields.append(refNameRow);
editFields.append(paramList);
editPane.append(editFields);
// div#edit-buttons, part of edit pane
var editButtons = $('<div/>', {id: 'edit-buttons'});
var addFieldButton = $('<button/>', {style: 'margin-right: 50px;'}).
append('add field');
editButtons.append(addFieldButton);
var reqSpan = $('<span/>', {"class": 'required',
text: 'bold'});
editButtons.append(reqSpan).
append(' = required field');
var saveButton = $('<button/>', {"class": 'right-side accept',
text: 'update edit form'});
editButtons.append(saveButton);
var cancelButton = $('<button/>', {"class": 'right-side cancel',
text: 'cancel'});
editButtons.append(cancelButton);
editPane.append(editButtons);
viewEditPanel.append(editPane);
$tabs.append(viewEditPanel);
// Add panel
var addPanel = $('<div/>', {id: 'proveit-add-panel'});
var addFields = $('<div/>', {id: 'add-fields',
"class": 'inputs scroll',
style: 'height: 170px',
tabindex: -1});
var cite = $('<div/>', {style: 'display: none',
id: 'cite',
"class": 'input-row'});
var refCiteTypeLabel = $('<label/>', {'for': 'citemenu',
"class": 'paramdesc required',
text: 'Reference type'});
cite.append(refCiteTypeLabel);
var citemenu = $('<select/>', {id: 'citemenu',
change: function()
{
proveit.changeAddPane(citemenu.get(0));
}});
var citeTypes = this.CiteReference.getTypes();
var descs = this.getDescriptions();
for(var i = 0; i < citeTypes.length; i++)
{
citemenu.append($('<option/>', {value: citeTypes[i],
text: descs[citeTypes[i]]}));
}
cite.append(citemenu);
addFields.append(cite);
addFields.append($('<div/>', {"class": 'addpanes',
id: 'citepanes',
tabindex: -1}));
var citation = $('<div/>', {style: 'display: none',
id: 'citation',
"class": 'input-row'});
var refCitationTypeLabel = refCiteTypeLabel.clone().attr('for', 'citationmenu');
citation.append(refCitationTypeLabel);
var citationmenu = $('<select/>', {id: 'citemenu',
change: function()
{
proveit.changeAddPane(citationmenu.get(0));
}});
var citationTypes = ['web', 'book', 'journal', 'encyclopedia', 'news', 'patent'];
for(var j = 0; j < citationTypes.length; j++)
{
citationmenu.append($('<option/>', {value: citationTypes[i],
text: descs[citationTypes[i]]}));
}
citation.append(citationmenu);
addFields.append(citation).
append($('<div/>', {"class": 'addpanes',
id: 'citationpanes', style: 'display: none;'}));
addPanel.append(addFields);
// Add buttons, part of add tab
var addButtons = $('<div/>', {id: 'add-buttons'});
addButtons.append($('<button/>', {style: 'margin-right: 50px;',
text: 'add field'})).
append(reqSpan.clone()).
append(" = required").
append(saveButton.clone().text('insert into edit form')).
append(cancelButton.clone());
addPanel.append(addButtons);
$tabs.append(addPanel);
gui.append($tabs);
$(document.body).prepend(gui);
var cancelEdit = function() {
$("#edit-pane").hide();
$("#view-pane").show();
};
// set up tabs
$tabs.tabs({
collapsible: true,
active: false, // Initially all collapsed
beforeActivate: function(event, ui)
{
// TODO: Select just-added item in reference list, upon moving from add tab to view tab
// Is this event caused by a click on a tab?
var isClickOnTab = event.currentTarget && $(event.currentTarget).is('.tab-link');
// Moving to add (including maximizing)
if(ui.newPanel.is(addPanel))
{
cancelEdit();
proveit.changeAddPane(document.getElementById(proveit.togglestyle ? 'citemenu' : 'citationmenu'));
}
if(ui.newPanel.length === 0)
{
if(isClickOnTab)
{
// Don't allow collapsing by clicking a tab.
event.preventDefault();
// Clicked view tab when either view or edit was showing
if(ui.oldPanel.is(viewEditPanel))
{
// Cancel the edit and show reference list
cancelEdit();
}
} else
{
// They clicked the show/hide button; let it collapse and update the icon.
showHideButton.button("option", "icons", { primary: 'ui-icon-triangle-1-n' } );
}
} else
{
// There is a visible new panel; update the icon.
showHideButton.button("option", "icons", { primary: 'ui-icon-triangle-1-s' } );
}
}
});
// add panel buttons
$("#add-buttons button:first").button({
icons: {
primary: 'ui-icon-circle-plus'
}
}).click(function()
{
proveit.addPaneRow(document.getElementById("proveit-add-panel"));
})
.next().next().button({
icons: {
primary: 'ui-icon-circle-check',
secondary: 'ui-icon-circle-arrow-e'
}
}).click(function()
{
proveit.addReference(proveit.getReferenceFromAddPane($('#proveit-add-panel .typepane').get(0)));
$tabs.tabs( { active: 0 } ); // Activate view panel
$("div.scroll, #view-pane").scrollTop(100000); // scroll to new ref
}).next().
button({
icons: {
primary: 'ui-icon-circle-close'
}
}).click(function()
{
$tabs.tabs( { active: 0 } ); // Activate view panel
});
// cancel buttons
$("button.cancel").click(cancelEdit);
// edit panel buttons
$("#edit-buttons button:first").button({
icons: {
primary: 'ui-icon-circle-plus'
}
}).click(function()
{
proveit.addPaneRow($("#edit-pane"));
}).
next().next().
button({
icons: {
primary: 'ui-icon-circle-check'
}
}).next().button({
icons: {
primary: 'ui-icon-circle-close'
}
});
// create the minimize button
showHideButton.button({
icons: {
primary: 'ui-icon-triangle-1-n'
},
text: false
});
var viewAndAdd = $(viewEditPanel).add(addPanel);
this.viewAndAddPanes = viewAndAdd;
var prevActiveTabPaneIndex = 0;
function minimize()
{
prevActiveTabPaneIndex = $tabs.tabs('option', 'active');
// Collapse all tabs
$tabs.tabs('option', 'active', false);
}
function maximize()
{
$tabs.tabs('option', 'active', prevActiveTabPaneIndex);
}
this.toggleViewAddVisibility = function()
{
// All tabs collapsed
if($tabs.tabs('option', 'active') === false) {
maximize();
} else {
minimize();
}
};
showHideButton.click(this.toggleViewAddVisibility);
this.scanForReferences();
$("#refs tr").eq(0).click().click(); // select first item in list. TODO: Why two .click?
// alternate row colors
$("#refs tr:even").addClass('light');
$("#refs tr:odd").addClass('dark');
gui.append(this.createTemplateElement());
},
/**
* A reference to the set containing two items, the view and add tabs. Will be initialized by createGUI, so it is non-null if ProveIt is visible
*
* @type {$NodeSet}
*/
viewAndAddPanes: null,
/*
* Gets jQuery set for ProveIt GUI, which will be empty if ProveIt has not initialized
*
* @return {$Node} root of ProveIt
*/
getGUI: function()
{
return $('#' + this.GUI_ID);
},
/**
* Hides ProveIt completely
*/
hide: function()
{
this.getGUI().hide();
},
/**
* Show ProveIt
*/
show: function()
{
this.createGUI();
this.getGUI().show();
},
/**
* Toggle overall visiblility. If currently hidden, go to minimized. If minimized, maximize. If maximize, hide
*/
toggleVisibility: function()
{
if(this.getGUI().is(':visible'))
{
if(this.viewAndAddPanes.is(':visible')) // maximized
{
this.hide();
}
/*
* If previously maximized, we minimize after hiding, so when we show, it will already be minimized.
* If minimized, we maximize
*/
this.toggleViewAddVisibility();
}
else
{
this.show();
}
},
/**
* Toggle visibility of view and add panes. Initialized by createGUI
*
* @method toggleViewAddVisibility
*/
toggleViewAddVisibility: null,
/**
* Generates refbox row and all children, to be used by addNewElement, and when updating
*
* @param {AbstractReference} ref reference to generate from
* @param {Boolean} isReplacement if true, this replaces another refbox item, so no number will be assigned, and the count will not be updated.
* @return {Node} new refbox row for refbox
*/
makeReferenceBoxRow: function(ref, isReplacement)
{
var refName = ref.name; //may be null or blank
//var refbox = this.getReferenceBox();
var newchild = $('<tr><td class="number"></td><td class="type"></td><td class="title"></td><td class="edit"></td></tr>').get(0);
// removed <span class="pointers"></span>
// removed <td class="details"></td>
if(!ref.isValid())
{
// Flag as invalid.
$(newchild).addClass('invalid');
}
// grab the nodes that need changed out of it
var neweditimage = $('.edit button', newchild).get(0);
var thisproveit = this;
var title = '';
var shortTitle = '';
if(ref.params['title'] != null)
{
title = ref.params['title'];
shortTitle = this.truncateTitle(title);
}
$('td.title', newchild).text(shortTitle);
$('td.title', newchild).attr('title', title);
// deal with variations of date info
var formattedYear = '';
if(ref.params['year'])
formattedYear = ref.params['year'];
else if (ref.params['date'])
{
var yearMatch = ref.params['date'].match(/^([12]\d{3})/);
if(yearMatch)
{
formattedYear = yearMatch[1];
}
}
//$('td.year', newchild).text(formattedYear);
// deal with variations of author info
var formattedAuthor = '';
if(ref.params['author'])
formattedAuthor = ref.params['author'];
else if (ref.params['last'])
{
// if(ref.params['first'])
// formattedAuthor = ref.params['last'] + ', ' + ref.params['first'];
// else
formattedAuthor = ref.params['last'];
}
if(ref.params['coauthors'] || ref.params['last2'])
formattedAuthor += ' <i>et al.</i>';
// build the "details" cell based on presence of author/year data
// var details = '';
// if (formattedYear != '' && formattedAuthor != '')
// details = '(' + formattedAuthor + ', ' + formattedYear + ')';
// else if (formattedYear != '')
// details = '(' + formattedYear + ')';
// else if (formattedAuthor != '')
// details = '(' + formattedAuthor + ')';
// $('td.details', newchild).html(details);
// generate a URL based on ref type
var icon = ref.getIcon(), url = '', refType = ref.type;
switch(refType)
{
case 'web':
url = ref.params['url'];
break;
case 'book':
if(ref.params['isbn'] != null)
url = mw.util.getUrl( 'Special:BookSources', { isbn: ref.params['isbn'] } );
break;
case 'journal':
case 'conference':
if(ref.params['doi'] != null)
url = 'http://dx.doi.org/' + ref.params['doi'];
break;
case 'news':
url = ref.params['url'];
break;
case 'episode':
url = 'http://www.imdb.com/find?s=ep&q=' + escape(ref.params['title']);
break;
}
$('td.type', newchild).css('background-image','url('+icon+')');
var authorByline = '', yearByline = '', refTypeByline = '';
if(formattedAuthor != '')
authorByline = 'By: <span class="author">' + formattedAuthor + '</span>';
if(formattedYear != '')
yearByline = 'Date: <span class="date">' + formattedYear + '</span>';
if(refType != null)
{
var displayType = ref.getTypeForDisplay(), formattedRefType = displayType;
$('td.type', newchild).attr('title', displayType);
if(url != '')
formattedRefType = '<a href="' + url + '" target="_blank">' + formattedRefType + '</a>';
refTypeByline = 'Type: <span class="type">' + formattedRefType + '</span>';
}
//alert("authorByline: " + authorByline + "\n yearByline: " + yearByline + "\n refTypeByline: " + refTypeByline);
var byline = '', separator = ' | ';
if(refType == 'raw')
{
byline = refTypeByline + separator + mw.html.escape(ref.toString());
}
else if(authorByline != '') // a??
{
if(yearByline != '') // ad?
{
if(refTypeByline != '') // adt
byline = authorByline + separator + yearByline + separator + refTypeByline;
else // ad-
byline = authorByline + separator + yearByline;
}
else // a-?
{
if(refTypeByline != '') // a-t
byline = authorByline + separator + refTypeByline;
else // a--
byline = authorByline;
}
}
else // -??
{
if(yearByline != '') // -d?
{
if(refTypeByline != '') // -dt
byline = yearByline + separator + refTypeByline;
else // -d-
byline = yearByline;
}
else // --?
{
if(refTypeByline != '') // --t
byline = refTypeByline;
// no need for ---
}
}
byline = '<p>' + byline + '</p>';
//alert(byline);
// create expanded <div>
var expanded = $('<div />',{
"class": 'expanded'
});
// append the infobar to the expanded info box
$(expanded).append(byline);
// append the expanded info box to the title <td>
$('td.title', newchild).append(expanded);
if(!isReplacement)
{
// get ref number by counting number of refs (this includes dummy ref, but not the one we're creating)
var numRefs = $('#refs tr').length;
$('td.number', newchild).text(numRefs);
$('#numRefs').text(numRefs); // update the number of refs in the view tab
}
// event handler for selecting a ref)
$(newchild).click(function() {
thisproveit.highlightTargetString(ref.orig);
//thisproveit.highlightTargetString(ref.orig);
$("#refs tr").removeClass('selected');
$(newchild).addClass('selected');
});
var doEdit = function() {
thisproveit.updateEditPane(ref);
$("#view-pane").hide();
$("#edit-pane").show();
};
var citationStrings = ref.getCitationStrings();
//var pointers = $('.pointers', newchild);
var allCitations = $('<span class="all-citations" />');
for(var i = 0; i < citationStrings.length; i++)
{
var dividend = i + 1;
var colName = "";
while(dividend > 0)
{
var mod = --dividend % 26;
colName = String.fromCharCode(97 + mod) + colName; // a = 97
dividend = Math.floor(dividend / 26);
}
var citationHolder = $('<a href="#">' + colName + '</a>');
// Bind i
var clickFunc = (function(i)
{
return function()
{
var last = 0, j = 0;
var text = proveit.getTextboxText();
for(j = 0; j < i; j++)
{
last = text.indexOf(citationStrings[j], last);
// Shouldn't happen. Indicates citation strings are out of date.
if(last == -1)
{
proveit.log("citationStrings[" + j + "]: " + citationStrings[j] + " not found. Returning.");
return false;
}
last += citationStrings[j].length;
}
var startInd = text.indexOf(citationStrings[i], last);
if(startInd == -1)
{
proveit.log("citationStrings[" + i + "]: " + citationStrings[i] + " not found.");
}
else
{
proveit.highlightLengthAtIndex(startInd, citationStrings[i].length);
}
return false;
};
})(i);
citationHolder.click(clickFunc);
allCitations.append(citationHolder);
}
if(citationStrings.length > 1)
{
var newP = $('<p />');
newP.append('This reference is cited in the article <span class="num-citations">' + citationStrings.length + ' times</span>: ').append(allCitations);
expanded.append(newP);
}
// edit buttons
if(ref.type != 'raw')
{
// SMALL EDIT BUTTON
// create button
var smallEditBtn = $('<button />',{
text: 'edit'
});
// transform button
$(smallEditBtn).button({
icons: {
primary: 'ui-icon-pencil'
},
text: false
});
// button click event handler
smallEditBtn.click(doEdit);
// append button
$('.edit', newchild).append(smallEditBtn);
// LARGE EDIT BUTTON
// create button
var editBtn = $('<button />',{
"class": 'edit',
text: 'edit this reference'
});
// transform button
$(editBtn).button({
icons: {
primary: 'ui-icon-pencil'
},
text: true
});
// button click event handler
editBtn.click(doEdit);
// append button
expanded.append(editBtn);
// ROW EVENT HANDLER
$(newchild).dblclick(doEdit);
}
else
{
// needed to keep all rows the same height
$('.edit', newchild).append(' ');
}
// ibid button
if(citationStrings.length > 0)
{
// create button
var ibidBtn = $('<button />',{
"class": 'insert',
text: 'insert this reference at cursor'
});
// transform button
$(ibidBtn).button({
icons: {
primary: 'ui-icon-arrowthick-1-e'
},
text: true
});
// button click event handler
ibidBtn.click(function(){
thisproveit.insertRefIntoMWEditBox(ref, false);
return false;
});
// append button
expanded.append(ibidBtn);
}
return newchild;
},
/**
* Truncates title to fit ProveIt refbox row.
* @param {String} title title to truncate
* @return {String} truncated title
*/
truncateTitle: function(title)
{
var MAX_LENGTH = 86;
var truncated = title;
if(title.length > MAX_LENGTH)
{
truncated = truncated.substring(0, MAX_LENGTH);
var lastSpacePos = truncated.lastIndexOf(' ');
if(lastSpacePos != -1)
{
truncated = truncated.substr(0, lastSpacePos);
truncated += " ...";
}
}
return truncated;
},
/**
* Only to be used internally to add the citations to the list
*
* @param {AbstractReference} ref the reference to add
*/
addNewElement: function(ref)
{
var refbox = this.getReferenceBox();
$(refbox).append(this.makeReferenceBoxRow(ref, false));
}
}, window.proveit);
/**
* Static method. Returns valid Cite reference types
* @for CiteReference
* @static
* @return {Array} array of cite method types
*/
proveit.CiteReference.getTypes = function()
{
return ["web", "book", "journal", "conference", "encyclopedia", "news", "newsgroup", "press release", "interview", "episode", "AV media"];
};
proveit.split._compliantExecNpcg = /()??/.exec("")[1] === undefined; // NPCG: nonparticipating capturing group
proveit.split._nativeSplit = String.prototype.split;
proveit.setup();
}( mediaWiki, jQuery ) );
// Local Variables:
// js2-basic-offset: 8
// End:
// </nowiki>
jtjc1y3eqympiqm1u9eagp9nksateml
Медијавики:Gadget-refToolbarBase.js
8
277567
721545
573058
2026-11-02T23:09:32Z
Maintenance script
4153
Use thumb.wikimedia.org for thumbnails ([[phab:T427465]], Operator: Ladsgroup)
721545
javascript
text/javascript
/* jshint asi: true */
/* global mw, $, CiteTB, citeTemplate, citeErrorCheck */
if ( window.CiteTB === undefined ) {
window.CiteTB = {
"Templates" : {}, // All templates
"Options" : {}, // Global options
"UserOptions" : {}, // User options
"DefaultOptions" : {}, // Script defaults
"ErrorChecks" : {} // Error check functions
};
}
if (typeof mw.usability == 'undefined') {
mw.usability = {};
mw.usability.getMsg = function(m) { return mw.messages.get(m); }
mw.usability.addMessages = function(msgs) { mw.messages.set(msgs); };
}
// Object for cite templates
window.citeTemplate = function (templatename, shortform, basicfields, expandedfields) {
// Properties
this.templatename = templatename; // The template name - "cite web", "cite book", etc.
this.shortform = shortform; // A short form, used for the dropdown box
this.basic = basicfields; // Basic fields - author, title, publisher...
// Less common - quote, archiveurl - should be everything the template supports minus the basic ones
this.extra = expandedfields;
this.incrementables = {};
// Add it to the list
CiteTB.Templates[this.templatename] = this;
// Methods
this.makeFormInner = function(fields, incrsetup) {
var i=0;
var trs = [];
var autofills = []
for (i=0; i<fields.length; i++) {
var fieldobj = fields[i];
var field = labelfield = fieldobj.field;
var ad = false;
if (incrsetup && fieldobj.increment_group) {
field = fieldobj.field.replace('<N>', '1');
labelfield = fieldobj.field.replace('<N>', '');
if (this.incrementables[fieldobj.increment_group] && !this.incrementables[fieldobj.increment_group].setup) {
// The object has been created, but not fully initialized
this.incrementables[fieldobj.increment_group]['fields'].push(fieldobj)
} else if (!this.incrementables[fieldobj.increment_group]) {
// Object not yet created
this.incrementables[fieldobj.increment_group] = {
'fields': [fieldobj],
'val':1,
'setup': false
};
} else if (this.incrementables[fieldobj.increment_group] && this.incrementables[fieldobj.increment_group].setup) {
// Fully initialized from a previous invocation of this function, just resetting the number
this.incrementables[fieldobj.increment_group].val = 1
}
} else if (fieldobj.increment_group) {
// Adding a new row
incrval = this.incrementables[fieldobj.increment_group].val;
field = fieldobj.field.replace('<N>', incrval.toString());
labelfield = fieldobj.field.replace('<N>', '');
}
if ($.inArray(field, CiteTB.getOption('autodate fields')) != -1 ) {
im = $('<img />').attr('src', '//thumb.wikimedia.org/wikipedia/commons/thumb/7/7b/Nuvola_apps_date.svg/20px-Nuvola_apps_date.svg.png');
im.attr('alt', mw.usability.getMsg('cite-insert-date')).attr('title', mw.usability.getMsg('cite-insert-date'));
var ad = $('<a />').attr('href', '#');
ad.append(im);
ad.attr('id', 'cite-date-'+CiteTB.escStr(this.shortform)+'-'+field);
$( document ).on( 'click', '#cite-date-'+CiteTB.escStr(this.shortform)+'-'+field, CiteTB.fillAccessdate );
}
if (fieldobj.autofillid) {
var autotype = fieldobj.autofillid;
im = $('<img />').attr('src', '//thumb.wikimedia.org/wikipedia/commons/thumb/1/17/System-search.svg/20px-System-search.svg.png');
im.attr('alt', mw.usability.getMsg('cite-autofill-alt')).attr('title', mw.usability.getMsg('cite-autofill-alt'));
var ad = $('<a />').attr('href', '#');
ad.append(im);
ad.attr('id', 'cite-auto-'+CiteTB.escStr(this.shortform)+'-'+field+'-'+autotype);
autofills.push('#cite-auto-'+CiteTB.escStr(this.shortform)+'-'+field+'-'+autotype);
}
if (fieldobj.increment_button) {
var incrtype = fieldobj.increment_group;
im = $('<img />').attr('src', '//thumb.wikimedia.org/wikipedia/commons/thumb/b/b9/Nuvola_action_edit_add.svg/20px-Nuvola_action_edit_add.svg.png');
im.attr('alt', mw.usability.getMsg('cite-increment-alt')).attr('title', mw.usability.getMsg('cite-increment-alt'));
var ad = $('<a />').attr('href', '#');
ad.append(im);
ad.attr('id', 'cite-incr-'+CiteTB.escStr(this.shortform)+'-'+incrtype);
}
var display = mw.usability.getMsg('cite-'+labelfield+'-label');
if (typeof display !== 'string') {
if (fieldobj.label) {
display = CiteTB.fixStr(fieldobj.label);
} else {
display = CiteTB.fixStr(labelfield)
}
}
var tooltip = fieldobj.tooltip ? $('<abbr />').attr('title', mw.usability.getMsg(fieldobj.tooltip)).html('<sup>?</sup>') : false;
var input = '';
if (ad) {
input = $('<input tabindex="1" style="width:85%" type="text" />');
} else {
input = $('<input tabindex="1" style="width:100%" type="text" />');
}
input.attr('id', 'cite-'+CiteTB.escStr(this.shortform)+'-'+field);
if (fieldobj.autofillprop) {
classname = 'cite-'+CiteTB.escStr(this.shortform)+'-'+fieldobj.autofillprop
if (fieldobj.increment_group) {
input.addClass('cite-'+CiteTB.escStr(this.shortform)+'-incr-'+fieldobj.increment_group);
classname+='-'+this.incrementables[fieldobj.increment_group].val.toString();
}
input.addClass(classname);
}
var label = $('<label />');
label.attr('for', 'cite-'+CiteTB.escStr(this.shortform)+'-'+field).text(display);
if (tooltip) {
label.append(tooltip);
}
var style = 'text-align:right; width:20%;';
if (i%2 == 1) {
style += ' padding-left:1em;';
} else {
var tr = $('<tr />');
}
var td1 = $('<td class="cite-form-td" />').attr('style', style);
td1.append(label);
tr.append(td1);
var td2 = $('<td class="cite-form-td" style="width:30%" />');
td2.append(input);
if (ad) {
td2.append(ad);
}
tr.append(td2);
if (i%2 == 0) {
trs.push(tr);
}
}
var needsetup = false;
for (g in this.incrementables) {
if (!this.incrementables[g].setup) {
needsetup = true;
$( document ).on( 'click', '#cite-incr-'+CiteTB.escStr(this.shortform)+'-'+g, CiteTB.incrementFields );
this.incrementables[g].setup = true;
}
}
if (needsetup || $.isEmptyObject(this.incrementables)) {
for(i=0; i<autofills.length; i++) {
$( document ).on( 'click', autofills[i], CiteTB.initAutofill );
}
}
return trs;
}
// gives a little bit of HTML so the open form can be identified
this.getInitial = function() {
var hidden = '<input type="hidden" class="cite-template" value="' + this.templatename + '"/>';
return hidden;
}
// makes the form used in the dialog boxes
this.getForm = function() {
var main = $("<div class='cite-form-container' />");
var form1 = $('<table style="width:100%; background-color:transparent;" class="cite-basic-fields" />');
var i=0;
var trs = this.makeFormInner(this.basic, true);
for (var i=0; i<trs.length; i++) {
form1.append(trs[i]);
}
var form2 = $('<table style="width:100%; background-color:transparent; display:none" class="cite-extra-fields">');
trs = this.makeFormInner(this.extra, true);
for (var i=0; i<trs.length; i++) {
form2.append(trs[i]);
}
main.append(form1).append(form2);
var form3 = $('<table style="width:100%; background-color:transparent;padding-top:1em" class="cite-other-fields">');
var tr = $('<tr />');
var td1 = $('<td class="cite-form-td" style="text-align:right; width:20%" />');
var label1 = $('<label />');
label1.attr('for', "cite-"+CiteTB.escStr(this.shortform)+'-name').text(mw.usability.getMsg('cite-name-label'));
td1.append(label1);
var td2 = $('<td class="cite-form-td" style="width:30%" />');
var input1 = $('<input tabindex="1" style="width:100%" type="text" />');
input1.attr('id', 'cite-'+CiteTB.escStr(this.shortform)+'-name');
td2.append(input1);
var td3 = $('<td class="cite-form-td" style="text-align:right; padding-left:1em; width:20%">');
var label2 = $('<label />');
label2.attr('for', 'cite-'+CiteTB.escStr(this.shortform)+'-group').text(mw.usability.getMsg('cite-group-label'));
td3.append(label2);
var td4 = $('<td class="cite-form-td" style="width:30%" />');
var input2 = $('<input tabindex="1" style="width:100%" type="text" />');
input2.attr('id', 'cite-'+CiteTB.escStr(this.shortform)+'-group');
td4.append(input2);
tr.append(td1).append(td2).append(td3).append(td4);
form3.append(tr);
main.append(form3);
var extras = $('<div />');
extras.append('<input type="hidden" class="cite-form-status" value="closed" />');
var hidden = $('<input type="hidden" class="cite-template" />');
hidden.val(this.templatename);
extras.append(hidden);
var span1 = $('<span class="cite-preview-label" style="display:none;" />');
span1.text(mw.usability.getMsg('cite-raw-preview'));
extras.append(span1).append('<div class="cite-ref-preview" style="padding:0.5em; font-size:110%" />');
var span2 = $('<span class="cite-prev-parsed-label" style="display:none;" />');
span2.text(mw.usability.getMsg('cite-parsed-label'));
extras.append(span2).append('<div class="cite-preview-parsed" style="padding-bottom:0.5em; font-size:110%" />');
var link = $('<a href="#" class="cite-prev-parse" style="margin:0 1em 0 1em; display:none; color:darkblue" />');
link.text(mw.usability.getMsg('cite-form-parse'));
extras.append(link);
main.append(extras);
return main;
}
}
/* Class for error checks
FIXME: DOCS OUT OF DATE
type - type of error check - current options:
* 'refcheck' - apply a function on each ref individually
* function should accept a ref object, return a string
* 'reflist' - apply a function on the entire ref list
* function should accept an array of ref objects, return an array of strings
* 'search' - apply a function ro the page text
* function should accept the page text as a string, return an array of strings
The strings returned by the function should be valid HTML
func - The function described above
testname - Name of the error check, must not contain spaces
desc - A short description of the test
*/
window.citeErrorCheck = function (obj) {
this.obj = obj
CiteTB.ErrorChecks[this.obj.testname] = this;
this.run = function() {
var errors = [];
switch(this.obj['type']) {
case "refcheck":
CiteTB.loadRefs();
for(var i=0; i<CiteTB.mainRefList.length; i++) {
var e = this.obj.func(CiteTB.mainRefList[i]);
if (e) {
errors.push(e);
}
}
break;
case "reflist":
CiteTB.loadRefs();
errors = this.obj.func(CiteTB.mainRefList);
break;
case "search":
var func = this.obj.func
CiteTB.getPageText(function(text) {
errors = func(text);
});
break;
}
return errors;
}
this.getRow = function() {
var row = $("<li />");
var check = $("<input type='checkbox' name='cite-err-test' />");
check.attr('value', this.obj.testname);
var label = $("<label />").html(mw.usability.getMsg(this.obj.desc));
label.attr('for', this.obj.testname);
row.append(check).append(' – ').append(label);
return row;
}
}
$('head').trigger('reftoolbarbase');
kdju8pm2fcdxm36w9h7pn0ady5s2w2w
север
0
335949
721571
720770
2026-11-03T11:49:54Z
Akybgd
9643
721571
wikitext
text/x-wiki
{{sr-naslov|север|sever|1|sr}}
{{Падежи|
|ном_јед=север
|ном_мн=<center>-</center>
|ген_јед=северa
|ген_мн=<center>-</center>
|дат_јед=северу
|дат_мн=<center>-</center>
|аку_јед=север
|аку_мн=<center>-</center>
|вок_јед=северу
|вок_мн=<center>-</center>
|инс_јед=севером
|инс_мн=<center>-</center>
|лок_јед=северу
|лок_мн=<center>-</center>
}}
=== Именица ===
{{српски-именица|род=м}}
[[Датотека:Компас.svg|260px|мини|десно|Север]]
'''Морфолошке варијације:'''
: [1.1.] екавски: '''север''', ијекавски: '''сјевер''', икавски: '''сивер'''
<!-- икавски: Naslov: Snig pada na siveru zemlje; tekst: slab Snig pada povremeno na siveru zemlje <ref>vecernji: [[https://www.vecernji.hr/vijesti/na-cestama-snijeg-i-magla-moguca-i-poledica-1225533/komentari]]</ref> -->
{{Облици|
: [1.1.] '''се̏ве̄р''', '''сје̏ве̄р''' <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1184/mode/2up]]</ref>
}}
{{Слогови|се-вер|}}
{{Значење|
: [1.] [[геогр.]] Једна од четири главне стране света, супротна југу; крај, предео, део државе, копна и сл. у томе правцу. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1184/mode/2up]]</ref>
: [2.] (Север) северне земље и народи: борба Севера и Југа. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1184/mode/2up]]</ref>
: [3.] види [[северац]]. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1184/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.]
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[северозападни]], [[северозападно]], [[североисточни]], [[североисточно]]
: [1.1.] [[северозапад]], [[североисток]], [[североисточњак]]
}}
{{Изведене речи|
: [1.1.] [[северац]], [[Северац|Северци]], [[северни]], [[северно]], [[северњак]], [[северњакиња]], [[Северјанин|Северјани]], [[Северњача]], [[северњачки]]
}}
{{П-лево}}
{{П|am|1|ሰሜን (semin)}}
{{П|ar|1|شَمَال (šamal) m.}}
{{П|bn|1|উত্তর (utor)}}
{{П|bs|1|север (sever) / сјевер (sjever) m.}}
{{П|bg|1|север (sever) m.}}
{{П|cy|1|gogledd m.}}
{{П|ka|1|ჩრდილოეთი (čtiloeci)}}
<!-- ka: ბორია (хладан, северни поветарац) -->
{{П|el|1|βορράς (voras), zastarelo: Βορρᾶς (boras), atički i dorski: Βορέας (boreas)}}
{{П|gu|1|ઉત્તર (utar) m.}}
{{П|en|1|north}}
{{П|id|1|utara}}
{{П|hy|1|հյուսիս (hjusis)}}
{{П|kk|1|солтүстік (soltustik)}}
{{П|zh|1|北 (baei)}}
{{П|ky|1|түндүк (tunduk)}}
{{П|zza|1|zime}}
{{П|kmr|1|bakur m.}}
{{П|ckb|1|باکوور (bakur)}}
{{П|lv|1|ziemeļi m.}}
{{П|lt|1|šiaurė ž.}}
<!-- lt: (ranije i Zima) -->
{{П|hu|1|észak (esak)}}
{{П|mk|1|север (sever) m.}}
{{П|os|1|цӕгат (cegat)}}
{{П|pa|1|ਉੱਤਰ (utar) m.}}
{{П-средина}}
{{П|fa|1|zastarelo za sever i sadašnje za zapad: باختر (bahtar)}}
<!-- fa: MacKenzie, D. N. (1971), “abāxtar”, in A concise Pahlavi dictionary, London, New York, Toronto: Oxford University Press, page 2 - abāxtar (اباختر): [[https://archive.org/details/concisepahlavidi0000dnma/page/2/mode/1up]] -->
{{П|pl|1|północ ž.}}
<!-- pl: siewier -->
{{П|ru|1|север (sever) m.}}
{{П|sa|1|उत्तरा (utara) ž., उदीची (udići) ž.}}
{{П|sk|1|sever m.}}
{{П|sl|1|sever m.}}
{{П|hsb|1|sewjer m.}}
{{П|dsb|1|sewjer m.}}
<!-- dsb: ? pódpołnoc ž., połnoc ž. ? -->
{{П|sh|1|север (sever) / сјевер (sjever) m.}}
{{П|tg|1|zastarelo: бохтар (bohtar)}}
<!-- tg: ? бохтар - možda Baktrija ? -->
{{П|uz|1|shimol}}
{{П|hi|1|उत्तर (utar) m.}}
{{П|hr|1|sjever / siver m.}}
{{П|cs|1|sever m.}}
{{П|cv|1|çурçĕр (surser)}}
{{П-десно}}
== Референце ==
{{reflist}}
768ulujp2oy2xtzrtalmzaqlwn3newo
sever
0
335950
721570
720771
2026-11-03T11:49:15Z
Akybgd
9643
721570
wikitext
text/x-wiki
{{sr-naslov|север|sever|2|sr}}
{{Падежи|
|ном_јед=sever
|ном_мн=<center>-</center>
|ген_јед=severa
|ген_мн=<center>-</center>
|дат_јед=severu
|дат_мн=<center>-</center>
|аку_јед=sever
|аку_мн=<center>-</center>
|вок_јед=severu
|вок_мн=<center>-</center>
|инс_јед=severom
|инс_мн=<center>-</center>
|лок_јед=severu
|лок_мн=<center>-</center>
}}
=== Именица ===
{{српски-именица|род=м}}
[[Датотека:Компас.svg|260px|мини|десно|Sever]]
'''Морфолошке варијације:'''
: [1.1.] екавски: '''sever''', ијекавски: '''sjever''', икавски: '''siver'''
<!-- икавски: Naslov: Snig pada na siveru zemlje; tekst: slab Snig pada povremeno na siveru zemlje <ref>vecernji: [[https://www.vecernji.hr/vijesti/na-cestama-snijeg-i-magla-moguca-i-poledica-1225533/komentari]]</ref> -->
{{Облици|
: [1.1.] '''sȅvēr''', '''sjȅvēr''' <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1184/mode/2up]]</ref>
}}
{{Слогови|se-ver|}}
{{Значење|
: [1.] [[геогр.]] Jedna od četiri glavne strane sveta, suprotna jugu; kraj, predeo, deo države, kopna i sl. u tome pravcu. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1184/mode/2up]]</ref>
: [2.] (Sever) severne zemlje i narodi: borba Severa i Juga. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1184/mode/2up]]</ref>
: [3.] vidi [[severac]]. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1184/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.]
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[severozapadni]], [[severozapadno]], [[severoistočni]], [[severoistočno]]
: [1.1.] [[severozapad]], [[severoistok]], [[severoistočnjak]]
}}
{{Изведене речи|
: [1.1.] [[severac]], [[Severac|Severci]], [[severni]], [[severno]], [[severnjak]], [[severnjakinja]], [[Severjanin|Severjani]], [[Severnjača]], [[severnjački]]
}}
{{П-лево}}
{{П|am|1|ሰሜን (semin)}}
{{П|ar|1|شَمَال (šamal) m.}}
{{П|bn|1|উত্তর (utor)}}
{{П|bs|1|север (sever) / сјевер (sjever) m.}}
{{П|bg|1|север (sever) m.}}
{{П|cy|1|gogledd m.}}
{{П|ka|1|ჩრდილოეთი (čtiloeci)}}
<!-- ka: ბორია (хладан, северни поветарац) -->
{{П|el|1|βορράς (voras), zastarelo: Βορρᾶς (boras), atički i dorski: Βορέας (boreas)}}
{{П|gu|1|ઉત્તર (utar) m.}}
{{П|en|1|north}}
{{П|id|1|utara}}
{{П|hy|1|հյուսիս (hjusis)}}
{{П|kk|1|солтүстік (soltustik)}}
{{П|zh|1|北 (baei)}}
{{П|ky|1|түндүк (tunduk)}}
{{П|zza|1|zime}}
{{П|kmr|1|bakur m.}}
{{П|ckb|1|باکوور (bakur)}}
{{П|lv|1|ziemeļi m.}}
{{П|lt|1|šiaurė ž.}}
<!-- lt: (ranije i Zima) -->
{{П|hu|1|észak (esak)}}
{{П|mk|1|север (sever) m.}}
{{П|os|1|цӕгат (cegat)}}
{{П|pa|1|ਉੱਤਰ (utar) m.}}
{{П-средина}}
{{П|fa|1|zastarelo za sever i sadašnje za zapad: باختر (bahtar)}}
<!-- fa: MacKenzie, D. N. (1971), “abāxtar”, in A concise Pahlavi dictionary, London, New York, Toronto: Oxford University Press, page 2 - abāxtar (اباختر): [[https://archive.org/details/concisepahlavidi0000dnma/page/2/mode/1up]] -->
{{П|pl|1|północ ž.}}
<!-- pl: siewier -->
{{П|ru|1|север (sever) m.}}
{{П|sa|1|उत्तरा (utara) ž., उदीची (udići) ž.}}
{{П|sk|1|sever m.}}
{{П|sl|1|sever m.}}
{{П|hsb|1|sewjer m.}}
{{П|dsb|1|sewjer m.}}
<!-- dsb: ? pódpołnoc ž., połnoc ž. ? -->
{{П|sh|1|север (sever) / сјевер (sjever) m.}}
{{П|tg|1|zastarelo: бохтар (bohtar)}}
<!-- tg: ? бохтар - možda Baktrija ? -->
{{П|uz|1|shimol}}
{{П|hi|1|उत्तर (utar) m.}}
{{П|hr|1|sjever / siver m.}}
{{П|cs|1|sever m.}}
{{П|cv|1|çурçĕр (surser)}}
{{П-десно}}
== Референце ==
{{reflist}}
5an7gtfaylz4xgqpum7t8karrq9xth2
шав
0
336083
721552
721516
2026-11-03T09:18:23Z
Akybgd
9643
721552
wikitext
text/x-wiki
{{sr-naslov|шав|šav|1|sr}}
{{Падежи|
|ном_јед=шав
|ном_мн=шавови
|ген_јед=шава
|ген_мн=шавова
|дат_јед=шаву
|дат_мн=шавовима
|аку_јед=шав
|аку_мн=шавове
|вок_јед=шаве
|вок_мн=шавови
|инс_јед=шавом
|инс_мн=шавовима
|лок_јед=шаву
|лок_мн=шавовима
}}
=== Именица ===
{{српски-именица|род=м}}
{{Облици|
: [1.1.] '''ша̏в''' <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1496/mode/2up]]</ref>
}}
{{Слогови|шав|ша-во-ви}}
{{Значење|
: [1.] Линија по којој се шије, спој два сашивена комада тканине, коже и сл., руб: исцепати се по шаву, опарати шавове. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1496/mode/2up]]</ref>
: [1.1.] У [[санскрт]]у наилазимо на именицу женског рода '''[[सेवनी]]''' <ref>Монијер Вилијамс - Келн (1899), “Sеvana” in A Sanskrit–English Dictionary - Санскрт (други ступац) страна 1247: [[https://www.sanskrit-lexicon.uni-koeln.de/scans/csl-apidev/servepdf.php?dict=MW&page=1247,2]]</ref> (чита се) '''севани''' једно од значења је исто као и у српском језику.
: [2.] Спој двају комада лима и сл. добијен заваривањем или заковицама. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1496/mode/2up]]</ref>
: [3.] Природни спој костију лобање у облику цик-цак линије. • хируршки ~ мед. вештачки спој раздвојеног ткива појединих органа свиленим концем и сл. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/1496/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.] [[опшивак]], [[руб]], [[поруб]], [[обруб]], [[опток]], [[перваз]], [[опшитак]], [[опшив]], [[бордура]], [[опшав]], [[подруб]] {{R:Recnik Sinonima}}
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[шити]], [[крпити]], [[штепати]], [[сашити]]
: [1.1.] [[шивење]], [[везење]], [[реса]], [[украс]], [[шав]], [[дрангулија]], [[фигурица]], [[орнамент]], [[бод]], [[накит]], [[штрик]], [[везиво]], ''[[Викиречник:Регионализми|рег.]]'' [[шупљика]] [[рег.]], [[штикерај]] [[рег.]], [[рупичаста чипка]] <!-- ? арајеш ? --> {{R:Recnik Sinonima}}
: [1.1.] [[шивати]], [[зашивати]], [[изушивати]], [[опшивати]], [[пришивати]], [[прошивати]], [[сашивати]], [[ушивати]]
}}
{{Изведене речи|
: [1.1.] [[шавни]]
}}
{{П-лево}}
{{П|bs|1|шав (šav) m.}}
{{П|bg|1|шев (šev) m.}}
{{П|en|1|seam}}
{{П|zh|1|线缝 (šienfung)}}
{{П|hu|1|varrás (varaš)}}
{{П|mk|1|шав (šav) m.}}
{{П|fa|1|درز (darz)}}
{{П|pl|1|szew (šev) m.}}
{{П|ru|1|шов (šov) m.}}
{{П-средина}}
{{П|sa|1|सेवनी (sevani) ž.}}
{{П|sk|1|šev m.}}
{{П|sl|1|šev m.}}
{{П|hsb|1|šow m.}}
{{П|dsb|1|šaw m.}}
{{П|sh|1|шав (šav) m.}}
{{П|hi|1|सीवन (sivan)}}
{{П|hr|1|šav m.}}
{{П|cs|1|šev m.}}
{{П-десно}}
== Референце ==
{{reflist}}
tr3nc5j1ih28wb3g9sol85v32yn8mkr
зобени
0
336091
721563
721526
2026-11-03T10:46:46Z
Akybgd
9643
721563
wikitext
text/x-wiki
{{sr-naslov|зобени|zobeni|1|sr}}
{{српски-придев}}
{{Облици|
: [1.1.] '''зо̀бенӣ''', '''зобѐнӣ''' <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зо-бе-ни|}}
{{Значење|
: [1.] Који се односи на зоб; који је од зоби: ~ брашно, ~ хлеб. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.]
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[зобни]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобљење]], [[зобеница]], [[зобиште]], [[зобница]]
: [1.1.] [[зобати]], [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
{{П-лево}}
{{П|en|1|}}
{{П-средина}}
{{П|sh|1|зобени (zobeni)}}
{{П-десно}}
== Референце ==
{{reflist}}
5p3wftjpry8ltnj5a143rmrbwpy0xsc
zobeni
0
336092
721564
721527
2026-11-03T10:47:04Z
Akybgd
9643
721564
wikitext
text/x-wiki
{{sr-naslov|зобени|zobeni|2|sr}}
{{српски-придев}}
{{Облици|
: [1.1.] '''zòbenī''', '''zobènī''' <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|zo-be-ni|}}
{{Значење|
: [1.] Koji se odnosi na zob; koji je od zobi: ~ brašno, ~ hleb. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.]
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[zobni]]
: [1.1.] [[zob]], [[zobanica]], [[zobaja]], [[zobljenje]], [[zobenica]], [[zobište]], [[zobnica]]
: [1.1.] [[zobati]], [[zobiti]]
}}
{{Изведене речи|
: [1.1.]
}}
{{П-лево}}
{{П|en|1|}}
{{П-средина}}
{{П|sh|1|зобени (zobeni)}}
{{П-десно}}
== Референце ==
{{reflist}}
5o4a6xamiklh8z73l7vd9fz7kq2k6zg
зобни
0
336093
721567
721537
2026-11-03T10:51:11Z
Akybgd
9643
721567
wikitext
text/x-wiki
{{sr-naslov|зобни|zobni|1|sr}}
{{српски-придев}}
{{Облици|
: [1.1.] '''зо̏бнӣ''' <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зоб-ни|}}
{{Значење|
: [1.] Види [[зобени]]: ~ зрно, ~ плева, ~ хлеб и сл. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.] [[зобени]]
}}
{{Примери|
: [1.1.] Ако покосе на зелено за исхрану стоке, зобна слама је јако добра. [[српски говор у Суботици (Бачка)|Суботица]] <ref name="Rečnik srpskih govora Vojvodine, izmenjeno i dopunjeno izdanje u 4 toma">Rečnik srpskih govora Vojvodine, izmenjeno i dopunjeno izdanje u 4 toma, priredili mr Dejan Miloradov, Katarina Sunajko, mr Ivana Ćelić i dr Dragoljub Petrović, Matica srpska, Novi Sad.</ref>
}}
{{Асоцијације|
: [1.1.] [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобеница]], [[зобиште]], [[зобљење]], [[зобница]]
: [1.1.] [[зобати]], [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
{{П-лево}}
{{П|en|1|}}
{{П-средина}}
{{П|sh|1|зобни (zobni)}}
{{П-десно}}
== Референце ==
{{reflist}}
0ysle7kf6io8s2gi1k6gr02seb5cbe0
zobni
0
336094
721568
721536
2026-11-03T10:51:36Z
Akybgd
9643
721568
wikitext
text/x-wiki
{{sr-naslov|зобни|zobni|2|sr}}
{{српски-придев}}
{{Облици|
: [1.1.] '''zȍbnī''' <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зоб-ни|}}
{{Значење|
: [1.] Vidi [[zobeni]]: ~ zrno, ~ pleva, ~ hleb i sl. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.] [[zobeni]]
}}
{{Примери|
: [1.1.] Ako pòkose na zelèno za ȉshranu stȍke, zòbna slȁmā je jȃko dòbra. [[српски говор у Суботици (Бачка)|Суботица]] <ref name="Rečnik srpskih govora Vojvodine, izmenjeno i dopunjeno izdanje u 4 toma">Rečnik srpskih govora Vojvodine, izmenjeno i dopunjeno izdanje u 4 toma, priredili mr Dejan Miloradov, Katarina Sunajko, mr Ivana Ćelić i dr Dragoljub Petrović, Matica srpska, Novi Sad.</ref>
}}
{{Асоцијације|
: [1.1.] [[zobeni]]
: [1.1.] [[zob]], [[zobanica]], [[zobaja]], [[zobenica]], [[zobište]], [[zobljenje]], [[zobnica]]
: [1.1.] [[zobati]], [[zobiti]]
}}
{{Изведене речи|
: [1.1.]
}}
{{П-лево}}
{{П|en|1|}}
{{П-средина}}
{{П|sh|1|зобни (zobni)}}
{{П-десно}}
== Референце ==
{{reflist}}
lwwskqonykf7krr7mepj4mjy4tp1894
зобаја
0
336095
721557
2026-11-03T09:58:48Z
Akybgd
9643
Нова страница: {{sr-naslov|зобаја|zobaja|1|sr}} {{Падежи| |ном_јед=zobaja |ном_мн=zobaje |ген_јед=zobaje |ген_мн=zobaja |дат_јед=zobaji |дат_мн=zobajama |аку_јед=zobaju |аку_мн=zobaje |вок_јед=zobajo |вок_мн=zobaje |инс_јед=zobajom |инс_мн=zobajama |лок_јед=zobaji |лок_мн=zobajama }} === Именица === {{српски-именица|род=ж}} {{Облици| : [1.1.] '''зобаја'…
721557
wikitext
text/x-wiki
{{sr-naslov|зобаја|zobaja|1|sr}}
{{Падежи|
|ном_јед=zobaja
|ном_мн=zobaje
|ген_јед=zobaje
|ген_мн=zobaja
|дат_јед=zobaji
|дат_мн=zobajama
|аку_јед=zobaju
|аку_мн=zobaje
|вок_јед=zobajo
|вок_мн=zobaje
|инс_јед=zobajom
|инс_мн=zobajama
|лок_јед=zobaji
|лок_мн=zobajama
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''зобаја'''
}}
{{Слогови|зо-ба-ја|зо-ба-је}}
{{Значење|
: [1.] Ракија од зоби.
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.] [[зобеница]] <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[зобни]], [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобиште]], [[зобљење]], [[зобница]] [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.1.] [[зобати]], [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
59dco7rv90c15ncp1eqqvsydehkuxx7
721560
721557
2026-11-03T10:04:50Z
Akybgd
9643
721560
wikitext
text/x-wiki
{{sr-naslov|зобаја|zobaja|1|sr}}
{{Падежи|
|ном_јед=зобаја
|ном_мн=зобаје
|ген_јед=зобаје
|ген_мн=зобаја
|дат_јед=зобаји
|дат_мн=зобајама
|аку_јед=зобају
|аку_мн=зобаје
|вок_јед=зобајо
|вок_мн=зобаје
|инс_јед=зобајом
|инс_мн=зобајама
|лок_јед=зобаји
|лок_мн=зобајама
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''зобаја'''
}}
{{Слогови|зо-ба-ја|зо-ба-је}}
{{Значење|
: [1.] Ракија од зоби.
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.] [[зобеница]] <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[зобни]], [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобеница]], [[зобиште]], [[зобљење]], [[зобница]] [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.1.] [[зобати]], [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
drubv51x42ofdcyg3roune24k7dz6r9
zobaja
0
336096
721558
2026-11-03T10:02:09Z
Akybgd
9643
Нова страница: {{sr-naslov|зобаја|zobaja|2|sr}} {{Падежи| |ном_јед=zobaja |ном_мн=zobaje |ген_јед=zobaje |ген_мн=zobaja |дат_јед=zobaji |дат_мн=zobajama |аку_јед=zobaju |аку_мн=zobaje |вок_јед=zobajo |вок_мн=zobaje |инс_јед=zobajom |инс_мн=zobajama |лок_јед=zobaji |лок_мн=zobajama }} === Именица === {{српски-именица|род=ж}} {{Облици| : [1.1.] '''zobaja''' }}…
721558
wikitext
text/x-wiki
{{sr-naslov|зобаја|zobaja|2|sr}}
{{Падежи|
|ном_јед=zobaja
|ном_мн=zobaje
|ген_јед=zobaje
|ген_мн=zobaja
|дат_јед=zobaji
|дат_мн=zobajama
|аку_јед=zobaju
|аку_мн=zobaje
|вок_јед=zobajo
|вок_мн=zobaje
|инс_јед=zobajom
|инс_мн=zobajama
|лок_јед=zobaji
|лок_мн=zobajama
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''zobaja'''
}}
{{Слогови|zo-ba-ja|zo-ba-je}}
{{Значење|
: [1.] Rakija od zobi.
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.] [[zobenica]] <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[zobni]], [[zobeni]]
: [1.1.] [[zob]], [[zobanica]], [[zobaja]], [[zobište]], [[zobljenje]], [[zobnica]] [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.1.] [[zobati]], [[zobiti]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
3q3p5dfbb8v6lzts58entlusba7zot0
721559
721558
2026-11-03T10:03:29Z
Akybgd
9643
721559
wikitext
text/x-wiki
{{sr-naslov|зобаја|zobaja|2|sr}}
{{Падежи|
|ном_јед=zobaja
|ном_мн=zobaje
|ген_јед=zobaje
|ген_мн=zobaja
|дат_јед=zobaji
|дат_мн=zobajama
|аку_јед=zobaju
|аку_мн=zobaje
|вок_јед=zobajo
|вок_мн=zobaje
|инс_јед=zobajom
|инс_мн=zobajama
|лок_јед=zobaji
|лок_мн=zobajama
}}
=== Именица ===
{{српски-именица|род=ж}}
{{Облици|
: [1.1.] '''zobaja'''
}}
{{Слогови|zo-ba-ja|zo-ba-je}}
{{Значење|
: [1.] Rakija od zobi.
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.] [[zobenica]] <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[zobni]], [[zobeni]]
: [1.1.] [[zob]], [[zobanica]], [[zobenica]], [[zobište]], [[zobljenje]], [[zobnica]] [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.1.] [[zobati]], [[zobiti]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
crtxbzo0uwv758y3ilcb6kz8rqhs7fo
зобљење
0
336097
721561
2026-11-03T10:43:54Z
Akybgd
9643
Нова страница: {{sr-naslov|зобљење|zobljenje|1|sr}} {{Падежи| |ном_јед=зобљење |ном_мн=зобљења |ген_јед=зобљења |ген_мн=зобљења |дат_јед=зобљењу |дат_мн=зобљењима |аку_јед=зобљење |аку_мн=зобљења |вок_јед=зобљење |вок_мн=зобљења |инс_јед=зобљењем |инс_мн=зобљењима |лок_јед=зобљењу |лок_мн=зоб…
721561
wikitext
text/x-wiki
{{sr-naslov|зобљење|zobljenje|1|sr}}
{{Падежи|
|ном_јед=зобљење
|ном_мн=зобљења
|ген_јед=зобљења
|ген_мн=зобљења
|дат_јед=зобљењу
|дат_мн=зобљењима
|аку_јед=зобљење
|аку_мн=зобљења
|вок_јед=зобљење
|вок_мн=зобљења
|инс_јед=зобљењем
|инс_мн=зобљењима
|лок_јед=зобљењу
|лок_мн=зобљењима
}}
=== Именица ===
{{српски-именица|род=с}}
{{Облици|
: [1.1.] '''зо̀бље̄ње''', види [[зобити]] <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|зо-бље-ње|зо-бље-ња}}
{{Значење|
: [1.] (глаголска именица од [[зобити]]) Хранити зобљу (или друим житом,); добро хранити. <ref>Речник српскога језика, Матица српска (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] из [[праславенски|праславенског]]: <!-- '''*''' -> старославенског: '''''' -->
}}
{{Синоними|
: [1.1.]
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[зобни]], [[зобени]]
: [1.1.] [[зоб]], [[зобаница]], [[зобаја]], [[зобеница]], [[зобиште]], [[зобница]] [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.1.] [[зобати]], [[зобити]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
3xefm0eqwlhxmu0nz31d9ch3ko9bews
zobljenje
0
336098
721562
2026-11-03T10:44:05Z
Akybgd
9643
Нова страница: {{sr-naslov|зобљење|zobljenje|2|sr}} {{Падежи| |ном_јед=zobljenje |ном_мн=zobljenja |ген_јед=zobljenja |ген_мн=zobljenja |дат_јед=zobljenju |дат_мн=zobljenjima |аку_јед=zobljenje |аку_мн=zobljenja |вок_јед=zobljenje |вок_мн=zobljenja |инс_јед=zobljenjem |инс_мн=zobljenjima |лок_јед=zobljenju |лок_мн=zobljenjima }} === Именица === {{српски-именица|род=…
721562
wikitext
text/x-wiki
{{sr-naslov|зобљење|zobljenje|2|sr}}
{{Падежи|
|ном_јед=zobljenje
|ном_мн=zobljenja
|ген_јед=zobljenja
|ген_мн=zobljenja
|дат_јед=zobljenju
|дат_мн=zobljenjima
|аку_јед=zobljenje
|аку_мн=zobljenja
|вок_јед=zobljenje
|вок_мн=zobljenja
|инс_јед=zobljenjem
|инс_мн=zobljenjima
|лок_јед=zobljenju
|лок_мн=zobljenjima
}}
=== Именица ===
{{српски-именица|род=с}}
{{Облици|
: [1.1.] '''zòbljēnje''', vidi [[zobiti]] <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Слогови|zo-blje-nje|zo-blje-nja}}
{{Значење|
: [1.] (glagolska imenica od [[zobiti]]) Hraniti zoblju (ili druim žitom,); dobro hraniti. <ref>Rečnik srpskoga jezika, Matica srpska (2011): [[https://archive.org/details/recnik-srpskoga-jezika-2011/page/424/mode/2up]]</ref>
}}
{{Порекло|
: [1.1.] iz [[praslavenski|praslavenskog]]: <!-- '''*''' -> staroslavenskog: '''''' -->
}}
{{Синоними|
: [1.1.]
}}
{{Примери|
: [1.1.]
}}
{{Асоцијације|
: [1.1.] [[zobni]], [[zobeni]]
: [1.1.] [[zob]], [[zobanica]], [[zobaja]], [[zobenica]], [[zobište]], [[zobnica]] [[српски говор у Сусеку (Срем)|Сусек]], [[српски говор у Свилошу (Срем)|Свилош]] <ref name="Речник српских говора Војводине, измењено и допуњено издање у 4 тома">Речник српских говора Војводине, измењено и допуњено издање у 4 тома, приредили мр Дејан Милорадов, Катарина Сунајко, мр Ивана Ћелић и др Драгољуб Петровић, Матица српска, Нови Сад.</ref>
: [1.1.] [[zobati]], [[zobiti]]
}}
{{Изведене речи|
: [1.1.]
}}
== Референце ==
{{reflist}}
2d7f2bwstrcp3dduyl6t6cgtbh414ca