Бикитиэкэ
sahwikisource
https://sah.wikisource.org/wiki/%D0%A1%D2%AF%D1%80%D2%AF%D0%BD_%D1%81%D0%B8%D1%80%D1%8D%D0%B9
MediaWiki 1.47.0-wmf.7
first-letter
Миэдьийэ
Аналлаах
Ырытыы
Кыттааччы
Кыттааччы ырытыыта
Бикитиэкэ
Бикитиэкэ Ырытыы
Билэ
Билэ ырытыыта
MediaWiki
MediaWiki-ни ырытыы
Халыып
Халыыбы ырытыы
Көмө
Көмөнү ырытыы
Категория
Категорияны ырытыы
Ааптар
Ааптар ырытыыта
Page
Page talk
Index
Index talk
TimedText
TimedText talk
Модуль
Обсуждение модуля
Event
Event talk
Сааскы ууга саһааккаҕа… (Павлов Николай Гаврильевич)
0
19
9558
3866
2026-06-22T15:23:12Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9558
wikitext
text/x-wiki
{{header
| title = [[Main_Page:Sakha|Сүрүн сирэй]]
| author = Павлов Николай Гаврильевич
| section = (Хоһооннор)
| previous = [[Күһүн көхтөөх бултуур кэмҥэ… (Павлов Николай Гаврильевич)|Күһүн көхтөөх бултуур кэмҥэ…]]
| next = [[Булт дойҕохторо (Павлов Николай Гаврильевич)|Булт дойҕохторо]]→
| notes =
}}
{{poem-on|Сааскы ууга, саһааккаҕа}}
<poem>
Сааскы ууга, саһааккаҕа,
Сааһыт, саһан, иһийэр;
Үөрдээх кустар эргийэннэр
Элиэтээннэр иһэллэр.
Удьуор булчут сааҥ чыыбыһын
Тардан кэбис – сыыһыма,
Сэһэн-тэптэн номох буолуон
Отой мүччү туттума.
Биири-биэһи суулараҥҥын,
Бэрт эбиэти булунуоҥ;
Уһун түүҥҥэ тоҥон-хатан
Олорбуккун боруостуоҥ.
Ити курдук ньоҕойдоһон,
Сааскы болдьох бүтүөҕэ;
Саабыт тыаһа дуораһыйан,
Ыраах эҥсэн сүтүөҕэ...
Сааскы ууга, саһааккаҕа,
Сааһыт саһан, иһийэр;
Үөрдээх кустар эргийэннэр
Элиэтээннэр иһэллэр…</poem>
{{poem-off|}}
''1991 с. Ыам ыйа. «Хара күөл».''
1996 с. "Үөһээ Бүлүү" хаһыакка бэчээттэммитэ.
{{PermissionOTRS|2011020210002326}}
[[Author:Павлов Николай Гаврильевич|Павлов Николай Гаврильевич айымньыларын тиһигэр]]
[[Category:Хоһоон]]
[[Category:Павлов Николай Гаврильевич]]
drhpwj3tfnxlq0zxnwcne5j81npugxx
Күһүн көхтөөх бултуур кэмҥэ… (Павлов Николай Гаврильевич)
0
20
9559
3865
2026-06-22T15:23:13Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9559
wikitext
text/x-wiki
{{header
| title = [[Main_Page:Sakha|Сүрүн сирэй]]
| author = Павлов Николай Гаврильевич
| section = (Хоһооннор)
| previous = [[Сааскы ууга саһааккаҕа… (Павлов Николай Гаврильевич)|Сааскы ууга саһааккаҕа…]]
| next = [[Булт дойҕохторо (Павлов Николай Гаврильевич)|Булт дойҕохторо]]→
| notes =
}}
{{poem-on|Күһүн көхтөөх бултуур кэмҥэ…}}
<poem>
Күһүн көхтөөх бултуур кэмҥэ кустуу күөлгэ тиийэҕин;
Бэрт эрдэттэн оҥостоҥҥун, олороҕун кэтэһэҥҥин.
Күммүт киирэн күөл үрдэ күлүгүрэ барыарар;
Тымныы салгын ууну кууһан, туман хойдон тунаарар.
Онно-манна одоҥ-додоҥ саалар тыаһаан бараллар –
Ити аата кус киириитэ – сэрэттилэр – саҕаланар.
Сыыдам сырыы чөркөөкүлэр сурулаһан киирэллэр,
Онон-манан уу урсунун килбэҥнэтэ түһэллэр…
Бэлэм туппут сааҥ чыыбыһын, кыҥыы түһээт, тардыалыаҥ;
Таба туттан хас чөркөйү хааларбыккын барыллыаҥ.
Сорох киэһэ кус киириитэ астыннарыа – ыппахтыаҥ;
Араас куһу, бэл көҕөнү, ирээт биэрэн, – бултаныаҥ.
Оччоҕуна сааһыт киһи, бултаан-алтаан, астыныаҥ…
Маннык сылдьан көй салгыны көҥүл тыына сынньаныаҥ.
</poem>
{{poem-off|}}
''1997 с., атырдьах ыйыгар, «Үөһээ Бүлүү» хаһыакка бэчээттэммитэ.''
''2002 с., кулун тутарга, уларыта тутан (хоһоон форматыгар) көннөрүүлэр киллэриллибиттэр.''
[[Author:Павлов Николай Гаврильевич|Павлов Николай Гаврильевич айымньыларын тиһигэр]]
[[Category:Хоһоон]]
[[Category:Павлов Николай Гаврильевич]]
{{PermissionOTRS|2011020210002326}}
f8nubj9je4u6ozu4c5he244vtjmx5w3
Саха омук (Өксөкүлээх Өлөксөй)
0
24
9560
5787
2026-06-22T15:23:14Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9560
wikitext
text/x-wiki
{{header
| title = [[Main_Page:Sakha|Сүрүн сирэй]]
| author = Өксөкүлээх Өлөксөй
| section = (Хоһооннор)
| previous = [[Саха дьахталларын мэтириэттэрэ (Өксөкүлээх Өлөксөй)]]| next = [[Тыа кыыла (Өксөкүлээх Өлөксөй)]]| notes =
}}
{{poem-on|Саха омук}}
<poem>
:Уруккута биһиги,
:Бу да буолларбыт,
Өбүгэлэрбит үйэлэриттэн ыла
Үтүрүллүбүппүт иннигэр,
Өлөн биэрбэт үөстээх
Үөдэттэр этибит.
:Омоҕой баай оҕонньортон ыла
:Сойуолаппыппыт иһин,
:Охтон биэрбэт оҥоһуулаах
:Омукчаан оҕото этибит.
Эр соҕотох Эллэй
Эһэбит саҕыттан ыла
Эккирэтиллибиппит иннигэр,
Эмсэҕэлээн биэрбэт
Эрэйдээхтэр этибит...
:Биһигини -
Хабараан тымныы
Хаарыйан-хаарыйан
Хатан харахтаабыта,
:Уордаах тымныы
:Мускуйан-мускуйан
:Уһаарыылаах уҥуохтаабыта
Кыыдааннаах тымныы
Кыһарыйан-кыһарыйан
Быстыбат тыыннаабыта.
</poem>
{{poem-off|}}
[[Main Page:Sakha|Сүрүн сирэйгэ]]
[[Категория:Өксөкүлээх хоһоонноро]]
[[Категория:Саха хоһооно]]
jhdy91zebjz8cjb5cwfv4be4tgvxo1e
Хайыһар (Чаҕылҕан)
0
32
9586
8405
2026-06-23T05:11:44Z
Sauit
2200
9586
wikitext
text/x-wiki
{{header
| title = Хайыһар
| author = Чаҕылҕан
| section = Ырыалар, хоһооннор
| previous =
| next =
| notes =
}}
<poem>
{{poem|Хайыһар|Хоту дойду хонноҕунан
Колонналар бардылар,
Хара тыанан, толоонунан
Хайыһардар дайдылар.
''Хос ырыата:''
Өстөөх ханна саһан сылдьар,
Өстөөх ханна хайыһар, -
Ситиэ онно сытыы буулдьа,
Ситиэ сыыдам хайыһар!
Сибирь улуу буолактара
Силлиэрдилэр иһиирэ,
Туундара тыйыс уолаттара
Туруннулар сэриигэ.
Биллин фашист баһылыга
Биһи чаҕаан күүспүтүн,
Кыайыы сырдык дьаралыга
Биһигини кууспутун.|1942}}
</poem>
[[Категория:Чаҕылҕан]]
[[Категория:1942]]
[[Категория:Хоһоон]]
[[Категория:Ырыа]]
lnus1k1vsr2nd06ev9620en3791072k
Чолбон (Иван Арбита)
0
34
9561
4793
2026-06-22T15:23:16Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9561
wikitext
text/x-wiki
{{header
| title = [[Main_Page:Sakha|Сүрүн сирэй]]
| author = [[Иван Арбита]]
| section = (Хоһооннор)
| previous = [[]]| next = [[Сүбэлэр-соргулар (Арбита)|Сүбэлэр-соргулар]]→
| notes =
}}
{{poem-on|Чолбон}}
<poem>
Киэҥ сир арҕаа саҕаҕар,
Киэһээ кэммэр бэрт эрдэ,
Далай халлаан хараҕа –
Чолбон сулус дьэргэйдэ.
Тыыннаах ыраас өҥүнэн
Тырым ойо тылбаарда,
Көстөр тыргыл күлүмэ
Күндү таастыы кылбайда.
Көрүҥ, ити киэҥ халлаан
Кырасаабысса кыыһа,
Күнүм сирин абылаан
Күлүм-дьирим кыыһарын.
Улуу куйаар буостатын
Сургуустаммыт суруга,
Киэһэ сиргэ бастатар
Кэрэ сырдык сулуһа,
Уоттаах Чолбон барахсан
Ооньньоо хайтах баҕарар –
Кырдьык, сибээс бырахсар
Кэммит кэлиэ ээ, ба5ар.
</poem>
{{poem-off|12.7.1935}}
[[Категория:Иван Арбита]]
[[Категория:Арбита хоһоонноро]]
[[Категория:Саха хоһооно]]
[[Категория:1935 сыл айымньылара]]
l3oklzy7dj7wavjk42tlm420ukfpt7i
Саха поэзиятын дьүһүннүүр ньымалара
0
36
9562
4380
2026-06-22T15:23:17Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9562
wikitext
text/x-wiki
{{header
| title = Саха поэзиятын дьүһүннүүр ньымалара
| author = Копырин Николай Захарович
| translator =
| section =
| previous =
| next = [[Саха поэзиятын дьүһүннүүр ньымалара. Киирии]]| notes =
}}
[[Копырин Николай Захарович]]
== [[Саха поэзиятын дьүһүннүүр ньымалара. Киирии|Киирии]] ==
== Бастакы глава. ==
:[[Аан дойду географическай эйгэтэ...]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. 1 глава. Хайа дьонугар... (Копырин Н.З.)|Хайа дьонугар таас, оттон тыа олохтоохторугар мас...]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. Саастарын тухары булдунан... (Копырин Н.З.)|Саастарын тухары булдунан...]]
:[[Аны... ооҕуй үөнү ылыаҕыҥ...]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. Климат араас курдааһыннарыгар... (Копырин Н.З.)|Климат араас курдааҥыннарыгар...]]
:[[Омуктар уһулуччу таптыыр өҥнөрө...]]
== Иккис глава. ==
[[Саха норуотун тылынан айымньытын дьүһүннээһиннэрэ]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. Күн (Копырин Н.З.)|Күн]].
:[[Тымныы. Муус. Хаар.]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. Уот (Копырин Н.З.)|Уот]]
:[[Таас. Хайа.]]
:[[Былыт.]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. Сылгы (Копырин Н.З.)|Сылгы.]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. 2 глава. Ынах. Оҕус. (Копырин Н.З.)|Ынах. Оҕус.]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. Ыт (Копырин Н.З.)|Ыт]]
:[[Тыа (мас). Тиит. Хатыҥ. Күөх от]]
:[[Күөрэгэй, туллук уо.д.а. чыычаахтар. Кыталык. Туруйа.]]
:[[Хотой. Атын көтөрдөр]]
:[[Киис, саһыл уо.д.а. кыыллар]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. 2 глава. Эһэ. Бөрө. Таба. Тайах (Копырин Н.З.)|Эһэ. Бөрө. Таба. Тайах]]
:[[Балыктар. Үөннэр-көйүүрдэр]]
:[[Көмүс. Тимир]]
== Үһүс глава. Саха суругунан поэзиятын дьүһүннээһиннэрэ==
=== А) Былыргыттан баар дьүһүннээһиннэр. ===
[[Былыргыттан баар дьүһүннээһиннэр. Күн|Күн]]
[[Былыргыттан баар дьүһүннээһиннэр. Саас, сайын. Кыһын|Саас, сайын. Кыһын]]
[[Былыргыттан баар дьүһүннээһиннэр. Уот|Уот]]
[[Былыргыттан баар дьүһүннээһиннэр. Хайа. Былыт|Хайа. Былыт]]
[[Былыргыттан баар дьүһүннээһиннэр. Сылгы. Ынах. Оҕус|Сылгы. Ынах. Оҕус]]
[[Былыргыттан баар дьүһүннээһиннэр. Ыт. Тыа (мас). Сибэкки|Ыт. Тыа (мас). Сибэкки]]
[[Былыргыттан баар дьүһүннээһиннэр. Күөрэгэй, туллук уо.д.а. Кэҕэ. Кыталык. Куба|Күөрэгэй, туллук уо.д.а. Кэҕэ. Кыталык. Куба]]
[[Былыргыттан баар дьүһүннээһиннэр. Хотой уонна мохсоҕол. Атын көтөрдөр|Хотой уонна мохсоҕол. Атын көтөрдөр]]
[[Былыргыттан баар дьүһүннээһиннэр. Саһыл уо.д.а. Эһэ. Бөрө. Таба уо.д.а.|Саһыл уо.д.а. Эһэ. Бөрө. Таба уо.д.а.]]
[[Былыргыттан баар дьүһүннээһиннэр. Балык. Үөннэр-көйүүрдэр|Балык. Үөннэр-көйүүрдэр]]
[[Былыргыттан баар дьүһүннээһиннэр. Көмүс, тимир уо.д.а.|Көмүс, тимир уо.д.а.]]
=== Б) [[Саха поэзиятын дьүһүннүүр ньымалара (Копырин Н.З.) Үһүс глава. Кэнники киирбит дьүһүннээһиннэр|Кэнники киирбит дьүһүннээһиннэр]] ===
[[Саха поэзиятын дьүһүннүүр ньымалара (Копырин Н.З.) Үһүс глава. Кэнники киирбит дьүһүннээһиннэр|Буурҕа, этиҥ. Муора, өрүс, долгун, сүүрүк. Сулус. Кустук. Дьүкээбил уота уо.д.а.]]
== [[Саха поэзиятын дьүһүннүүр ньымалара (Н. З. Копырин). Төрдүс глава|Төрдүс глава. Саха поэзиятын дьүһүннээһиннэрин сорох уратылара]] ==
== Бэһис глава. Саха поэзиятын дьүһүннүүр ньымаларын сайдыыта ==
:[[Саха поэзиятын дьүһүннүүр ньымалара (Н. З. Копырин). Бэһис глава/1|Бастакы кэрчик]]
:[[Саха поэзиятын дьүһүннүүр ньымаларын сайдыыта 2|Иккис кэрчик]]
:[[Саха поэзиятын дьүһүннүүр ньымаларын сайдыыта 3|Үһүс кэрчик]]
:[[Саха поэзиятын дьүһүннүүр ньымаларын сайдыыта 4|Төрдүс кэрчик]]
:[[Саха поэзиятын дьүһүннүүр ньымаларын сайдыыта 5|Бэһис кэрчик]]
== [[Саха поэзиятын дьүһүннүүр ньымалара. Түмүк|Түмүк]] ==
== [[Саха поэзиятын дьүһүннүүр ньымалара. Туһаныллыбыт литература|Туһаныллыбыт литература]] ==
{{Template:PD-release}}
[[Категория:Кириитикэ]]
[[Категория:Копырин Николай Захарович]]
2mhdvl28so0ugbnplpeeawk5wcv5s5n
Саха норуотун тылынан айымньытын дьүһүннээһиннэрэ
0
37
9563
4339
2026-06-22T15:23:18Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9563
wikitext
text/x-wiki
{{header
| title = [[Саха поэзиятын дьүһүннүүр ньымалара]]
| author = Копырин Николай Захарович
| section = (Иккис глава)
| previous = [[Омуктар уһулуччу таптыыр өҥнөрө...]]| next = [[Күн]]| notes =
}}
== Иккис глава. САХА НОРУОТУН ТЫЛЫНАН АЙЫМНЬЫТЫН ДЬҮҺҮННЭЭҺИННЭРЭ==
:[[Саха поэзиятын дьүһүннүүр ньымалара. Күн (Копырин Н.З.)|Күн]].
:[[Саха поэзиятын дьүһүннүүр ньымалара. Тымныы. Муус. Хаар (Копырин Н.З.)|Тымныы. Муус. Хаар]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. Уот (Копырин Н.З.)|Уот]]
:[[Таас. Хайа.]]
:[[Былыт.]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. Сылгы (Копырин Н.З.)|Сылгы]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. 2 глава. Ынах. Оҕус. (Копырин Н.З.)|Ынах. Оҕус]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. Ыт (Копырин Н.З.)|Ыт]]
:[[Тыа (мас). Тиит. Хатыҥ. Күөх от]]
:[[Күөрэгэй, туллук уо.д.а. чыычаахтар. Кыталык. Туруйа.]]
:[[Хотой. Атын көтөрдөр]]
:[[Киис, саһыл уо.д.а. кыыллар]]
:[[Саха поэзиятын дьүһүннүүр ньымалара. 2 глава. Эһэ. Бөрө. Таба. Тайах (Копырин Н.З.)|Эһэ. Бөрө. Таба. Тайах]]
:[[Балыктар. Үөннэр-көйүүрдэр]]
:[[Көмүс. Тимир]]
[[Category:Копырин Николай Захарович]]
[[Category:Кириитикэ]]
d26d67xur4krtf1yew0ksm800hn8qlb
Саха поэзиятын дьүһүннүүр ньымалара. Тымныы. Муус. Хаар (Копырин Н.З.)
0
38
9564
7449
2026-06-22T15:23:19Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9564
wikitext
text/x-wiki
{{header
| title = [[Саха поэзиятын дьүһүннүүр ньымалара]]
| author = Копырин Николай Захарович
| section = (Иккис глава)
| previous = [[Саха поэзиятын дьүһүннүүр ньымалара. Күн (Копырин Н.З.)|Күн]]
| next = [[Саха поэзиятын дьүһүннүүр ньымалара. Уот (Копырин Н.З.)|Уот]]→
| notes =
}}
Тымныы. Муус. Хаар. Норуот үйэ-саас тухары сааһы, сайыны, сылааһы ыралыыр, кинилэринэн бары үчүгэйи, үүнэри, үөскүүрү уобарастаан этэр. Оттон тымныынан, төптөрүтүн, куһаҕаны, өлүүнү, кэхтиини холобурдуур. Олоҥхоҕо айыы аймахтара олорор сирдэрэ «кыһына суох сайын дойду», «тымныыта суох итии дойду» (49—22), оттон адьарай аймахтара олорор сирдэрэ — тымныы, хараҥа, куһаҕан сыттаах-сымардаах дойду. «Күһүнүм күһэйдэ», «кыһыным кыһайда», «кыстыкпар бараары гынным» диэн кырыйдым-буорайдым, өлөрүм чугаһаата диэн ис хоһоонноох этиилэр буолаллар. «Сылаас сүрэхтээх», «сылаас харахтаах», «сылаас тыллаах» диэннэр — үчүгэй өттүгэр этиллэр тыллар, оттон «тымныы сүрэхтээх», «тымныы харахтаах», «тымныы тыллаах» диэннэр итилэргэ уун-утары өйдөбүллэр.
Ол курдук «тоҥ» («тымныы») саха фольклоругар маннык дьүһүннээһиннэргэ туттуллар:
Тоҥ — эрэй, мэһэй: «тоҥтон толлубат киһи» (50— 162).
Тоҥ — кытаанах, бөҕө: «тоҥ иҥиирдээх», «тоҥ маһы тосту тардар» киһи; Тоҥ Дуурай диэн олоҥхо бухатыырын аата (137—2728).
Бухатыырдар, охсуһаннар, «тоҥ буору тобуктарын хараҕар диэри тобулута үктээн кэбиһэллэр» (31—234).
Тоҥ — өрдөөҕү: «тоҥ суолгун тордоотоҕум» (31 — 177).
Тоҥ — бириэмэ кээмэйэ: «тоҥ күөс быстыҥа саҥарда» (56—119).
Тоҥоруу (тымнытыы, сойутуу) — өлөрүү, эһии: «суон тыынын сойуттум, собулҕа этин тоҥордум» (31—241).
Тоҥ — саҥата суох, көһүүн, тоҥкуруун киһи: «тоҥ киһи».
Тоҥ — долуой сахалыы билбэт киһи: «тоҥ нуучча».
Эн толоостук саҥарбыккын бар-дьон истэн сэмэлиэ диэри этэллэр: «Дьыбардаахха саҥардыҥ!» (50—18).
«Муус» маннык дьүһүннээһиннэргэ туттуллар:
Муус сүрэх (өй) — аһынары билбэт сүрэх (өй): «Абааһы кыыһын чой муус сүрэҕэ... чороҥолуу сытта» (10—225).
Абааһы уолун ытыһа — муус: «дьаҥхалаах күлэр муус ытыһынан балаҕан диэки таҥнары чарапчыланан көрдө» (10—62).
Аллараа дойду уолаттара «үс кырыылаах дьэҥкир муус үөрбэ буолан, өрө күөрэйэллэр» (10—57).
Аллараа адьарай аймаҕын баһылыга — «Муус Суорун тойон», оттон сорук-боллурдара «Муус-Дьолуо хара уолаттар» (62—259). Аллараа дойдуга киирэр аартык «Муус Күҥкүйэ хотун аартык» (39—98) биитэр «Муус Чоҥкуйа хотун аартык» (31 —10).
Муус тайахтаныы — умнаһыттыйыы,- дьадайыы: «муус дьоҥкуо тайахтаабыта» (52—281).
Муус ураҕаһынан үүрсүү — иирсии, абааһы көрсүү: «муус ураҕаһынан үүрбүт» (50—177).
Муус дьаҥхаланыы — уһун, сындалҕаннаах айан. Олоҥхо бухатыырдара айаннаабыт омуннарыгар «үрут өттүлэригэр үс тутум күр муус үллүктэннилэр, алын өттүлэригэр аҕыс илии хайыр муус дьаҥхаланнылар (31—285).
«Хаар» маннык дьүһүннээһиннэргэ киирэр:
Хаар — табыллымыы, сатанымыы: «хаары ытыһан хаалбыт» (50—33); «сииккэ сиэлбитим, хаарга хаампытым» (36—78).
Хайыҥ — эрдэттэн харыстаныы, страховкаланыы: «хайыҥ охсунна» (50—123).
Хаар — өҥ-дьүһүн: «хаар маҥан баттахтаах».
Хаар — саас (сыл): «хас хаары бараатыҥ?»» (89— 57).
Хаар — кээмэй: «халыҥ буруйуҥ, хаар хайа саҕа» (10—77); «хаардаах бугул саҕа хааннаах сил» (10— 288).
Хаары ыраастааһын — урукку тапталы сөргүтүү: «өтөхтөрүн хаардаабыт» (50—139).
Хаар — кэбирэх: «хараҥа тыаларын, хаар курдук, хампы сыстылар» (43—88).
Дьадаҥы, курааһы олохтоох киһини: «уу-хаар оһоҕостоох уһун сордоох»,— дииллэр (43—39).
Уу-хаар — кураанах лахсыыр: «уу-хаар тыллаах» (50—99).
[[Категория:Кириитикэ]]
[[Категория:Копырин Николай Захарович]]
6fo30dy40gemhvc1sea8qu7ufq1n5cd
Саха поэзиятын дьүһүннүүр ньымалара. Уот (Копырин Н.З.)
0
39
9565
4534
2026-06-22T15:23:21Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9565
wikitext
text/x-wiki
{{header
| title = [[Саха поэзиятын дьүһүннүүр ньымалара]]
| author = Копырин Николай Захарович
| section = (Иккис глава)
| previous = [[Тымныы. Муус. Хаар.]]| next = [[Таас. Хайа.]]| notes
}}
'''Уот.''' Кумах куйаар олохтоохторугар уу, тымныы курдааһын олохтоохторугар уот — олох тыына. Уот сахалар олохторун тутааҕа буолара кинилэр итэҕэллэригэр, абыычайдарыгар көстөр. Биһиги норуоппут былыр сүгүрүйбүт иччилэриттэн ордук сүрдээхтэрэ — уот иччитэ. Араас бэлиэ, кыра да, улахан да үөрүүлээх түгэҥҥэ барытыгар ас саамай күндүтүттэн, үчүгэйиттэн ким-хайа иннинэ уот иччитигэр, кини аһына-харыһыйа сылдьарын туһугар, хайаан да бэрсэллэр. «Уот иччитигэр дылы, маппакка бараҥҥын» диэн онтон үөскээбит өс хоһооно буолуохтаах. Атын айыылары, иччилэри ааттаан-суоллаан аһатыы эмиэ уот иччитинэн (уокка ас биэриинэн) эргитиллэр. Онон кини атын айыылары, иччилэри кытта тиксиһиннэрээччи курдук буолар.
Тугу эрэ быһаарынан, биитэр туохтан эрэ аккаастанан олордохторуна, уот эмискэ биллэрдик «тас» гыннаҕына дуу, иһиирэр курдук тыаһаатаҕына дуу, быһаарыммыт суолларыттан «уот буойда» диэн аккаастаналлар, биитэр төттөрү, «уот эттэ» диэн аккаастаммытта-рыгар төннөллөр. Оһохтон чох ыстаннаҕына, ыалдьыт кэлээри гыннаҕа дииллэр, уонна ол чоҕу мээнэ бырахпаттар. Оттон чох ыстанан киһиэхэ түстэҕинэ «эһэм көтөхтөрдө» диэн олус үөрэллэр. Уот иччитэ инникини бэриэт этэр, хаһан да сымыйалаабат, үчүгэй санаалаах. Абааһылар араас куһаҕан дьайыыларыттан киһини эрэллээхтик араҥаччылааччы уот. Кинини кыыһырдар, хомотор сатаммат. Киниэхэ кирдээҕи, куһаҕаны бэриллиэ суохтаах, кыыһыран, тирии ыарыытынан тыбыырыа диэн буолар. Уокка силлиир, ууну ыһар — улахан айыы. Саҥа сүктэн кэлэр кийиит уот иннин быһа хаамыа суохтаах.
А. Е. Кулаковскай суруйарынан, уот иччитин толору аата маннык кэрэ поэтическай эпитеттэринэн бэриллэр: «Аал уот иччитэ Күлтэллэх, Көмөр сыттык, Көбөрүүнньүк суорҕан, Саалыр чанчык, Бырдьа Бытык, Кыырык Төбө, Көмүс ураанньык, Күөнэ көҕөччөр, Хахай саҕынньах, Хатан Тэмиэрийэ, Алтан Баһырҕас, Аан Уххан-Тойон» (121—30). Манна уот умайан кытыастара, күлүбүрүүрэ, бачыгырыыра, умуллан күл, көмөр буолара киһититиллибит (антропоморфнай) образтарынан хоһу-йуллар. Уокка, уот иччитигэр сүгүрүйүү Сибирь булдунан дьарыктанар элбэх норуоттарыгар баар. Ол эрээри эвенкилэргэ, нанайдарга, нивхилэргэ, удегелэргэ, мансиларга уо. д. а. уот иччитэ дьахтар буоллаҕына, буряттарга, сахаларга кини оҕонньор дьүһүннэнэр эбит.
«Аал уоту оттуу»— олох олоруу, ыал буолуу: «аал уоту оттон, алаһа дьиэни тэрийэн,... иннигин көрүнэриҥ кэллэ» (59—302).
Ньургун Боотур ыраах айаҥҥа аттанарыгар дьиэм, сүөһүм-аһым этэҥҥэ турдуннар диэри: «оттубут уотум умуллубатын!» (62—241)—диир. Норуот ырыаһыта С. Зверев хоһуйарынан, Манчаары төрөөбүт буоруттан букатыннаахтык арахсарыгар аны олох олорорум бүттэҕэ диэри: «аны кэлэн.. аал уоту отторбун аастаҕым» (26—118),— диир.
Ыал олорорун сүрүн бэлиэтэ уота (оһоҕун буруота) буолар. Ол иһин ыал диир оннугар үксүгэр «буруо» дииллэр. «Хас буруо баарый?» (хас ыал баарый?), «буруо таһаарбыт» (ыал буолбут), «буруолааҕы көрбөтүм» (ыалы көрбөтүм) эҥин диэн буолар. Оттон нууччаҕа «буруо» үксүгэр олох атыннык тэгилитэн этиигэ туттуллар («обман, дым», «поругался в дым», «дым столбом»).
Уот сахаҕа олох тыына (тутааҕа) буолара «кыыс оҕо тэллэҕэр уон уоттаах» диэн хоһуйан этииттэн эмиэ көстөр.
Уот умуллуута — өлүү-сүтүү, эстии: «уотуҥ умулуннун», «үөлэһиҥ чоҥкуйдун» диэн кырыыска этиллэр тыллар. «Аал уотуҥ утуйдун, үөлэһиҥ кырыардын» (150—143).
Арыт уот алдьархайы аҕалар күүс курдук эмиэ өйдөнөр. «Уот да сиэбэт, уу да ылбат киһитэ буолуоҥ» (22— 234); «уот сиэбитин... курдук» (50—33).
«Уот ааныттан» (хара маҥнайгыттан), «уот өттө» (илин өттө), «уот харахха эттэ» (адьас таба эттэ) диэн этиилэр эмиэ былыр-былыргыттан сахаҕа уот олох тыына буолбутуттан үөскээбит буолуохтарын сөп. Сахаҕа «уот» үксүгэр үчүгэй өттүгэр холобурдааһыҥҥа туттуллар буоллаҕына, нууччаҕа кини, арааһа, алдьархайы аҕалар күүс курдук көрдөрүллэрэ ордук элбэх быһыылаах. «Огонь да вода — нужда да беда», «огню не верь», «с огнем не шути», «с огнем не дружись»,— диэннэр, бука, мээнэҕэ этиллибэтэхтэрэ буолуо. Ол эрээри киһи ис психическэй хаачыстыбатын, характерын «уотунан» холобурдаан этии нууччаҕа даҕаны, сахаҕа даҕаны майгыннаһаллар быһыылаах. Холобур, маннык этиилэри тэҥнээн көрүөҕүҥ: «уот курдук киһи» — «не человек, а огонь!», «хараҕа уоттанна» — «глаза его горят огнем», «уот хааннаах киһи», «бу киһи бэйэтэ уоттанар» — «огнем душа его полна», «сердце вспыхнуло огнем», «огонь в груди». Биһиги «уоттаах саһыл» диибит, нууччаҕа «лиса огневка» диэн этии баар. Оттон «уокка-ууга түһүү» («в огонь и в воду»), «уоту-ууну туорааһын» («пройти огонь и воду»), «икки уот икки ардыгар киирии» («между двух огней»), «уоттан куттанар курдук күрэнэр» («боится как огня») диэннэр биһиэхэ нууччаттан киирбит буолуохтарын эмиэ сөп (ити этиилэр Э. К. Пекарскай тылдьытыгар киирбэтэхтэр). Сахаҕа олус улахан тымныыны уотунан эпитеттээн хоһуйуу эмиэ баар: «уоттаах улуу модун тымныы», «уоттаах дьыбар» (37—49).
[[Категория:Кириитикэ]]
[[Категория:Копырин Николай Захарович]]
k6npczg6gwegu42v2ns3xrqvq6c0zj7
Сайыҥҥы түүн дьалыҥнара (истомы), (Алтан Сарын)
0
100
9566
7027
2026-06-22T15:24:12Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9566
wikitext
text/x-wiki
{{header
| title = [[Алтан Сарын]]
| author = Алтан Сарын
| section = Сайыҥҥы түүн дьалыҥнара (истомы), (Алтан Сарын)
| previous = [[Уруккутун өйдүөбүт (Алтан Сарын)]]| next = [[Айыыһыт (Былыргы кэпсээн), (Алтан Сарын)]]| notes =
}}
Сайыҥҥы Күн кутаа уот толбоннорунан кырбаһан, кыыһар-чаҕаан дьалхааннары бүрүнэн, арҕаа халлаан алын сайыытын кытыастар кыһыл долгуннарынан уһааран, хал-лааны кытта халаастаһан, кытара кыыһыран, марбайа үллэн киирэн хаалла. Сайылык иһэ сайыҥҥы күнүс буһурук куйааһын харам соҕустук ботуччу уобан, кэри-куру буолан соҥуйан хаалла. Аан дойду иһирик төлөнүнэн, итии салгынынан тыына-тыына улам-улам утуйан нухарыйан, ибириин сиигинэн тиритэ сытта.
Түүҥҥү дьалыҥнар итии тыыннара ийэ сиргэ эрсэҥ (похоть) имэҥнэрин (вожделение) иҥэриччи туойдулар, кыатаммат баҕалар илбис иҥсэлэрин көбүттүлэр. Эҕэрдэ-маҕан халлаан илин кырыытыттан эрсэҥ-ходьоҥ итии дьалыҥнар ийэ сиргэ итии тыалы илдьиттэнэн эргийдилэр.
Ийэ сир кыатаммат баҕалар имэҥнэринэн иитиллэн, эппэҥнии-мэҥилдьийэ, өрүтэ тыына, ууһуур-дэлэйэр эр-сэҥнэринэн иэдэйдэ. Аан дойду ньамчы чэчиктэрэ (цветы) имэҥи көбүтэр айаал (нежный) — аҥкылас сыттарынан салгыны саталыы турбуттара. Чэл (зеленый) — нуолук оттор сытыы аҕыраҥ (удушливый) сыттарынан асхарый-ан, киһи сүрэлин (душа) туймаардаллар, эрэй-муҥ эрсэ-ҥинэн киһи дьайымын (чувство) толороллор.
Арай, бу түүҥҥү дьалымнаах кэм бары эрсэҥнэрэ көбөн эрдэҕинэ, күех унаар түптэҕэ мунан, утуктаан-нухарыйан эрэр сайылык илин-бас халдьаайытын анныгар, хатыҥ чараҥ ортотугар, эндэрдии түһэн сытар баай хатыҥ төрдүгэр эрдээх дьахтар олороллор эбит. Кинилэргэ ньимик (тиши-на) дурда буолан, тулалаан турааччы хатыҥ чараҥ бүтүннүү иһиллээбит курдук иһийэн, илбистээх (страстный) таһаа-нан (поза) таалан турар... Байылыат (могучий) хатыҥнар, хардарыта буойсубут курдук, санньырхай лабаа илиилэри-нэн сэрэхтээхтик өрө уунан баран, бука бары ньимик ба-ран таалан тураллар.
Арай, кинилэр сэбирдэхтэрин эрэ тыаһа дөр-дөр итийбит сүрэх кирдээх талыы титирэһин курдук, ибиргээн, суугунуу-суугунуулар хам бараллар. Айылҕа бүтүннүү кинилэртэн туох тахсарын кэтээбит курдук, ах баран кэтэһэн турар.
Ол барыта кинилэри тапталга үтэйэр, биллибэтинэн-көстүбэтинэн таптал илбистээх олбоҕун кинилэргэ сым-наҕастык тэлгиир, сүрэхтэрин-быардарын эппэҥнэтэр, мэйии-лэрин-санааларын итирдэр. Кинилэри атахтарын анныттан күөх торҕо таҥара кийииттэрэ айаал-аҥкылыс (ароматный), сүүл-дьаралҕан сыттарынан ыһааран, кинилэр сүрэллэрин (душу) сылаанньытан, кинилэр хааннарын уоттуу оргуппуттара.
Ньамчы-ньамчы аалай-эбириэн (розовато-пестрый) үүрэнньиктэр (фиалки) сытыы минньигэс сыттарынан ту-нуйан, кинилэри туймаардаллар. Алтан оттор аҕыраҥ сыт-тарынан салгыны ыһааран, сайыҥҥы сылаас буһурук түүнү сүүлүнэн аҕырдан, кинилэр хааннарын долгуталлар, кини-лэри имэҥинэн-дьалыҥынан мэҥилдьитэллэр.
Кыһыл сараналар (сарана), дьылтархай-маҕан толоон тунахтара (ромашки), күөх дьүһүннээх чороон оттор (колокольчики), боллох уолаттара (ландыши), дьылтархай-алтан ортолоох, үрүҥ төбөлөөх уу кийииттэрэ (водяные лилии), кыһыл-аалай ымыйахтар (гвоздики), күөхтүҥү-кытархай сирэҥнэр (незабудки), дөлүһүөн чэчиктэрэ бука бары салгыны араас-суол минньигэс: аһыы-ньулуун, аҥкылас-аҕыраҥ, сата-дьаралҕан, курус (едкий) — кубулҕан (острый), имириин (сладко-преслый) сыттарынан ыһааран тунуйа тураллара — имэҥнэри, дьалыҥнары күүрдэллэр, эрсэҥнэри, илбистэри төрөтөллөр, киһи сүрэлин мэлэритэн туймаардаллар.
Сырыынньа халдьаайы сирэйигэр күн уотун сыралҕа-ныгар биэбэйдэтэн торолуйбут байылыат бэстэр, солко-нуолук мутукчалаах баараҕай тииттэр, халдьаайы аппала-рыгар үүммүт улуудаҥ (гордый) харыйалар, чаллах хатыҥнар, үргүүк сэбирдэхтээх тэтиҥнэр, имигэс талахтар, хаҕыдай ыарҕалар бука бары бу кэмҥэ саталаах аҥкылыс сыттары тарҕатан, лабахайынан кэьэрдэн киһи-сүөһү хаа-нын долгутан, киһи мэйиитин итирдэн туймаардаллар.
Аан дойду ууһуур-дэлэйэр тэлгэҕин тыаһа суохтук тэлгиир, төрүүр-үөскүүр суорҕанын биллибэтинэн-көстүбэти-нэн сабар, бары хамсыыктары (животных) таптал суолу-гар үтэйэр.
Сайыҥҥы күүрүүлээх күн сандаҕата дьулурҕатык (стремительно) таҥнары сатыылаан түһэн, ийэ сир бары ыама-лыыр күдэхтэрин (средства) көбүппүт. Хатыҥ чараҥ ортотугар олорор эрдээх дьахтар түгэхтэрэ көстүбэт хараҥа-дьалхаан харахтара минньигэс дьалыҥынан убайаллар, эрсэҥ эрэйинэн дьиэлийэллэр, сирэйдэрин хааннара имэҥ илбиһинэн кэйэллэр. Муос тыҥырахтарыттан эт сүрэхтэ-ригэр диэри дьалыҥ титирэстэрэ сүүрэлиир, эттэрэ бүтүннүү дьырылыы титирэстиир, мэйиилэрэ-санаалара итирэн күүрэр, сүрэхтэрэ-быардара минньигэс тапталынан эппэҥниир...
Эмискэ тыа баһа суугунуу күлэн титирэстии түһэр, чэчиктэр, оттор аллайаллар, эҕэрдэлии битийэллэр, айылҕа бүтүннүү эҕэрдэлиир, күллэрэстиир, кинилэр барыларын кыттан (общий) баҕалара ханна, таптал үтэһэтэ дьэ туол-ла, кини таһылҕата (уровень) таһымнаата, таптал сүүл имэҥнэрэ дьэ төлүргэлээтэ, уос этигэн-дорҕоон тыаһа чахчы этэн, кэтэһэн тыҥаан турар айылҕаны күллэрэн тыбыырта..
Бу айылгылаах (торжественный) сайыҥҥы түүн кэмигэр бары үөскүүр-ууһуур күүстэр баҕарбыт баҕалара туолла, аан дойду бүтүннүү онуохаҕа үөрэн айхаллаата.Хатыҥ чараҥ түүҥҥү ыалдьыттарын ымсыы имэҥнэрин уоскутта, утах баҕаларын ханнарда.
Оҕордук ускуруой үөскүү-тэнийэ, ууһуу-тунуйа турар, өлө-өлө тиллээччи, өскүл (вечно) эдэр, өскүл тыыннаах Айылҕа.
{{DEFAULTSORT:Алтан Сарын}}
[[Категория:Бары ааптардар|Алтан Сарын]]
[[Категория:Кэпсээн]]
[[Категория:XX үйэ]]
[[Категория:Алтан Сарын]]
6jvxo7ne5afdlyupyzt0ae7w2wrqiw0
Айыыһыт (Былыргы кэпсээн), (Алтан Сарын)
0
101
9567
7532
2026-06-22T15:24:13Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9567
wikitext
text/x-wiki
{{header
| title = [[Алтан Сарын]]
| author = Алтан Сарын
| section = Айыыһыт (Былыргы кэпсээн) (Алтан Сарын)
| previous = [[Сайыҥҥы түүн дьалыҥнара (истомы), (Алтан Сарын)]]| next = [[Уол оҕо дьоллоох, таҥара баайдаах (Быһылааннаах кэпсээн), (Алтан Сарын)]]| notes =
}}
Арай былыр биир киһи үрэх баһыттан айаннаан иһэн, аара сиргэ, биир бэт үтүө чаллах хатыҥ анныгар хоно һыппыт. Бу хоно һытан түһээн көрдөҕүнэ: бии үрдүгэр турар чаллах хатыҥа, үс курдуулаах моҕол ураһа буолан хаалбыт, ураһатын иһигэр биир бэт мааны хотун дьахтар, бэдэр саҕынньаҕын нэлбэгэйдээн, үүс-киис тириитэ дьабака бэргэһэтин өгүччү соҕус уурунан баран, олорор үһү. Он-тон, чочумча буолан баран, дьиэ таһыттан киирэн кэлбиттэр — аҕыс-сэттэ эриэн быыһык саҕынньахтаах ньидьирис-пит кыра оҕолор. Ол киирбиттэрин кэннэ, бу дьахтар оҕоло-руттан ыйыппыт: "Хайа тукаларыам, төһө бэт ыалга һылдьан кэллигит, астара-үөллэрэ, үөрүүлэрэ-көтүүлэрэ төһө бэр-дий, хайдах төлкөлөөн-оҥоруулаан кэллигит".
Онуоха оҕолоро эппиттэр: "Ээ дьэ ас-үөл, үөрүү-көтүү бэт, оол гынан баран, кытыйалаах арыыны дьалкытан тохпуттарыттан соһуйаммыт итэҕэс кэскиллээн кэбисти-бит: уон сааскар тиийэн бараҥҥын эргэ өтөххө сытар холум хараҕатыгар уллуҥаҕыҥ оройун тобулу үктээбикки-нэн хааныҥ баран өлүөхтүгүн диэтибит".
Онуохаҕа бу дьахтар: "Бэйэм барымнабын. Эһигини ыыппытым — оҕолор оҕолуу һылдьан, сыыһа төлкөлөөн кэлээхтээбиккит, аата, оччо үөрбүт-көппүт барахсаттарга оҕолорун үчүгэйдик толору даа төлкөлөөн-оҥоруулаан кэл-бэккит," — диэн оҕолорун сэмэлээбит уонна бии киһи диэки ыйан баран: "Көрүҥ эрэ, эһиги төлкөлөөбүт оҕоҕут аҕата ити кэлэ һытар," — диэн оҕолоругар эппит.
Киһи уолуйан уһуктан кэлбитэ: ханнык даа ураһа һуох, хатыҥа хатыҥынан турар үһү. Туран, айаннаан дьиэтигэр кэлбитэ, ойоҕуттан биир уол оҕо төрөөн һытар үһү.
Оҕо уончатыгар тиийэн баран, кырдьык, аҕата түһээби-тин көрдүк, эргэ өтөххө һытар холум хараҕатыгар атаҕын тобулу үктээбитинэн хаана баран, өлөн хаалбыт.
Онон былыргы сахалар: дьахтар төрөөбүтүн кэннэ үс хонон баран, Айыыһыт аттанарыгар диэн, үөрэн-көтөн, малааһыннаан атаараллар эбит — Айыыһыт ас-үөл үгүһүн, үөрүүнү-көтүүнү таптыыр — диэн. Дьахталлар эр дьону тарҕатан бараннар (Айыыһыт таттахпыт диэн) төрүөбүт дьахтары кытта сирэйдэрин дэлби арыынан угунуохтаан баран, уот кытыытыгар төгүрүччү олорон эрэннэр, дэлби күлсэллэрэ үһү. Онно биир саамай үгүстүк күлбүт дьахталларын — бу дьахтарга Айыыһыт киирдэ, сотору хат буолууһук — диэн билгэлииллэр эбит.
Айыыһыт соһумтаҕай, соһуйдаҕына, саҥа төрүөбүт оҕону итэҕэс кэскиллээн, быстах оҥоруулаан барар диэн — дьахтар төрөөн сыттаҕына, киһини улаханнык саҥаппаттара, тыаһаппаттара үһү.
Ас-үөл тохторун, дьалкыйарын Айыыһыт эмиэ сөбүлээбэт диэн бэккэ харыстыыллар...
Ол курдук быһыылаах-майгылаах буолаллар эбит былыргы дьон.
{{DEFAULTSORT:Алтан Сарын}}
Алтан Сарын "Айыыһыт" кэпсээнин нууччалыы тылбааһа. Тылбаастаата: Шарин Сайаан, В.П.Ларионов аатынан Майа орто оскуолатын 7 "в" кылааһын үөрэнээччитэ, салайааччы: Семенова Марфа Николаевна
'''Айысыт.'''
Однажды один человек, ехавший из верховья реки, по дороге остановился отдохнуть, поспать под низкорослой ветвистой березой. Уснул и видит сон, как сия береза, под которой он уснул, превратился в большую берестяную урасу, а в той урасе была прекрасная хотун-женщина, накинувшая на плечи рысью доху, а на макушке надевшая соболиную шапку-дьабака. Чуть погодя, в дом зашли восемь-семь маленьких детей, одетые в пестрые пыжиковые доха. Когда они зашли, женщина спросила: “Ну, голубки, в какой семье вы были, какие явтсва, радость у этой семьи, какую судьбу вы им преопределили?” Ответили ей дети: “Пища, радость у них особенная, но из-за того, что масло в кытыйе расплескалась, мы удивились и недостаточно предопределили их судьбу: после исполнения десятилетия в старом заброшенном доме на чеке камелька ты подвернешь ступни, пойдет кровь и из-за потери крови ты умрешь, сказали”.
Тогда сказала эта женщина: “Лучше бы сама пошла. Вас отправила – не так предсказали судьбу ребенка, родители которого так были рады, смогли бы и счастливую судьбу предопределить” - отругала мать своих детей и посмотрев на человека, добавила: “Посмотрите, вот лежит отец ребенка, чью судьбу вы преопределили”. Человек проснулся: никакой урасы нет, береза березой стоит. Собравшись, человек приехал домой: жена родила еще одного сына.
После исполнения десятилетия в старом заброшенном доме на чеке камелька мальчик подвернул ступни, пошла кровь и из-за потери крови мальчик умер.
Поэтому в старину народ саха верил, что через три дня после рождения ребенка, вся семья должна радоваться и угощать Айысыта – Айысыт любит обилие еды, радость-веселье. Женщины, сопроводив мужчин (думая, что влекут Айысыта), вместе с родившей женщиной намазывали маслом свое лицо, садились вокруг огня и смеялись. И предсказывали, что в ту женщину, которая много всех смеялась, вошла Айысыт и что она скоро забеременеет.
Айысыт пугливая, если испугается, может недостаточно предопределить судьбу ребенка – когда женщина рожает, разговаривали тихо, не шумели.
Айысыт не любит, когда проливается, расплескывается угощение, поэтому угощение очень берегли...
Вот такие были люди в старые времена.
[[Категория:Кэпсээн]]
[[Категория:Алтан Сарын]]
[[Категория:XX үйэ]]
6ph3cfvcyblzlawq3j9l4yfbsrshof3
Уол оҕо дьоллоох, таҥара баайдаах (Быһылааннаах кэпсээн), (Алтан Сарын)
0
102
9568
7902
2026-06-22T15:24:15Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9568
wikitext
text/x-wiki
{{header
| title = Уларытыы Уол оҕо дьоллоох, таҥара баайдаах
| author = Алтан Сарын
| section = Уол оҕо дьоллоох, таҥара баайдаах (Быһылааннаах кэпсээн), (Алтан Сарын)
| previous = [[Айыыһыт (Былыргы кэпсээн), (Алтан Сарын)]]| next = [[Алтан Сарын]]| notes =
}}
* Бу кэпсээн аата да, маҥнайгы аҥара да суох. Илиинэн суруллубут харатын бүтүүтүгэр: "Хахайдаах Хабырыыс. 1924 с, кулун тутар ый 17 күнэ" диэн илии баттааһыннаах. Кэпсээн аатын уонна чаастарга үллэриитин бэйэм оҥордум. — Василий Протодьяконов.
== II ==
Уол кутталыгар буолан, хаһыытаабакка да хаалбыт. Буочуката аргыый аҕай, улам-улам үөскэ киирэн, хоту диэки устан лэглэйэ турбут.
Уол эмэһэтигэр иччэҕэй биллибитигэр өйдөнөн көрбүтэ, буочуката сахсайан хаалбыт, инньэ гынан сиксиктэринэн уу быыһылаан киирбит, мантан уол сүрдээхтик куттаммыт ханна да барыан, тугу да гыныан булбатах. Быган, таһырдьаны көрүөн баҕарбытын иһин, буочука улахана бэт, ааныгар нэһиилэ тарбаҕын эрэ төбөтө тиийэр. Уол атаҕыттан быһаҕын сулбу таһыйан таһаарбыт, буочукатын үөһэ өттүнэн, турдаҕына хараҕар сөп түбэһэр гына дьөлүтэ үүттээбит. Тула өттүнэн көрө иһэр гына түннүк оҥоттообут. Чуолҕаннарынан көрбүтэ, күн һандаһыра киирэн эрэр. Кини, бадаҕа, ханнык эрэ арыыны ойоҕоһунан устан иһэр быһыылаах, ол көрдүк оҥочолоох дьон устан иһэллэр. Оҥочолоохтор уолу хабырыйбытынан, арыыны тумсунан арҕааттан илин диэки этириэс быһа туораан иһэллэр.
Ити иккэрдигэр уол буочукатын уута дириҥээн, тобугар тиийэн барда. Оҥочолоох дьон улам-улам чугаһаан тиийэн кэллилэр, һаҥалара иһиллэр буолан барда. Биир киһи һаҥата: "Бу туохпут эмиэ иннибитигэр арбайан-һарбайан иһэрий, доҕоттоор!?" Иккис киһи: "Хайа эбэбит итчитэ эмээххин күөх көлбөхтөөх көҥкөлөй ыаҕаһын биһиэхэ оҕолоругар тоһуйбута буолаарай? Арыгыта кутан биэриэххэ"
Үһүс киһи: "Аата, бу дьон арыгыларын абааһы аайы элбэҕэргээн... Онтон, көрдөххө, көҥдөй мас буочука устан иһэр буолбат дуо? Итиннэ ама ханнык абааһы кэлэн хааламмыт үһү! Күрүлүүр күнүс оттотугар... Иккис киһи: "Бу киһи тоҕо айаҕа суоэай доҕоор," — диэн бүтэрэ илигинэ, буочука иһиттэн уол хаһыытыыр. Иккис киһи: "Дьэ мин эппэтэҕим дуо, һолоҕой! Күн-хаан кэллэ быһылаах — түргэнник арыыга тахха охсуоҕуҥ!!!"
Арыыга тиксэ охсоллор. Оҥочолоруттан тахсаллар. Бары талах быыһыгар түһэллэр. Оҥочолорун баайбатахтара, киирэн уста турар. Уол буочукатын иһигэр хаһытыы-хаһытыы, биир кураанах оҥочо аргыстанан хоту диэки устан испит.
Ол түүнү быһа устубуттар. Сассыарда халлаан сырдыыта оҥочо кэлэн биир арыы иирэтиттэн иҥнэн тохтоон хаалбыт; буочука устубутун көрдүк устан испит.
Буочука дьиппинийэн уу киирэрэ тохтообут. Урут киирбит уута уолу самаҕын туорайыгар тиийбит.
Күн оттотун һаҕана икки тыылаах киһи арҕааттан илин диэки туораан талбаардан иһэллэрин көрбүт. Били дьон улам-улам чугаһаан кэлбиттэр. Биир киһи: "Э! дьэ бэт да буочука устан иһэр доҕор, итини ама ыллахпыт дии!" Иккис киһи: "Хата таҕаараммыт оттотунан быһа эрбээн баран, күһүн сүөһү хаана һүүрдэр билээги оҥостуохпут". Инньэ дии-дии аргыый аҕай кытыы диэки уһааран барбыттар.
Уол чуолҕанынан көрөн истэҕинэ, кытыыта улам-улам чугаһаатар чугаһаан кэллэ, дьоно аҕаланнар кытыы кумахха астаран баран, буочуканы иҥнэри таппыттарыгар, буочука иһинээҕи уу уолу бүрүннэри түспүт. Уол соһуйан сарылаабыт, тохтуу соҕус баһын быктаран көрбүтэ, икки тыы эрдиилиин-баҕастыын ууга барбыттар, ол көрдүк икки киһи хаһытыы-хаһытыы сыссан эрэллэр...
Уол буочукатыттан оронон тахсыбыт. Хааман көрүөх буолта, икки атаҕа кыайан хамнаабат гына көһүйэн хаалбыт. Тымныы ууга уһун түүнү быһа турбут сордоох, туох аанньа буолуой! Нэһиилэ кытыыга үҥүөхтээн тахсыбыт, хата куйаас баҕайы күн эбит. Кытыы кумахха күн уота сып-сылаастык сыралыччы тыкпытыгар уол сыттыгы бырахпыт көрдүк күс гына баран түспүт. Таалалаан сыппыт. Утуйбатах, куттаммыт, дэлби һылайбыт эрэйдээх күн уотугар сыламнаан, устунан утуйан хаалбыт.
== III ==
Киэһэ буолан барбыт. Уол уһуктан тиийэн кэлбитэ; сылаата тахсыбыт, илиитэ-атаҕа көһүйбүтэ суох буолбут, ол оннугар, хата, дэлби хоргуйбут.
Эргим-ургум көрбүтэ өрүс илин эҥэригэр таххыбыт быһыылаах, илин мыраан ол көрдүк сугас соҕус сааскы сытыы күөҕүнэн чэлгийэн турар. Уол турбут, өрүһү кыйа, мыраан аннын диэки һоҕус баран испит. Барбахтаат, мыраантан киирэр улахан хорулҕан айан суолугар көтөн түспүт. Суол устун үөһэ мыраан үрдүгэр таххыбыт. Үөһэ таххан көрбүтэ: күн түөттүүр бадаҕа буолбут, аҕыйахтык хардыылыырын гытта, баараҕай мугур бэс кумалааныттан биир һудьу өрө көтөн тилигирээн таҕыста, инньэ гынарын гытта манна һымыыттаабыт эбит буоллаҕа диэн уолга өй көтөн түстэ.
Инньэ дии һанаата да, салбах хатыҥ төҥүргэһэ һытарын сулбу тардан аҕалла; кумалааҥҥа сыһыары ууран, онтон һалҕанан тахсан кумалаан айаҕын таҥнары өҥөйөн көрдө, көрбүтэ: ол көрдүк кумалаан түгэҕэр уонтан тахха кус сымыыта лэчигирэһэн сыталлар. Уол эрэйдээх харгыйбыта диэн сүрдээх. Дьэ бу сымыыттары ылаары хачыгыраспыт. Илиитэ тиийиэхчэ тиийбэтэх, кыһыы бөҕө буолбут, онтон, бу хачыгыраһа туран, кумалааҥҥа төбөтүнэн таҥнары түһэн хаалбыт, сымыыттарын төбөтүнэн илдьи түһэн кээспит. Хаһытыы, орулуу мөхсе сатаан кэбиспит да туох истиэ-көрүө баарай! Кэннэки сэниэтэ быстан, сээбэһэ эстэн, син бииригэр түһэн кыбыллыбытынан турбут.
Арай ол туран иһиттэҕинэ, һайдыыр саҥа баар, улам-улам саҥа чугаһаан кэлбит. Саҥатыттан истэн сэрэйдэҕинэ — оҕустаах сыарҕалаах кырдьаҕас киһи быһыылаах. Сотору соҕус тыаһа оҕуһун аҕалан оҕонньор кумалаан аттыгар талыр гына булгутан кэбистэ, ол гэннэ ботур-ботур саҥарар: "Ээ дьэ бараххан бэт да көҥдөй мугур бэс турар эбит... урут хайтах өйдүөн көрүмнэ һылдьыбытым эбитэй? Хата тиэйэн киллэрэн, бурдук тардар даарда оҥос-туом буоллаҕа эбээт,"- дии-дии бокуойа һуох кэрдэн чалкайбытынан барбыт.
Кумалаан иһигэр эмискэ сырдык киирбитигэр, уол өйдүөн көрбүтэ: тэрээк сүгэ биитэ килбэйэ-килбэйэ сирэйин оттотунан киирэн иһэр. Уол мантан уйулҕата көтөн часкыйа түспүт. Туох баар күүһүнэн мөхсүбүт. Оҕонньор кумалааны тула өттүттэн төгүрүччү моойньуу кэппит эбит, онтуката уол мөхсүбүтүгэр тосту түһэн хаалла. Оччо быыһанан баран, уол былтас гына түһэн көрбүтэ: биир даба ырбаахылаах оҕонньор кини диэки көрүөҕүнэн көрбүт, былтас гынарын гытта махчайа түһэн баран, сүгэнэн сырбаппыт. Уол иһидьэдьэ ньимис гынан биэрбит. Сүгэ тыаһа ириэнэх сиргэ "кур" гына түспүт.
Уол маһыттан таххан көрбүтэ — оҕонньор ол көрдүк үҥкүрүйэ-күөлэһийэ былаан, мырааны таҥнары мээчиктэнэн түһэн эрэр, оҕуһа булгуллубутунан, сүгэтэ сиргэ батары охсуллубутунан туран хаалбыттар.
== IV ==
Ити иккэрдигэр күн дьааһыгыран барбыт... Уол мыраан
кэрийэ айанын суолуттан туораан, хоту диэки баран испит.
Оҕордук баран, киэһэ уот саҕана мыраан анныгар биир ыалга тиийэн кэлбит. Сэптэриттэн-сэбиргэллэриттэн көрдөҕүнэ, бэт баай ыал быһыылаахтар.
Кэлэн дьиэ аанын тардыалаабыт, хатыылаах буолан биэрбит, онтон уол санаа булбут: "Бээрэ, миигин бостуой уорбалыахтара; аны куораппар төттөрү тутан киллэрэн биэриэхтэрэ! Бэйэ, мин биллибэккэ киирэн аһаан таххыым". Инньэ дии санаан дьиэни эргийэр: түннүгүнэн сатаан киириэ һуох, балаҕан үрдүгэр ытта сүүрэн таххар, оһох үөлэһин өҥөйөн көрбүтэ — киһи батыах көрдүк. Өр толкуйдуу барбатах үөлэс үүтүнэн түспүт. Түһэн иһэн аны манна кыбыллан хаалбыт.
Дьэ хайтах да гыныах сир суох. Хаһытыан эмиэ кэрэгэй, мөхсүөн эмиэ сатаммат.
Бу туран иһиттэҕинэ, дьахтар һаҥата энэлийэр, энэлийэрэ улам-улам улаатан барбыт, онтон утаакы һоҕус буолан баран, саҥатыттан иһиттэххэ, эмээхсин айалаан-дьойолоон турбут. Уот оттон тииһэн барбыт. Ол уолга дьэ күн-хаан бөҕө үтүрүйэн кэлбит ээ. Буруоҕа туҥнастаары гынан, хаһытыы-хаһытыы тэбиэлэммит. Эмээххин уокка оттубут хардаҕастарын барытын суулларыта тэбэн түһэттээбит. Эмээххин онтон өмүрэн, хаһытыы-хаһытыы, уол икки атаҕын үөлэһинэн чорбойон турарын хардаҕаһынан имитэн барбыт, уол һарылыыкката, эмээххин хаһыыкката диэн туох да өй мэйдээх тулуйбат үлүгэрэ буолбут. Онтон эр дьон туран эмээххини тохтоппуттар. Уол һаҥата ытыы-ытыы: "Абырааҥ даа, абырааҥ! Өллүм даа, өллүм!" — диир.
Эр дьон тахханнар, үөһэттэн быаны түһэрэн биэттэр. Уол быаттан тутуспут, сулбу тардан ылбыттар.
Уол таххан көрбүтэ: оһох хоротун аттыгар икки киһи турара, биирдэрэ эдэр уол, биирдэрэ аҕам соҕус киһи. Бу киһи кинини сынньаары тииспит: "Тыыннаах ыт, дьэ мин эйигин оҥоруугун оҥордоҕум! Тугу гынаары түүн кэлэн үөлэһинэн киирэ һылдьаҕын!?" — дии-дии быатын туппутунан уолга ынан кэлбит. Уол ытыы-ытыы балаҕан үрдүн төгүрүйэ сүүрбүт. Оҕонньор эккирэтэн батыччахтаан испит. Кирилиэс турарынан уол оттотугар биирдэ-иккитэ үктэнэн, сиргэ ыстанан түспүт. Кэнниттэн оҕонньор баатыйалаан түһэн истэҕинэ, уол түөрэкэй баҕайы кирилиэһи түҥнэри анньан кэбиспит. Кирилиэс оҕонньордуун-баҕастыын суулан лиһигирээн түспүт. Оҕонньор хатыҥ төҥүргэскэ төбөтүн хайа түһэн уҥан тэйтэйэн хаалбыт, эдэр киһи үөгүлүү-үөгүлүү балаҕан үрдүгэр тура сүүрэ сылдьыбыт. Уол буоллаҕына, буута быстарынан тыаҕа түспүт.
== V ==
Хоту диэки мээлэ баран испит, халлаан илин өттө улам-улам дьэҥкэрэн, һырдаан тиийэн кэлбит. Утаакы буолбакка, күн тахсан чаҕалыччы тыкпыт. Уол биир хатыҥ төрдүгэр сыламнаан, утуйан хаалбыт. Уһуктан, туран көрбүтэ: күн оттото буолан барбыт. Харгыйбыта алыс буолбут. Инчэҕэй эрэ буоллар тугу барытын аһыа эбит.
Туран, эмиэ барбытын көрдүк баран истэьинэ, арай ол көрдүк хочо анараа һаҕатыгар биир ыал балаҕана көстүбүт. Харбыалаһан чугаһаан тиийэн кэлбитэ: дьиэ таһыгар саҥа таһыллыбыт сиэрдийэлэр һыталлар, биир оҕус баайыллан турар. Быһыыта бүтэй оҥорооччу дьон бааллар быһыылаах, дьиэ итчитэх, түннүгэ һуох буолан баран, үөлэһиттэн бур-бур буруо тахсар. Ону уол — бу бүтэй оҥороотчу дьон киирэн омурҕаннана олордохторо — диэн һэрэйэ санаабыт. Хотон аанынан үөмэн киирбит. Дьиэттэн хотоҥҥо киирэр аанынан оргууй аҕай кэлэн өҥөйөн көрбүтэ, биир киһи чаанньык оргутунан омурҕаннанаары олорор. "Бээрэ, мин кинини куттуум" диэн уол санаа булбут. Инньэ дии санаан, сүрдээх куһаҕан баҕайытык сарылаабыт. Дьэ эбэтээ доҕоор! Анараа киһи көрүөҕүнэн көрөн, айаҕын атыаҕынан атан баран, муҥ кыраайынан таһырдьа ыстанан хаалбыт...
Уол дьиэҕэ көтөн түспүтэ, куоппут киһи өйүөтэ: буспут эт, арыылаах лэппиэскэ диэн элбэх буолбут. Уол олоро түспүт, эр-луҥха аһаабытынан барбыт. Дэлби тото аһаабыт, кыратык һытан һынньана түспүт. Уонна, туран, эмиэ барбытын көрдүк баран испит.
== VI ==
Күн киириитин һаҕана биир ыалга тиийэн кэлэн киирбит. Биир аҥаарыйа кырдьыбыт оҕонньор, биир эдэр киһи, биир уол оҕо, ону гытта эмээхсин, биир эдэр дьахтар бааллар үһү.
Дьиэлээхтэр кэпсэппиттэр, хантан хайдах иһэрин ыйыппыттар. "Куоракка оскуолаҕа кырбыыллара бэрдиттэн, дойдубар күрээн таххан испитим, ол гынан баран мунан, манна тиийэн кэллим", — диэбит.
Ыал уолу дэлби аһынаннар, мээлэ үчүгэйдик аһатан илдьэ олорбуттар. Уол манна хас да хонон кэргэнниһэн барбыт.
Биирдэ эдэр дьахталлара ыалдьан, үөһэ һаҥата үөһэ, аллара һаҥата аллара буолан барбыт.
Дьахтар төрүөрү гынна, ыксал буолла диэн (эр дьоннор һуохтар эбит) дьиэлээх эммэхсин дьиэлээх уол икки, хоноһо уол иккини икки көлөһөлөөх таратаайка һыарҕа оҕотун биэрэн, ол көрдүк көстө олорор ыалга ыытта: "Икки атаҕа һуох босхоҥ баабыскаһыт эмээхсин баар, ону ба-раҥҥыт, бу таратаайканан тардан аҕалыҥ", — диэн.
Уолаттар баара ат буоланнар сыссан бөдөрөҥнөһөн ол эмээхсиннээх ыалга тиийбиттэр. Тиийэннэр наадаларын эппиттэригэр, дьиэлээх дьон эмээхсини, көтөҕөн таҕаа-ран, таратаайкаҕа олордон биэттэр. Икки тэҥ мэлик баҕайы уолаттар, харахтарын тиэрэ көрөннөр, баара ат буолан, саамай өрүс мүлчүрүйэр хааһын үрдүнэн эмээххини бокуойа һуох соһон дьулурутан испиттэр.
Ол иһэннэр, хара һыыры эриличчи куоһуу турар уорааҥ-ҥа аҕаланнар, мүтчү тутан эмээхсиннэрин һыарҕалары баҕастары бас-атах түһэрэн кээстэр. Бэйэлэрэ нэһиилэ куотан биэттэр, онтон куттанан хоноһо уол һирэйин хоту мээлэ һүүрэн испит. Доҕоро ханна да бааттын билбэтэх.
Хас да хонукка хайа да диэки барарын дьаабытын билбэккэ, мээлэ айаннаабыт. Суолугар быстыбат ыаллаах сир буолан, түүн ыал уҥкучаҕар киирэн, уоран аһаан, онон өллөнөн испит.
Кэннэки ыал ыырыттан улам-улам тэйэн барбыт. Хас да хонугу мэлдьи долуой ыала һуох һиринэн айаннаабыт. Аччыктыыра, хоргуйара дьэ улааппыт, муҥ-сор бөҕөнү көрбүт.
— Дьэ, аны кэлэн туох өрүһүйүөй, харгыйан өлөр киһи буоллаҕым! — диэн санаа кииртэлээбит.
== VII ==
Ыарҕа үрэх устун иһэн көрдөҕүнэ: ол көрдүк үрэх халдьаайытыгар буруо көстүбүт. Уол туох да кэмэ һуох үөрбүт.
Чугаһаан тиийэн кээттэ: үгүс баҕайы атах баайыылаах аттар мэччийэ һылдьаллар, төһө эмэ ындыы өрөһөлөнө һытар. Ол аттыгар айан дьоно биэс-алта киһи омурҕанна-наары саламаат буһара олороллор.
Дьон уолу бары тула көппүттэр, ыйыталаспыттар. Уол тугу да кистээбэккэ барытын кэпсээн биэрбит.
Дэлби аһаппыттар, һүрдээхтик аһыммыттар, ол кэннэ эппиттэр: "Нохоо, бэт ыраах сиргэ кэлбиккин, дьиэҕин аны кэлэн һатаан булбат уол буоккун. Чугаһынан ыал букатын һуох. Бостуой һиргэ хоргуйан өлүүһүккүн. Биһиги бу үрэх баһыгар ындыы таҕаарар дьоммут. Үрэх бастаан иһэбит. Эн, хата, биһигини гытта көлө иччитэ буолан бассыс.
Сиргэ быраҕан кэбиһэрбит сатаммат. Аһатыахпыт-таҥын-нарыахпыт, үчүгэйдик һырыттаххына, хамнас да биэриэхпит", — дэспиттэр.
Уол аккаастаһа барбатах, үөрүүнү гытта сөбүлэммит. Итинэн бу дьону гытта бу һайыны быһа айаннаан таххыбыт.
Айаннаан иһэр үрэхтэрин баһын уһук ыала чугаһаабытын гынна, арай биир күн һүрдээх һүүнэ дабааны туораан, турар һуорба таас хайаны һирэйдэнэн айанныыллара тиийэн кэлбит. Ындыылаах ат нэһиилэ батан айанныыр кычамын устун баран испиттэр. Ат кыратык даҕаны мүтчү үктээтэр эрэ аллара түгэҕэ биллибэт дойдуга түһэн хаалар һирэ буолла.
Уол икки атын гытта һаамай киһи-киһи кэннигэр хаалан испит. Ол иһэн, бии уһун һордоох эмиэ мэлигилээн дьэр-гэйэн, икки аты ындыылары баҕастары аллара түһэрэн кэбиспит, дьоно урут баран, хайа эргийэ охсуутугар кии-рэн хааланнар, көрүмнэ хаалбыттар. Уол дьонноруттан куттанан, мээлэ хайаны сирэйинэн, хайа оройун диэки өрө тахсан испит. Сүрдээх үрдүк баҕайы хайа эбит хайата, дьэ кини өр баҕайы айаннаан, хайа һаамай төбөтүгэр тахсыбыт. Ол таххан көрдөҕүнэ: олоччох лааппы хайа эбит, бүтүннүү нуучча киһи һыҥааҕын түүтүн көрдүк ыдьыр-хай болбукта маһынан хаххаланан үөскээбит дойду.
Болбуктаны быыһынан мээлэ һирэйин хоту барбыт. Ол баран истэҕинэ, эмискэ баҕайы, болбукта быыһыттан биир кугас эһэ часкыйбытынан ыстанан таххыбыт. Мантан куттанан, уол хаһытыы-хаһытыы сүүрбүт. Сүүрбэхтээн иһэн суос-соҕотохто кулгааҕа куугунуу түспүт.
== VIII ==
Өр буолан баран, тыын киллэрэн өйдөнөн кэлбитэ — туох эрэ һымнаҕас үрдүгэр түһэ һытар, хайтах-хайтах баҕайыный? — диэн кичэйэн көрбүтэ: уон былас холобурдаах кэбиһиллибит от үрдүгэр түһэ һытар эбит. Сирэ-дойдута олоҥхоҕо кэпсиир көрдүк барбатах балык миинин көрдүк, бадыа-бүдүө буолла.
Хайтах баьайыный — иирдэҕим дуу, хайа буоллум дуу? — диэн өр таалан олорбут.
Санаан көрдөҕүнэ: кини, быһыыта, букатын хаһан да, ким даҕаны һылдьыбатах дойдутугар киирэн олорор быһыы-лаах. Хайтах да киирбитин, ким киллэрбитин кыайан быһаар-бата.
Хаһааҥҥа дылы олоруой, отуттан түһэн эмиэ мээлэ һирэйин хоту хаампыт. Иһэр һирин тула эргиччи көрдөҕүнэ, сүрдээх киэҥ уйаара-кэйэзрэ биллибэт хочо устун иһэр быһыылаах. Хочотун аҥаар өттө — өрүс, аҥаар өттө ол көрдүк күлүгэ эрэ нэһиилэ барыйан көстөр ии хайа буолан эргийэн түһэн барда.
Сотору аҕай ыал уота көстүбүт. Бу дойдубут эмиэ ыаллаах буолар эбит буоллаҕа дии-дии барбыт. Чугаһаан кэлбитэ, кырдьык, ыал. Дьөксө бэт баай ыал быһыылаах. Дьиэ таһыгар сылгы, ынах толору.
Дьиэҕэ көтөн түспүтэ: биир аҕам һоҕус эмээхсин дьах-тар, ону гытта биир туран эрэр уол оҕо бааллар эбит. Кини киирбитин киһи киирдэ диэн кырыы харахтарынан кынчайан да көрбөтөхтөр. Уол кэпсэппитигэр кинини гытта дьоно кэпсэппэт да дьон буолан биэттэр.
Туох улаатымсык баҕайыларый! Саатар киһини гытта кэпсэппэттэр диэн саныы олорбут. Дьонноро, хата, бэйэлэ-рин иккэрдигэр кэпсэтэллэрэ үһү. Оҕонньор: "Хайтах эрэ этим сааһа аһылынна? Эһи көрдүгүт дуо: мин санаабар, дьиэбит аана аһылларга дылы гынан баран — туох даҕаны киирбитин кыайан көрбөтүм ээ?" Эмээхсин: "Мин тугу да көрбөтүм да, этим сааһа мээлэ аһыллан, куйахам дэлби күүрдэ." Уол: "Мин иһиттэхпинэ туох эрэ тыас тыаһыырга дылы гыммыта эбээ. Ол гынан баран биллибэккэ барда..."
Уол бу дьон кэпсэтэллэриттэн, тутталларыттан-хапталларыттан һыаналаан көрдөҕүнэ, дьоно кинини көрбөт даҕаны, истибэт да быһыылаахтар. Көрдөҕүнэ — эмиэ һин харахтаахха дылылар. Бэйэ-бэйэлэрин көрсөр быһыылаахтар, ол гынан баран харахтара хайтах эрэ киһи хараҕын көрдүгэ һуох — туруору үһү.
Дьэ уол мантан эр ылан, остуолга тардыллан турар астарыттан туох да ыйытыыта һуох аһаабытынан барбыт. Астара туох да куһаьан амтана һуох, син саха ыалын аһын амтанын курдук.
Биир дьиибэтэ баар эбит: бу кини аһаабытын да иһин, аһыыр аһа эбиллибэт-көҕүрүөбэт үһү. Манна талбытынан аһаан, хас да хонукка олорбут. Дьиэлээх ыала буоллаьы-на: "Дьиэбит сибиэннэннэ ээ, быһыыта", — диэн кэпсэтэр буолбуттар. Киэһэ хараҥа эрэ буоллар, туой иккилии буолан таһырдьа таххар буолтар.
Арай биир киэһэ эмээхсиннээх оҕонньор таһырдьа тахсыбыттарын гынна, дьиэлээх уол уотун кытыытыгар һоҕотоҕун олордоҕуна, уол дьиибэтэ көтөн түһэн тиийэн үрдүгэр түспүт, синньэ гынарын гытта анараа уол чиччигинии-чиччигинии уҥан барбыт, онтон бэтэрээ уол бэйэтэ куттанан, тиийэн орон улаҕатыгар түспүт. Сотору таһырдьаттан эмээхсиннээх оҕонньор киирбиттэр. Анараа уол тыын киллэрэн кэлэн баран, дэлби таарымталанан, онон һылтаан устунан ыалдьан барбыт. Бу түүнү быһа ыалдьан тахсыбыт. Эмээхсиннээх оҕонньор оҕолорун кэтээн, түүнү быһа утуйбакка хоммуттар.
Сассыныгар оҕолоро арыычча үтүө буолбут. Киэһэ буолуутугар биһи уолбут эмиэ, кыдьыга батарымна, тиийэн эмиэ тыыппыт да, уол эмиэ ыалдьан барбыт. Онтон бу уолу аны күн аайы, ыаһах оҥостон, кургуом ыарытыннарар буолбут.
Биир сарсыарда оҕонньор эмээхсининиин: "Эмээхсини аҕалан кыырдаран көрүөх баҕайы дуу" диэн һүбэлэһэн баран, туран таҥнан баран хаалбыт. Уол маны истэн: удаҕан эмээхсини аҕалаары гыннахтара, дьэ кэлэн хайтах эрэ дьаабылыыр диэн куттанан күнү быһа ол һанаатыгар һылдьыбыт. Ыарытыннарар уолугар бу күн букатын чугаһаабатах, анараа уол ыалдьара арый үтүө буолбут.
Киэһэ күн киириитин һаҕана оҕонньор биир эмээхсини алтахтатан аҕалбыт.
"Дьэ оҕобут бүгүн хайтаҕый, эмээхсиэн?" — диэн оҕонньор эмээхсиниттэн ыйыппыт. Онуохаҕа эмээхсин: "Ээ, бүгүн эн бааттыҥ гынна арыый эрэ үтүө олорор," — диэбит.
Удаҕан эмээхсин эппит: "Кэбиһиҥ, үөрүмэҥ! Ол аата, киниттэн сүгүн уодьуганын биэримээри гыммыт абааһы буллаҕа. Оттон хайтах гыныамый, ол да буоллар, һанаабар, дьалбыйан көрүөм буоллаҕа!" — диэбит.
Киэһээ уот буолуутун һаҕана удаҕан эмээхсин олоҕор олорон кыырбыт. Түүн үөһүгэр дылы быһа кыыра сатаан баран: "Дьэ тугу даҕаны кыайбатым, алгыһын таба алҕаабатым, туонатын биэрбэтэ", — диэн уурайбыт.
Сассыныгар удаҕан баран хаалбыт. Биһи уолбут туран дьэ ордук эр ылан: "Кинилэр удаҕаннара, ойууннара даҕаны миигин тугу да гыныа һуохтар," — диэн, бии уолун ыарытыннарарын көрдүк ыарытыннарбытынан барбыт.
Мантан ыксааннар, оҕонньордоох эмээхсин эмиэ сүбэлэһэн: "Аны оьонньору баран аҕалыах баар", — дэспиттэр.
Сүбэлэһэн, оҕонньор баран хаалбыт. Үс хонон баран, быһыыта бэт ыраах һиртэн, дьэ биир сүрдээх кырдьаҕас сүдү киһини аҕалбыт.
Дьэ бии ойуун кэлбит да, арай икки хараҕын уота биһи уолбутуттан арахпатах. Уол куттанан, ол бу баьана күлүгэр саһа һатаабыт — оҕонньорун хараҕын уота долуой киниттэн архсыбатах. Таһырдьа хотон айаҕынан тахсан куотаары гыммыта, эмиэ бөрөлөрө, эһэлэрэ ханна да хамсаппакка төттөрү үүрэн киллэрбиттэр.
== IX ==
Оҕонньор аһаан-сиэн баран, кыратык көрүүлэммит. Көрүүлэнэн эппит: "Бу үөһэ туора харахтаах дьиэрбэҥ бииһин ууһуттан босхо бастаах бороҥ урааҥхай уола, бу кэлэбирэ биллибэт кэй бараан дойдуга ааһар былыт кэһиитэ буолан кэтэрги кэбистэрбит, таҥнары бырахтарбыт, дьэ аанньанан аттаныа һуох, сүгүнүнэн һүктүө һуох, арай, икки хаҥкыйар хаалдьыктарыгар дылы хара маҕаас ат сылгыны бэлэхтээн, икки халлаан хара һуора оҥорон мииннэрэн үөһэ орой биир дойду үрдүк мындаатыгар бырахтарар эбит буоллар, оһоҕун хайыа эбитэ буолла..."
Көрүүлэнэн баран, бу түүн кыырбакка хоммут. Сассыҥҥытыгар туран, бу бэҕэһээ ойуун эппит дьүһүннээх сылгыларын булан аҕалбыттар. Аар саламаны тиирбиттэр, икки аты аҕалан онно баайан кээстэр. Ол кэнниттэн ойуун дьэ кыырбыт. Оттолуу кыыран иһэн, уокка ылан арыгы биэрбит. Арыгыта биһи уолбут атаҕар кэлэн көтөн түспүт, инньэ гынан уол итирэн хаалбыт ("Дьэ ол иһин, ону билэн, уокка ас биэрэллэр эбит" диир буолара Мурун уола Бүөтүккэ).
Онтон ойуун дүҥүрүн охсон баран, үс төгүл һуордуу хаһыытыырын гытта, бии икки хара маҕаас ат икки халлаан хара һуора буолан баран, биһи уолбут үрдүнэн эргийэ көтөн эрэллэрэ үһү да, уол һоҕотохто ханна даа бааттын билбэккэ, икки кулгааҕын тыаһа өрө куугунуу түспүт.
Кэмниэ-кэнэҕэс буолан баран, өйдөнөн кээттэ: бии эһэттэн куттанан һүүрбүт хайатын үрдүгэр тахсан сытар эбит.
Хайтах баҕайыный: түһээбит буоллаҕым дуу диэн, туран, олоро түспүт. Аллара дойдуга олорон итирбитэ букатын ааһа илик эбит, ол гэннэ көрдөҕүнэ, бу аллараа дойдуга киниэхэ бэлэхтээбит икки хара маҕаас аттара манна тахсан ыҥыырдыын аттыгар баайыллан тураллар. Уонна бу кини аллараа дойдуга түспүт хайаҕаһа буоллаҕа буолуо, аттыгар чардаат саҕа түгэҕэ биллибэт үөлэс көрдүк үөдэн айаҕа чөҥөрүйэн көстөр.
Хайтах-хайтах баҕайыный? Түһээбитим буоллар, бу ат-тар һуох буолуо этилэр диэн мунаахсыйа олорбут. Онтон туран, арай, баран көрдөҕүм диэн аттарын сиэтэн хайаны таҥнары түспүт. Сотору бу айаннаан иһэн дьонуттан арахсыбыт һуолугар киирэн кэлбит. Дьонун һуолун һолоон баран испит. Оҕордук айаннаан сотору соҕус ыал уһугун булбут.
Кини бу кыһынын бу дойдуга кыстаабыт, үрэх баһыгар от суох, сут буолан биир ата һутаан өлөн хаалбыт, биир атын нэһиилэ муҥнанан-һордонон һыл таҕаарбыт. Нөгүө дьылыгар дьону гытта аргыстаһан дойдутугар киирэн хаалбыт.
Ол киһи бэйэтэ билигин даҕаны баар Боотуруускай улууһугар Перибэй Сылаҥ нэһилиэгэр. Миигин итэҕэйбэт буоллаххытына, киниттэн бэйэтиттэн даҕаны ыйытыҥ, бэйэтэ бэт һымыйаччыта һуох киһи.
Аҕалбыт атын баһаарга киллэрэн атыылаабыта аҕыйах һыл буолбут.
Дьэ ону эһи бэйэҕит хайтах һаныыгыт?
{{DEFAULTSORT:Алтан Сарын}}
[[Категория:Алтан Сарын]]
cd1okmywwik116w583kjgglr0k2ydlb
Интеллигенциябыт көмүс биһигин харыстыахха (Копырин Н. З.)
0
105
9569
3931
2026-06-22T15:24:16Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9569
wikitext
text/x-wiki
{{header
| title = [[Копырин Николай Захарович]]
| author = Николай Захарович Копырин
| section = Интеллигенциябыт көмүс биһигин харыстыахха.
| previous = [[Копырин Николай Захарович]]| next = [[]]| notes =
}}
Кыайан хаамар эрдэхпинэ Ярославскай уонна Кулаковскай ааттарынан уулуссалар быһа охсуһар сирдэригэр Аппа үрдүгэр кырдьаҕас бэрэбинэ дьиэ харааран турарын ытыктыы, сүгүрүйэ көрөн ааһарым. Тутуллубута 150 сыл кэриҥэ буолбута буолуо да, бөҕө таас акылааттаах буолан билигин да туруга хамсаабатах этэ. Хаачыстыбалаах мас тутуу уһун үйэлээх буолар эбит. Ол курдук куоракка, холобур, «Тыгын башнята», «Туус лааппыта» диэннэр 350-ча сыллаах тутуулар бааллара.
Мин кэпсиир икки этээстээх мас дьиэм классическай прогимназияҕа ананан оччотооҕу олохтоох уопсастыба сириэстибэтигэр саха уустарынан тутуллубут. Бу дьиэ барахсан Саха Сиригэр бастаан тэриллибит орто үөрэх кыһата 20-чэ сыл устата балачча элбэх ыччаты (олор истэригэр сахалары) ииппит-үөрэппит үтүөлээх. Бастакы революционер К.Г. Неустроев (Урсик), бастакы сырдатааччы, суруйааччы В.В. Никифоров-Күлүмнүүр, бастакы аатырбыт учууталлар В.Г. Монастырев, Д.Д. Сивцев, Г.П. Помин, П.Х. Староватов, бастакы быраастар Е.Н.Слепцов, П.Н. Сокольников, прогрессивнай өйдөөх диэйэтэллэр Николаевтар, Слепцовтар, Поповтар, Афанасьевтар, Говоровтар о.д.а. Саха бастакы көлүөнэ интеллигеннэрэ бу дьиэҕэ үөрэммиттэрэ. Кинилэртэн Россия бастакы революциятын саҕана «Сахалар Сойуустара» диэн босхолонуулаах хамсааһыны тэрийээччилэр үөскээбиттэрэ.
Бу дьиэҕэ 1890 с. прогимназия оннугар реальнай училище тэриллэн үйэ чиэппэрин кэриҥэ үлэлээбитэ. Манна өссө элбэх ахсааннаах интеллигенцийэ иккис көлүөнэтэ иитиллибитэ. Национальнай уус-уран суругунан литератураны, суругу-бичиги төрүттээччилэр А.Е. Кулаковскай-Өксөкүлээх Өлөксөй, С.А. Новгородов, уһулуччулаах историк ученай Г.В. Ксенофонтов, кини быраата конфедералистар партияларын баһылыга П.В. Ксенфонтов, талааннаах экономист, «Холбос» сойууһу тэрийбит К.О. Гаврильев, «Сырдык», «Саха аймах», «Саха омук» диэн культурнай-сырдатар уопсастыбалары үөскэтэн үлэлэппит бүтүн аармыйа дьон манна үөрэнэн-иитиллэн тахсыбыттара. Кэлин бу дьиэ таһыгар икки этээстээх бэйэтин кэмигэр сүүнэ улахан таас дьиэ тутуллан үлэҕэ киирбитэ. Онтон ыла бу дьиэлэр «мас реальнай», таас реальнай» диэн ааттанар буолбуттара.
Сэбиэскэй былаас буолбутун кэннэ мас уонна таас реальнайдар дьиэлэригэр педагогическай, учительскай институуттар, кинилэр баазалара орто үөрэҕи биэрэр рабфак (рабочий факультет) тэриллибиттэрэ. Бүттүүн үөрэхтээһин буолбут барҕарыы кэмигэр манна саҥа кэм интеллигенцийэтэ - тыһыынчанан дьон иитиллибиттэрэ. Республика бары муннуктарыгар үөрэҕи-сырдыгы тарҕата, саҥа олоҕу тэрийэ, салайа барбыттара. Бу дьиэлэргэ үлэлээбиттэрэ биһиги норуоппут бастыҥ дьонноро, учуонайдар — И.П. Жерготов, С.Ф. Попов, А.Е. Мординов, И.А. Мельников, Г.П. Башарин, И.М. Романов, Л.Н. Харитонов, А.Д. Егоров, Ю.Г. Шафер, Ф.Г. Сафронов о.д.а. Кэлин манна Саха Государственнай Университета аһыллыбыта.
Бу дьиэлэр билигин кырдьан, онуоха эбии көрүүлэрэ-истиилэрэ мөлтөөн тураахтыыллар. Үөрэх аан-бастакы кыһалара буолбут улахан үтүөлээх уезднай училище, куорат үчилищетын, учуутал техникумун, Кырбыһааҥкын туттарбыт орто оскуолатын дьиэлэрэ көтүллэн суох буолбуттара ыраатта. Мас уонна таас реальнайдар дьиэлэрэ эмиэ кинилэр киэптэрин кэтиэх бэйэлэрэ буолуо дуо... Оо, абатын, олус да хомолтолоох, кутурҕаннаах буолсу. Кэбис, оннук буолбатын. Киров уулуссатыгар турар Кыргыттар гимназияларын дьиэтин умаппыттарын билэбит. Билигин «не помнящие родства» буолуохпутун букатын сатаммат! Билигин бүтүн турар кэриэстэбиллээх ытык дьиэлэри өрүһүйүөххэ! «Былыргы прогимназия дьиэтин харыстааһын» диэн историческай науука кандидаата П.П. Петров («Билии-Көрүү» 1998-1999, №2) национальнай интеллигенцийэ көмүс биһигэ буолбут дьиэлэри харыстыырга бэрт сөпкө тыл көтөхпүтүн кэннэ туох да сэҥээрии буолбата. Бу дьиэлэр турар бэрт дьоҕус сирин ыраастаан, мас үүннэрэн, төгүрүччү олбуордаан комплекс оҕото оҥоруох баара. Дьиэлэри үчүгэйдик сууйан-тараан, эрэмиэннээн интеллигенцийэ историятын көрдөрөр баай экспонааттаах музейы тэрийиэххэ. Күөх аллеяны оҥорон уһулуччулаах дьоннорбут бюстарын туруортуохха. Манна уезднай училища, куорат училищата, учууталлар, кыргыттар семинариялара, учуутал техникума үлэлээбит матырыйаалларын кытта көрдөрөр саалалары аһыталыахха. Энтузиаст салайааччыны буллахха, уопсастыбаннас күүһүн түмэ туттахха, бу үлэ улахан ороскуота суох кыаллар кыахтаах. Кэскиллээх дьыалаҕа университет, педучилище, атын да үөрэх кэлэктииптэрэ актыыбынайдык кыттыа этилэр. Мемориалы тэрийиигэ ытык кырдьҕас Суорун Омоллоон, атыттар да уоппуттара, «2000 үтүө дьыала» үөрүйэхтэрэ баар. Интеллигенцийэбит көмүс биһигэ мемориалы тэрийии биллэрэр, иитэр-өйдөтөр суолтата сүҥкэн улахан буолуо этэ.
«Не хлебом единым жив человек»!
[[Категория:Публицистика]]
[[Категория:Копырин Николай Захарович]]
6wxxqggkb3not37n53igk843oxc1h0x
Булт дойҕохторо (Павлов Николай Гаврильевич)
0
106
9570
3867
2026-06-22T15:24:17Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9570
wikitext
text/x-wiki
{{header
| title = [[Main_Page:Sakha|Сүрүн сирэй]]
| author = Павлов Николай Гаврильевич
| section = (Хоһооннор)
| previous = [[Сааскы ууга саһааккаҕа… (Павлов Николай Гаврильевич)|Сааскы ууга саһааккаҕа…]]
| next = [[Күһүн көхтөөх бултуур кэмҥэ… (Павлов Николай Гаврильевич)|Күһүн көхтөөх бултуур кэмҥэ…]]→
| notes =
}}
Сэрии, үлэ ветерана Касьянов Василий Гаврилович сырдык кэриэһигэр ананар.
Автор.
== Киирии тыл ==
Бу хоһоонум геройа киһи быһыытынан ордук чаҕылхай, аймах-билэ дьонугар
биһирэнэ көрсүллэр уратытынан олох ханнык да түбэлтэтигэр (үөрүү-көтүү, баҕар, санаа-
оноо да түһүөх кэмнэригэр) сомоҕо тыллары майгынныырдыы этэн, көргө, күлүүгэ
тиэрдэн кээһэр идэлээҕэ (талааннааҕа да диэххэ сөп). Баһылай уу мотуора, оҥочо атыыласпытын токоолоспуттарыгар «Пенсияҕа бараарыбын спорт-инвентарь хомуна сылдьабын», - диэн кырдьык-хордьук эппиэттэспитэ дииллэр. Дьэ оннук киһи этэ Баһылай Хаһыйаанаап (Хаһыйаан БаҺылай). Кини этэн-тыынан кэбиспитэ фольклорнай хабааннаах буолалларыттан буолуо – кэлин да дьон өйүгэр-санаатыгар сөҥөн хааланнар, сөбүлэтэннэр, кэпсэлгэ,ахтыыга сырыттахтара.
''Тыыл, педагогическай үлэ ветерана Павлов Николай Гаврильевич.''
Бу хоһоон аан бастаан атырдьах ыйын 24 күнүгэр, 1999 с. "Үөһээ Бүлүү" хаһыакка бээттэммитэ.
2007 с. Бүөтүр Тобуруокап төрөөбүтэ 90 сылыгар анаммыт "Саха Сирэ" хаһыат биллэрбит хоһоон күрэһигэр кыттан ахсынньытыгар кыайыылааҕынан тахсыбыта.
"Байанай" сурунаал булт туһунан күрэһигэр 2-с миэстэни ылбыта.
"Чолбон" сурунаал 2008 сыллааҕы 6№ бэчээттэммитэ.
== Булт дойҕохторо ==
<poem>
Күһүн буолла. Куобах үүрэн
Бултуур кэмнэр кэллилэр;
Элбэх буолан түмсэр түгэн,
Бу кутаа уот умайар;
Ууну-хаары була охсон,
Чэй өрөллөр уолаттар…
Уоту тула саамылаһан
Ас-үөл тахсар, хостонор.
- Көрүҥ, киһиҥ мөһөөччүгэ
Аһа-үөлэ көбүччү:
Алаадьыта, буспут этэ
- Тугун бэрдэй – үгүөрү.
Кэнсиэрбэтэ «Сайра» -
Тоҕо буолуой? Таай эрэ.
Оттон сорох ыһыга
Ханнык эмэ бар-туомугар
Угуллубут арыы, саахар –
Кырдьыбыкка күтүрэнии,
Күлүү-оонньуу, көр кэпсэтии
Күөдьүйүүтүн күлүүһэ…
***
Элбэх саҥа, кэпсээн хаата,
Кырдьа барбыт эристиин
Кэлэн ааспыт сылларын
Кэрэ, бэлиэ түгэннэрин,
Кэмнээн-томноон турбакка,
Сэһэн гынан тупсаран
Сэҥийэтэ энньэҥниир,
Токур тарбах чочоҥнуур:
-Биирдэ, ноко, бултуу сылдьан
(Бэркэ ытарбын билэҕит)
Буур бэрдигэр түбэстим,
Отой талах быыһынан
Субу кэлтин - муннуттан
Ситиэх курдук чугаспын;
Үгүс элбэх толкуй суох -
Тардан кээстим чыыбыспын.
Тайах турар, охтубат;
Баай Барыылаах биэрбитин
Маннык ытар табыллыбат!..
Инним диэки ыстанабын -
Иккистээри ыксыыбын…
Тайаҕым дьэ түҥнэһиннэ…
Хайдах буолла?! Өйдөөтүм:
Өлөн турбут муҥнааҕы
Ойбут уохпар охторбуппун -
Саабынан таарыйбыппын!..
-Таарыйбыккын?!
Баҕар буоллун…
***
Булт сырыыта эндирдээх,
Эҥин араас эриирдээх…
Табыллыаҕыҥ тайаҕы
«Тутан туран» ытыаҕыҥ;
Этэргэ дылы, балыгы
Туһаххыттан ылыаҕыҥ;
Оттон ойуур куобаҕын
Туугуттан да хостуоҕуҥ…
***
Утуу-субуу булчуттар
Ахтан, санаан бараллар
Суостаах сэрии кыттыылааҕа
Хаһыйаанап Баһылай
Номох буолбут дойҕохторун,
Көхтөөх булчут сырыытын –
Көрүдьүөстээх түгэннэрин.
***
Маннык түмсүү түгэнигэр,
Күө-дьаа сэһэн үгэнигэр,
Аргыый сыыйан саҥаран,
Эдэр дьону сэрэтэн,
Этэр этэ Баһылай:
-Эдэр сааһыҥ эргиллибэт;
«Доҕоор», «Васька-а», «Баһыла-ай»
- Иэйии, таптал тыллара
Аны кэлэн этиллибэт.
Оттон бииргэ кырдьыбытыҥ
Кыҥкыйдыыра кыһыылаах,
Тыла чахчы кырыылаах:
-Кими этэҕит? Үөдэни?!
Ыйытымаҥ миигиттэн!
Истэн туһан киниттэн! –
«Нэриэсинньик» да дииртэн,
Иҥнэн турбат киһиттэн.
***
Биирдэ күһүн Баһылай
Туораан тахсан наадатын –
Кыра дэнэр кыһалҕатын-
Толоруна турдаҕына,
Буучугурас тииккэ түһэр,
Тула-хала көрүнэр…
Кэтэһэбит… Киһиҥ ыппат-
Кэлэн биэрбит булду тыыппат!..
Баһылайбыт кура холку,
Эппиэт наһаа судургу:
-Хаһан табаары ытыамый,
Хаарыан сэби барыамый?!
Хата үүрүү кэмигэр
Ханнык эмэ бөлөчөөк
Кэлэн биэриэ, оччоҕо
Тутта түһэн хаалыллыаҕа,
Тутан ылар чугастан,
Тоҕо ытан ылыллыаҕа…
***
Кэннибиттэн Хаһыйаан
Кэлэн истэ алтахтаан,
Эмискэччи саа тыаһа
Дэлби барда, соһутта…
Көрө түстүм – «алдьархай!»
Адаар дулҕа быыһыгар
Мэлис гыммыт – көстүбэт,
Арай хорсоох саппыкылар
Салгыны харбыалыыллар…
Сүүрэн тиийдим, ыксаатым…
Киһим сытар, ымаҥныыр -
Үөрэн үөһэ тыынабын,
Өрө тардан туруорабын...
Ааһан иһэр кустары
Булчут көрөн турбатах,
Ытан хаалыан санаабыт…
Уоттаах сэрии содула
Контузия моһуоктаабыт:
Сүһүөхтэрэ дэҥи көрбөт,
Уйбат буолтар- босхолор.
Баһылайыҥ кура холку,
Эппиэт буоллар судургу:
-Өлбөт үөстээх эбиттэр
Ити ааспыт көҕөттөр -
Ыта сатаан кэбистим,
Көрөҕүн дии – мэлийдим.
***
Тоһуур аайы Баһылай
Тоҕо куруук ыппат диэннэр,
Уорбалааннар «түөкүттэр»
Бөлүүн түспүт кыраһаҕа
Турбут сирин көрбүттэр -
Адьас субу аттынан
Атаралаан ааспыт куобах
Суолун көрөн – туппуттар!..
Хаһыйааныҥ кура холку,
Эппиэт син биир судургу:
-Тохтообокко ааспыты
Тоҕо ыта сатыамый,
Сыыһа туттан эһигиттэн
Сэмэ-суҥха ылыамый?!
***
Уолан киһи уолуйбут,
Туора ойбут куобаҕы
Туһулаабыт да ыппыт…
Онно,өлүү түбэлтэлээх,
Баһылайбыт түбэспит;
Кэлин, кэҥээн, киһиҥ күлбүт;
Хата, дьолго, ити иэдээн
Халымырдык ааспыт эбит;
Онтон буолуо, бадаҕа,
Маннык буолбут түмүгэ:
Киһилэрин самыытыттан
Дарабыына ылҕаабыттар,
Саа хойуутук тэбэрин
Онно көрөн,- хайҕаабыттар.
Куобах тоҕо өлөрүн
Бэйэтинэн кини билбит -
«Оо, дьэ, саайда эбээт»,- диэн,
Сөҕөн, саҥа аллайбыт.
-Хата оҕом, халаабыһын
Таарыйбатах,-диэн үөрбүт.
***
Булт сырыыта эндирдээх,
Эҥин араас эриирдээх…
Табыллыаҕыҥ тайаҕы
«Тутан туран» ытыаҕыҥ;
Этэргэ дылы балыгы
Туһаххыттан ылыаҕыҥ;
Оттон ойуур куобаҕын
Туугуттан да хостуоҕуҥ…
Сэһэн-тэптэн буолунай –
Истэн бэйэҥ итэҕэй.
</poem>
[[Author:Павлов Николай Гаврильевич|Павлов Николай Гаврильевич айымньыларын тиһигэр]]
[[Category:Хоһоон]]
[[Category:Павлов Николай Гаврильевич]]
{{PermissionOTRS|2011020210002326}}
5f8umu2y55je9k9d4s87y4rxxawe4wg
Манчаары түөкүн (Күлүмнүүр). Бастакы ойньуута
0
110
9571
6503
2026-06-22T15:24:19Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9571
wikitext
text/x-wiki
{{header
| title = [[Main_Page:Sakha|Сүрүн сирэй]]
| author = Күлүмнүүр
| section = [[Дыраамалар]]
| previous = [[Манчаары_(Манчаары_түөкүн)]]| next = [[Манчаары түөкүн (Күлүмнүүр). Иккис ойньуута|Иккис ойньуута]]→
| notes =
}}
Киһинэн үтүгүннэрэн көрдөрөр кэпсээн. Биэс суол ойньуулаах.
[[Манчаары (Манчаары түөкүн)|Инники]]
<poem>
:ООННЬУУР ДЬОН:
:Маарыйа эмээхсин, Манчаары ийэтэ, кырдьаҕас саастаах.
:М а н ч а а р ы Б а һ ы л а й , эдэр одо киһи, 19 саастаах.
:К э р г э н д ь а х т а р .
:К у б а р с ы У й б а а н , Чоочо кинээс хамначчыта.
Ойньуур сирдэрэ - Манчаарылаах дьиэлэрэ. Дьадаҥы ыал. Манчаары уотун кытыытыгар олорон саатын оҥостор. Хаҥас диэки кэргэн дьахтар сүөгэи иирдэ олорор. Дьиэ таһыттан киирэр Манчаары ийэтэ.
М а н ч а а р ы . Хайа, кэпсиэ, ийээ? Тугу иһиттиҥ тойонуҥ аахха?
Эмээхсин. (кыыһырбыт киһи быһыытынан). Тугу истиэмий, арай абарҥ оҥоньор эн үтүө быһыыгын кэпсиэн сир сырайдаата, буор харахтаата. Хайтах гыныаҕым баарай - халлааҥҥа көтүөхпүн кынатым суох, сиргэ тимириэхпин уһуга суох буолан хааллым.
Манчаары (курус гынан тохтоон баран). Ол курдук туох үлүгэри оҕорбуппун булан таһаарбыт үһү абаҕам оҥоньор?
Эмээхсин. Сарыкпын истибэт диир. Сүөһүбүн аспын көрсүбэт буолла диир. Ойньуу күлүү дьарыктанна: ойньоон тэҥ оҕону булбатах, сырсан тэҥ киһини булбатах, тустан бөҕөнү тулуппат буолбут үһү диир. Ойуун кыырарыттан арахсыбат, урууттан ыһыахтан хаалсыбат буолбуккун. Куһаҕан тулаайах уол тугун көрөй нарай, үлэтин-хамнаһын үлэлии үлэлии дьиэтигэр да сыгшат диир.
М а н ч а а р ы . Мин үлэбин кини үлэлээн биэрбит дуо, биһигини кини иитэн-аһатан олорор үһү дуо? Хайа убаҕаһыгар хамыйахтаммытым аҕыйах буолуо, кытаанарр уһуктаммытым мөлтөх буолуоҕа. Ама тулаайаҕым иһин мин да тэбэр тымырдаахпын. ама дьадаҥым иһин мин да ойньуур хааннаахпын. Мин да киһини көрүөхпүн баҕарабын, мин да дьону кытта билсиэхпин баҕарабын. Аламай күн баайдарга эрэ тахсыбата буолуо, сир быйаҥа кинилэргэ эрэ ананан үөскээбэтэҕэ буолуо. Соххор хараҕын уутун, доҕолоҥ сүһүөҕүн уутун супту оборон ылан байбытынан алыс киһиргээбэтин.
Эмээхсин (куттсшмыт киһи быһыытынсш). Тыый, тукаам, туох тылын тылластаҥый, туох саҥаны саҥардаҥый? Аны итини абаҕаҥ оҥоньор истэн эбии кыыһырыаҕа, эбии уордайыаҕа, алдьархайы оҥоруоҕа.
Манчаары. Уордайдар уордайдын, кыыһырдар кыыһырдын: урууга ойньууга сылдьыбыппын ууратыам суоҕа, көргө нарга сылдьарбын көҕүрэтиэм суоҕа. Дьэ, - кини миииитин хайтах гынар эбит оол иһин?
Эмээхсин. Кэбис, биэбэкээм, сэгэртэйиэм оҕотоо, ити курдук саҕарыма. Абаҕаҥ оҥоньору бэйэҥ билбэккин дуо, кини күтүр кытаанах санаатын. Туттаран ылан, таһыттаран кэбиһэн тараах иэнниэҕэ, кулугур кулгаахтыаҕа. Онто суох эшштэ: "аны ойньууга күлүүгэ сырыттаҕына, мин бэйэм ыламмын кинини үөрэтиэм" диэн. Ол саата суута хайтах буолуоҕай. Мин эйигин туох иннигэр эрэйи буруйу көрөммүн баччаҕар диэри иштгштимий. Бэйэҥ билбэккин дуо, аҕаҥ Быртааны Сүөдэр тоҕустаах оҕо эрдэххинэ өлбүтүн кэннэ, тулаайах хаалан муҥу таҥы көрөн, сүүһүм көлөһүнүн уллуҥахпар аҕаан, уллуҥаҕым көлөһүнүн сүүспэр аҕаан, бачча киһи гынным буолбат дуо? Өлөр үйэбэр, кырдьар сааспар иитиллиэм аһыам диэн? Аҕаҥ өлүөхсүт маннык тыллаах өстөөх киһи буолуо диэбэт этэ. Оҕом сымнаҕас киһи буолуоҕа эрэйдээхтэри аһынар, кыһалҕалаахтары көмүскүүр киһи буолуоҕа диирэ
Аҕаҥ өлбүтүн кэннэ үс түөрт киһи кэлэн ыйыта сатаан кээстэрэ, ону оҕобун аан дойдутуттан араарымаайыбын, иэримэ дьиэтиттэн иэдэтимээйибин диэн бу тоҥ модьоҕону кэтиэн олорор буолбагшын дуо? Ону төһө кэриэстээн ытыктаан эрэҕин. Хата дьоҥҥо сырыттаҕым аайы "үтүө" быһыыгын-майгыгын кэпсиэн сыраи эрэ саатардан. кулгаахпын ититэн эрэллэр ини!
Манчаары. Ол, Чоочо баай тойон, мийигин тугу гыммытым иһин таһыйаары гынар! Тугу уорбут үһүбүн ду, тугу алдьаппыт үһүбүн ду? Кими талаабыппын ду, кимтэн былдьаабыппын ду? Хата бэйэтин дьон этэллэр буолбат дуо, былыр айан дьонун аттарын быһа аһарбат этэ, чугастааҕы ыалларын сүгүн олоппот этэ диэн, ити гэннэ кинээс буолан баран уоруйахтары уоруйахтарын сабан, кинилэр уорбут үптэрин барытын бэйэтэ хамыйан ылан байда дииллэр буолбат дуо? Кыра дьону баттаан, дьадаҕыны атаҕастаан, тулайахтар сирдэрин былдьаан, ккнилэр көлөһүннэрин хамнастарын сиэн, Чоочо баай ааттаммыта диэбэттэр дуо? Ити кэннэ кини мин туох буруйбун булан буруйдаары гынар?
Эмээхсин. Эй, тугаам, улахаттары баайдары кытта биһиги кыра дьон хайаан кыайан мэккиһиэхпитин, хайтах кинилэри кытта тэҥнэһиэхпитин этэҕин? Хата кэл, аһылыккын аһаан баран утуй! Хотуой, чэ күөскүн таһааран хотор! Бу сүөгэйгин хайтах мааҥыттан кыайан иирпэтиҥ! Мааҥын мин барыахпыттан тугу гына олордуҥ? Атаххын оллооннуу кэбиһэн олорон, хамыс тардан, хантайа олордоҕуҥ дии!
Кэргэн дьахтар {уоһун иһигэр ботугураап). Хам мааччы олоро иликпин. Миэхэ хотонум да сааҕа кыаттарбат.
Эмээхсин. Дьэ күөскүн хоторумна итиннэ ботугуруу тураары гынныҥ дуо?
(Кэргэн дьахтар остуолга аҕалан киэһэ аһылыктарын тарпытын саката суох аһыыллар. Манчаары аат харата эрэ аһыыр, тугу эрэ саныыр,өйдүүр киһи быһыытынап олорор).
Эмээхсин. Тугаам, тоҕо аһаабаккын, алыс тоҕо санаар-гыыгын? Абаҕаҥ оҥоньор мөҥөн баран уурайыа буоллар диибин!
Манчаары. Абаҕам оҕоньор бэйэтин идэтигэр үөрэтээри гыммыта буолуо да. мин кини киэҥ хардыытын кыайан хардыылаым суох, кини уһун олугун кыайан олуктуом суох. Киниэхэ даҕаны дьон хааннаах көлөһүннэрэ, харахтарын уута хайаан иҥнэҕэй?
Эмээхсин. Чэ, чэ, кэбис, хааллын. Хайа, бүгүн туһаххын, айаҕын көрдүҥ дуо? Туох түбэспит?
М а н ч а а р ы . Ээ, көрдүм да, икки үс куобах түбэспитин эмиэ суор баҕайы сэймэктээн кээсгшт!
Эмээхсин. Тыый, ол эмиэ хайа хара дьайдаах баҕайы буллаҕай биһигини!
Таһырдьаттан киирэр Кубарсы Уйбаан, Чоочо оҕоньор хамначчыта. Таҥараҕа үҥэр.
К у б а р с ы . Дорооболоруҥ!
Эмээхсин. Дорообо, Уйбаан. бу ханна баран иһэҕин?
К у б а р с ы . Сылгыһыт Сүөдэргэ сылдьан баран, дьиэбэр баран иһэбин!
Эмээхсин. Кэл, манна олорон аһаа! Ол Сылгыһыт Сүөдэргэ тоҕо бара сырыттын?
К у б а р с ы . Тойонум иэс иэстэгатитигэр бара сырыттым.Бу саас сутаары гынан Сүөдэр икки сыарҕа оту ылбыта үһү, биир буос ынаҕы биэриэх буолан. Онтукатын биэрбэтэҕин иһин тойонум көлүнэ сылдьар оҕуһун туттарбытын, ону баран ылан и11эбин.
М а н ч а а р ы . Былырыын биһигиттэн икки арыы иэстээҕэр икки сыарҕа оту ылбыта, ону биэрбит этэ Сылгыһыт Сүөдэргэ, ама оол иһин киһи баар эрэ көлүнэр көлөтүк былдьаттаҕа дуо?
К у б а р с ы . Тыый, туох диэн эттэҥий? Саас быстарыы саҕына хата киниэхэ от баар буолан, дьон сүө11үлээх астаах хаалтара буолбат дуо? Дөссө истиэххин баҕардаххына мэҥэлэр киирэннэр аҕыс көстөөх сиртэн сыарҕатыгар аҕыстыы сүүһү иннигэр ууран туран көрдүү сатаан кээстэрэ, ону бэйэм дьонум сутуохтара диэн биэрбэтэҕэ буолбат дуо?
М а н ч а а р ы . Оттон билигин даҕаны биир улуус, икки дэ сылы мэлдьи, сут кэллэҕинэ сиир ото баар буолбат дуо? Бэйэтэ алыс харам санаатыгар биирдии арыыга ылбыт ото аҕыстыы сүүс барарыгар хараҕа туолумна биэрбэт буоллаҕа диибин. Син оол дьон кэннилэригэр хас да киһиэхэ сыарҕатын уоннуу сүүс биэрбит сурахтааҕа.
Эмээхсин. Чэ, ол биһиэхэ туох буолуой,- хата Сүөдэр ону туох диир?
К у б а р с ы . Туох диэҕэй, тугу кыайан мэккиһиэҕэй. Арай тойонум өлөрдөҕө алдьаттаҕа, киһи аатыттан аһардаҕа диир.
Бэйэтэ сатаатахха ыалдьа сытар эбит. Бу оҕоҕо илдьиттээбитэ, бука кэлэн оппун тиэйэн, маспын мастаан биэрдин диэн.
Эмээхсин. Оттон Матрыана ханна барбыт? Бэйэтэ дэ отун маһын тиэммэт дъахтар ду!
К у б а р с ы . Матрыана баар да, хата бэйэтэ эмиэ илдьиттиир: кэлэн көмөлөстүн, мин оттору мастары кыайыам суох диир.
Эмээхсин. Оол барыта кини уһун кутуругун охсуута буоллаҕа. Сайын биирдэ дэ оттобокко, өрүү ыһыаҕы, ойньууну бата сылдьар. Үчүгэйдик оттууллара мастыыллара буоллар аҕыйах сүөһүгэ тоҕо кыайан оттоообот буолуохтарай? Оччоҕо саас аайы от атыытыгар киириэ суох этилэр.
М а н ч а а р ы . Ханнааҕы баар сирдэрин оттууллар оол. Бэйэлэрин өлбүгэлэрин сириттэн ситэри уон сыарҕа тахсыбат буолбат дуо? Ол Чоочо оҕоньор сирин үс кыммыт бииригэр оттуулларыттан туох дуоннаах тиксиэҕэй?
Эмээхсин. Чэ, ол эрээри Матырыас да булкуурдаах кыыс оҕо буолуоҕа.
Аһаан бүтэллэр. Кэргэн дьахтар остуолтан иһити тардар, Кубарсы туран үтүлүктээх бэргэһэтин ылан Таҥараҕа үҥэр, ити гэннэ "Бырастыыларыҥ" диэн баран, тахсан баран хаалар. Эмээхсин онуоха эмиэ "бырастыы" диир. Манчаары эмиэ туран таҥнар. Ылар саатын, батыйатын.
Эмээхсин. Бу тоҕо киэһэ бараҕын, сарсыарда да барбаккын дуо? Ити гэннэ бу тугуҥ сэбэй, батаһай?
М а н ч а а р ы . Аара баҕардаҕына булт түбэһиэҕэ. Ити гэннэ бу түүн үлэлээн биэрэн баран, сарсын атын ыалларга сылдьыам!
Эмээхсин. Аны, оол дьон, оол бу диэбиттэрин аайы, онуоха маныаха кытта сылдьар буолаайаҕын! Киһи кыһалҕатын эн барытын кыайан толоруоҥ суоҕа, дьон атаҕастаммытын баттамытын барытын эн кыайан тэҥниэҥ суоҕа!
(Манчаары тахсар).
(Быыс түһэр).
</poem>
[[Категория:Күлүмнүүр]]
[[Категория:Дыраама]]
j9jgfi9cu6xi88gqxazk21j9ya7tv0r
Манчаары түөкүн (Күлүмнүүр). Иккис ойньуута
0
111
9572
4258
2026-06-22T15:24:20Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9572
wikitext
text/x-wiki
{{header
| title = [[Main_Page:Sakha|Сүрүн сирэй]]
| author = Күлүмнүүр
| section = [[Дыраамалар]]
| previous = [[Манчаары түөкүн (Күлүмнүүр). Бастакы ойньуута|Бастакы ойньуута]]
| next = [[Манчаары түөкүн (Күлүмнүүр). Үһүс ойньуута|Үһүс ойньуута]]→
| notes =
}}
<poem>
ОЙНЬУУР ДЬОН:
С ы л г ы һ ы т С ү е д э р , эр ортото киһи. М а т р ы а н а , эдэр дьахтар, Сүөдэр ойоҕо. М а н ч а а р ы .
Ө р ө ҥ н ү ү р К и р г и э л э й дьадаҥы дьон.
Т э л л э й X а б ы р ы л л а сылгыһыт.
К ы ы д а ҥ н ы ы р М и и т р э й ыаллара.
Сылгыһыт дьиэтэ, дьадаҥы ыал. Бэйэтэ ыалдьа сытар, ойоҕо иистэнэ олорор уот кытыытыгар.
Манчаары дьиэ таһыттан киирэн илии тутуһуталыыр, ити гэннэ ороҥҥо баран олорор. Сылгыһыт туран олорор.
С ы л г ы һ ы т . Кэпсиэ, тугу иһиттиҥ?
Манчаары. Суох, тугу да истибэтим! Эһиги тугу иһиттигит, хайтах туох олороҕут?
С ы л г ы һ ы т . Биһиги тугу истиэхпитий, арай тойоммут Чоочо баай баар эрэ көлүнэр көлөбүтүн икки сыарҕа отун иэһигэр туттаран ылла.
М а т р ы а н а. Чоочо баай балай эмэ үрүҥ хара сүүрүктээх буолара, балай эмэ сыһыыга баппат сылгы сүөһүлээх, алааска баппат ынах сүөһүлээх буолар буолара, олоро барыта умса түһэн хааланнар, биһиги баар эрэ биир туора муостаахпытын туттаран ылла ини, онон өрө таттараары. Хайа, биһиги да көлөһүммүтүн кини балай эрэ сиэбитэ буолуоҕа, балай эрэ иннигэр кэннигэр сүүрпүтэ буолуоҕа.
С ы л г ы һ ы т . Ээ, барбаҕы саҥарыма, дьахтар! Улахаттары кытта эн кыайан тэҥнэһээри гынаҕын дуо?
М а т р ы а н а . "Саҥарыма" буола буола, кырдьыгын этитимээри гынаҕын дуо? Ама билигин бу айылаах буолтум иһин, мин да син кини курдук дьонтон төрүөбүтүм. Мин ийэм аҕам өллөхтөрүнэ балай эмэ сүөһү ас хаалбыт этэ. Ону барытын Чоочо оҕоньор бэйэтэ халаан ылан баран, миийигин тулаайах кыыһы туоҕа да суох үҥкүрүччү аньан кэбиспитэ буолбат дуо? Мин аҕам ийэм баалларын саҕына кинини да сөбүгэр киһи этэ дииллэрэ. Оол кинилэр сор суоллаах буоланнар, умса түһэн хаалан, мин бу айыылаах буоллум ини. (Ытыыр, хараҕын уутун элиитинэн соттор.)
Ийэм аҕам өллөхтөрүнэ сүүстэн тахса сылгы хаалта, икки сүүскэ тиийэ тиийбэт ынах сүөһү хаалта, хас да хоспох үп сээбэс хаалта. Ону дьон эрэ барыта билэллэр. Мантан тугу эмэ бэристэҕэ дуо! Хата киһини билиэхпиттэн хамначчыт гынан ынаҕын сааҕын күртэрбитэ буолуоҕа.
М а н ч а а р ы . Отчо үлүгэр сүөһүттэн, үптэн хайтах тугу эмэ ирдэһэн көрбөтөххүтүй, бэйэтэ биэрбэт буоллаҕына, саатар суутунан да үҥсэҥҥит?
М а т р ы а н а . Хайтах ирдэспэт буолуохпутуй, ирдэһэ сатаан кэбиспиппит дэ, ким биһиги диэки буолуой, хата барылара саба саҥаран бэйэбитин мөҥөллөр, сэмэлииллэр. Нуучча суутугар үҥсэрбитигэр хата бэйэбититтэн төһө эмэ харчы баарта сурук оҥотторон биэрэрбитигэр. Биир нуучча тойоно тахса сылдьан, хата кини туһаммыт этэ биһиги үппүтүттэн. Хас эмэ хонугу мэддьи арыҕы иһэн иһэн баран балай эмэ кылааннаах түүлээҕи ылан киирбит этэ.
М а н ч а а р ы . Оннук хараҕа суох баттабылы тохтотор дьарыйар үтүө сүрэхтээх киһи биир эмэ көстүбэтэх буоллаҕа.
М а т р ы а н а . Эчи, оннук киһи хантан көстүөҕэй? Ким биһиги иннибитигэр Чоочо обургу айаҕар киирэн биэриэҕэй.
С ы л г ы һ ы т . Чэ, бу чайгын кут, хата.
''Матрыана тахсан ампаартан хайах киллэрэн, остуолга чааскы тэлгэтэн дьонун чайдыыр.''
С ы л г ы һ ы т . Бу Чоочо тойон биир атыырын үөрэ мантан арахсымына бу сир отун бэркэ күрүөһүлээн сиэтэ. Мин ыалларым Өрөҥнүүр Киргиэлэй, Кыдаҥныыр Миитэрэй, Тэллэй Хабырылла буолан, бэрт кыра дьон отторун бараатылар. Күн аайы таһаараллар таһаараллар да, кэннилэриттэн киирэ тураллар. Туох да бүтэйтэн иҥнибэт буолбут баҕайылар.
М а н ч а а р ы . Оттон ону айа тардан ду, саанан ытан ду өлөрөн кэбиспэттэр дуо? Хата бу аас саҕана эт сиэниллиэ этэ.
С ы л г ы һ ы т . Тыый, отчоҕо баһыҥ хаһый? Чоочо тойон киһи тыынын иһиллиэ буоллаҕа диибин. Оол курдук гынар баара буоллар биһигини барыбытын тыыннаах гынара суох.
М а н ч а а р ы . Алаата, доҕор, алыс тугу гыныа буоллаҕай? Үбүн аһын бэйэтэ кыанар буоллун ээ. Киһи баар эрэ тыынын күрүөһүлэтэн сиэппэт буоллун. Киниттэн баран от атыыластахха ыарахан соҕустук этиэх быһыылаах диибин.
{Чайдаан бүтэллэр.)
С ы л г ы һ ы т {таҥаһын таҥнан баран). Доҕоор, мин сүөһүбүн аһата таҕыстым, эн Баһылайга сытарыгар таҥаста булан биэр. {Тахсар.)
Манчаары {Кэлэн, Матрыана аттыгар олорон баран). Үнүрүүн Дарбаҕай Дарыбыанҥа тоҕо барбатаҥый?
М а т р ы а н а . Онно тоҕо барыамый?
М а н ч а а р ы . Ойуун кыырдарбыттара буолбат дуо? Онно элбэх уолаттар, кыргыттар муньустубуттара.
М а т р ы а н а . Эчи,мин онно эмиэ тоҕо бардамый?
М а н ч а а р ы . Оттон мин эйигин онно барыаҕа диэн бараммын күүтэ сатаан кэбиспитим.
М а т р ы а н а . Оол эн эмиэ тоҕо миийигин күүттэҥий, миэхэ тоҕо кыһаннаҥый?
М а н ч а а р ы . Мин эйигин күүтэрбин, мин эйиэхэ кыһанарбын, эйигин бэйэтэ даа билэрэ буолуоҕа, сүрэҕэ таайара буолуоҕа дии саныыбын. Былырыын сайын Мэрбэллэ Бүөтүр уруутугар сылдьан көрсүспүппүт тохору, онно оонньообуппут, көрүлээбиппит тохору, эн мин санаабыттан тахсыбат буолан хааллыҥ, онтон бэттэх түүн да буоллун, күнүс да буоллун өрүү эйигин саныы сылдьар буолан хааллым. Сүрэҕим быарым уулан тохторугар тиийдим. Эйигин санаатахпына утуйар да уум уу буолбат, аһыыр да аһым ас буолбат.
Матр ы а н а . Ама тоҕо отчо үлүгэр буоллаҥый! Куһаҕан дьахтар диэҥҥин күлүү гынан этэн эрдэҕиҥ диибин.
М а н ч а а р ы . Мин тоҕо күллэмий? Хата эн бэйэҥ сэниэн, атаҕастаан этэн этэр инигин. Кини эмиэ киһи дуо, кини эмиэ итии хааннаах, хамсыыр сүрэхтээх буолуо дуо диэн, эрдэҕиҥ.Буор дьадаҥы баҕайы киһи таптаабытын иһин тугунан иитиэҕэй, аһатыаҕай диириҥ буолуо да,- мин да киһи буолан сырыттаҕым дии, мин даҕаны ниччэҕэй эттээх, тардар тымырдаах, тэбэр хааннаах буоллаҕым. Дьадаҥым иһин илиим, атаҕым да күүһүнэн биир дьахтары иитиэм дии саныыбын.
М а т р ы а н а . Мин тоҕо иннэ диэмий дэ, мин баҕас эрэйдээҕи тоҕо таптаатаҥый? Аны кэлэн мин хайтах эйигин кытта холбоһон тэллэххэ сытар тэҥнээх хойньҕо сытар холоонноох доҕор буолуомуй, оҥоруубут, ыйаахпыт атын буолтун кэннэ. Бостуой сүрэх быар бааһа буола сылдьыах кэриэтэ санааны маҥнайгыттан эрэйдиэххэ түктэри, бостуой дьон элэгэ, киһи күлүүтэ буолуохпут.
М а н ч а а р ы . Оҥоруубут, ыйаахпыт туһунан буола буола. Тугу да билбэт тулаайах хаалбыт оҕону оол Чоочо оҕоньор бары баайын халаан ылан баран, сылгыһыт уолугар күүһүнэн эргэ биэртэ оҥоруу буоллаҕай, бэйэҥ өйдөөх санааҕынан, сүрэҕин сөбүлүөн барбыккар дылы. Итинниги оҥоруу ыйаах диэтэххэ киһи бэйэтэ өйдөөх санаалаах да буола сылдьыа суох. Отчоҕо киһи сүөһү курдук үүрүллэ да сырыттаҕына, сөп буолсу диибин. Хайа, эмиэ Таҥара ыйааҕынан киһи орто дайдыга сүүрэр атахтаах баһылыга буолар, үтүөнү куһаҕаны бэйэтэ билэн бэйэтин иннин бэйэтэ билиэх тустаах дииллэр дии. Биһиги кырдьык таптаһар буолан баран тоҕо холбоспоппут, дьолбутуттан туораан биэрэбит? Тоҕо биһиги куһаҕан дьон санааларын тылларын хоту бараммыт бэйэбит бэйэбитин эрэйдиибит, муҥнуубут. Хата эн биһиги сүбэбитин холбоон биир буолуох. Мин эн иннигэр ууга да уокка да түһэрбин кэрэйиэм суоҕа. Отчоҕо кэм мин Чоочо оҕоньортон, кини сиэбитин аһаабытын хайата да буоллар ситиэм. Аҕаҕыттан, ийэҕиттэн хаалбыт симэххин таҥаскын сүгүн киниэхэ сиэтиэм суоҕа.
М а т р ы а н а . Эчи билбэтэҕим, оҕолоор, сүрэҕим куттанара, санаам хоппото бэрт эбээт. Ол улуу күтүр биһиги барахсаттары тулутар баҕас үһүө! (Куустуһан баран уураһаллар-сыллаһаллар.)
М а н ч а а р ы (Тохтоон олорон баран). Бэрт да буолар эбит киһи кытаанах күтүр санаата, киһини аһыммата, харыһыйбата, дьонтон сааппата, таҥараттан куттаммата, бэйэтин иннин
кэннин өйдүөн көрбөтө, бэйэтин курдук киһини хааннаах ыт курдук көрөрө. Бу Чоочо оҕоньор тугу саныы саныы бу курдук киһини күтүрдүк, кытаанахтык баттыыра, атаҕастыыра буолуой? Бэйэтин кини өлөр тыына, ыалдьар этэ, тохтор хаана суох курдук саныыра дуу? Хайтах кини киһини бэйэтинэн охсубат, хайтах кини киһи эрэ үчүгэй олоххо, үтүө майгыга баҕарара буолуо диэбэт. Туох диэ этэ, арай кинини кини бэйэтэ атаҕастыырын-баттыырын курдук атаҕастыыр-баттыыр киһи көһүннэҕинэ?
М а т р ы а н а. Эчи, кининньик улуу күтүрү ким кыайан өрө көрөн туран өрөлөстөҕөй, туох кинини утары көрдөҕөй.
М а н ч а а р ы . Алаата доҕоор! Чоочо да оҕонньору уу ылбат, уот сиэбэт диэтэҕиҥ дуу. Куһаҕан санаа киирдэҕинэ киһи эрэ киниэхэ сөбтөөх доҕор, аналлаах атас буолуо этэ!
М а т р ы а н а. Ээ, эчи эн биһикки баҕас тугу кьгайдахпытый хоттохпутуй; доҕоччукаам!
М а н ч а а р ы. Миигин даҕаны тугу кыайан оҥорбот буолуо диэтэҥий. Билигин Чоочо оҕоньор, кыстыгыттан атын сиргэ, от сии олорор: Үбэ, аһа кыстыгар хаалбыта буолуоҕа, ону бараммын ый быыһын ыһыаҕа, аат дойду аһылыга гыннахпына гоши миийигин тугу гыныаҕай, хантан билиэҕэй?
М а т р ы а н а. Ол курдук оҥорбуттан туох туһа тахсыай? Кыаттарара буоллар Чоочо оҕоньор, баайгын барытын ылан, кыра дьоҥҥо түҥэтэн биэрэр буоллар, үчүгэй буолуо этэ.
М а н ч а а р ы. Оннугун оннук даа кыра дьонуҥ ону билиэхтэрэ диэтэҕиҥ дуу? Чоочо оҕоньор туту эппитин хоту бара сылдьар баҕадьылар хата бэйэбитин бултуурга эккирэтэргэ барыахтара. (Тохтоон олорон баран.) Бэйэ-рэ мин бараммын көрөн кэлиим, туох харабыллаах манабыллаах эбит Чоочо кыстыга. Мантан чугас буолбат дуо?
М а т р ы а н а . Куттанабын эбээт, доҕоччукаам, хайа алдьархай буолаарай? Чоочо оҕоньор биллэр эрэ сүгүннүүрэ суох эйигин киһи аатыттан аһарыа буолбат дуо?
М а н ч а а р ы . Биллэр биллин доҕоор! Биир сымыыт ханна сытыйбат биир киһи ханна өлбөт. Оччоҕо саатар түүн көҥүл күөлэһийэрэ, күнүс көҥүл көрүлүүрэ тохтуоҕа. Кинилэр даа хамсыыр сүрэхтээх, тардар эттээх, буолуохтара. Хата, эн бэйэҥ сүрэх быар элэмтэтэ буола олорума. Билигин даа кыаттарбатахтарын хотторботохторун иһин хойуккутун хойут, кэнэҕэскиттэн кэнэҕэс, биһиги курдук санаалаах дьон элбээн истэхтэринэ маннык хараҕа суох баттабыл, маннык муҥура суох атаҕастабыл мөлтүөҕэ, уурайыаҕа. Ону дьоммут билигин даа билбэтэхтэрин иһин, хойутун хойуккунан билиэхтэрэ. Чэ, бырастыый! (Уураан-сыллаан баран, Манчаары саатын батыйатын ылан баран, тахсан барар. Тохтуу туһэн баран, дьиэ таһыттан Сылгыһыт киирэр.)
Сүөдэр (Таҥаһын сыгынньахтана-сыгынньахтана этэр). Доҕоор, хайа билиҥҥи ыалдьыппыт ханна барда?
М а т р ы а н а. Ким билэр, билигин кэлиэм диэн таҕыста диибин.
С ы л г ы һ ы т . Тыый, ол ханна бардаҕай? Тахсан Чоочо оҕоньор иччитэх кыстыгын диэкки барда. Аны ол киһи тугу эмэ оҥорон алдьахай буолуо, киһини тылга иҥиннэриэ.
Таһырдьаттан киирэллэр Ө р ө ҥ н ү ү р К и р г и э л э й, Т э л л э й X а б ы р ы л л а , К ы ы д а ҥ н ы ы р М и и т р э й .
С ы л г ы һ ы т . Кэпсиэҥ? Бу ханна бардыгыт бачча түүн?
Ө р ө ҥ н ү ү р. Бэйэбит манна сылдьабыт.
С ы л г ы һ ы т . Манна тоҕо кэллигит?
Ө р ө ҥ н ү ү р. Чоочо баай оҕоньор атыырдаах сылгыта баар-эрэ оппутун күрүөһүлээн сиэн кэбиспитин ону тыллыы сылдьабыт, оҕоньорго бэйэтигэр баран тыллыы сылдьыбыппытын сиргэ сылдьар сүөһүлэри хайтах кыныамый диэн батан ыытта. Күрүөҕүтүн үчүгэйдик оҥорбоккут буолуо диир даа, киһи сатаан кини сылгыта кыайан киирбэт кына оҥоруо суох; көтүөхтэригэр кыната суох эрэ баҕадьылар.
С ы л г ы һ ы т . Ону хайтах кынаары кынаҕыт?
Ө р ө ҥ н ү ү р. Хайтах кыныахпытый!..
Таһырдьаттан киирэр, сүүрэн аҕылаабыт киһи быһыытынан, биир хааһаҕы сүкпүтүнэн, М а н ч а а р ы . Элбэх дьон баарын көрөн баран, соһуйбут киһи быһыыланар.
М а н ч а а р ы . Бу тоҕо мунньустубут дьонуй?
С ы л г ы һ ы т . Ээ, бэйэлэрэ сылдьар дьон! Чоочо оҕоньор сылгыта отторун күрүөһүлээбитин тыллыы сылдьаллар.
М а н ч а а р ы . Тыллыы буола-буола, оттон мин билигин ааһан иһэн көрдөхпүнэ, атыыра суолга туора охто сытар диибин.
Б а р ы . Тыый, ол хайтах буоллаҕай? Хайтах өллөҕөй?(бэйэ-бэйэлэрин көрсөллөр.)
М а н ч а а р ы . Онуоха тоҕо соһуйдаххытый,- аҕалан үллэстэн сиэхпит. Онуоха диэри ити хааһахха баар үбү ылан үллэстиҥ! Ити эмиэ Чоочо оҕоньор уһун быйаҕа, киэҥ кэһиитэ. Билигин мин сылайдым, ханна эрэ утутуҥ. Сасыарда эрдэ уһугуннараарыҥ.
С ы л г ы һ ы т . Чэ ити үгэх баар, онно киирэҥҥин утуй!
М а н ч а а р ы үгэххэ киирэр.
(Өр соҕус тохтоон олорон баран, аргыый аҕай сибигинэйэн этэр.) Чэ, доҕоттоор, бу үлүгэри көрүҥ эрэ, ити киһи бу дьаабыны оҕордоҕун! Дьэ, Чоочо оҕоньор биһитини олорор олохтуура суох, утуйар уулуура суох, хайа хайтах гынабыт?
Ө р ө ҥ н ү ү р . Биһиги тугу билиэмитий, эн биллэҕиҥ диибин!
И к к и д о ҕ о р о . Эн бил, эн бил!
С ы л г ы һ ы т (Тохтоон олорон). Хайтах кыныахпытый. Кэлбит үбү үллэһиннэхпит диибин, ити гэннэ чэ, бу киһи тыыннааҕын тухары Чоочо биһигини сүгүн олордоро суох, онон биир киһи тыынын тыыннаныахпыт дуо, кинини билигин утуйа сыттаҕына саанан ытан кэбиһиэххэ. Сөбүлүүгүт дуо?
Б а р ы . Чэ эн бил, чэ эн бил.
М а т р ы а н а . Тыый, хайа үлүгэр буоллаххытый, иирдэххит дуу? Тугу эһиэхэ оҥорбут киһини өлөрөөрү кынаҕыт. Хата, эһиги иннигитин илиннэн, эһиги кыһалҕаҕытын кыһалҕа оҥостон сылдьар буолбат дуо?
С ы л г ы һ ы т . Дьэ эн саҥар эрэ аны биирдэ, мин эйигин көрдөөбүккүн биэриэм. Кэтэҕиҥ аһыттан ылан баран, дьиэ таһыгар быраҕыам. Эн эмиэ тугу эрэ билэҕин, киэр бар антах! (Охсоору гынар, дьахтар куотан дьиэ таһыгар тахсар.) Чэ, ылыҥ, ити сааны иккиһин иитэн баран, ол чуолҕанынан сүүһүн хаба оттотунан көрөн ытыҥ!
Б а р ы . Суох, суох, бэйэҥ ыт. (Кэннилэринэн тэйиэкэлииллэр.)
С ы л г ы һ ы т ылан сааны иккиһин иитэн баран, ытар, саата уот биэрбэт. Сотору соҕус буолан баран, М а н ч а а р ы туран кэлэр.
М а н ч а а р ы . Үчүгэйдик да утуйдум, доҕоор. Эһиги ханна да барбатыгыт дуу,- ким да кэлбэтэ дуу?
Б а р ы : Суох, ханна даа барбатыбыт, ким даа кэлбэтэ!
Манчаары. Кэлиҥ эрэ, доҕоттоор, манна олоруҥ. Мин түүлбүн кэпсиим. Сити утуйа сыттахпына эһиги саанан ыппыт курдуккут, сааҕытын икки буулдьаннан иитэн, ол буулдьаларгыт икки кулгаахпынан сирилээн этэн аастылар: Тур, эйигин доҕотторуҥ өлөрөөрү гыннылар дииллэр!
Б а р ы . Тыый, туох баҕайы түүлүй? Эчи, биһиги эйигин туох диэн өлөрөөрү гыннахпытый, бэйэбит бэйэбитинэн.
М а н ч а а р ы . Чэ! Оччоҕо кэлиҥ, бу аал уот иннигэр тобуктаан туран андаҕайыҥ: Биһиги өлөрөөрү гымматахпыт диэн.
Бары уот кытыытыгар кэлэн тобуктаан тураллар.
М а н ч а а р ы . Андаҕайаҕыт - дуо мийиэхэ. туох да куһаҕаны санаабатахпыт диэн?
Б а р ы . Андаҕайабыт! Андаҕайабыт!
М а н ч а а р ы . Андаҕайаҕыт дуу: бу Манчаары баайга баҕаран, үбкэ ымсыыран, баранаак буолан бардаҕа диэхпит суоҕа, - хата, биһиги хааннаах хара көлөһүммүт харыһыгар, биһиги сордоох сор суолбут толугар бу курдук бэйэтин харыстаммакка тэрилиннэҕэ диэн, кэнэҕэски үөскүүр ыччаттарга даа кэпсиэхпит диэн?
Б а р ы . Андаҕайабыт, андаҕайабыт!
</poem>
[[Үһүс ойнуута]]
[[Категория:Күлүмнүүр]]
[[Категория:Дыраама]]
pqh2d6zvlq3jsvleduyrej3vcqggfxb
Манчаары түөкүн (Күлүмнүүр). Үһүс ойньуута
0
112
9573
4259
2026-06-22T15:24:22Z
SauitBot
2363
Робот: {{Header}} шаблонттан ← уонна → бэлиэлэри ылыы
9573
wikitext
text/x-wiki
{{header
| title = [[Main_Page:Sakha|Сүрүн сирэй]]
| author = Күлүмнүүр
| section = [[Дыраамалар]]
| previous = [[Манчаары түөкүн (Күлүмнүүр). Иккис ойньуута|Иккис ойньуута]]
| next = [[Манчаары түөкүн (Күлүмнүүр). Төрдүс ойньуута|Төрдүс ойньуута]]→
| notes =
}}
Киһинэн үтүгүннэрэн көрдөрөр кэпсээн. Биэс суол ойньуулаах.
ҮҺҮС ООННЬУУТА
<poem>
ОЙНЬУУР ДЬОН:
Ч о о ч о к и н э э с , ааттаах баай оҕоньор. М а ҥ н а й г ы ч а р ч ы ы н а - кинээс. саас ортото киһи. И к к и с ч а р ч ы ы н а - кинээс, кырдьаҕас оҕонньор. Хапраал. М а н ч а а р ы . Мунньах дьоно: С ы л г ы һ ы т С ү ө д э р . Өрөҥнүүр Киргиэлэй, Т э л л э й X а б ы р ы л л а , К ы ы д а ҥ н ы ы р М и и т р э й у о н н а д а а т ы н д ь о н н о р
Чоочо баай дьиэтэ, тойоттор остуол иннигэр чай иһэллэр. Манчаары маска баайыллан турар, кыра дьон уот кытыытыгар тураллар.
Ч о о ч о . Дьэ, кырдьарстара, тойотторо, бу акаары мэник быһыытын майгытын истэн дьүүллээҥ, дьаһайыҥ! Кини туохха даҕаны кыайтарарыттан ааста. Ампаарбын алдьатан үбпүн көтөҕөн ылбыт, сыһыыга сылдьар сылгыбын ытыалаан өлөртөөн кэбиспит. Бу мин үбпэр-аспар кини туохха өстөннө, кини мийиэхэ тугун былдьатан, талатан маннык быһыыны быһыыланна. Арай тулаайах хаалбыт уолу иитэн, аһатан бачча гыммыт буруйдаах буолуом. Ылыҥ эрэ ыйытыҥ. туох иннигэр мийигин ити курдук дьаабылаабыт?
М а ҥ н а й г ы ч а р ч ы ы н а . Чэ, эт, нокоо, туох туһуттан эйиэхэ итинник күтүр санаа киирдэ? Туоха эйиэхэ ити курдук абааһы имнэннэ дуу, хайа киһи кигиэһининэн оҥордуҥ дуу?
М а н ч а а р ы . Абааһы да имнэнэ илик, киһи да кигэ илик, бэйэм санаабыттан оҥордум диибин!
М а ҥ н а й г ы ч а р ч ы ы н а . Туох туһуттан эйиэхэ итинник санаа көтөн түстэ?
М а н ч а а р ы . Истиэххитин баҕарар буолаххытына кэпсиэм даҕаны! Оҕоньоттоор,кырдьаҕастаар, бэйэҕит даа билэрҕит буолуо мин хайтах түөкүн үөскээн баччааҥҥа диэри олорбугатун. Нирэй оҕо эрдэхпинэ, аҕам тыыннааҕына, эрэйи-муҥу билбэт этим.Оччоҕо киһини эрэ барыта тэҥ буолуохтара диирим. Аламай күн бары дьон үрдүгэр тахсара буолуо диирим, аан дойду бары дьон аатыгар үөскээбитэ буолуо дии саныырым, көтөр кынаттаах халлааҥҥа, сүүрэр атахтаах хара тыаҕа, таҥнары сүлгүөхтээх дириҥ далайга, бары дьон туһаларыгар айыллыбыта буолуо диирим. Сымыыттааҕар бүтэй, балыктааҕар кэлэҕэй этим, хамначчыттар сүөһүнү күүскэ үүрдэхтэринэ аһынан ытыыр этим. Аҕам сымнаҕаһа бэрт диэн, Манчаары диэн ааттааҥ диирэ. Тоҕустаах оҕо эрдэхпинэ аҕам өлбүтэ. Ол сыл сүүнэ аас, сут сыл буолта. Биирдии сыарҕа от уоннуу сүүс буолбута, биирдии буут тар иккилии сүүс буолта. Сааскытыгар кыра дьон барыта уу ымдаантан сирэйдэрэ сүүлэ иһэн хаалта. Аҕам, ийэм саһарар дьаҥҥа охтубуттарыгар хамнатчыппыт куттанан күрээн баран хаалбыта. Онно ити Чоочо баай оҕонньор, дьаҥ сыстан өлөммүн баайбыттан матыам диэн, биир да киһини сырытыннарбат гына оҥорбута. Кыра чугас ыалбыт түүн кэлэн маспытын мастаан биэрбэтэхтэрэ буоллар тоҥон өлүө этибит. Сонно билбитим бастаан дьон сүрэгин кытаанаҕын, киһини аһымматын, харыстаабатын. Онтон аҕам өлбүтүн кэннэ оппут баранан хаалан, сүөһүбүт сутаан күн аайы 8-тыы - 9-туу сүөһү өлбүтэ. Ийэм ыалдьа сытан миийигин огустаан сыарҕалаан Чоочо оҕоньорго ыыгатыта - бараҥҥын абаҕаҕыттан саатар биир тиэйии отто аҕал, торбосторбутугар сиэтэрбитигэр диэбитэ. Онно барбыппар ити оҕоньор дьаҥыргаан дьиэтигэр киллэрбэккэ таһынан батан ыыгптыта, биир дэ салаа оту биэрбэккэ. Онтон бараммын кыбыытыттан торбоспор сиэтиэҕим диэн этэрбэһим айагар оту симмитим. Ону көрөн Чоочо хамначчыта Кубарсы Уйбаан биир түүтэх оту уоран биэрбитин дьиэбэр илпитим. Саамай бастаан түөкүн буолбутум ол баар, ону барыгыт истиҥ, туох буруйга. дьүүлгэ тириэртэрҕит - тириэрдиҥ. Сарсынҥытыгар тураммын ийэбиниин дулга сиэлин күрдьэммит, ону хаар анныттан хаһаммыт. сүөһүбүтүн аһаттыбыт. Сонно бастаан билбитим бу Чоочо оҕоньор от-мас сүмэтин супту оборон сиэн олорорун, кини дьон күүһүн таҥнары сабардаан олорорун.
Ч о о ч о . Ити хара ыкка тугу мээнэ лабаҥхалатаҕыт, ылыҥ ыйытыҥ, ылбыт үбүн кини ханна гыммыт?
М а ҥ н а й г ы Ч а р ч ы ы н а . Үгүһү тугу лахсыйаҕын, хата кэпсээн биэр ылбыт үпкүн ханна гыммыккын!
М а н ч а а р ы . Суох, ылбыт үппүн ханна гыммыппын этиэм суога!
Ч о о ч о . Тыыннаах абааһы, дьөссө эн уоскунан угалдьылы, тылгынан лабаҥхалы тураҕын, мин эйигин сибилигин ээххин этитиэм, кырдьыккын кэпсэтиэм. Ыл. Хапраал! Ылан ити түөкүнү маска туруор.
Хапраал баҕанаттан сүөрэн кырыылаах маска тобуктатан туруорар.
М а ҥ н а й г ы Ч а р ч ы ы н а . Нокоо, эн тойоҥҥуттан көрдөс, буруйгун билинэн ааттастаххына. Тоҕо мэккиһэҕин, өрөлөһөҕүн!
М а н ч а а р ы. Мин туох диэн киниттэн көрдөһүөмүй, туох диэн ааттаһыамый. Мин кини курдук хайа даа тулаайах үбүн-аһын былдьаан-талаан ыла иликпин, мин кини курдук хайа даа тиийиммэт-түгэммэт хааннаах хара көлөһүнүн супту оборон сии иликпин, мин кини курдук сатыыттан тайаҕын, аттаахтан кымньыытын талаан ыла иликпин.
Ч о о ч о . Ити түөкүҥҥэ ыт курдук үрдэримэҥ, үөхтэримэҥ!
М а ҥ н а й г ы Ч а р ч ы ы н а. Бэйэ эрэ нокоо, эн тохтоо, өйдөн, иирдиҥ дуу, кутурдуҥ дуу, тугу-тугу мээнэ лахсыйаҕын. Эн бадаҕа этэр тылыҥ баһын билбэт буолбуккун эбээт.
М а н ч а а р ы . Мин тугу да лахсыйа иликпин. Ити оҕоньор бадаҕа кырдьыкка хараҕын аалларар, сырайа саатар быһыылаах.
Ч о о ч о . (Уордуйан.) Бу маҥайкаан аллаах тылын истиҥ эрэ, миигин туохтан сырайбын саатардар, харахпын аалларар? Мин тугу гыммыт үһүбүн: Сылгы, ынах иитэммин дьону аһатар буруйдаах буолуом, от оттотон дьону салгыыр айыылаах буолуом. Ол мин быйаҥмыттан балай эмэ киһи саас аайы иитиллэрэ буолуоҕа. Сырайгыт сүүлэ иһэн баран, саас бэс үөрэннэн аһылыктанаргыт саҕына хайа мин аһым-үөлүм минньигэс буолар буолара диибин. Эһиги сырайгытын мин иһэрдэбин дуо, аспын-үөлбүн мин эһиэхэ элбэҕи ирдиибин дуо? Мин оту оттоппотум буоллар, маһы мастаппатым буоллар, хайа эһиги даа холоон дьон буолаайаҕыт. Саас аайы бэйэһит отто аҕал даа дии диигит, киһини олорпоккут даҕаны, туруорбаккыт даҕаны. Мин эһигини мин оппун ылан, мин аспын аһаан абырааҥ диэн көрдөспөппүн эбээт, ылан, аһаан миигин туһалаамаҥ, абыраамаҥ эбээт. Эһиги даа бааргыт эбээт тоҕо байбаккыт-топпоккут, киһи эрэ бэлэмигэр бэрт буолаҕыт. Баайы даа киһи эрэйинэн байар, үбү да киһи кыһалҕанан булар.
М а н ч а а р ы . Эн кыһалҕаҕын, эн эрэйгин киһи билэр кыһалҕата, эрэйэ буолуо.
Ч о о ч о . Чэ, бэрт киһи эн ону билэр буоллахкына, кэпсээн иһитиннэр эрэ бу дьон ортотугар.
М а ҥ н а й г ы ч а р ч ы ы н а . Чэ, туран тойонҥор кэпсээн биэр.
М а н ч а а р ы . Эн эрэйиҥ, кыһалҕаҥ диэн тугуй? Сир үтүөтүн эн тутан олороҕун, сир бастыҥын эн былдьаан олороҕун. Ону тийиммэккэ түгэммэккэ, тулаайахтарга бэйэлэрин сирдэрин бэйэлэригэр оттотон ыларыҥ ол дуо эн кыһалҕаҥ? Эн оккун тиэйэргэ, эн маскын мастыырга, эн сүөһүгүн сүөһүлүүргэ бүтүн нэһилиэк, улуус дьоно тук буолбаттар, - ол дуо эн эрэйиҥ? Кырдьык, арыыҥ, отуҥ, сүөһүҥ, түүлээҕиҥ - диэксэлэр ахсааныгар, хамыырыгар түүн утуйбаккын, күнүһүн олорбоккун. Күһүнүгэр чэпчикитик ылларбын диэн, сааскытыгар ыараханнык биэрдэрбин диэн, ол санаатыгар олорор буолбаккын дуо? Ити эн этэҕин мин көрдөспөппүн, миигиттэн ылан салҕанан абырааҥ диэн.
Кырдьык, эн көрдөспөккүн кими даҕанны, эйигиттэн көрдөһөллөр барылара. Ол эрээри эн биирдэ эмэ өйдүөн көрдүҥ дуо - бу туох туһуттан эйиэхэ кэлэн ааттаһаллар, атаххар үҥэллэр? Эн бэйэҥ туох диэҥий, тугу саныаҥый, арай эн ууга түһэн тыыҥҥын былдьаһан эрэр буол, онно уу кытыытыгар турар киһи эн көрдөһүүгэр ураҕас быраҕан биэрэригэр эн баайгын барытын көрдүүр буоллун? Кини эмиэ этиэ эбээт - мин көрдөспөппүн, эн көрдөһөҕүн диэн, ууга өлүөххүн баҕарар буоллахына биэримэ диэҕэ. Онно эн туох диэн саныаҥый? Өлөрбүттэн быыһаатаҕа, тугу баҕарар: барытын ыллын диэҥ дуу, кыһалҕабар, өлөр күммэр, туох да улаханы эрэйдэммэтэх суолугар кыһайан ыллаҕа диэҥ дуу? Хайа, өлөөрү гыммыты өрүһүйбэккэ барда, алдьархайы көрөн баран, ааһан барда диэн буруйга, сэмэҕэ тириэрдээйэҕин!.. Оттон эн диэксэллиир дьонуҥ саас аайы сутуур, саас аайы сырайдара иһэр дьон тугунан атыннарый ууга түспүт киһиттэн? Ол дьон тугу дииллэрэ буолуой эйигин?
Ч о о ч о . Бу түөкүн аны уорбутун, алдьаппытын ордугун тылынан үөҕэрэ хаалбыт эбит. Тойоттор, кырдьаҕастар, дьүүллээҥ бу киһини, түксү, миигин үөхтэримэн, симнэримэҥ. Ирдээҥ, кини ылбыт үбүн ханна гыммытый.
М а ҥ н а й г ы ч а р ч ы ы н а . Туоһулартан ыйытан истиэххэ баар. Кэлиҥ эрэ бэттэх Сылгыһыт Сүөдэр, Өрөҥнүүр Киргиэлэй, Тэллэй Хабырылла, Кыыдаҥныыр Миитэрэй, кэпсээҥ тугу билэргитин, тугу да кистиэбэккэ.
С ы л г ы һ ы т . Суох, мин тугу даа билбэппин, арай бу дьон миэхэ биирдэ кэлэн кэпсээбиттэрэ Манчаарыны көрүстүбүт диэн, кини бу тойоммут ампаарын алдьатыаҕыҥ, сылгытын ытыталаан кэбиһиэҕиҥ, диэтэ диэбиттэрэ, ону сонно сарсыҥҥытыгар дуу, өйүүҥҥүтүгэр дуу кэлэн тойоммор кэпсээбиппэр, баран ампаардарын көрбүтэ хайы үйэҕэ алдьатан кэбиспиттэр. Ити кэннэ тугу да билбэппин.
М а ҥ н а й г ы ч а р ч ы ы н а . Оттон эһиги, ноколоор!
Ө р ө ҥ н ү ү р. Биһиги билэрбит баар арай биирдэ түүн сылгылар оппутун көрүөһүлээн сиэбиттэрин таһаартыы сырыттахпытына Манчаары кэлэн бу тойоммут ампаарын алдьатыаҕыҥ, сылгыларын ытыталаан кэбиһиэҕиҥ диэбитэ, онтон куттанан ити Сылгыһыт Сүөдэргэ кэпсээбиппит. бар тойонҥор тыллыы тарт диэбиппит. Ити гэннэ тугу да билбэппит...
Б а р ы . Ити кэннэ тугу да билбэппит. (Тоҥхолдьуһаллар.)
Ч о о ч о . Хара ыттар, ону тоҕо сонно кэлэн миэхэ тыллаабатыгыт? Бэйэ мин эһигини кытта кэпсэтиэм!
Б а р ы . Тыый, тойоммуот, онно түүннэри хайаан кэлиэхпитий бачча ыраах сиргэ!
М а ҥ н а й г ы ч а р ч ы ы н а . Манчаары ылбыт үбүн ханна гыммытын билэргит буолуо.
Б а р ы . Суох, суох, тугу да билбэппит ончу.
М а ҥ н а й г ы ч а р ч ы ы н а . Дьэ, туох уурууну уурабыт, хайтах дьүүллүүбүт. Сатаан олорпотугар тиийбит киһи быһыылаах. Кинини үчүгэй аҕайдык кэһэтэн биэриэххэ баар. Ыл Хапраал, ылаҥҥын ээҕин этиэҕэр диэри өлөрбүт сылгытын баһын быанан баайан баран мойнугар кэтэрдэн кэбис, ити гэннэ уот кытыытыгар илдьэн туруор.
М а н ч а а р ы . Хайтах да гыммыккыт иһин оҥорорбун оҥоро туруом, алдьатарбын алдьата туруом. Арай эһиги миигин өлөрдөххүтүнэ уурайыам.
Ч о о ч о . Киһигит тылын истиҥ, ханнык ааньаны саныыр киһи ити курдук тыллаһыыһык? Кинини үчүгэйдик кытаанахтык дьүүллээн сүрэҕин кэһэтэн биэриэххэ. Оруоската быстаран үстэ унуор диэри таһыйан биэриэххэ.
М а ҥ н а й г ы ч а р ч ы ы н а . Арай ол курдук дьүүллүүргэ сөп буолбут киһи, атынынан киҥини киһи иһитиннэриэ суох киһитэ. Хайа, оҕоньор, эн санааҕар хайдаҕый.
И к к и с ч а р ч ы ы н а . Мин тугу билиэмий, билэр дьон бэйэҕит дьүүллээтэххит диибин. Сааспын сэттэ уоммун туоллум, онуоха диэри хас даа кинээскэ чарчыынанан сырыттым даа киһи чэгиэн этин сэймэктииригэр, кыа хаанын тоҕоругар сылдьыбатаҕым даҕаны, былыргыга даҕаны оннук дьүүл баарын истибэт этим. Арай эмээхситтэр сыалдьа сыбыдах уолаттар үүтү уоран истэхтэринэ, этэрбэстэрин быатынан таһыйаллар, онуоха дылы бачча улахан киһини хайтах гынан таһыйабыт. Ньуучалар кэпсииллэр, арай киһини өлөрбүт дьону таныыларын тыыран, имнэрин имнээн баран, быалаах кымньыынан таһыйаллар үһү диэн. Ону үтүгүннэриэхпит дуу?
Ч о о ч о . Иньнэ гынан хайтах дьүүллэтээри гынаҕын. Биитэр эн санааҕар түөкүнү, баранааҕы букатын дьүүллүөххэ сатаммат дуу? Кырдьаҕас киһи буолан баран, бэйэҥ бэйэҕинэн куһаҕан санаалаах эдэр уолаттары тэптэрэн биэрэҕин.
И к к и с ч а р ч ы ы н а . (Туран эрэн). Мин, кими даа тэптэрэн эппэппин. Кырдьыгы этэбин. Кырдьык кырдьаҕаска даа буоллун, эдэргэ даа буоллун биир буолуо дии саныыбын. Баттабыл аата - баттабыл, атаҕастабыл аата - атаҕастабыл.
(Быыс түһэр)
</poem>
[[Категория:Күлүмнүүр]]
[[Категория:Дыраама]]
j50ebnzdeb4m9rfzyzhqiivfb9o32df
Кэриэс (Алампа)
0
254
9550
8396
2026-06-22T14:51:16Z
Sauit
2200
9550
wikitext
text/x-wiki
{{header
| title = Кэриэс
| author = Алампа
| section = Хоһооннор
| previous =
| next =
| notes =
}}
{{poem-on|Кэриэс}}
Аһыыны аһаама,
Айыыны саҥарба.
Таҥараны таптаама,
Абааһыны ахтыма.
Уруккуну ороомо,
Уорбалыы санаама.
Улаханы ордорума,
Кыраны кыччатыма.
Бэйэҕин бэрдимситимэ,
Бэккин билинимэ.
{{poem-off|1926}}
{{Tq|100%}}
{{PD-Russia-expired}}
[[Категория:Алампа хоһоонноро]]
[[Категория:1926 сыл айымньылара]]
[[Категория:Саха хоһооно]]
goiv9fzy2nh2ezjemi0nurhp99iofin
9551
9550
2026-06-22T14:51:39Z
Sauit
2200
9551
wikitext
text/x-wiki
{{header
| title = Кэриэс
| author = Алампа
| section = Хоһооннор
| previous =
| next =
| notes =
}}
<poem>
{{poem-on|Кэриэс}}
Аһыыны аһаама,
Айыыны саҥарба.
Таҥараны таптаама,
Абааһыны ахтыма.
Уруккуну ороомо,
Уорбалыы санаама.
Улаханы ордорума,
Кыраны кыччатыма.
Бэйэҕин бэрдимситимэ,
Бэккин билинимэ.
{{poem-off|1926}}
</poem>
{{Tq|100%}}
{{PD-Russia-expired}}
[[Категория:Алампа хоһоонноро]]
[[Категория:1926 сыл айымньылара]]
[[Категория:Саха хоһооно]]
eji308nacu6m6dm3r3u26f33n96s5kp
Халыып:Үрдэ
10
495
9539
9334
2026-06-22T14:30:48Z
Sauit
2200
Сирэй иһэ уларытыллыбыт: '{{#invoke:Header|header}}<noinclude>{{documentation|Үрдэ/doc}}</noinclude>'
9539
wikitext
text/x-wiki
{{#invoke:Header|header}}<noinclude>{{documentation|Үрдэ/doc}}</noinclude>
foox6zgx7n6zijbxb38he0utbvs44l5
Халыып:Poem-off
10
497
9549
2582
2026-06-22T14:50:46Z
Sauit
2200
9549
wikitext
text/x-wiki
<noinclude><div></noinclude>
</div>
<noinclude>{{documentation|Template:Poem-on/doc}}
[[Category:Халыыптар:Форматтааһын]]
</noinclude>
tks3crju6hvid0j987iaaru29kxb68d
9553
9549
2026-06-22T14:53:46Z
Sauit
2200
9553
wikitext
text/x-wiki
<noinclude><div></noinclude>
''{{{1}}}''
</div>
<noinclude>{{documentation|Template:Poem-on/doc}}
[[Category:Халыыптар:Форматтааһын]]
</noinclude>
eq18uwl0s8gmx1j3hdkgesc0yyelgzk
9555
9553
2026-06-22T14:55:30Z
Sauit
2200
9555
wikitext
text/x-wiki
<noinclude><div></noinclude>
<br>
<small><i>{{{1}}}</i></small>
</div>
<noinclude>{{documentation|Template:Poem-on/doc}}
[[Category:Халыыптар:Форматтааһын]]
</noinclude>
l8s2l8rrjbb83ro7g5nr3nrz54tguhz
9556
9555
2026-06-22T14:55:47Z
Sauit
2200
9556
wikitext
text/x-wiki
<noinclude><div></noinclude>
<small><i>{{{1}}}</i></small>
</div>
<noinclude>{{documentation|Template:Poem-on/doc}}
[[Category:Халыыптар:Форматтааһын]]
</noinclude>
08guwr9iluq022eyjrbehkzqbgwf24o
9588
9556
2026-06-23T05:12:26Z
Sauit
2200
9588
wikitext
text/x-wiki
<noinclude><div></noinclude>
<small><i>{{{1|}}}</i></small>
</div>
<noinclude>{{documentation|Template:Poem-on/doc}}
[[Category:Халыыптар:Форматтааһын]]
</noinclude>
jhtm2944ma2oas4a97esu551j7u1h88
Халыып:Poem-on
10
498
9548
2587
2026-06-22T14:49:39Z
Sauit
2200
9548
wikitext
text/x-wiki
<div style="padding: 5em; width: {{{width|27em}}};">
<noinclude>
</div>
{{documentation}}[[Категория:Халыыптар:Форматтааһын]]</noinclude>
2tmwrrzsphzmj49sa380194z3v2tj1c
9552
9548
2026-06-22T14:52:45Z
Sauit
2200
9552
wikitext
text/x-wiki
<div style="padding: 5em; width: {{{width|27em}}};">
<big>{{{1}}}</big>
<br>
<noinclude>
</div>
{{documentation}}[[Категория:Халыыптар:Форматтааһын]]</noinclude>
gfr5pp9lrgisdyy5qc0dso879h3e0bp
9554
9552
2026-06-22T14:54:34Z
Sauit
2200
9554
wikitext
text/x-wiki
<div style="padding: 5em; width: {{{width|27em}}};">
<big><strong>{{{1}}}</strong></big>
<br>
<noinclude>
</div>
{{documentation}}[[Категория:Халыыптар:Форматтааһын]]</noinclude>
r0k4vmr2vdh6kd6v6kzrum36zhye1rf
9587
9554
2026-06-23T05:12:13Z
Sauit
2200
9587
wikitext
text/x-wiki
<div style="padding: 5em; width: {{{width|27em}}};">
<big><strong>{{{1|}}}</strong></big>
<br>
<noinclude>
</div>
{{documentation}}[[Категория:Халыыптар:Форматтааһын]]</noinclude>
6ll9uak1pmvqkw3y1ak10y5d2w71x7b
Бикитиэкэ:Дьаһабыллар
4
571
9538
9488
2026-06-22T14:28:18Z
Sauit
2200
9538
wikitext
text/x-wiki
{{Араас ырытыылар сирэйдэрин үрдэтэ}}
{{Үрдэ/1}}
[[File:Wikisource Administrator.svg|150px|right]]'''{{Кылгас сигэ|БТ:АДМ<br>БТ:Дь}}Бикитиэкэ дьаһабыла (администратора)''' диэн сорох бырааптаах уонна эбии эбээһиннэстэрдээх Бикитиэкэ кыттааччыта. Дьаһабыл бу эбээһиннистэри толоруохтаах:
* Сирэйдэри сотуу.
* Сотуллубут сирэйдэри төнүннэрии.
* Сирэйдэри көмүскээһин.
* MediaWiki аат далларын уларытыы уонна эбии.
* Куһаҕан уонна урусхаллыыр дьайыылары оҥорбут кыттааччылары хааччахтааһын.
Аптамаатынан оҥоһуллар дьаһабыллар уонна кыттаачыллар бырааптарын тиһилигэ: [[Special:ListGroupRights|ListGroupRights]].
Дьаһабыллар сахалыы Бикитиэкэ ис хоһоонун салайарга ханнык даҕаны ордук бырааптара суохтар. Дьаһабыллар атын кыттааччылар санааларын, көрүүлэрин уларыта сатыа суохтаах.
{{Бикитиэкэ:Дьаһабыллар тиһиктэрэ}}
Сахалыы Бикитиэкэ дьаһабылларын [[Бикитиэкэ:Бүрэкирээттэр|бүрэкирээттэр]] эбэтэр [[:meta:Global sysops|глобальнай дьаһабыллар]] аныыллар.
== Дьаһабылга куоластааһын ==
Дьаһабыллары уонна бүрэкирээттэри талар сиэр-туом: [[Бикитиэкэ:Дьаһабыллары уонна бүрэкирээттэри талыы сиэрэ]]
Хандьыдааты ырытыыга туруоруу холобура:
<pre>
==== [[Кыттааччы:Хандьыдаат аата]] ====
Быһаарыы, наада буоллаҕына.
===== Өйөөһүн / Support =====
# Быһаарыы. — ~~~~
===== Утарыы / Oppose =====
# Быһаарыы. — ~~~~
===== Түмүк / Result =====
</pre>
=== Хандьыдааттар ===
{{Архыып}}
<!-- Бу строка аннытынан суруйуҥ -->
==== [[Кыттааччы:Sauit]] ====
Мин дьаһабыл бырааптарбын кэҥэтэргэ өссө биир ырытыы наада. Мин санаабар, мин үчүгэйдик дьаһабыл эбээһиннэстэрин толорбутум --[[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 22:52, 14 Бэс ыйын 2026 (+09)
===== Өйөөһүн / Support =====
# Өйүүбүн. --[[Кыттааччы:Dliavib|Dliavib]] ([[Кыттааччы ырытыыта:Dliavib|ырытыы]]) 19:03, 15 Бэс ыйын 2026 (+09)
# + [[Аналлаах:Суруйуу/~2026-35720-86|~2026-35720-86]] ([[Кыттааччы ырытыыта:~2026-35720-86|ырытыы]]) 10:22, 20 Бэс ыйын 2026 (+09)
# Бу хандьыдааты өйүүбүн. --[[Аналлаах:Суруйуу/~2026-36015-40|~2026-36015-40]] ([[Кыттааччы ырытыыта:~2026-36015-40|ырытыы]]) 21:40, 21 Бэс ыйын 2026 (+09)
===== Утарыы / Oppose =====
===== Түмүк / Result =====
== Дьаһабыллары ууратыы ==
Дьаһабыллары бу төрүөттэринэн ырытыы түмүгүнэн ууратыахха сөп:
* Дьаһабыл сахалыы Бикитиэкэҕэ 1 сыл устата ханнык даҕаны уларытыыны киллэрбэтэх буоллаҕына.
* Дьаһабыл бобуллар дьайыылары (вандаллааһын, кыттааччылары төрүөтэ суох бобуу уо. д. а.) оҥорбут буоллаҕына.
Ырытыыга консенсус таҕыспыт буоллаҕына, ханнык эмит кыттааччы, [[:meta:Steward_requests/Permissions#Removal_of_access|бу сигэнэн киирэн]], суругу хаалларыахтаах.
Хандьыдааты ырытыыга туруоруу холобура:
<pre>
=== [[Кыттааччы:Хандьыдаат аата]] ===
Быһаарыы, тоҕо ууратаары гынаҕытый.
==== Өйөөһүн / Support ====
# Быһаарыы. — ~~~~
==== Утарыы / Oppose ====
# Быһаарыы. — ~~~~
==== Түмүк / Result ====
</pre>
=== Хандьыдааттар ===
== Урукку дьаһабыллар ==
{{#tag:timeline|
ImageSize = width:1000 height:auto barincrement:21
PlotArea = right:20 left:20 top:5 bottom:60
Legend = position:bottom orientation:horizontal
Colors =
id:bg value:rgb(0.9,0.9,1)
id:major value:black
id:minor value:rgb(0.8,0.8,0.8)
id:text value:black
id:header value:rgb(0.6,0.6,0.9)
id:htext value:white
id:current value:rgb(0.5,0.9,0.5) legend:Дьаһабыллааһын_кэмэ
# id:previous value:rgb(0.9,0.8,0.5) legend:ammenistratore_passato
BackgroundColors = canvas:bg
TimeAxis = orientation:horizontal
DateFormat = dd/mm/yyyy
Period = from:19/03/2011 till:{{#time: d/m/Y|+2 months|sah}}
ScaleMajor = gridcolor:major unit:year increment:1 start:01/01/2012
ScaleMinor = gridcolor:minor unit:month increment:1 start:19/03/2011
BarData =
Bar:H
Barset:S
PlotData =
width:15 textcolor:text
bar:H color:header textcolor:htext width:20 shift:(-95,-5) fontsize:m from:19/03/2011 till:end text:"Дьаһабыллар"
barset:S
shift:(5,-5) anchor:from fontsize:m
color:current from:11/04/2011 till:11/10/2011 text:"[[User:Sanda:r|Sanda:r]]"
color:current from:19/03/2011 till:19/04/2011 text:"[[User:Prince Kassad|Prince Kassad]]"
color:current from:17/03/2026 till:end text:"[[User:Sauit|Sauit]]"
}}
* [[Кыттааччы:Sanda:r|Sanda:r]], бырааптара 2011 сыллаахха алтынньы ыйын 11 күнүгэр [[:meta:Steward_requests/Permissions/2011-10#Sanda:r@sahwikisource|уһуллубуттара]].
[[Категория:Бикитиэкэ:Дьаһабыллар]]
1iq6dzhwol6nv9jmshys5ilno9ibu7o
9546
9538
2026-06-22T14:44:47Z
Sauit
2200
9546
wikitext
text/x-wiki
{{Араас ырытыылар сирэйдэрин үрдэтэ}}
{{Үрдэ}}
[[File:Wikisource Administrator.svg|150px|right]]'''{{Кылгас сигэ|БТ:АДМ<br>БТ:Дь}}Бикитиэкэ дьаһабыла (администратора)''' диэн сорох бырааптаах уонна эбии эбээһиннэстэрдээх Бикитиэкэ кыттааччыта. Дьаһабыл бу эбээһиннистэри толоруохтаах:
* Сирэйдэри сотуу.
* Сотуллубут сирэйдэри төнүннэрии.
* Сирэйдэри көмүскээһин.
* MediaWiki аат далларын уларытыы уонна эбии.
* Куһаҕан уонна урусхаллыыр дьайыылары оҥорбут кыттааччылары хааччахтааһын.
Аптамаатынан оҥоһуллар дьаһабыллар уонна кыттаачыллар бырааптарын тиһилигэ: [[Special:ListGroupRights|ListGroupRights]].
Дьаһабыллар сахалыы Бикитиэкэ ис хоһоонун салайарга ханнык даҕаны ордук бырааптара суохтар. Дьаһабыллар атын кыттааччылар санааларын, көрүүлэрин уларыта сатыа суохтаах.
{{Бикитиэкэ:Дьаһабыллар тиһиктэрэ}}
Сахалыы Бикитиэкэ дьаһабылларын [[Бикитиэкэ:Бүрэкирээттэр|бүрэкирээттэр]] эбэтэр [[:meta:Global sysops|глобальнай дьаһабыллар]] аныыллар.
== Дьаһабылга куоластааһын ==
Дьаһабыллары уонна бүрэкирээттэри талар сиэр-туом: [[Бикитиэкэ:Дьаһабыллары уонна бүрэкирээттэри талыы сиэрэ]]
Хандьыдааты ырытыыга туруоруу холобура:
<pre>
==== [[Кыттааччы:Хандьыдаат аата]] ====
Быһаарыы, наада буоллаҕына.
===== Өйөөһүн / Support =====
# Быһаарыы. — ~~~~
===== Утарыы / Oppose =====
# Быһаарыы. — ~~~~
===== Түмүк / Result =====
</pre>
=== Хандьыдааттар ===
{{Архыып}}
<!-- Бу строка аннытынан суруйуҥ -->
==== [[Кыттааччы:Sauit]] ====
Мин дьаһабыл бырааптарбын кэҥэтэргэ өссө биир ырытыы наада. Мин санаабар, мин үчүгэйдик дьаһабыл эбээһиннэстэрин толорбутум --[[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 22:52, 14 Бэс ыйын 2026 (+09)
===== Өйөөһүн / Support =====
# Өйүүбүн. --[[Кыттааччы:Dliavib|Dliavib]] ([[Кыттааччы ырытыыта:Dliavib|ырытыы]]) 19:03, 15 Бэс ыйын 2026 (+09)
# + [[Аналлаах:Суруйуу/~2026-35720-86|~2026-35720-86]] ([[Кыттааччы ырытыыта:~2026-35720-86|ырытыы]]) 10:22, 20 Бэс ыйын 2026 (+09)
# Бу хандьыдааты өйүүбүн. --[[Аналлаах:Суруйуу/~2026-36015-40|~2026-36015-40]] ([[Кыттааччы ырытыыта:~2026-36015-40|ырытыы]]) 21:40, 21 Бэс ыйын 2026 (+09)
===== Утарыы / Oppose =====
===== Түмүк / Result =====
== Дьаһабыллары ууратыы ==
Дьаһабыллары бу төрүөттэринэн ырытыы түмүгүнэн ууратыахха сөп:
* Дьаһабыл сахалыы Бикитиэкэҕэ 1 сыл устата ханнык даҕаны уларытыыны киллэрбэтэх буоллаҕына.
* Дьаһабыл бобуллар дьайыылары (вандаллааһын, кыттааччылары төрүөтэ суох бобуу уо. д. а.) оҥорбут буоллаҕына.
Ырытыыга консенсус таҕыспыт буоллаҕына, ханнык эмит кыттааччы, [[:meta:Steward_requests/Permissions#Removal_of_access|бу сигэнэн киирэн]], суругу хаалларыахтаах.
Хандьыдааты ырытыыга туруоруу холобура:
<pre>
=== [[Кыттааччы:Хандьыдаат аата]] ===
Быһаарыы, тоҕо ууратаары гынаҕытый.
==== Өйөөһүн / Support ====
# Быһаарыы. — ~~~~
==== Утарыы / Oppose ====
# Быһаарыы. — ~~~~
==== Түмүк / Result ====
</pre>
=== Хандьыдааттар ===
== Урукку дьаһабыллар ==
{{#tag:timeline|
ImageSize = width:1000 height:auto barincrement:21
PlotArea = right:20 left:20 top:5 bottom:60
Legend = position:bottom orientation:horizontal
Colors =
id:bg value:rgb(0.9,0.9,1)
id:major value:black
id:minor value:rgb(0.8,0.8,0.8)
id:text value:black
id:header value:rgb(0.6,0.6,0.9)
id:htext value:white
id:current value:rgb(0.5,0.9,0.5) legend:Дьаһабыллааһын_кэмэ
# id:previous value:rgb(0.9,0.8,0.5) legend:ammenistratore_passato
BackgroundColors = canvas:bg
TimeAxis = orientation:horizontal
DateFormat = dd/mm/yyyy
Period = from:19/03/2011 till:{{#time: d/m/Y|+2 months|sah}}
ScaleMajor = gridcolor:major unit:year increment:1 start:01/01/2012
ScaleMinor = gridcolor:minor unit:month increment:1 start:19/03/2011
BarData =
Bar:H
Barset:S
PlotData =
width:15 textcolor:text
bar:H color:header textcolor:htext width:20 shift:(-95,-5) fontsize:m from:19/03/2011 till:end text:"Дьаһабыллар"
barset:S
shift:(5,-5) anchor:from fontsize:m
color:current from:11/04/2011 till:11/10/2011 text:"[[User:Sanda:r|Sanda:r]]"
color:current from:19/03/2011 till:19/04/2011 text:"[[User:Prince Kassad|Prince Kassad]]"
color:current from:17/03/2026 till:end text:"[[User:Sauit|Sauit]]"
}}
* [[Кыттааччы:Sanda:r|Sanda:r]], бырааптара 2011 сыллаахха алтынньы ыйын 11 күнүгэр [[:meta:Steward_requests/Permissions/2011-10#Sanda:r@sahwikisource|уһуллубуттара]].
[[Категория:Бикитиэкэ:Дьаһабыллар]]
f18nkbjvgkik2q4ooy5hgcmj0tp9zvc
9547
9546
2026-06-22T14:45:18Z
Sauit
2200
9547
wikitext
text/x-wiki
{{Араас ырытыылар сирэйдэрин үрдэтэ}}
[[File:Wikisource Administrator.svg|150px|right]]'''{{Кылгас сигэ|БТ:АДМ<br>БТ:Дь}}Бикитиэкэ дьаһабыла (администратора)''' диэн сорох бырааптаах уонна эбии эбээһиннэстэрдээх Бикитиэкэ кыттааччыта. Дьаһабыл бу эбээһиннистэри толоруохтаах:
* Сирэйдэри сотуу.
* Сотуллубут сирэйдэри төнүннэрии.
* Сирэйдэри көмүскээһин.
* MediaWiki аат далларын уларытыы уонна эбии.
* Куһаҕан уонна урусхаллыыр дьайыылары оҥорбут кыттааччылары хааччахтааһын.
Аптамаатынан оҥоһуллар дьаһабыллар уонна кыттаачыллар бырааптарын тиһилигэ: [[Special:ListGroupRights|ListGroupRights]].
Дьаһабыллар сахалыы Бикитиэкэ ис хоһоонун салайарга ханнык даҕаны ордук бырааптара суохтар. Дьаһабыллар атын кыттааччылар санааларын, көрүүлэрин уларыта сатыа суохтаах.
{{Бикитиэкэ:Дьаһабыллар тиһиктэрэ}}
Сахалыы Бикитиэкэ дьаһабылларын [[Бикитиэкэ:Бүрэкирээттэр|бүрэкирээттэр]] эбэтэр [[:meta:Global sysops|глобальнай дьаһабыллар]] аныыллар.
== Дьаһабылга куоластааһын ==
Дьаһабыллары уонна бүрэкирээттэри талар сиэр-туом: [[Бикитиэкэ:Дьаһабыллары уонна бүрэкирээттэри талыы сиэрэ]]
Хандьыдааты ырытыыга туруоруу холобура:
<pre>
==== [[Кыттааччы:Хандьыдаат аата]] ====
Быһаарыы, наада буоллаҕына.
===== Өйөөһүн / Support =====
# Быһаарыы. — ~~~~
===== Утарыы / Oppose =====
# Быһаарыы. — ~~~~
===== Түмүк / Result =====
</pre>
=== Хандьыдааттар ===
{{Архыып}}
<!-- Бу строка аннытынан суруйуҥ -->
==== [[Кыттааччы:Sauit]] ====
Мин дьаһабыл бырааптарбын кэҥэтэргэ өссө биир ырытыы наада. Мин санаабар, мин үчүгэйдик дьаһабыл эбээһиннэстэрин толорбутум --[[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 22:52, 14 Бэс ыйын 2026 (+09)
===== Өйөөһүн / Support =====
# Өйүүбүн. --[[Кыттааччы:Dliavib|Dliavib]] ([[Кыттааччы ырытыыта:Dliavib|ырытыы]]) 19:03, 15 Бэс ыйын 2026 (+09)
# + [[Аналлаах:Суруйуу/~2026-35720-86|~2026-35720-86]] ([[Кыттааччы ырытыыта:~2026-35720-86|ырытыы]]) 10:22, 20 Бэс ыйын 2026 (+09)
# Бу хандьыдааты өйүүбүн. --[[Аналлаах:Суруйуу/~2026-36015-40|~2026-36015-40]] ([[Кыттааччы ырытыыта:~2026-36015-40|ырытыы]]) 21:40, 21 Бэс ыйын 2026 (+09)
===== Утарыы / Oppose =====
===== Түмүк / Result =====
== Дьаһабыллары ууратыы ==
Дьаһабыллары бу төрүөттэринэн ырытыы түмүгүнэн ууратыахха сөп:
* Дьаһабыл сахалыы Бикитиэкэҕэ 1 сыл устата ханнык даҕаны уларытыыны киллэрбэтэх буоллаҕына.
* Дьаһабыл бобуллар дьайыылары (вандаллааһын, кыттааччылары төрүөтэ суох бобуу уо. д. а.) оҥорбут буоллаҕына.
Ырытыыга консенсус таҕыспыт буоллаҕына, ханнык эмит кыттааччы, [[:meta:Steward_requests/Permissions#Removal_of_access|бу сигэнэн киирэн]], суругу хаалларыахтаах.
Хандьыдааты ырытыыга туруоруу холобура:
<pre>
=== [[Кыттааччы:Хандьыдаат аата]] ===
Быһаарыы, тоҕо ууратаары гынаҕытый.
==== Өйөөһүн / Support ====
# Быһаарыы. — ~~~~
==== Утарыы / Oppose ====
# Быһаарыы. — ~~~~
==== Түмүк / Result ====
</pre>
=== Хандьыдааттар ===
== Урукку дьаһабыллар ==
{{#tag:timeline|
ImageSize = width:1000 height:auto barincrement:21
PlotArea = right:20 left:20 top:5 bottom:60
Legend = position:bottom orientation:horizontal
Colors =
id:bg value:rgb(0.9,0.9,1)
id:major value:black
id:minor value:rgb(0.8,0.8,0.8)
id:text value:black
id:header value:rgb(0.6,0.6,0.9)
id:htext value:white
id:current value:rgb(0.5,0.9,0.5) legend:Дьаһабыллааһын_кэмэ
# id:previous value:rgb(0.9,0.8,0.5) legend:ammenistratore_passato
BackgroundColors = canvas:bg
TimeAxis = orientation:horizontal
DateFormat = dd/mm/yyyy
Period = from:19/03/2011 till:{{#time: d/m/Y|+2 months|sah}}
ScaleMajor = gridcolor:major unit:year increment:1 start:01/01/2012
ScaleMinor = gridcolor:minor unit:month increment:1 start:19/03/2011
BarData =
Bar:H
Barset:S
PlotData =
width:15 textcolor:text
bar:H color:header textcolor:htext width:20 shift:(-95,-5) fontsize:m from:19/03/2011 till:end text:"Дьаһабыллар"
barset:S
shift:(5,-5) anchor:from fontsize:m
color:current from:11/04/2011 till:11/10/2011 text:"[[User:Sanda:r|Sanda:r]]"
color:current from:19/03/2011 till:19/04/2011 text:"[[User:Prince Kassad|Prince Kassad]]"
color:current from:17/03/2026 till:end text:"[[User:Sauit|Sauit]]"
}}
* [[Кыттааччы:Sanda:r|Sanda:r]], бырааптара 2011 сыллаахха алтынньы ыйын 11 күнүгэр [[:meta:Steward_requests/Permissions/2011-10#Sanda:r@sahwikisource|уһуллубуттара]].
[[Категория:Бикитиэкэ:Дьаһабыллар]]
tm6fdlpftxifojjyh9s7i8a85l5nikx
Былыттаах түүн (Арбита)
0
1025
9557
4831
2026-06-22T14:58:14Z
Sauit
2200
9557
wikitext
text/x-wiki
{{header
| title = [[Main_Page:Sakha|Сүрүн сирэй]]
| section = (Хоһооннор)
| previous = ←[[Ардах иннинэ (Арбита)|Ардах иннинэ]]
| next = →[[Күһүн (Арбита)| Күһүн]]
| notes =
}}
{{poem-on|Былыттаах түүн}}
<poem>
Сааскы сипит айылҕам
Саста былыт анныгар,
Сырдык уоттаах чаҕылҕан
Сытыы кыыма таммалыыр.
Этиҥ этэр түүнүгэр
Биирдэ бэһиэ буоллубут,
Сэмэннээххэ түмүллэн
Сэһэн бэрдин буллубут.
Тохтообокко тобуллар
Бэһиэлэйдээх бэсиэдэ,
Мэник соҕус да буоллар,
Хайтах курдук бэрт этэй!
Көрбүт-нарбыт дьэ бэргээн
Күүрдэр күүрэн испитэ –
Уордаах этиҥ, дьиибэргээн,
Күлэн төлө биэрбитэ.
Түннүгүнэн киирээри
Чөмөхтөспүт былыттан,
Толоон-сыһыы килэйэр
Дохсун самыыр куппута.
</poem>
{{poem-off|8.10.1936}}
[[Категория:Иван Арбита]]
[[Категория:Арбита хоһоонноро]]
[[Категория:Саха хоһооно]]
[[Категория:1936 сыл айымньылара]]
mwwx3020r52dwna4kx6jwv53cq3p3dn
Бикитиэкэ:Роботтар
4
2097
9575
9453
2026-06-22T15:28:43Z
Sauit
2200
/* Хандьыдааттар */
9575
wikitext
text/x-wiki
<small>
* '''sah:''' [[m:bot|Робот]] былааҕы ылаары көрдөбүллэр бу сирэйгэ суруллуохтаахтар. Сахалыы Бикитиэкэ [[m:bot policy|стандаартнай роботтар туһунан бэлиитикэни]] тутуһар.
* '''en:''' Requests for the [[m:bot|bot]] flag should be made on this page. This wiki uses the [[m:bot policy|standard bot policy]], and allows [[m:bot policy#Global_bots|global bots]] and [[m:bot policy#Automatic_approval|automatic approval of certain types of bots]]. Other bots should apply below, and then [[m:Steward requests/Bot status|request access]] from a steward if there is no objection.
</small>
{{Араас ырытыылар сирэйдэрин үрдэтэ}}
[[Ойуу:Wikisource Bots.svg|150px|уҥа]]{{Кылгас сигэ|БТ:БОТ<br>БТ:Р}}'''Бикитиэкэ робота (бота)''' диэн аптамаатынан эбэтэр полуаптамаатынан уларытыыны киллэрэр Бикитиэкэ кыттааччыта. Кини ураты бэлиэлэрэ — бот былааҕын сүгэр, уларытыылара кэнники уларытыылар тиһиктэригэр көстүбэт.
Сахалыы Бикитиэкэ роботтарын [[Бикитиэкэ:Бүрэкирээттэр|бүрэкирээттэр]] эбэтэр [[:meta:Global sysops|глобальнай дьаһабыллар]] аныыллар.
== Билиҥҥи роботтар ==
* [[User:AvocatoBot|AvocatoBot]]
* [[User:Flow talk page manager|Flow talk page manager]]
* [[User:Maintenance script|Maintenance script]]
* [[User:MediaWiki message delivery|MediaWiki message delivery]]
* [[User:Bot 3-f|Bot 3-f]]
== Роботтары талааһын / Requests for bot flag ==
<pre>
==== [[Кыттааччы:<робот аата / bot's username>]] ====
Роботы тутааччы / Botmaster: [[Кыттааччы:<эн сүрүн аккаунун, атын биики киэнэ да буолуон син / your main account, could be on another wiki>]]
* '''Програмаламмыт тыла (тыллара) / Programming Language(s)''':
* '''Сорук / Purpose''':
* '''Суруйуута (кылаата) / Contributions''': [[Special:Contributions/<your bot's username>|see here]]
* '''Номнуо бу биикилэргэ робот былаахтаах / Already has bot flag on''':
===== Өйөөһүн / Support =====
# Быһаарыы. — ~~~~
===== Утарыы / Oppose =====
# Быһаарыы. — ~~~~
===== Түмүк / Result =====
</pre>
=== Хандьыдааттар ===
{{Түмүктэммит ырытыы}}
==== [[Кыттааччы:Bot 3-f]] ====
Роботы тутааччы / Botmaster: [[Кыттааччы:Karacehennem]]
* '''Програмаламмыт тыла (тыллара) / Programming Language(s)''': pywikipedia
* '''Сорук / Purpose''': sending [[:Халыып:Hello]] to talk pages of new users
* '''Суруйуута (кылаата) / Contributions''': [[Special:Contributions/Bot 3-f|see here]]
* '''Номнуо бу биикилэргэ робот былаахтаах / Already has bot flag on''': kaawikipedia
===== Өйөөһүн / Support =====
# Өйүүбүн [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 16:10, 8 Сэтинньи 2025 (+09)
# Өйүүбүн. [[Кыттааччы:Dliavib|Dliavib]] ([[Кыттааччы ырытыыта:Dliavib|ырытыы]]) 08:38, 9 Сэтинньи 2025 (+09)
===== Утарыы / Oppose =====
===== Түмүк / Result =====
[[:m:Steward requests/Bot status/2025-12#Bot 3-f@sahwikisource|Роботынан талынынна]]. [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 23:31, 10 Ахсынньы 2025 (+09)
{{Түмүктэммит ырытыы бүтүүтэ}}
==== [[Кыттааччы:SauitBot]] ====
Роботы тутааччы / Botmaster: [[Кыттааччы:Sauit]]
* '''Програмаламмыт тыла (тыллара) / Programming Language(s)''': Python
* '''Сорук / Purpose''': Бу робот араас стилистическэй уларытыылары оҥоруоҕа, холобура, →← диэн бэлиэлэри хос туттууларын сотор
* '''Суруйуута (кылаата) / Contributions''': [[Special:Contributions/SauitBot|see here]]
* '''Номнуо бу биикилэргэ робот былаахтаах / Already has bot flag on''': Ханна даҕаны былааҕа суох
===== Өйөөһүн / Support =====
# Ботмастер курдук — [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 00:28, 23 Бэс ыйын 2026 (+09)
===== Утарыы / Oppose =====
===== Түмүк / Result =====
== Роботтары ууратыы / Request to remove bot flag ==
<pre>
=== [[Кыттааччы:<робот аата / bot's username>]] ===
Быһаарыы, тоҕо ууратаары гынаҕытый / Explanation.
==== Өйөөһүн / Support ====
# Быһаарыы. — ~~~~
==== Утарыы / Oppose ====
# Быһаарыы. — ~~~~
==== Түмүк / Result ====
</pre>
=== Хандьыдааттар ===
=== [[Кыттааччы:AvocatoBot]] ===
2011 сылтан биир даҕаны уларытыыны киллэрбэтэх. Маннык робот Бикитиэкэҕэ наадата суох диэн саныыбын. [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 09:57, 9 Кулун тутар 2026 (+09)
==== Өйөөһүн / Support ====
==== Утарыы / Oppose ====
==== Түмүк / Result ====
[[Категория:Бикитиэкэ:Роботтар]]
a86vwpf38iuljxwrkt9f1oh8zd97gcr
9576
9575
2026-06-23T04:22:54Z
Sauit
2200
9576
wikitext
text/x-wiki
{{Div col|2|small}}
* '''sah:''' [[m:bot|Робот]] былааҕы ылаары көрдөбүллэр бу сирэйгэ суруллуохтаахтар. Сахалыы Бикитиэкэ [[m:bot policy|стандаартнай роботтар туһунан бэлиитикэни]] тутуһар.
* '''en:''' Requests for the [[m:bot|bot]] flag should be made on this page. This wiki uses the [[m:bot policy|standard bot policy]], and allows [[m:bot policy#Global_bots|global bots]] and [[m:bot policy#Automatic_approval|automatic approval of certain types of bots]]. Other bots should apply below, and then [[m:Steward requests/Bot status|request access]] from a steward if there is no objection.
{{Div col end}}
{{Араас ырытыылар сирэйдэрин үрдэтэ}}
[[Ойуу:Wikisource Bots.svg|150px|уҥа]]{{Кылгас сигэ|БТ:БОТ<br>БТ:Р}}'''Бикитиэкэ робота (бота)''' диэн аптамаатынан эбэтэр полуаптамаатынан уларытыыны киллэрэр Бикитиэкэ кыттааччыта. Кини ураты бэлиэлэрэ — бот былааҕын сүгэр, уларытыылара кэнники уларытыылар тиһиктэригэр көстүбэт.
Сахалыы Бикитиэкэ роботтарын [[Бикитиэкэ:Бүрэкирээттэр|бүрэкирээттэр]] эбэтэр [[:meta:Global sysops|глобальнай дьаһабыллар]] аныыллар.
== Билиҥҥи роботтар ==
* [[User:AvocatoBot|AvocatoBot]]
* [[User:Flow talk page manager|Flow talk page manager]]
* [[User:Maintenance script|Maintenance script]]
* [[User:MediaWiki message delivery|MediaWiki message delivery]]
* [[User:Bot 3-f|Bot 3-f]]
== Роботтары талааһын / Requests for bot flag ==
<pre>
==== [[Кыттааччы:<робот аата / bot's username>]] ====
Роботы тутааччы / Botmaster: [[Кыттааччы:<эн сүрүн аккаунун, атын биики киэнэ да буолуон син / your main account, could be on another wiki>]]
* '''Програмаламмыт тыла (тыллара) / Programming Language(s)''':
* '''Сорук / Purpose''':
* '''Суруйуута (кылаата) / Contributions''': [[Special:Contributions/<your bot's username>|see here]]
* '''Номнуо бу биикилэргэ робот былаахтаах / Already has bot flag on''':
===== Өйөөһүн / Support =====
# Быһаарыы. — ~~~~
===== Утарыы / Oppose =====
# Быһаарыы. — ~~~~
===== Түмүк / Result =====
</pre>
=== Хандьыдааттар ===
{{Түмүктэммит ырытыы}}
==== [[Кыттааччы:Bot 3-f]] ====
Роботы тутааччы / Botmaster: [[Кыттааччы:Karacehennem]]
* '''Програмаламмыт тыла (тыллара) / Programming Language(s)''': pywikipedia
* '''Сорук / Purpose''': sending [[:Халыып:Hello]] to talk pages of new users
* '''Суруйуута (кылаата) / Contributions''': [[Special:Contributions/Bot 3-f|see here]]
* '''Номнуо бу биикилэргэ робот былаахтаах / Already has bot flag on''': kaawikipedia
===== Өйөөһүн / Support =====
# Өйүүбүн [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 16:10, 8 Сэтинньи 2025 (+09)
# Өйүүбүн. [[Кыттааччы:Dliavib|Dliavib]] ([[Кыттааччы ырытыыта:Dliavib|ырытыы]]) 08:38, 9 Сэтинньи 2025 (+09)
===== Утарыы / Oppose =====
===== Түмүк / Result =====
[[:m:Steward requests/Bot status/2025-12#Bot 3-f@sahwikisource|Роботынан талынынна]]. [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 23:31, 10 Ахсынньы 2025 (+09)
{{Түмүктэммит ырытыы бүтүүтэ}}
==== [[Кыттааччы:SauitBot]] ====
Роботы тутааччы / Botmaster: [[Кыттааччы:Sauit]]
* '''Програмаламмыт тыла (тыллара) / Programming Language(s)''': Python
* '''Сорук / Purpose''': Бу робот араас стилистическэй уларытыылары оҥоруоҕа, холобура, →← диэн бэлиэлэри хос туттууларын сотор
* '''Суруйуута (кылаата) / Contributions''': [[Special:Contributions/SauitBot|see here]]
* '''Номнуо бу биикилэргэ робот былаахтаах / Already has bot flag on''': Ханна даҕаны былааҕа суох
===== Өйөөһүн / Support =====
# Ботмастер курдук — [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 00:28, 23 Бэс ыйын 2026 (+09)
===== Утарыы / Oppose =====
===== Түмүк / Result =====
== Роботтары ууратыы / Request to remove bot flag ==
<pre>
=== [[Кыттааччы:<робот аата / bot's username>]] ===
Быһаарыы, тоҕо ууратаары гынаҕытый / Explanation.
==== Өйөөһүн / Support ====
# Быһаарыы. — ~~~~
==== Утарыы / Oppose ====
# Быһаарыы. — ~~~~
==== Түмүк / Result ====
</pre>
=== Хандьыдааттар ===
=== [[Кыттааччы:AvocatoBot]] ===
2011 сылтан биир даҕаны уларытыыны киллэрбэтэх. Маннык робот Бикитиэкэҕэ наадата суох диэн саныыбын. [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 09:57, 9 Кулун тутар 2026 (+09)
==== Өйөөһүн / Support ====
==== Утарыы / Oppose ====
==== Түмүк / Result ====
[[Категория:Бикитиэкэ:Роботтар]]
05sd3id2w678wjkusiolrev0l2hkwwx
9577
9576
2026-06-23T04:23:52Z
Sauit
2200
9577
wikitext
text/x-wiki
{{Div col|2|small=yes}}
* '''sah:''' [[m:bot|Робот]] былааҕы ылаары көрдөбүллэр бу сирэйгэ суруллуохтаахтар. Сахалыы Бикитиэкэ [[m:bot policy|стандаартнай роботтар туһунан бэлиитикэни]] тутуһар.
* '''en:''' Requests for the [[m:bot|bot]] flag should be made on this page. This wiki uses the [[m:bot policy|standard bot policy]], and allows [[m:bot policy#Global_bots|global bots]] and [[m:bot policy#Automatic_approval|automatic approval of certain types of bots]]. Other bots should apply below, and then [[m:Steward requests/Bot status|request access]] from a steward if there is no objection.
{{Div col end}}
{{Араас ырытыылар сирэйдэрин үрдэтэ}}
[[Ойуу:Wikisource Bots.svg|150px|уҥа]]{{Кылгас сигэ|БТ:БОТ<br>БТ:Р}}'''Бикитиэкэ робота (бота)''' диэн аптамаатынан эбэтэр полуаптамаатынан уларытыыны киллэрэр Бикитиэкэ кыттааччыта. Кини ураты бэлиэлэрэ — бот былааҕын сүгэр, уларытыылара кэнники уларытыылар тиһиктэригэр көстүбэт.
Сахалыы Бикитиэкэ роботтарын [[Бикитиэкэ:Бүрэкирээттэр|бүрэкирээттэр]] эбэтэр [[:meta:Global sysops|глобальнай дьаһабыллар]] аныыллар.
== Билиҥҥи роботтар ==
* [[User:AvocatoBot|AvocatoBot]]
* [[User:Flow talk page manager|Flow talk page manager]]
* [[User:Maintenance script|Maintenance script]]
* [[User:MediaWiki message delivery|MediaWiki message delivery]]
* [[User:Bot 3-f|Bot 3-f]]
== Роботтары талааһын / Requests for bot flag ==
<pre>
==== [[Кыттааччы:<робот аата / bot's username>]] ====
Роботы тутааччы / Botmaster: [[Кыттааччы:<эн сүрүн аккаунун, атын биики киэнэ да буолуон син / your main account, could be on another wiki>]]
* '''Програмаламмыт тыла (тыллара) / Programming Language(s)''':
* '''Сорук / Purpose''':
* '''Суруйуута (кылаата) / Contributions''': [[Special:Contributions/<your bot's username>|see here]]
* '''Номнуо бу биикилэргэ робот былаахтаах / Already has bot flag on''':
===== Өйөөһүн / Support =====
# Быһаарыы. — ~~~~
===== Утарыы / Oppose =====
# Быһаарыы. — ~~~~
===== Түмүк / Result =====
</pre>
=== Хандьыдааттар ===
{{Түмүктэммит ырытыы}}
==== [[Кыттааччы:Bot 3-f]] ====
Роботы тутааччы / Botmaster: [[Кыттааччы:Karacehennem]]
* '''Програмаламмыт тыла (тыллара) / Programming Language(s)''': pywikipedia
* '''Сорук / Purpose''': sending [[:Халыып:Hello]] to talk pages of new users
* '''Суруйуута (кылаата) / Contributions''': [[Special:Contributions/Bot 3-f|see here]]
* '''Номнуо бу биикилэргэ робот былаахтаах / Already has bot flag on''': kaawikipedia
===== Өйөөһүн / Support =====
# Өйүүбүн [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 16:10, 8 Сэтинньи 2025 (+09)
# Өйүүбүн. [[Кыттааччы:Dliavib|Dliavib]] ([[Кыттааччы ырытыыта:Dliavib|ырытыы]]) 08:38, 9 Сэтинньи 2025 (+09)
===== Утарыы / Oppose =====
===== Түмүк / Result =====
[[:m:Steward requests/Bot status/2025-12#Bot 3-f@sahwikisource|Роботынан талынынна]]. [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 23:31, 10 Ахсынньы 2025 (+09)
{{Түмүктэммит ырытыы бүтүүтэ}}
==== [[Кыттааччы:SauitBot]] ====
Роботы тутааччы / Botmaster: [[Кыттааччы:Sauit]]
* '''Програмаламмыт тыла (тыллара) / Programming Language(s)''': Python
* '''Сорук / Purpose''': Бу робот араас стилистическэй уларытыылары оҥоруоҕа, холобура, →← диэн бэлиэлэри хос туттууларын сотор
* '''Суруйуута (кылаата) / Contributions''': [[Special:Contributions/SauitBot|see here]]
* '''Номнуо бу биикилэргэ робот былаахтаах / Already has bot flag on''': Ханна даҕаны былааҕа суох
===== Өйөөһүн / Support =====
# Ботмастер курдук — [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 00:28, 23 Бэс ыйын 2026 (+09)
===== Утарыы / Oppose =====
===== Түмүк / Result =====
== Роботтары ууратыы / Request to remove bot flag ==
<pre>
=== [[Кыттааччы:<робот аата / bot's username>]] ===
Быһаарыы, тоҕо ууратаары гынаҕытый / Explanation.
==== Өйөөһүн / Support ====
# Быһаарыы. — ~~~~
==== Утарыы / Oppose ====
# Быһаарыы. — ~~~~
==== Түмүк / Result ====
</pre>
=== Хандьыдааттар ===
=== [[Кыттааччы:AvocatoBot]] ===
2011 сылтан биир даҕаны уларытыыны киллэрбэтэх. Маннык робот Бикитиэкэҕэ наадата суох диэн саныыбын. [[Кыттааччы:Sauit|Sauit]] ([[Кыттааччы ырытыыта:Sauit|ырытыы]]) 09:57, 9 Кулун тутар 2026 (+09)
==== Өйөөһүн / Support ====
==== Утарыы / Oppose ====
==== Түмүк / Result ====
[[Категория:Бикитиэкэ:Роботтар]]
cbo7cv9a5ajw46mmu61885fhnwd7ouy
Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)
0
2409
9492
9484
2026-06-22T13:27:29Z
Sauit
2200
/* Кыргыс үйэтэ */
9492
wikitext
text/x-wiki
{{header|title=Саха төрүттэрэ уонна кыргыс үйэтэ|author=Сэһэн Боло|section=Үһүйээннэр хомуурунньуктара|previous=|next=|notes=}}
== Иһинээҕитэ ==
=== Саха төрүттэрэ ===
{{Div col|2}}
* [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Илин-Хаҥалас барыйаана)|Омоҕой Баай, Эллэй Боотур (Илин-Хаҥалас барыйаана)]]
* [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)]]
* [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Таатта оройуонун барыйаана)|Омоҕой Баай, Эллэй Боотур (Таатта оройуонун барыйаана)]]
* [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун II барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун II барыйаана)]]
* [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун III барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун II барыйаана)]]
* [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Уус-Алдан оройуонун барыйаана)|Омоҕой Баай, Эллэй Боотур (Уус-Алдан оройуонун барыйаана)]]
* [[СТУоКҮ/Омоҕой Баай, Эр Соҕотох Эллэй Боотур (Уус-Алдан оройуонун II барыйаана)|Омоҕой Баай, Эр Соҕотох Эллэй Боотур (Уус-Алдан оройуонун II барыйаана)]]
* [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Уус-Алдан оройуонун III барыйаана)|Омоҕой Баай, Эллэй Боотур (Уус-Алдан оройуонун III барыйаана)]]
* [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун IV барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун IV барыйаана)]]
* [[СТУоКҮ/Саха төрдө|Саха төрдө]]
* [[СТУоКҮ/Улуу Хоро (I барыйаан)|Улуу Хоро (I барыйаан)]]
* [[СТУоКҮ/Улуу Хоро (II барыйаан)|Улуу Хоро (II барыйаан)]]
* [[СТУоКҮ/Кыргыс омук|Кыргыс омук]]
* [[СТУоКҮ/Сахалар|Сахалар]]
* [[СТУоКҮ/Хара Саҕыл омуктар|Хара Саҕыл омуктар]]
* [[СТУоКҮ/Улуу Хоро, хоролор, туматтар|Улуу Хоро, хоролор, туматтар]]
* [[СТУоКҮ/Оноҕой, Татаар Тайма, Эллэй, Тыгын|Оноҕой, Татаар Тайма, Эллэй, Тыгын]]
{{Div col end}}
=== Кыргыс үйэтэ ===
{{Div col|2}}
* [[СТУоКҮ/Бэт Хара, Дыгын Боотур (Чурапчы оройуонун барыйаана)|Бэт Хара, Дыгын Боотур (Чурапчы оройуонун барыйаана)]]
* [[СТУоКҮ/Дыгын Тойон уола Бүдьү Босхон|Дыгын Тойон уола Бүдьү Босхон]]
* [[СТУоКҮ/Тыгын Тойон|Тыгын Тойон]]
* [[СТУоКҮ/Ураанай Боотур, Дыгын Тойон|Ураанай Боотур, Дыгын Тойон]]
* [[СТУоКҮ/Дыгын Баай|Дыгын Баай]]
* [[СТУоКҮ/Сынаҕы баай, Үүт баай, Дыгын баай, Бэт Хара, Эдьээт тоҥустара|Сынаҕы баай, Үүт баай, Дыгын баай, Бэт Хара, Эдьээт тоҥустара]]
* [[СТУоКҮ/Дыгын Тойон сэриитэ Таатталары кытта сэриилэспитэ|Дыгын Тойон сэриитэ Таатталары кытта сэриилэспитэ]]
* [[СТУоКҮ/Дыгын уола Таас Уллуҥах|Дыгын уола Таас Уллуҥах]]
* [[СТУоКҮ/Дыгын Тойон сэриитэ|Дыгын Тойон сэриитэ]]
* [[СТУоКҮ/Дыгын Тойон|Дыгын Тойон]]
* [[СТУоКҮ/Батас Мөндүкээн уонна Дыгын Тойон|Батас Мөндүкээн уонна Дыгын Тойон]]
* [[СТУоКҮ/Дыгын Тойон, Көччөх Төрөлөй, Батас Мөндүкээн|Дыгын Тойон, Көччөх Төрөлөй, Батас Мөндүкээн]]
* [[СТУоКҮ/Тиһикээн Бөҕө, Бэт Хара, Дыгын Боотур|Тиһикээн Бөҕө, Бэт Хара, Дыгын Боотур]]
* [[СТУоКҮ/Күүстээх саалаах Күһэҥэй Баатыр, Таҥас Болтоҥо, Тыгын Тойон|Күүстээх саалаах Күһэҥэй Баатыр, Таҥас Болтоҥо, Тыгын Тойон]]
* [[СТУоКҮ/Көмөкөннөр уонна Тыгын Тойон|Көмөкөннөр уонна Тыгын Тойон]]
* [[СТУоКҮ/Чорбоҕор Баатыр, Тыгын Тойон|Чорбоҕор Баатыр, Тыгын Тойон]]
* [[СТУоКҮ/Бэрт Хара, Тыгын Тойон, Хоро оҕонньоро, Мөчөкө Бөҕө|Бэрт Хара, Тыгын Тойон, Хоро оҕонньоро, Мөчөкө Бөҕө]]
* [[СТУоКҮ/Сыарҕа Наранах, Тыгын Тойон|Сыарҕа Наранах, Тыгын Тойон]]
* [[СТУоКҮ/Бэрт Хара, Дыгын Баай|Бэрт Хара, Дыгын Баай]]
* [[СТУоКҮ/Сыҥаах-Абыйыкаан Тарбыах Тиис|Сыҥаах-Абыйыкаан Тарбыах Тиис]]
* [[СТУоКҮ/Бэрт Хара|Бэрт Хара]]
* [[СТУоКҮ/Тарбыах Тиис, Тыгын Тойон|Тарбыах Тиис, Тыгын Тойон]]
* [[СТУоКҮ/Тарбыах Тиис, Тыгын Тойон (II барыйаан)|Тарбыах Тиис, Тыгын Тойон (II барыйаан)]]
* [[СТУоКҮ/Бэрт Хара, Тарбыах тиис, Тыгын Тойон|Бэрт Хара, Тарбыах тиис, Тыгын Тойон]]
* [[СТУоКҮ/Тыгын Баай, Көлүйэ Баай, Туока Баатыр|Тыгын Баай, Көлүйэ Баай, Туока Баатыр]]
* [[СТУоКҮ/Таас Уллуҥах|Таас Уллуҥах]]
* [[СТУоКҮ/Бэрт Хара, Тыгын Тойон|Бэрт Хара, Тыгын Тойон]]
* [[СТУоКҮ/Тыгын Тойон тоҥустары кытта кыргыһыыта|Тыгын Тойон тоҥустары кытта кыргыһыыта]]
* [[СТУоКҮ/Дыгын Тойон (Чурапчы, Бинокуурап барыйаана)|Дыгын Тойон (Чурапчы, Бинокуурап барыйаана)]]
* [[СТУоКҮ/Бадьаайы, Дыгын Тойон|Бадьаайы, Дыгын Тойон]]
* [[СТУоКҮ/Муоҕан Эмээхсин, Көдөгөй Оҕонньор уонна Тыгын Тойон|Муоҕан Эмээхсин, Көдөгөй Оҕонньор уонна Тыгын Тойон]]
* [[СТУоКҮ/Ходоро ууһа, Дыгын Тойон|Ходоро ууһа, Дыгын Тойон]]
* [[СТУоКҮ/Куһаҕан Эмээхсин, Тыгын|Куһаҕан Эмээхсин, Тыгын]]
* [[СТУоКҮ/Бэрт Хара, Дьааҥы бухатыыра|Бэрт Хара, Дьааҥы бухатыыра]]
* [[СТУоКҮ/Дыгын хамначчыттара|Дыгын хамначчыттара]]
* [[СТУоКҮ/Батас Мөндүкээн, Дыгын Боотур|Батас Мөндүкээн, Дыгын Боотур]]
* [[СТУоКҮ/Дыгын уонна Аас Тоҥус|Дыгын уонна Аас Тоҥус]]
* [[СТУоКҮ/Дыгын, Бэрт Хара, Бөкөл|Дыгын, Бэрт Хара, Бөкөл]]
* [[СТУоКҮ/Кэнньэлэр, Наахаралар уонна Дыгын|Кэнньэлэр, Наахаралар уонна Дыгын]]
* [[СТУоКҮ/Кэнньэ Тиэтэйбит Боотур|Кэнньэ Тиэтэйбит Боотур]]
* [[СТУоКҮ/Бөрө саҕа соргулаах Бөрө Бөтүҥнэр|Бөрө саҕа соргулаах Бөрө Бөтүҥнэр]]
* [[СТУоКҮ/Бөрө саҕа соргулаах Бөрө Бөтүҥнэр (II барыйаан)|Бөрө саҕа соргулаах Бөрө Бөтүҥнэр (II барыйаан)]]
* [[СТУоКҮ/Бөрө Бөтүҥнэр|Бөрө Бөтүҥнэр]]
* [[СТУоКҮ/Омоллоон|Омоллоон]]
* [[СТУоКҮ/Бөтүҥнэр|Бөтүҥнэр]]
* [[СТУоКҮ/Омоллоон (II барыйаан)|Омоллоон (II барыйаан)]]
* [[СТУоКҮ/Сомоссууннар|Сомоссууннар]]
* [[СТУоКҮ/Омоллоон сэриитэ|Омоллоон сэриитэ]]
* [[СТУоКҮ/Омоллоон (III барыйаан)|Омоллоон (III барыйаан)]]
* [[СТУоКҮ/Омоллоон (IV барыйаан)|Омоллоон (IV барыйаан)]]
* [[СТУоКҮ/Модьуҕу Оҕонньор, Омоллоон Бөҕө|Модьуҕу Оҕонньор, Омоллоон Бөҕө]]
{{Div col end}}
{{PD-Russia-expired}}
{{PD-RU-folklore}}
[[Категория:Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)]][[Категория:Үһүйээннэр уонна фольклор]][[Категория:Хомуурунньуктар]]
bdq1rvb2mo77qnqu8wwl21neq6jcjt9
Кыттааччы ырытыыта:Lubitel aviacii
3
2442
9491
2026-06-22T12:04:11Z
Bot 3-f
2274
Добро пожаловать!
9491
wikitext
text/x-wiki
{{Hello|--[[Кыттааччы:Bot 3-f|Bot 3-f]] ([[Кыттааччы ырытыыта:Bot 3-f|ырытыы]]) 21:04, 22 Бэс ыйын 2026 (+09)}}
lhls4dvr2m2wnjtvoso35oo3bdii2su
Модуль:Header
828
2443
9493
2026-06-22T13:34:37Z
Sauit
2200
"--[=[ This is a module to implement logic for [[Template:Header]] and [[Template:Translation header]] TODO: - centuries are defined as starting on XX01, but WS categorizes them as starting on XX00 -- check whether that's a considered policy choice ]=] require('strict') local p = {} --p stands for package local yesno = require('Module:Yesno') local getArgs = require('Module:Arguments').getArgs local TableTools = require('Module:TableTools') loca..." саҥа сирэй оҥоһулунна
9493
Scribunto
text/plain
--[=[
This is a module to implement logic for [[Template:Header]] and [[Template:Translation header]]
TODO:
- centuries are defined as starting on XX01, but WS categorizes them as starting on XX00
-- check whether that's a considered policy choice
]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local getArgs = require('Module:Arguments').getArgs
local TableTools = require('Module:TableTools')
local parent_links = require('Module:Auto parents')._parent_links
local construct_header = require('Module:Header structure').construct_header
local headerAttribution = require('Module:Header/attribution')
local headerLang = require('Module:Header/lang')
local construct_defaultsort = require('Module:Header/sort')._construct_defaultsort
local construct_year = require('Module:Header/year').construct_year
local current_title = mw.title.getCurrentTitle()
--[=[
Wrap stylesheet in noexport div
]=]
local function get_noexport_stylesheet(template)
return tostring(mw.html.create('div'):addClass('ws-noexport'):wikitext(mw.getCurrentFrame():extensionTag('templatestyles', '', {src = template .. '/styles.css'})))
end
--[=[
Get badge if any
]=]
local function badge()
return require('Module:Edition').badge({args = {category = '1', indicator = '1'}})
end
--[=[
Detect explicit formatting in fields like 'section' and 'title'
]=]
local function explicit_formatting(str)
return str and (string.match(str, "\'\'\'?") or string.match(str, '<%s*/?%s*[iIbB]%s*>'))
-- add more cases here or come up with a less silly way to do things
end
local function check_non_existent_author_pages(args, categories, checkArgs)
-- check for cases that aren't supposed to produce a valid link
local param = checkArgs.param
local tracking_cat = checkArgs.tracking_cat or 'Works with non-existent author pages'
if not param or not args[param] or yesno(args[param .. '-nolink']) then
return
end
local lower_arg = string.lower(args[param])
local attr_data = headerAttribution.attr_data[param] or headerAttribution.attr_data[string.gsub(param, 'section%-', '')]
if attr_data and attr_data['special_cases'] and attr_data['special_cases'][lower_arg] then
return
end
-- check if page exists
local target = mw.title.makeTitle('Author', args[param])
-- expensive function!
if not target or not target.exists then
table.insert(categories, tracking_cat)
end
return
end
local function construct_categories(args, argsWithBlanks)
local categories = {}
-- categorize subpages
local title = current_title
local parent_exists = false
while title.isSubpage and not parent_exists do
title = mw.title.new(title.baseText, title.nsText)
parent_exists = title.exists
end
if parent_exists and title:inNamespaces(0) then
table.insert(categories, 'Subpages')
elseif parent_exists then
table.insert(categories, title.nsText .. ' subpages')
end
-- add categories from the categories parameter
local manual_categories = (args.categories and mw.text.split(args.categories, '%s*/%s*', false)) or {}
local using_cat = false
for i, category in ipairs(manual_categories) do
local cat = mw.text.trim(category)
if cat ~= '' then
table.insert(categories, cat)
using_cat = true
end
end
if using_cat then
table.insert(categories, 'Works using categories parameter')
end
local known_override_types = {
['default'] = 'contributor type',
['author'] = 'author',
['translator'] = 'translator',
['section-author'] = 'contributor'
}
for k, v in pairs(argsWithBlanks) do
-- Check for numerical parameters (which shouldn't be used)
if type(k) == 'number' then
table.insert(categories, 'Headers with numerical arguments')
-- Check for 'override-' parameters
elseif string.match(k, '^override%-') then
local contrib_type = string.gsub(k, '^override%-', '')
contrib_type = string.gsub(contrib_type, '%d*$', '')
table.insert(categories, 'Pages with override ' .. (known_override_types[contrib_type] or known_override_types['default']))
end
end
-- check contributor parameters
if args['section-author'] then
table.insert(categories, 'Pages with contributor')
end
local editor = args['override-editor'] or args['editor']
if editor and not args['nocat'] then
editor = string.lower(editor)
if editor == 'unknown' or editor == '?' then
table.insert(categories, 'Works with unknown editors')
elseif editor == 'not mentioned' then
table.insert(categories, 'Works with unmentioned editors')
end
end
local translator = args['override-translator'] or args['translator']
if translator and not args['nocat'] then
translator = string.lower(translator)
table.insert(categories, 'Pages with translator')
if translator == 'unknown' or translator == 'not mentioned' or translator == '?' then
table.insert(categories, 'Translations without translator information specified')
end
end
local author = args['override-author'] or args['author']
if author and (string.lower(author) == 'unknown') and not args['nocat'] then
if args.template_name == 'Translation header' then
table.insert(categories, 'Translations of anonymous works')
else
table.insert(categories, 'Anonymous texts')
end
end
-- check for non-existent contributor pages
if current_title:inNamespaces(0, 114) or args.testing then
local params_to_check = {
{param = 'author'},
{param = 'editor'},
{param = 'translator'},
{param = 'composer', tracking_cat = 'Works with non-existent composer pages'},
{param = 'illustrator', tracking_cat = 'Works with non-existent illustrator pages'}
}
for k, v in pairs(params_to_check) do
check_non_existent_author_pages(args, categories, v)
check_non_existent_author_pages(args, categories, {param = 'section-' .. v.param, tracking_cat = v.tracking_cat})
end
end
if args['shortcut'] then
if current_title:inNamespaces(0) then
table.insert(categories, 'Mainspace pages with shortcuts')
elseif current_title:inNamespaces(114) then
table.insert(categories, 'Translation namespace pages with shortcuts')
end
end
if args['noyear'] then
table.insert(categories, 'Pages with noyear')
end
if args['noyearcat'] then
table.insert(categories, 'Pages with noyearcat')
end
if args['nolanguagecat'] then
table.insert(categories, 'Pages with nolanguagecat')
end
if args['cover'] then
table.insert(categories, 'Pages with an export cover')
end
-- sanity/maintenance checks on various parameters
-- allow-explicit-formatting parameter suppresses this check
-- used by, for example, [[Template:Versions]]
if not args['allow-explicit-formatting'] and (explicit_formatting(args['title']) or explicit_formatting(args['section'])) then
table.insert(categories, 'Pages with explicit formatting in header fields')
end
-- translation header categories
local isMainPage = ((current_title:inNamespaces(0, 114) and not current_title.isSubpage) or args['testing'])
if not args['nocat'] and isMainPage then
local cat_works_start = 'Works originally in'
local cat_translations_start = 'Translations'
if args.is_translation then
cat_works_start = 'Wikisource translations of works in'
cat_translations_start = 'Wikisource translations'
end
if not args['nolanguagecat'] then
if args['languages'] then
for i, lang in ipairs(args['languages']) do
table.insert(categories, headerLang.language_category_name(cat_works_start, lang, args.is_translation))
end
end
if args['interwiki-prefix'] then
local iw_prefix_parts = mw.text.split(args['interwiki-prefix'], ':', true)
table.insert(categories, headerLang.language_category_name(cat_works_start, iw_prefix_parts[1], args.is_translation))
end
end
if not args['languages'] and args['language-required'] then
table.insert(categories, cat_translations_start .. ' with no original language')
end
if args.template_name == 'Translation header' and not args.original then
table.insert(categories, 'Wikisource translations with no original source')
end
end
-- detect inappropriate template use
--[=[
if (args['template-name'] ~= 'Translation header' and translator and string.lower(translator) == 'wikisource')
or (current_title:inNamespaces(114) and args['template-name'] ~= 'Translation header') then
-- tracking category for pages that should be using translation header?
end
if current_title:inNamespaces(0) and args['template-name'] == 'Translation header' then
-- tracking category for translation header in mainspace?
end
]=]
categories = TableTools.removeDuplicates(categories)
local category_links = {}
for k, v in pairs(categories) do
table.insert(category_links, '[[Category:' .. v .. ']]')
end
local category_link_text = table.concat(category_links)
if args.testing then
category_link_text = mw.text.nowiki(category_link_text) .. category_link_text
end
return category_link_text
end
--[=[
For debugging
]=]
--[=[
function p.construct_categories(args)
return construct_categories(args, args)
end
]=]
--[=[
Assemble the title
]=]
local function header_title(args)
local title = args.title or ''
local titleSpan = tostring(mw.html.create('span'):addClass('wst-header-title-text'):wikitext(title))
local year = construct_year(args)
local attr = headerAttribution.construct_attributions(args)
local section = headerAttribution.construct_section(args)
if attr ~= '' and title ~= '' then
attr = tostring(mw.html.create('br'):addClass('wst-header-title-break')) .. attr
end
return table.concat({titleSpan, year, attr, section})
end
--[=[
[[Template:Header]]
]=]
function p._header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
-- aliases
local dup_cat
local newArgs = {}
local aliases = {
['section-author'] = 'contributor',
['section-translator'] = 'contributing%-translator'
}
for k, v in pairs(args) do
local newkey = string.lower(string.gsub(string.gsub(tostring(k), '_', '-'), ' ', '-'))
for arg, alias in pairs(aliases) do
newkey = string.gsub(newkey, alias, arg)
end
if newkey ~= tostring(k) then
if argsWithBlanks[newkey] then
dup_cat = 'Pages using duplicate arguments in template calls'
end
if not args[newkey] then
newArgs[newkey] = newArgs[newkey] or v
end
end
if newkey == 'testing' or newkey == 'nocat' or newkey == 'nolanguagecat' or newkey == 'language-required' or string.match(newkey, '%-nolink$') then
newArgs[newkey] = newArgs[newkey] or yesno(v)
end
end
for k, v in pairs(newArgs) do
args[k] = v
argsWithBlanks[k] = v
end
if dup_cat then
table.insert(categories, dup_cat)
end
args.sortkey = args.defaultsort or args.sortkey
-- default values
args.template_name = args.template_name or 'Header'
if args.testing == nil then
args.testing = current_title.fullText == 'Template:Header/testcases' or current_title.fullText == 'Template:Translation header/testcases'
end
-- noyearcat has different behavior for nil and false
args.noyearcat = args.noyearcat or args.nocat == true or nil
local language_res = headerLang.get_languages(args)
args.languages = language_res.languages
args.language_name = language_res.language_name
local section_language_res = headerLang.get_languages(args, 'section')
args.section_languages = section_language_res.languages
args.section_language_name = section_language_res.language_name
if not args['interwiki-prefix'] and args['languages'] then
if #(args['languages']) > 1 then
args['interwiki-prefix'] = 'mul'
else
args['interwiki-prefix'] = args['languages'][1]
end
end
if args['interwiki-prefix'] then
args['interwiki-prefix'] = headerLang['interwiki_prefixes'][args['interwiki-prefix']] or args['interwiki-prefix']
end
-- add values to argsWithBlanks
for k, v in pairs(args) do
if not argsWithBlanks[k] then
argsWithBlanks[k] = v
end
end
-- default values for title and section (allow override by setting to blank)
if not argsWithBlanks['title'] then
args['title'] = parent_links({})
argsWithBlanks['title'] = args['title']
end
if not argsWithBlanks['section'] and current_title.isSubpage then
args['section'] = current_title.subpageText
argsWithBlanks['section'] = args['section']
end
-- header args
args.pre_container = badge()
args.header_class = 'wst-header ws-header ws-noexport noprint dynlayout-exempt ' .. (args.header_class or '')
args.main_class = 'headertemplate'
-- title
args.main_title = header_title(args)
-- FIXME: just use Wikidata instead of interwiki links?
local interwiki = ''
if args.template_name == 'Translation header' and args['interwiki-prefix'] then
interwiki = tostring(mw.html.create('span'):addClass('interwiki-info'):attr('id', args['interwiki-prefix']):attr('title', '(original)'))
if args.original then
-- general interwiki link
interwiki = interwiki .. '[[' .. args['interwiki-prefix'] .. ':' .. args.original .. ']]'
end
end
-- set defaultsort tracking categories
args.equalsortcat = '[[Category:' .. 'Headers with DefaultSort equal to page title' .. ']]'
args.diffsortcat = '[[Category:' .. 'Headers applying DefaultSort key' .. ']]'
args.post_notes = table.concat({
headerAttribution.construct_microformat(args),
construct_categories(args, argsWithBlanks),
construct_defaultsort(args),
interwiki
})
-- Check if page has copyvio div that needs closing
local copyvio_close = ''
local page_content = mw.title.getCurrentTitle():getContent()
if page_content and
page_content:find('<div id="copyvio"', 1, true) and
not page_content:find('{{copyvio/e}}', 1, true) and
not page_content:find('{{cv/e}}', 1, true) then
copyvio_close = '{{copyvio/e}}'
end
return get_noexport_stylesheet('Header') .. construct_header(args) .. copyvio_close
end
function p.header(frame)
return p._header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
--[=[
[[Template:Translation header]]
]=]
function p._translation_header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
args.header_class = 'wst-translation-header'
args.template_name = 'Translation header'
args.is_translation = true
args.notes_class = 'header-notes'
args['language-required'] = true
return get_noexport_stylesheet('Translation header') .. p._header(args, argsWithBlanks)
end
function p.translation_header(frame)
return p._translation_header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
return p
kusvwguu1mw0wf0rny69kkfasihl1ja
9529
9493
2026-06-22T14:15:41Z
Sauit
2200
9529
Scribunto
text/plain
--[=[
This is a module to implement logic for [[Template:Header]] and [[Template:Translation header]]
TODO:
- centuries are defined as starting on XX01, but WS categorizes them as starting on XX00
-- check whether that's a considered policy choice
]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local getArgs = require('Module:Arguments').getArgs
local TableTools = require('Module:TableTools')
local parent_links = require('Module:Auto parents')._parent_links
local construct_header = require('Module:Header structure').construct_header
local headerAttribution = require('Module:Header/attribution')
local headerLang = require('Module:Header/lang')
local construct_defaultsort = require('Module:Header/sort')._construct_defaultsort
local construct_year = require('Module:Header/year').construct_year
local current_title = mw.title.getCurrentTitle()
--[=[
Wrap stylesheet in noexport div
]=]
local function get_noexport_stylesheet(template)
return tostring(mw.html.create('div'):addClass('ws-noexport'):wikitext(mw.getCurrentFrame():extensionTag('templatestyles', '', {src = template .. '/styles.css'})))
end
--[=[
Get badge if any
]=]
local function badge()
return require('Module:Edition').badge({args = {category = '1', indicator = '1'}})
end
--[=[
Detect explicit formatting in fields like 'section' and 'title'
]=]
local function explicit_formatting(str)
return str and (string.match(str, "\'\'\'?") or string.match(str, '<%s*/?%s*[iIbB]%s*>'))
-- add more cases here or come up with a less silly way to do things
end
local function check_non_existent_author_pages(args, categories, checkArgs)
-- check for cases that aren't supposed to produce a valid link
local param = checkArgs.param
local tracking_cat = checkArgs.tracking_cat or 'Works with non-existent author pages'
if not param or not args[param] or yesno(args[param .. '-nolink']) then
return
end
local lower_arg = string.lower(args[param])
local attr_data = headerAttribution.attr_data[param] or headerAttribution.attr_data[string.gsub(param, 'section%-', '')]
if attr_data and attr_data['special_cases'] and attr_data['special_cases'][lower_arg] then
return
end
-- check if page exists
local target = mw.title.makeTitle('Author', args[param])
-- expensive function!
if not target or not target.exists then
table.insert(categories, tracking_cat)
end
return
end
local function construct_categories(args, argsWithBlanks)
local categories = {}
-- categorize subpages
local title = current_title
local parent_exists = false
while title.isSubpage and not parent_exists do
title = mw.title.new(title.baseText, title.nsText)
parent_exists = title.exists
end
if parent_exists and title:inNamespaces(0) then
table.insert(categories, 'Subpages')
elseif parent_exists then
table.insert(categories, title.nsText .. ' subpages')
end
-- add categories from the categories parameter
local manual_categories = (args.categories and mw.text.split(args.categories, '%s*/%s*', false)) or {}
local using_cat = false
for i, category in ipairs(manual_categories) do
local cat = mw.text.trim(category)
if cat ~= '' then
table.insert(categories, cat)
using_cat = true
end
end
if using_cat then
table.insert(categories, 'Works using categories parameter')
end
local known_override_types = {
['default'] = 'contributor type',
['author'] = 'author',
['translator'] = 'translator',
['section-author'] = 'contributor'
}
for k, v in pairs(argsWithBlanks) do
-- Check for numerical parameters (which shouldn't be used)
if type(k) == 'number' then
table.insert(categories, 'Headers with numerical arguments')
-- Check for 'override-' parameters
elseif string.match(k, '^override%-') then
local contrib_type = string.gsub(k, '^override%-', '')
contrib_type = string.gsub(contrib_type, '%d*$', '')
table.insert(categories, 'Pages with override ' .. (known_override_types[contrib_type] or known_override_types['default']))
end
end
-- check contributor parameters
if args['section-author'] then
table.insert(categories, 'Pages with contributor')
end
local editor = args['override-editor'] or args['editor']
if editor and not args['nocat'] then
editor = string.lower(editor)
if editor == 'unknown' or editor == '?' then
table.insert(categories, 'Works with unknown editors')
elseif editor == 'not mentioned' then
table.insert(categories, 'Works with unmentioned editors')
end
end
local translator = args['override-translator'] or args['translator']
if translator and not args['nocat'] then
translator = string.lower(translator)
table.insert(categories, 'Pages with translator')
if translator == 'unknown' or translator == 'not mentioned' or translator == '?' then
table.insert(categories, 'Translations without translator information specified')
end
end
local author = args['override-author'] or args['author']
if author and (string.lower(author) == 'unknown') and not args['nocat'] then
if args.template_name == 'Translation header' then
table.insert(categories, 'Translations of anonymous works')
else
table.insert(categories, 'Anonymous texts')
end
end
-- check for non-existent contributor pages
if current_title:inNamespaces(0, 103) or args.testing then
local params_to_check = {
{param = 'author'},
{param = 'editor'},
{param = 'translator'},
{param = 'composer', tracking_cat = 'Works with non-existent composer pages'},
{param = 'illustrator', tracking_cat = 'Works with non-existent illustrator pages'}
}
for k, v in pairs(params_to_check) do
check_non_existent_author_pages(args, categories, v)
check_non_existent_author_pages(args, categories, {param = 'section-' .. v.param, tracking_cat = v.tracking_cat})
end
end
if args['shortcut'] then
if current_title:inNamespaces(0) then
table.insert(categories, 'Mainspace pages with shortcuts')
elseif current_title:inNamespaces(114) then
table.insert(categories, 'Translation namespace pages with shortcuts')
end
end
if args['noyear'] then
table.insert(categories, 'Pages with noyear')
end
if args['noyearcat'] then
table.insert(categories, 'Pages with noyearcat')
end
if args['nolanguagecat'] then
table.insert(categories, 'Pages with nolanguagecat')
end
if args['cover'] then
table.insert(categories, 'Pages with an export cover')
end
-- sanity/maintenance checks on various parameters
-- allow-explicit-formatting parameter suppresses this check
-- used by, for example, [[Template:Versions]]
if not args['allow-explicit-formatting'] and (explicit_formatting(args['title']) or explicit_formatting(args['section'])) then
table.insert(categories, 'Pages with explicit formatting in header fields')
end
-- translation header categories
local isMainPage = ((current_title:inNamespaces(0, 114) and not current_title.isSubpage) or args['testing'])
if not args['nocat'] and isMainPage then
local cat_works_start = 'Works originally in'
local cat_translations_start = 'Translations'
if args.is_translation then
cat_works_start = 'Wikisource translations of works in'
cat_translations_start = 'Wikisource translations'
end
if not args['nolanguagecat'] then
if args['languages'] then
for i, lang in ipairs(args['languages']) do
table.insert(categories, headerLang.language_category_name(cat_works_start, lang, args.is_translation))
end
end
if args['interwiki-prefix'] then
local iw_prefix_parts = mw.text.split(args['interwiki-prefix'], ':', true)
table.insert(categories, headerLang.language_category_name(cat_works_start, iw_prefix_parts[1], args.is_translation))
end
end
if not args['languages'] and args['language-required'] then
table.insert(categories, cat_translations_start .. ' with no original language')
end
if args.template_name == 'Translation header' and not args.original then
table.insert(categories, 'Wikisource translations with no original source')
end
end
-- detect inappropriate template use
--[=[
if (args['template-name'] ~= 'Translation header' and translator and string.lower(translator) == 'wikisource')
or (current_title:inNamespaces(114) and args['template-name'] ~= 'Translation header') then
-- tracking category for pages that should be using translation header?
end
if current_title:inNamespaces(0) and args['template-name'] == 'Translation header' then
-- tracking category for translation header in mainspace?
end
]=]
categories = TableTools.removeDuplicates(categories)
local category_links = {}
for k, v in pairs(categories) do
table.insert(category_links, '[[Category:' .. v .. ']]')
end
local category_link_text = table.concat(category_links)
if args.testing then
category_link_text = mw.text.nowiki(category_link_text) .. category_link_text
end
return category_link_text
end
--[=[
For debugging
]=]
--[=[
function p.construct_categories(args)
return construct_categories(args, args)
end
]=]
--[=[
Assemble the title
]=]
local function header_title(args)
local title = args.title or ''
local titleSpan = tostring(mw.html.create('span'):addClass('wst-header-title-text'):wikitext(title))
local year = construct_year(args)
local attr = headerAttribution.construct_attributions(args)
local section = headerAttribution.construct_section(args)
if attr ~= '' and title ~= '' then
attr = tostring(mw.html.create('br'):addClass('wst-header-title-break')) .. attr
end
return table.concat({titleSpan, year, attr, section})
end
--[=[
[[Template:Header]]
]=]
function p._header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
-- aliases
local dup_cat
local newArgs = {}
local aliases = {
['section-author'] = 'contributor',
['section-translator'] = 'contributing%-translator'
}
for k, v in pairs(args) do
local newkey = string.lower(string.gsub(string.gsub(tostring(k), '_', '-'), ' ', '-'))
for arg, alias in pairs(aliases) do
newkey = string.gsub(newkey, alias, arg)
end
if newkey ~= tostring(k) then
if argsWithBlanks[newkey] then
dup_cat = 'Pages using duplicate arguments in template calls'
end
if not args[newkey] then
newArgs[newkey] = newArgs[newkey] or v
end
end
if newkey == 'testing' or newkey == 'nocat' or newkey == 'nolanguagecat' or newkey == 'language-required' or string.match(newkey, '%-nolink$') then
newArgs[newkey] = newArgs[newkey] or yesno(v)
end
end
for k, v in pairs(newArgs) do
args[k] = v
argsWithBlanks[k] = v
end
if dup_cat then
table.insert(categories, dup_cat)
end
args.sortkey = args.defaultsort or args.sortkey
-- default values
args.template_name = args.template_name or 'Header'
if args.testing == nil then
args.testing = current_title.fullText == 'Template:Header/testcases' or current_title.fullText == 'Template:Translation header/testcases'
end
-- noyearcat has different behavior for nil and false
args.noyearcat = args.noyearcat or args.nocat == true or nil
local language_res = headerLang.get_languages(args)
args.languages = language_res.languages
args.language_name = language_res.language_name
local section_language_res = headerLang.get_languages(args, 'section')
args.section_languages = section_language_res.languages
args.section_language_name = section_language_res.language_name
if not args['interwiki-prefix'] and args['languages'] then
if #(args['languages']) > 1 then
args['interwiki-prefix'] = 'mul'
else
args['interwiki-prefix'] = args['languages'][1]
end
end
if args['interwiki-prefix'] then
args['interwiki-prefix'] = headerLang['interwiki_prefixes'][args['interwiki-prefix']] or args['interwiki-prefix']
end
-- add values to argsWithBlanks
for k, v in pairs(args) do
if not argsWithBlanks[k] then
argsWithBlanks[k] = v
end
end
-- default values for title and section (allow override by setting to blank)
if not argsWithBlanks['title'] then
args['title'] = parent_links({})
argsWithBlanks['title'] = args['title']
end
if not argsWithBlanks['section'] and current_title.isSubpage then
args['section'] = current_title.subpageText
argsWithBlanks['section'] = args['section']
end
-- header args
args.pre_container = badge()
args.header_class = 'wst-header ws-header ws-noexport noprint dynlayout-exempt ' .. (args.header_class or '')
args.main_class = 'headertemplate'
-- title
args.main_title = header_title(args)
-- FIXME: just use Wikidata instead of interwiki links?
local interwiki = ''
if args.template_name == 'Translation header' and args['interwiki-prefix'] then
interwiki = tostring(mw.html.create('span'):addClass('interwiki-info'):attr('id', args['interwiki-prefix']):attr('title', '(original)'))
if args.original then
-- general interwiki link
interwiki = interwiki .. '[[' .. args['interwiki-prefix'] .. ':' .. args.original .. ']]'
end
end
-- set defaultsort tracking categories
args.equalsortcat = '[[Category:' .. 'Headers with DefaultSort equal to page title' .. ']]'
args.diffsortcat = '[[Category:' .. 'Headers applying DefaultSort key' .. ']]'
args.post_notes = table.concat({
headerAttribution.construct_microformat(args),
construct_categories(args, argsWithBlanks),
construct_defaultsort(args),
interwiki
})
-- Check if page has copyvio div that needs closing
local copyvio_close = ''
local page_content = mw.title.getCurrentTitle():getContent()
if page_content and
page_content:find('<div id="copyvio"', 1, true) and
not page_content:find('{{copyvio/e}}', 1, true) and
not page_content:find('{{cv/e}}', 1, true) then
copyvio_close = '{{copyvio/e}}'
end
return get_noexport_stylesheet('Header') .. construct_header(args) .. copyvio_close
end
function p.header(frame)
return p._header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
--[=[
[[Template:Translation header]]
]=]
function p._translation_header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
args.header_class = 'wst-translation-header'
args.template_name = 'Translation header'
args.is_translation = true
args.notes_class = 'header-notes'
args['language-required'] = true
return get_noexport_stylesheet('Translation header') .. p._header(args, argsWithBlanks)
end
function p.translation_header(frame)
return p._translation_header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
return p
sg4dmtqw4w32wbpqqha8se31ramaxp0
9530
9529
2026-06-22T14:15:59Z
Sauit
2200
9530
Scribunto
text/plain
--[=[
This is a module to implement logic for [[Template:Header]] and [[Template:Translation header]]
TODO:
- centuries are defined as starting on XX01, but WS categorizes them as starting on XX00
-- check whether that's a considered policy choice
]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local getArgs = require('Module:Arguments').getArgs
local TableTools = require('Module:TableTools')
local parent_links = require('Module:Auto parents')._parent_links
local construct_header = require('Module:Header structure').construct_header
local headerAttribution = require('Module:Header/attribution')
local headerLang = require('Module:Header/lang')
local construct_defaultsort = require('Module:Header/sort')._construct_defaultsort
local construct_year = require('Module:Header/year').construct_year
local current_title = mw.title.getCurrentTitle()
--[=[
Wrap stylesheet in noexport div
]=]
local function get_noexport_stylesheet(template)
return tostring(mw.html.create('div'):addClass('ws-noexport'):wikitext(mw.getCurrentFrame():extensionTag('templatestyles', '', {src = template .. '/styles.css'})))
end
--[=[
Get badge if any
]=]
local function badge()
return require('Module:Edition').badge({args = {category = '1', indicator = '1'}})
end
--[=[
Detect explicit formatting in fields like 'section' and 'title'
]=]
local function explicit_formatting(str)
return str and (string.match(str, "\'\'\'?") or string.match(str, '<%s*/?%s*[iIbB]%s*>'))
-- add more cases here or come up with a less silly way to do things
end
local function check_non_existent_author_pages(args, categories, checkArgs)
-- check for cases that aren't supposed to produce a valid link
local param = checkArgs.param
local tracking_cat = checkArgs.tracking_cat or 'Works with non-existent author pages'
if not param or not args[param] or yesno(args[param .. '-nolink']) then
return
end
local lower_arg = string.lower(args[param])
local attr_data = headerAttribution.attr_data[param] or headerAttribution.attr_data[string.gsub(param, 'section%-', '')]
if attr_data and attr_data['special_cases'] and attr_data['special_cases'][lower_arg] then
return
end
-- check if page exists
local target = mw.title.makeTitle('Author', args[param])
-- expensive function!
if not target or not target.exists then
table.insert(categories, tracking_cat)
end
return
end
local function construct_categories(args, argsWithBlanks)
local categories = {}
-- categorize subpages
local title = current_title
local parent_exists = false
while title.isSubpage and not parent_exists do
title = mw.title.new(title.baseText, title.nsText)
parent_exists = title.exists
end
if parent_exists and title:inNamespaces(0) then
table.insert(categories, 'Subpages')
elseif parent_exists then
table.insert(categories, title.nsText .. ' subpages')
end
-- add categories from the categories parameter
local manual_categories = (args.categories and mw.text.split(args.categories, '%s*/%s*', false)) or {}
local using_cat = false
for i, category in ipairs(manual_categories) do
local cat = mw.text.trim(category)
if cat ~= '' then
table.insert(categories, cat)
using_cat = true
end
end
if using_cat then
table.insert(categories, 'Works using categories parameter')
end
local known_override_types = {
['default'] = 'contributor type',
['author'] = 'author',
['translator'] = 'translator',
['section-author'] = 'contributor'
}
for k, v in pairs(argsWithBlanks) do
-- Check for numerical parameters (which shouldn't be used)
if type(k) == 'number' then
table.insert(categories, 'Headers with numerical arguments')
-- Check for 'override-' parameters
elseif string.match(k, '^override%-') then
local contrib_type = string.gsub(k, '^override%-', '')
contrib_type = string.gsub(contrib_type, '%d*$', '')
table.insert(categories, 'Pages with override ' .. (known_override_types[contrib_type] or known_override_types['default']))
end
end
-- check contributor parameters
if args['section-author'] then
table.insert(categories, 'Pages with contributor')
end
local editor = args['override-editor'] or args['editor']
if editor and not args['nocat'] then
editor = string.lower(editor)
if editor == 'unknown' or editor == '?' then
table.insert(categories, 'Works with unknown editors')
elseif editor == 'not mentioned' then
table.insert(categories, 'Works with unmentioned editors')
end
end
local translator = args['override-translator'] or args['translator']
if translator and not args['nocat'] then
translator = string.lower(translator)
table.insert(categories, 'Pages with translator')
if translator == 'unknown' or translator == 'not mentioned' or translator == '?' then
table.insert(categories, 'Translations without translator information specified')
end
end
local author = args['override-author'] or args['author']
if author and (string.lower(author) == 'unknown') and not args['nocat'] then
if args.template_name == 'Translation header' then
table.insert(categories, 'Translations of anonymous works')
else
table.insert(categories, 'Anonymous texts')
end
end
-- check for non-existent contributor pages
if current_title:inNamespaces(0, 103) or args.testing then
local params_to_check = {
{param = 'author'},
{param = 'editor'},
{param = 'translator'},
{param = 'composer', tracking_cat = 'Works with non-existent composer pages'},
{param = 'illustrator', tracking_cat = 'Works with non-existent illustrator pages'}
}
for k, v in pairs(params_to_check) do
check_non_existent_author_pages(args, categories, v)
check_non_existent_author_pages(args, categories, {param = 'section-' .. v.param, tracking_cat = v.tracking_cat})
end
end
if args['shortcut'] then
if current_title:inNamespaces(0) then
table.insert(categories, 'Mainspace pages with shortcuts')
elseif current_title:inNamespaces(114) then
table.insert(categories, 'Translation namespace pages with shortcuts')
end
end
if args['noyear'] then
table.insert(categories, 'Pages with noyear')
end
if args['noyearcat'] then
table.insert(categories, 'Pages with noyearcat')
end
if args['nolanguagecat'] then
table.insert(categories, 'Pages with nolanguagecat')
end
if args['cover'] then
table.insert(categories, 'Pages with an export cover')
end
-- sanity/maintenance checks on various parameters
-- allow-explicit-formatting parameter suppresses this check
-- used by, for example, [[Template:Versions]]
if not args['allow-explicit-formatting'] and (explicit_formatting(args['title']) or explicit_formatting(args['section'])) then
table.insert(categories, 'Pages with explicit formatting in header fields')
end
-- translation header categories
local isMainPage = ((current_title:inNamespaces(0, 103) and not current_title.isSubpage) or args['testing'])
if not args['nocat'] and isMainPage then
local cat_works_start = 'Works originally in'
local cat_translations_start = 'Translations'
if args.is_translation then
cat_works_start = 'Wikisource translations of works in'
cat_translations_start = 'Wikisource translations'
end
if not args['nolanguagecat'] then
if args['languages'] then
for i, lang in ipairs(args['languages']) do
table.insert(categories, headerLang.language_category_name(cat_works_start, lang, args.is_translation))
end
end
if args['interwiki-prefix'] then
local iw_prefix_parts = mw.text.split(args['interwiki-prefix'], ':', true)
table.insert(categories, headerLang.language_category_name(cat_works_start, iw_prefix_parts[1], args.is_translation))
end
end
if not args['languages'] and args['language-required'] then
table.insert(categories, cat_translations_start .. ' with no original language')
end
if args.template_name == 'Translation header' and not args.original then
table.insert(categories, 'Wikisource translations with no original source')
end
end
-- detect inappropriate template use
--[=[
if (args['template-name'] ~= 'Translation header' and translator and string.lower(translator) == 'wikisource')
or (current_title:inNamespaces(114) and args['template-name'] ~= 'Translation header') then
-- tracking category for pages that should be using translation header?
end
if current_title:inNamespaces(0) and args['template-name'] == 'Translation header' then
-- tracking category for translation header in mainspace?
end
]=]
categories = TableTools.removeDuplicates(categories)
local category_links = {}
for k, v in pairs(categories) do
table.insert(category_links, '[[Category:' .. v .. ']]')
end
local category_link_text = table.concat(category_links)
if args.testing then
category_link_text = mw.text.nowiki(category_link_text) .. category_link_text
end
return category_link_text
end
--[=[
For debugging
]=]
--[=[
function p.construct_categories(args)
return construct_categories(args, args)
end
]=]
--[=[
Assemble the title
]=]
local function header_title(args)
local title = args.title or ''
local titleSpan = tostring(mw.html.create('span'):addClass('wst-header-title-text'):wikitext(title))
local year = construct_year(args)
local attr = headerAttribution.construct_attributions(args)
local section = headerAttribution.construct_section(args)
if attr ~= '' and title ~= '' then
attr = tostring(mw.html.create('br'):addClass('wst-header-title-break')) .. attr
end
return table.concat({titleSpan, year, attr, section})
end
--[=[
[[Template:Header]]
]=]
function p._header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
-- aliases
local dup_cat
local newArgs = {}
local aliases = {
['section-author'] = 'contributor',
['section-translator'] = 'contributing%-translator'
}
for k, v in pairs(args) do
local newkey = string.lower(string.gsub(string.gsub(tostring(k), '_', '-'), ' ', '-'))
for arg, alias in pairs(aliases) do
newkey = string.gsub(newkey, alias, arg)
end
if newkey ~= tostring(k) then
if argsWithBlanks[newkey] then
dup_cat = 'Pages using duplicate arguments in template calls'
end
if not args[newkey] then
newArgs[newkey] = newArgs[newkey] or v
end
end
if newkey == 'testing' or newkey == 'nocat' or newkey == 'nolanguagecat' or newkey == 'language-required' or string.match(newkey, '%-nolink$') then
newArgs[newkey] = newArgs[newkey] or yesno(v)
end
end
for k, v in pairs(newArgs) do
args[k] = v
argsWithBlanks[k] = v
end
if dup_cat then
table.insert(categories, dup_cat)
end
args.sortkey = args.defaultsort or args.sortkey
-- default values
args.template_name = args.template_name or 'Header'
if args.testing == nil then
args.testing = current_title.fullText == 'Template:Header/testcases' or current_title.fullText == 'Template:Translation header/testcases'
end
-- noyearcat has different behavior for nil and false
args.noyearcat = args.noyearcat or args.nocat == true or nil
local language_res = headerLang.get_languages(args)
args.languages = language_res.languages
args.language_name = language_res.language_name
local section_language_res = headerLang.get_languages(args, 'section')
args.section_languages = section_language_res.languages
args.section_language_name = section_language_res.language_name
if not args['interwiki-prefix'] and args['languages'] then
if #(args['languages']) > 1 then
args['interwiki-prefix'] = 'mul'
else
args['interwiki-prefix'] = args['languages'][1]
end
end
if args['interwiki-prefix'] then
args['interwiki-prefix'] = headerLang['interwiki_prefixes'][args['interwiki-prefix']] or args['interwiki-prefix']
end
-- add values to argsWithBlanks
for k, v in pairs(args) do
if not argsWithBlanks[k] then
argsWithBlanks[k] = v
end
end
-- default values for title and section (allow override by setting to blank)
if not argsWithBlanks['title'] then
args['title'] = parent_links({})
argsWithBlanks['title'] = args['title']
end
if not argsWithBlanks['section'] and current_title.isSubpage then
args['section'] = current_title.subpageText
argsWithBlanks['section'] = args['section']
end
-- header args
args.pre_container = badge()
args.header_class = 'wst-header ws-header ws-noexport noprint dynlayout-exempt ' .. (args.header_class or '')
args.main_class = 'headertemplate'
-- title
args.main_title = header_title(args)
-- FIXME: just use Wikidata instead of interwiki links?
local interwiki = ''
if args.template_name == 'Translation header' and args['interwiki-prefix'] then
interwiki = tostring(mw.html.create('span'):addClass('interwiki-info'):attr('id', args['interwiki-prefix']):attr('title', '(original)'))
if args.original then
-- general interwiki link
interwiki = interwiki .. '[[' .. args['interwiki-prefix'] .. ':' .. args.original .. ']]'
end
end
-- set defaultsort tracking categories
args.equalsortcat = '[[Category:' .. 'Headers with DefaultSort equal to page title' .. ']]'
args.diffsortcat = '[[Category:' .. 'Headers applying DefaultSort key' .. ']]'
args.post_notes = table.concat({
headerAttribution.construct_microformat(args),
construct_categories(args, argsWithBlanks),
construct_defaultsort(args),
interwiki
})
-- Check if page has copyvio div that needs closing
local copyvio_close = ''
local page_content = mw.title.getCurrentTitle():getContent()
if page_content and
page_content:find('<div id="copyvio"', 1, true) and
not page_content:find('{{copyvio/e}}', 1, true) and
not page_content:find('{{cv/e}}', 1, true) then
copyvio_close = '{{copyvio/e}}'
end
return get_noexport_stylesheet('Header') .. construct_header(args) .. copyvio_close
end
function p.header(frame)
return p._header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
--[=[
[[Template:Translation header]]
]=]
function p._translation_header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
args.header_class = 'wst-translation-header'
args.template_name = 'Translation header'
args.is_translation = true
args.notes_class = 'header-notes'
args['language-required'] = true
return get_noexport_stylesheet('Translation header') .. p._header(args, argsWithBlanks)
end
function p.translation_header(frame)
return p._translation_header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
return p
c117b72tvb3jkqxau1urhhg4nk7fifc
9541
9530
2026-06-22T14:38:01Z
Sauit
2200
9541
Scribunto
text/plain
--[=[
This is a module to implement logic for [[Template:Header]] and [[Template:Translation header]]
TODO:
- centuries are defined as starting on XX01, but WS categorizes them as starting on XX00
-- check whether that's a considered policy choice
]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local getArgs = require('Module:Arguments').getArgs
local TableTools = require('Module:TableTools')
local parent_links = require('Module:Auto parents')._parent_links
local construct_header = require('Module:Header structure').construct_header
local headerAttribution = require('Module:Header/attribution')
local headerLang = require('Module:Header/lang')
local construct_defaultsort = require('Module:Header/sort')._construct_defaultsort
local construct_year = require('Module:Header/year').construct_year
local current_title = mw.title.getCurrentTitle()
--[=[
Wrap stylesheet in noexport div
]=]
local function get_noexport_stylesheet(template)
return tostring(mw.html.create('div'):addClass('ws-noexport'):wikitext(mw.getCurrentFrame():extensionTag('templatestyles', '', {src = template .. '/styles.css'})))
end
--[=[
Get badge if any
]=]
local function badge()
return require('Module:Edition').badge({args = {category = '1', indicator = '1'}})
end
--[=[
Detect explicit formatting in fields like 'section' and 'title'
]=]
local function explicit_formatting(str)
return str and (string.match(str, "\'\'\'?") or string.match(str, '<%s*/?%s*[iIbB]%s*>'))
-- add more cases here or come up with a less silly way to do things
end
local function check_non_existent_author_pages(args, categories, checkArgs)
-- check for cases that aren't supposed to produce a valid link
local param = checkArgs.param
local tracking_cat = checkArgs.tracking_cat or 'Ааптар туһунан сирэйэ суох айымньылар'
if not param or not args[param] or yesno(args[param .. '-nolink']) then
return
end
local lower_arg = string.lower(args[param])
local attr_data = headerAttribution.attr_data[param] or headerAttribution.attr_data[string.gsub(param, 'section%-', '')]
if attr_data and attr_data['special_cases'] and attr_data['special_cases'][lower_arg] then
return
end
-- check if page exists
local target = mw.title.makeTitle('Author', args[param])
-- expensive function!
if not target or not target.exists then
table.insert(categories, tracking_cat)
end
return
end
local function construct_categories(args, argsWithBlanks)
local categories = {}
-- categorize subpages
local title = current_title
local parent_exists = false
while title.isSubpage and not parent_exists do
title = mw.title.new(title.baseText, title.nsText)
parent_exists = title.exists
end
if parent_exists and title:inNamespaces(0) then
table.insert(categories, 'Subpages')
elseif parent_exists then
table.insert(categories, title.nsText .. ' subpages')
end
-- add categories from the categories parameter
local manual_categories = (args.categories and mw.text.split(args.categories, '%s*/%s*', false)) or {}
local using_cat = false
for i, category in ipairs(manual_categories) do
local cat = mw.text.trim(category)
if cat ~= '' then
table.insert(categories, cat)
using_cat = true
end
end
if using_cat then
table.insert(categories, 'Categories параметры туттар сирэйдэр')
end
local known_override_types = {
['default'] = 'contributor type',
['author'] = 'author',
['translator'] = 'translator',
['section-author'] = 'contributor'
}
for k, v in pairs(argsWithBlanks) do
-- Check for numerical parameters (which shouldn't be used)
if type(k) == 'number' then
table.insert(categories, 'Номмердаммыт параметрдаах үрдэ сирэйдэрэ')
-- Check for 'override-' parameters
elseif string.match(k, '^override%-') then
local contrib_type = string.gsub(k, '^override%-', '')
contrib_type = string.gsub(contrib_type, '%d*$', '')
table.insert(categories, 'Pages with override ' .. (known_override_types[contrib_type] or known_override_types['default']))
end
end
-- check contributor parameters
if args['section-author'] then
table.insert(categories, 'Редактордаах айымньылар')
end
local editor = args['override-editor'] or args['editor']
if editor and not args['nocat'] then
editor = string.lower(editor)
if editor == 'unknown' or editor == '?' then
table.insert(categories, 'Биллибэт редактордаах айымньылар')
elseif editor == 'not mentioned' then
table.insert(categories, 'Ыйыллыбатах редактордаах айымньылар')
end
end
local translator = args['override-translator'] or args['translator']
if translator and not args['nocat'] then
translator = string.lower(translator)
table.insert(categories, 'Тылбаасчыттаах айымньылар')
if translator == 'unknown' or translator == 'not mentioned' or translator == '?' then
table.insert(categories, 'Тылбаасчыта ыйыллыбатах тылбаастар')
end
end
local author = args['override-author'] or args['author']
if author and (string.lower(author) == 'unknown') and not args['nocat'] then
if args.template_name == 'Translation header' then
table.insert(categories, 'Анонимнай айымньылар тылбаастара')
else
table.insert(categories, 'Анонимнай айымньылар')
end
end
-- check for non-existent contributor pages
if current_title:inNamespaces(0, 103) or args.testing then
local params_to_check = {
{param = 'author'},
{param = 'editor'},
{param = 'translator'},
{param = 'composer', tracking_cat = 'Works with non-existent composer pages'},
{param = 'illustrator', tracking_cat = 'Works with non-existent illustrator pages'}
}
for k, v in pairs(params_to_check) do
check_non_existent_author_pages(args, categories, v)
check_non_existent_author_pages(args, categories, {param = 'section-' .. v.param, tracking_cat = v.tracking_cat})
end
end
if args['shortcut'] then
if current_title:inNamespaces(0) then
table.insert(categories, 'Mainspace pages with shortcuts')
elseif current_title:inNamespaces(114) then
table.insert(categories, 'Translation namespace pages with shortcuts')
end
end
if args['noyear'] then
table.insert(categories, 'Pages with noyear')
end
if args['noyearcat'] then
table.insert(categories, 'Pages with noyearcat')
end
if args['nolanguagecat'] then
table.insert(categories, 'Pages with nolanguagecat')
end
if args['cover'] then
table.insert(categories, 'Pages with an export cover')
end
-- sanity/maintenance checks on various parameters
-- allow-explicit-formatting parameter suppresses this check
-- used by, for example, [[Template:Versions]]
if not args['allow-explicit-formatting'] and (explicit_formatting(args['title']) or explicit_formatting(args['section'])) then
table.insert(categories, 'Pages with explicit formatting in header fields')
end
-- translation header categories
local isMainPage = ((current_title:inNamespaces(0, 103) and not current_title.isSubpage) or args['testing'])
if not args['nocat'] and isMainPage then
local cat_works_start = 'Works originally in'
local cat_translations_start = 'Translations'
if args.is_translation then
cat_works_start = 'Wikisource translations of works in'
cat_translations_start = 'Wikisource translations'
end
if not args['nolanguagecat'] then
if args['languages'] then
for i, lang in ipairs(args['languages']) do
table.insert(categories, headerLang.language_category_name(cat_works_start, lang, args.is_translation))
end
end
if args['interwiki-prefix'] then
local iw_prefix_parts = mw.text.split(args['interwiki-prefix'], ':', true)
table.insert(categories, headerLang.language_category_name(cat_works_start, iw_prefix_parts[1], args.is_translation))
end
end
if not args['languages'] and args['language-required'] then
table.insert(categories, cat_translations_start .. ' with no original language')
end
if args.template_name == 'Translation header' and not args.original then
table.insert(categories, 'Wikisource translations with no original source')
end
end
-- detect inappropriate template use
--[=[
if (args['template-name'] ~= 'Translation header' and translator and string.lower(translator) == 'wikisource')
or (current_title:inNamespaces(114) and args['template-name'] ~= 'Translation header') then
-- tracking category for pages that should be using translation header?
end
if current_title:inNamespaces(0) and args['template-name'] == 'Translation header' then
-- tracking category for translation header in mainspace?
end
]=]
categories = TableTools.removeDuplicates(categories)
local category_links = {}
for k, v in pairs(categories) do
table.insert(category_links, '[[Category:' .. v .. ']]')
end
local category_link_text = table.concat(category_links)
if args.testing then
category_link_text = mw.text.nowiki(category_link_text) .. category_link_text
end
return category_link_text
end
--[=[
For debugging
]=]
--[=[
function p.construct_categories(args)
return construct_categories(args, args)
end
]=]
--[=[
Assemble the title
]=]
local function header_title(args)
local title = args.title or ''
local titleSpan = tostring(mw.html.create('span'):addClass('wst-header-title-text'):wikitext(title))
local year = construct_year(args)
local attr = headerAttribution.construct_attributions(args)
local section = headerAttribution.construct_section(args)
if attr ~= '' and title ~= '' then
attr = tostring(mw.html.create('br'):addClass('wst-header-title-break')) .. attr
end
return table.concat({titleSpan, year, attr, section})
end
--[=[
[[Template:Header]]
]=]
function p._header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
-- aliases
local dup_cat
local newArgs = {}
local aliases = {
['section-author'] = 'contributor',
['section-translator'] = 'contributing%-translator'
}
for k, v in pairs(args) do
local newkey = string.lower(string.gsub(string.gsub(tostring(k), '_', '-'), ' ', '-'))
for arg, alias in pairs(aliases) do
newkey = string.gsub(newkey, alias, arg)
end
if newkey ~= tostring(k) then
if argsWithBlanks[newkey] then
dup_cat = 'Pages using duplicate arguments in template calls'
end
if not args[newkey] then
newArgs[newkey] = newArgs[newkey] or v
end
end
if newkey == 'testing' or newkey == 'nocat' or newkey == 'nolanguagecat' or newkey == 'language-required' or string.match(newkey, '%-nolink$') then
newArgs[newkey] = newArgs[newkey] or yesno(v)
end
end
for k, v in pairs(newArgs) do
args[k] = v
argsWithBlanks[k] = v
end
if dup_cat then
table.insert(categories, dup_cat)
end
args.sortkey = args.defaultsort or args.sortkey
-- default values
args.template_name = args.template_name or 'Header'
if args.testing == nil then
args.testing = current_title.fullText == 'Template:Header/testcases' or current_title.fullText == 'Template:Translation header/testcases'
end
-- noyearcat has different behavior for nil and false
args.noyearcat = args.noyearcat or args.nocat == true or nil
local language_res = headerLang.get_languages(args)
args.languages = language_res.languages
args.language_name = language_res.language_name
local section_language_res = headerLang.get_languages(args, 'section')
args.section_languages = section_language_res.languages
args.section_language_name = section_language_res.language_name
if not args['interwiki-prefix'] and args['languages'] then
if #(args['languages']) > 1 then
args['interwiki-prefix'] = 'mul'
else
args['interwiki-prefix'] = args['languages'][1]
end
end
if args['interwiki-prefix'] then
args['interwiki-prefix'] = headerLang['interwiki_prefixes'][args['interwiki-prefix']] or args['interwiki-prefix']
end
-- add values to argsWithBlanks
for k, v in pairs(args) do
if not argsWithBlanks[k] then
argsWithBlanks[k] = v
end
end
-- default values for title and section (allow override by setting to blank)
if not argsWithBlanks['title'] then
args['title'] = parent_links({})
argsWithBlanks['title'] = args['title']
end
if not argsWithBlanks['section'] and current_title.isSubpage then
args['section'] = current_title.subpageText
argsWithBlanks['section'] = args['section']
end
-- header args
args.pre_container = badge()
args.header_class = 'wst-header ws-header ws-noexport noprint dynlayout-exempt ' .. (args.header_class or '')
args.main_class = 'headertemplate'
-- title
args.main_title = header_title(args)
-- FIXME: just use Wikidata instead of interwiki links?
local interwiki = ''
if args.template_name == 'Translation header' and args['interwiki-prefix'] then
interwiki = tostring(mw.html.create('span'):addClass('interwiki-info'):attr('id', args['interwiki-prefix']):attr('title', '(original)'))
if args.original then
-- general interwiki link
interwiki = interwiki .. '[[' .. args['interwiki-prefix'] .. ':' .. args.original .. ']]'
end
end
-- set defaultsort tracking categories
args.equalsortcat = '[[Category:' .. 'Headers with DefaultSort equal to page title' .. ']]'
args.diffsortcat = '[[Category:' .. 'Headers applying DefaultSort key' .. ']]'
args.post_notes = table.concat({
headerAttribution.construct_microformat(args),
construct_categories(args, argsWithBlanks),
construct_defaultsort(args),
interwiki
})
-- Check if page has copyvio div that needs closing
local copyvio_close = ''
local page_content = mw.title.getCurrentTitle():getContent()
if page_content and
page_content:find('<div id="copyvio"', 1, true) and
not page_content:find('{{copyvio/e}}', 1, true) and
not page_content:find('{{cv/e}}', 1, true) then
copyvio_close = '{{copyvio/e}}'
end
return get_noexport_stylesheet('Header') .. construct_header(args) .. copyvio_close
end
function p.header(frame)
return p._header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
--[=[
[[Template:Translation header]]
]=]
function p._translation_header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
args.header_class = 'wst-translation-header'
args.template_name = 'Translation header'
args.is_translation = true
args.notes_class = 'header-notes'
args['language-required'] = true
return get_noexport_stylesheet('Translation header') .. p._header(args, argsWithBlanks)
end
function p.translation_header(frame)
return p._translation_header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
return p
p2wj7dndteq1ddbi1n31fr887ul37ye
9543
9541
2026-06-22T14:40:45Z
Sauit
2200
9543
Scribunto
text/plain
--[=[
This is a module to implement logic for [[Template:Header]] and [[Template:Translation header]]
TODO:
- centuries are defined as starting on XX01, but WS categorizes them as starting on XX00
-- check whether that's a considered policy choice
]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local getArgs = require('Module:Arguments').getArgs
local TableTools = require('Module:TableTools')
local parent_links = require('Module:Auto parents')._parent_links
local construct_header = require('Module:Header structure').construct_header
local headerAttribution = require('Module:Header/attribution')
local headerLang = require('Module:Header/lang')
local construct_defaultsort = require('Module:Header/sort')._construct_defaultsort
local construct_year = require('Module:Header/year').construct_year
local current_title = mw.title.getCurrentTitle()
--[=[
Wrap stylesheet in noexport div
]=]
local function get_noexport_stylesheet(template)
return tostring(mw.html.create('div'):addClass('ws-noexport'):wikitext(mw.getCurrentFrame():extensionTag('templatestyles', '', {src = template .. '/styles.css'})))
end
--[=[
Get badge if any
]=]
local function badge()
return require('Module:Edition').badge({args = {category = '1', indicator = '1'}})
end
--[=[
Detect explicit formatting in fields like 'section' and 'title'
]=]
local function explicit_formatting(str)
return str and (string.match(str, "\'\'\'?") or string.match(str, '<%s*/?%s*[iIbB]%s*>'))
-- add more cases here or come up with a less silly way to do things
end
local function check_non_existent_author_pages(args, categories, checkArgs)
-- check for cases that aren't supposed to produce a valid link
local param = checkArgs.param
local tracking_cat = checkArgs.tracking_cat or 'Ааптар туһунан сирэйэ суох айымньылар'
if not param or not args[param] or yesno(args[param .. '-nolink']) then
return
end
local lower_arg = string.lower(args[param])
local attr_data = headerAttribution.attr_data[param] or headerAttribution.attr_data[string.gsub(param, 'section%-', '')]
if attr_data and attr_data['special_cases'] and attr_data['special_cases'][lower_arg] then
return
end
-- check if page exists
local target = mw.title.makeTitle('Author', args[param])
-- expensive function!
if not target or not target.exists then
table.insert(categories, tracking_cat)
end
return
end
local function construct_categories(args, argsWithBlanks)
local categories = {}
-- categorize subpages
local title = current_title
local parent_exists = false
while title.isSubpage and not parent_exists do
title = mw.title.new(title.baseText, title.nsText)
parent_exists = title.exists
end
if parent_exists and title:inNamespaces(0) then
table.insert(categories, 'Subpages')
elseif parent_exists then
table.insert(categories, title.nsText .. ' subpages')
end
-- add categories from the categories parameter
local manual_categories = (args.categories and mw.text.split(args.categories, '%s*/%s*', false)) or {}
local using_cat = false
for i, category in ipairs(manual_categories) do
local cat = mw.text.trim(category)
if cat ~= '' then
table.insert(categories, cat)
using_cat = true
end
end
if using_cat then
table.insert(categories, 'Categories параметры туттар сирэйдэр')
end
local known_override_types = {
['default'] = 'contributor type',
['author'] = 'author',
['translator'] = 'translator',
['section-author'] = 'contributor'
}
for k, v in pairs(argsWithBlanks) do
-- Check for numerical parameters (which shouldn't be used)
if type(k) == 'number' then
table.insert(categories, 'Номмердаммыт параметрдаах үрдэ сирэйдэрэ')
-- Check for 'override-' parameters
elseif string.match(k, '^override%-') then
local contrib_type = string.gsub(k, '^override%-', '')
contrib_type = string.gsub(contrib_type, '%d*$', '')
table.insert(categories, 'Pages with override ' .. (known_override_types[contrib_type] or known_override_types['default']))
end
end
-- check contributor parameters
if args['section-author'] then
table.insert(categories, 'Редактордаах айымньылар')
end
local editor = args['override-editor'] or args['editor']
if editor and not args['nocat'] then
editor = string.lower(editor)
if editor == 'unknown' or editor == '?' then
table.insert(categories, 'Биллибэт редактордаах айымньылар')
elseif editor == 'not mentioned' then
table.insert(categories, 'Ыйыллыбатах редактордаах айымньылар')
end
end
local translator = args['override-translator'] or args['translator']
if translator and not args['nocat'] then
translator = string.lower(translator)
table.insert(categories, 'Тылбаасчыттаах айымньылар')
if translator == 'unknown' or translator == 'not mentioned' or translator == '?' then
table.insert(categories, 'Тылбаасчыта ыйыллыбатах тылбаастар')
end
end
local author = args['override-author'] or args['author']
if author and (string.lower(author) == 'unknown') and not args['nocat'] then
if args.template_name == 'Translation header' then
table.insert(categories, 'Анонимнай айымньылар тылбаастара')
else
table.insert(categories, 'Анонимнай айымньылар')
end
end
-- check for non-existent contributor pages
if current_title:inNamespaces(0, 103) or args.testing then
local params_to_check = {
{param = 'author'},
{param = 'editor'},
{param = 'translator'},
{param = 'composer', tracking_cat = 'Works with non-existent composer pages'},
{param = 'illustrator', tracking_cat = 'Works with non-existent illustrator pages'}
}
for k, v in pairs(params_to_check) do
check_non_existent_author_pages(args, categories, v)
check_non_existent_author_pages(args, categories, {param = 'section-' .. v.param, tracking_cat = v.tracking_cat})
end
end
if args['shortcut'] then
if current_title:inNamespaces(0) then
table.insert(categories, 'Mainspace pages with shortcuts')
elseif current_title:inNamespaces(114) then
table.insert(categories, 'Translation namespace pages with shortcuts')
end
end
if args['noyear'] then
table.insert(categories, 'Pages with noyear')
end
if args['noyearcat'] then
table.insert(categories, 'Pages with noyearcat')
end
if args['nolanguagecat'] then
table.insert(categories, 'Pages with nolanguagecat')
end
if args['cover'] then
table.insert(categories, 'Pages with an export cover')
end
-- sanity/maintenance checks on various parameters
-- allow-explicit-formatting parameter suppresses this check
-- used by, for example, [[Template:Versions]]
if not args['allow-explicit-formatting'] and (explicit_formatting(args['title']) or explicit_formatting(args['section'])) then
table.insert(categories, 'Pages with explicit formatting in header fields')
end
-- translation header categories
local isMainPage = ((current_title:inNamespaces(0, 103) and not current_title.isSubpage) or args['testing'])
if not args['nocat'] and isMainPage then
local cat_works_start = 'Works originally in'
local cat_translations_start = 'Translations'
if args.is_translation then
cat_works_start = 'Wikisource translations of works in'
cat_translations_start = 'Wikisource translations'
end
if not args['nolanguagecat'] then
if args['languages'] then
for i, lang in ipairs(args['languages']) do
table.insert(categories, headerLang.language_category_name(cat_works_start, lang, args.is_translation))
end
end
if args['interwiki-prefix'] then
local iw_prefix_parts = mw.text.split(args['interwiki-prefix'], ':', true)
table.insert(categories, headerLang.language_category_name(cat_works_start, iw_prefix_parts[1], args.is_translation))
end
end
if not args['languages'] and args['language-required'] then
table.insert(categories, cat_translations_start .. ' with no original language')
end
if args.template_name == 'Translation header' and not args.original then
table.insert(categories, 'Wikisource translations with no original source')
end
end
-- detect inappropriate template use
--[=[
if (args['template-name'] ~= 'Translation header' and translator and string.lower(translator) == 'wikisource')
or (current_title:inNamespaces(114) and args['template-name'] ~= 'Translation header') then
-- tracking category for pages that should be using translation header?
end
if current_title:inNamespaces(0) and args['template-name'] == 'Translation header' then
-- tracking category for translation header in mainspace?
end
]=]
categories = TableTools.removeDuplicates(categories)
local category_links = {}
for k, v in pairs(categories) do
table.insert(category_links, '[[Category:' .. v .. ']]')
end
local category_link_text = table.concat(category_links)
if args.testing then
category_link_text = mw.text.nowiki(category_link_text) .. category_link_text
end
return category_link_text
end
--[=[
For debugging
]=]
--[=[
function p.construct_categories(args)
return construct_categories(args, args)
end
]=]
--[=[
Assemble the title
]=]
local function header_title(args)
local title = args.title or ''
local titleSpan = tostring(mw.html.create('span'):addClass('wst-header-title-text'):wikitext(title))
local year = construct_year(args)
local attr = headerAttribution.construct_attributions(args)
local section = headerAttribution.construct_section(args)
if attr ~= '' and title ~= '' then
attr = tostring(mw.html.create('br'):addClass('wst-header-title-break')) .. attr
end
return table.concat({titleSpan, year, attr, section})
end
--[=[
[[Template:Header]]
]=]
function p._header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
-- aliases
local dup_cat
local newArgs = {}
local aliases = {
['section-author'] = 'contributor',
['section-translator'] = 'contributing%-translator'
}
for k, v in pairs(args) do
local newkey = string.lower(string.gsub(string.gsub(tostring(k), '_', '-'), ' ', '-'))
for arg, alias in pairs(aliases) do
newkey = string.gsub(newkey, alias, arg)
end
if newkey ~= tostring(k) then
if argsWithBlanks[newkey] then
dup_cat = 'Pages using duplicate arguments in template calls'
end
if not args[newkey] then
newArgs[newkey] = newArgs[newkey] or v
end
end
if newkey == 'testing' or newkey == 'nocat' or newkey == 'nolanguagecat' or newkey == 'language-required' or string.match(newkey, '%-nolink$') then
newArgs[newkey] = newArgs[newkey] or yesno(v)
end
end
for k, v in pairs(newArgs) do
args[k] = v
argsWithBlanks[k] = v
end
if dup_cat then
table.insert(categories, dup_cat)
end
args.sortkey = args.defaultsort or args.sortkey
-- default values
args.template_name = args.template_name or 'Header'
if args.testing == nil then
args.testing = current_title.fullText == 'Template:Header/testcases' or current_title.fullText == 'Template:Translation header/testcases'
end
-- noyearcat has different behavior for nil and false
args.noyearcat = args.noyearcat or args.nocat == true or nil
local language_res = headerLang.get_languages(args)
args.languages = language_res.languages
args.language_name = language_res.language_name
local section_language_res = headerLang.get_languages(args, 'section')
args.section_languages = section_language_res.languages
args.section_language_name = section_language_res.language_name
if not args['interwiki-prefix'] and args['languages'] then
if #(args['languages']) > 1 then
args['interwiki-prefix'] = 'mul'
else
args['interwiki-prefix'] = args['languages'][1]
end
end
if args['interwiki-prefix'] then
args['interwiki-prefix'] = headerLang['interwiki_prefixes'][args['interwiki-prefix']] or args['interwiki-prefix']
end
-- add values to argsWithBlanks
for k, v in pairs(args) do
if not argsWithBlanks[k] then
argsWithBlanks[k] = v
end
end
-- default values for title and section (allow override by setting to blank)
if not argsWithBlanks['title'] then
args['title'] = parent_links({})
argsWithBlanks['title'] = args['title']
end
if not argsWithBlanks['section'] and current_title.isSubpage then
args['section'] = current_title.subpageText
argsWithBlanks['section'] = args['section']
end
-- header args
args.pre_container = badge()
args.header_class = 'wst-header ws-header ws-noexport noprint dynlayout-exempt ' .. (args.header_class or '')
args.main_class = 'headertemplate'
-- title
args.main_title = header_title(args)
-- FIXME: just use Wikidata instead of interwiki links?
local interwiki = ''
if args.template_name == 'Translation header' and args['interwiki-prefix'] then
interwiki = tostring(mw.html.create('span'):addClass('interwiki-info'):attr('id', args['interwiki-prefix']):attr('title', '(original)'))
if args.original then
-- general interwiki link
interwiki = interwiki .. '[[' .. args['interwiki-prefix'] .. ':' .. args.original .. ']]'
end
end
-- set defaultsort tracking categories
args.equalsortcat = '[[Category:]]'
args.diffsortcat = '[[Category:]]'
args.post_notes = table.concat({
headerAttribution.construct_microformat(args),
construct_categories(args, argsWithBlanks),
construct_defaultsort(args),
interwiki
})
-- Check if page has copyvio div that needs closing
local copyvio_close = ''
local page_content = mw.title.getCurrentTitle():getContent()
if page_content and
page_content:find('<div id="copyvio"', 1, true) and
not page_content:find('{{copyvio/e}}', 1, true) and
not page_content:find('{{cv/e}}', 1, true) then
copyvio_close = '{{copyvio/e}}'
end
return get_noexport_stylesheet('Header') .. construct_header(args) .. copyvio_close
end
function p.header(frame)
return p._header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
--[=[
[[Template:Translation header]]
]=]
function p._translation_header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
args.header_class = 'wst-translation-header'
args.template_name = 'Translation header'
args.is_translation = true
args.notes_class = 'header-notes'
args['language-required'] = true
return get_noexport_stylesheet('Translation header') .. p._header(args, argsWithBlanks)
end
function p.translation_header(frame)
return p._translation_header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
return p
tfniphecloug97iqynvnuonft9tew23
9545
9543
2026-06-22T14:43:52Z
Sauit
2200
9545
Scribunto
text/plain
--[=[
This is a module to implement logic for [[Template:Header]] and [[Template:Translation header]]
TODO:
- centuries are defined as starting on XX01, but WS categorizes them as starting on XX00
-- check whether that's a considered policy choice
]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local getArgs = require('Module:Arguments').getArgs
local TableTools = require('Module:TableTools')
local parent_links = require('Module:Auto parents')._parent_links
local construct_header = require('Module:Header structure').construct_header
local headerAttribution = require('Module:Header/attribution')
local headerLang = require('Module:Header/lang')
local construct_defaultsort = require('Module:Header/sort')._construct_defaultsort
local construct_year = require('Module:Header/year').construct_year
local current_title = mw.title.getCurrentTitle()
--[=[
Wrap stylesheet in noexport div
]=]
local function get_noexport_stylesheet(template)
return tostring(mw.html.create('div'):addClass('ws-noexport'):wikitext(mw.getCurrentFrame():extensionTag('templatestyles', '', {src = template .. '/styles.css'})))
end
--[=[
Get badge if any
]=]
local function badge()
return require('Module:Edition').badge({args = {category = '1', indicator = '1'}})
end
--[=[
Detect explicit formatting in fields like 'section' and 'title'
]=]
local function explicit_formatting(str)
return str and (string.match(str, "\'\'\'?") or string.match(str, '<%s*/?%s*[iIbB]%s*>'))
-- add more cases here or come up with a less silly way to do things
end
local function check_non_existent_author_pages(args, categories, checkArgs)
-- check for cases that aren't supposed to produce a valid link
local param = checkArgs.param
local tracking_cat = checkArgs.tracking_cat or 'Ааптар туһунан сирэйэ суох айымньылар'
if not param or not args[param] or yesno(args[param .. '-nolink']) then
return
end
local lower_arg = string.lower(args[param])
local attr_data = headerAttribution.attr_data[param] or headerAttribution.attr_data[string.gsub(param, 'section%-', '')]
if attr_data and attr_data['special_cases'] and attr_data['special_cases'][lower_arg] then
return
end
-- check if page exists
local target = mw.title.makeTitle('Author', args[param])
-- expensive function!
if not target or not target.exists then
table.insert(categories, tracking_cat)
end
return
end
local function construct_categories(args, argsWithBlanks)
local categories = {}
-- categorize subpages
local title = current_title
local parent_exists = false
while title.isSubpage and not parent_exists do
title = mw.title.new(title.baseText, title.nsText)
parent_exists = title.exists
end
if parent_exists and title:inNamespaces(0) then
table.insert(categories, 'Subpages')
elseif parent_exists then
table.insert(categories, title.nsText .. ' subpages')
end
-- add categories from the categories parameter
local manual_categories = (args.categories and mw.text.split(args.categories, '%s*/%s*', false)) or {}
local using_cat = false
for i, category in ipairs(manual_categories) do
local cat = mw.text.trim(category)
if cat ~= '' then
table.insert(categories, cat)
using_cat = true
end
end
if using_cat then
table.insert(categories, 'Categories параметры туттар сирэйдэр')
end
local known_override_types = {
['default'] = 'contributor type',
['author'] = 'author',
['translator'] = 'translator',
['section-author'] = 'contributor'
}
for k, v in pairs(argsWithBlanks) do
-- Check for numerical parameters (which shouldn't be used)
if type(k) == 'number' then
table.insert(categories, 'Номмердаммыт параметрдаах үрдэ сирэйдэрэ')
-- Check for 'override-' parameters
elseif string.match(k, '^override%-') then
local contrib_type = string.gsub(k, '^override%-', '')
contrib_type = string.gsub(contrib_type, '%d*$', '')
table.insert(categories, 'Pages with override ' .. (known_override_types[contrib_type] or known_override_types['default']))
end
end
-- check contributor parameters
if args['section-author'] then
table.insert(categories, 'Редактордаах айымньылар')
end
local editor = args['override-editor'] or args['editor']
if editor and not args['nocat'] then
editor = string.lower(editor)
if editor == 'unknown' or editor == '?' then
table.insert(categories, 'Биллибэт редактордаах айымньылар')
elseif editor == 'not mentioned' then
table.insert(categories, 'Ыйыллыбатах редактордаах айымньылар')
end
end
local translator = args['override-translator'] or args['translator']
if translator and not args['nocat'] then
translator = string.lower(translator)
table.insert(categories, 'Тылбаасчыттаах айымньылар')
if translator == 'unknown' or translator == 'not mentioned' or translator == '?' then
table.insert(categories, 'Тылбаасчыта ыйыллыбатах тылбаастар')
end
end
local author = args['override-author'] or args['author']
if author and (string.lower(author) == 'unknown') and not args['nocat'] then
if args.template_name == 'Translation header' then
table.insert(categories, 'Анонимнай айымньылар тылбаастара')
else
table.insert(categories, 'Анонимнай айымньылар')
end
end
-- check for non-existent contributor pages
if current_title:inNamespaces(0, 103) or args.testing then
local params_to_check = {
{param = 'author'},
{param = 'editor'},
{param = 'translator'},
{param = 'composer', tracking_cat = 'Works with non-existent composer pages'},
{param = 'illustrator', tracking_cat = 'Works with non-existent illustrator pages'}
}
for k, v in pairs(params_to_check) do
check_non_existent_author_pages(args, categories, v)
check_non_existent_author_pages(args, categories, {param = 'section-' .. v.param, tracking_cat = v.tracking_cat})
end
end
if args['shortcut'] then
if current_title:inNamespaces(0) then
table.insert(categories, 'Mainspace pages with shortcuts')
elseif current_title:inNamespaces(114) then
table.insert(categories, 'Translation namespace pages with shortcuts')
end
end
if args['noyear'] then
table.insert(categories, 'Pages with noyear')
end
if args['noyearcat'] then
table.insert(categories, 'Pages with noyearcat')
end
if args['nolanguagecat'] then
table.insert(categories, 'Pages with nolanguagecat')
end
if args['cover'] then
table.insert(categories, 'Pages with an export cover')
end
-- sanity/maintenance checks on various parameters
-- allow-explicit-formatting parameter suppresses this check
-- used by, for example, [[Template:Versions]]
if not args['allow-explicit-formatting'] and (explicit_formatting(args['title']) or explicit_formatting(args['section'])) then
table.insert(categories, 'Pages with explicit formatting in header fields')
end
-- translation header categories
local isMainPage = ((current_title:inNamespaces(0, 103) and not current_title.isSubpage) or args['testing'])
if not args['nocat'] and isMainPage then
local cat_works_start = 'Works originally in'
local cat_translations_start = 'Translations'
if args.is_translation then
cat_works_start = 'Wikisource translations of works in'
cat_translations_start = 'Wikisource translations'
end
if not args['nolanguagecat'] then
if args['languages'] then
for i, lang in ipairs(args['languages']) do
table.insert(categories, headerLang.language_category_name(cat_works_start, lang, args.is_translation))
end
end
if args['interwiki-prefix'] then
local iw_prefix_parts = mw.text.split(args['interwiki-prefix'], ':', true)
table.insert(categories, headerLang.language_category_name(cat_works_start, iw_prefix_parts[1], args.is_translation))
end
end
if not args['languages'] and args['language-required'] then
table.insert(categories, cat_translations_start .. ' with no original language')
end
if args.template_name == 'Translation header' and not args.original then
table.insert(categories, 'Wikisource translations with no original source')
end
end
-- detect inappropriate template use
--[=[
if (args['template-name'] ~= 'Translation header' and translator and string.lower(translator) == 'wikisource')
or (current_title:inNamespaces(114) and args['template-name'] ~= 'Translation header') then
-- tracking category for pages that should be using translation header?
end
if current_title:inNamespaces(0) and args['template-name'] == 'Translation header' then
-- tracking category for translation header in mainspace?
end
]=]
categories = TableTools.removeDuplicates(categories)
local category_links = {}
for k, v in pairs(categories) do
table.insert(category_links, '[[Category:' .. v .. ']]')
end
local category_link_text = table.concat(category_links)
if args.testing then
category_link_text = mw.text.nowiki(category_link_text) .. category_link_text
end
return category_link_text
end
--[=[
For debugging
]=]
--[=[
function p.construct_categories(args)
return construct_categories(args, args)
end
]=]
--[=[
Assemble the title
]=]
local function header_title(args)
local title = args.title or ''
local titleSpan = tostring(mw.html.create('span'):addClass('wst-header-title-text'):wikitext(title))
local year = construct_year(args)
local attr = headerAttribution.construct_attributions(args)
local section = headerAttribution.construct_section(args)
if attr ~= '' and title ~= '' then
attr = tostring(mw.html.create('br'):addClass('wst-header-title-break')) .. attr
end
return table.concat({titleSpan, year, attr, section})
end
--[=[
[[Template:Header]]
]=]
function p._header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
-- aliases
local dup_cat
local newArgs = {}
local aliases = {
['section-author'] = 'contributor',
['section-translator'] = 'contributing%-translator'
}
for k, v in pairs(args) do
local newkey = string.lower(string.gsub(string.gsub(tostring(k), '_', '-'), ' ', '-'))
for arg, alias in pairs(aliases) do
newkey = string.gsub(newkey, alias, arg)
end
if newkey ~= tostring(k) then
if argsWithBlanks[newkey] then
dup_cat = 'Pages using duplicate arguments in template calls'
end
if not args[newkey] then
newArgs[newkey] = newArgs[newkey] or v
end
end
if newkey == 'testing' or newkey == 'nocat' or newkey == 'nolanguagecat' or newkey == 'language-required' or string.match(newkey, '%-nolink$') then
newArgs[newkey] = newArgs[newkey] or yesno(v)
end
end
for k, v in pairs(newArgs) do
args[k] = v
argsWithBlanks[k] = v
end
if dup_cat then
table.insert(categories, dup_cat)
end
args.sortkey = args.defaultsort or args.sortkey
-- default values
args.template_name = args.template_name or 'Header'
if args.testing == nil then
args.testing = current_title.fullText == 'Template:Header/testcases' or current_title.fullText == 'Template:Translation header/testcases'
end
-- noyearcat has different behavior for nil and false
args.noyearcat = args.noyearcat or args.nocat == true or nil
local language_res = headerLang.get_languages(args)
args.languages = language_res.languages
args.language_name = language_res.language_name
local section_language_res = headerLang.get_languages(args, 'section')
args.section_languages = section_language_res.languages
args.section_language_name = section_language_res.language_name
if not args['interwiki-prefix'] and args['languages'] then
if #(args['languages']) > 1 then
args['interwiki-prefix'] = 'mul'
else
args['interwiki-prefix'] = args['languages'][1]
end
end
if args['interwiki-prefix'] then
args['interwiki-prefix'] = headerLang['interwiki_prefixes'][args['interwiki-prefix']] or args['interwiki-prefix']
end
-- add values to argsWithBlanks
for k, v in pairs(args) do
if not argsWithBlanks[k] then
argsWithBlanks[k] = v
end
end
-- default values for title and section (allow override by setting to blank)
if not argsWithBlanks['title'] then
args['title'] = parent_links({})
argsWithBlanks['title'] = args['title']
end
if not argsWithBlanks['section'] and current_title.isSubpage then
args['section'] = current_title.subpageText
argsWithBlanks['section'] = args['section']
end
-- header args
args.pre_container = badge()
args.header_class = 'wst-header ws-header ws-noexport noprint dynlayout-exempt ' .. (args.header_class or '')
args.main_class = 'headertemplate'
-- title
args.main_title = header_title(args)
-- FIXME: just use Wikidata instead of interwiki links?
local interwiki = ''
if args.template_name == 'Translation header' and args['interwiki-prefix'] then
interwiki = tostring(mw.html.create('span'):addClass('interwiki-info'):attr('id', args['interwiki-prefix']):attr('title', '(original)'))
if args.original then
-- general interwiki link
interwiki = interwiki .. '[[' .. args['interwiki-prefix'] .. ':' .. args.original .. ']]'
end
end
args.post_notes = table.concat({
headerAttribution.construct_microformat(args),
construct_categories(args, argsWithBlanks),
construct_defaultsort(args),
interwiki
})
-- Check if page has copyvio div that needs closing
local copyvio_close = ''
local page_content = mw.title.getCurrentTitle():getContent()
if page_content and
page_content:find('<div id="copyvio"', 1, true) and
not page_content:find('{{copyvio/e}}', 1, true) and
not page_content:find('{{cv/e}}', 1, true) then
copyvio_close = '{{copyvio/e}}'
end
return get_noexport_stylesheet('Header') .. construct_header(args) .. copyvio_close
end
function p.header(frame)
return p._header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
--[=[
[[Template:Translation header]]
]=]
function p._translation_header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
args.header_class = 'wst-translation-header'
args.template_name = 'Translation header'
args.is_translation = true
args.notes_class = 'header-notes'
args['language-required'] = true
return get_noexport_stylesheet('Translation header') .. p._header(args, argsWithBlanks)
end
function p.translation_header(frame)
return p._translation_header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
return p
ja7cfnamjt0o9wv674efh4op4vwd65t
Модуль:TableTools
828
2444
9494
2026-06-22T13:38:15Z
Sauit
2200
"------------------------------------------------------------------------------------ -- TableTools -- -- -- -- This module includes a number of functions for dealing with Lua tables. -- -- It is a meta-module, meant to be called from other Lua modules, and should not -- -- be called directly from..." саҥа сирэй оҥоһулунна
9494
Scribunto
text/plain
------------------------------------------------------------------------------------
-- TableTools --
-- --
-- This module includes a number of functions for dealing with Lua tables. --
-- It is a meta-module, meant to be called from other Lua modules, and should not --
-- be called directly from #invoke. --
------------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local p = {}
-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
local checkTypeMulti = libraryUtil.checkTypeMulti
------------------------------------------------------------------------------------
-- isPositiveInteger
--
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
function p.isPositiveInteger(v)
return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity
end
------------------------------------------------------------------------------------
-- isNan
--
-- This function returns true if the given number is a NaN value, and false if
-- not. Although it doesn't operate on tables, it is included here as it is useful
-- for determining whether a value can be a valid table key. Lua will generate an
-- error if a NaN is used as a table key.
------------------------------------------------------------------------------------
function p.isNan(v)
return type(v) == 'number' and v ~= v
end
------------------------------------------------------------------------------------
-- shallowClone
--
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
------------------------------------------------------------------------------------
function p.shallowClone(t)
checkType('shallowClone', 1, t, 'table')
local ret = {}
for k, v in pairs(t) do
ret[k] = v
end
return ret
end
------------------------------------------------------------------------------------
-- removeDuplicates
--
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
------------------------------------------------------------------------------------
function p.removeDuplicates(arr)
checkType('removeDuplicates', 1, arr, 'table')
local isNan = p.isNan
local ret, exists = {}, {}
for _, v in ipairs(arr) do
if isNan(v) then
-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
ret[#ret + 1] = v
elseif not exists[v] then
ret[#ret + 1] = v
exists[v] = true
end
end
return ret
end
------------------------------------------------------------------------------------
-- numKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
function p.numKeys(t)
checkType('numKeys', 1, t, 'table')
local isPositiveInteger = p.isPositiveInteger
local nums = {}
for k in pairs(t) do
if isPositiveInteger(k) then
nums[#nums + 1] = k
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- affixNums
--
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return
-- {1, 3, 6}.
------------------------------------------------------------------------------------
function p.affixNums(t, prefix, suffix)
checkType('affixNums', 1, t, 'table')
checkType('affixNums', 2, prefix, 'string', true)
checkType('affixNums', 3, suffix, 'string', true)
local function cleanPattern(s)
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
end
prefix = prefix or ''
suffix = suffix or ''
prefix = cleanPattern(prefix)
suffix = cleanPattern(suffix)
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
local nums = {}
for k in pairs(t) do
if type(k) == 'string' then
local num = mw.ustring.match(k, pattern)
if num then
nums[#nums + 1] = tonumber(num)
end
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- numData
--
-- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table
-- of subtables in the format
-- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}.
-- Keys that don't end with an integer are stored in a subtable named "other". The
-- compress option compresses the table so that it can be iterated over with
-- ipairs.
------------------------------------------------------------------------------------
function p.numData(t, compress)
checkType('numData', 1, t, 'table')
checkType('numData', 2, compress, 'boolean', true)
local ret = {}
for k, v in pairs(t) do
local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
if num then
num = tonumber(num)
local subtable = ret[num] or {}
if prefix == '' then
-- Positional parameters match the blank string; put them at the start of the subtable instead.
prefix = 1
end
subtable[prefix] = v
ret[num] = subtable
else
local subtable = ret.other or {}
subtable[k] = v
ret.other = subtable
end
end
if compress then
local other = ret.other
ret = p.compressSparseArray(ret)
ret.other = other
end
return ret
end
------------------------------------------------------------------------------------
-- compressSparseArray
--
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
function p.compressSparseArray(t)
checkType('compressSparseArray', 1, t, 'table')
local ret = {}
local nums = p.numKeys(t)
for _, num in ipairs(nums) do
ret[#ret + 1] = t[num]
end
return ret
end
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
function p.sparseIpairs(t)
checkType('sparseIpairs', 1, t, 'table')
local nums = p.numKeys(t)
local i = 0
local lim = #nums
return function ()
i = i + 1
if i <= lim then
local key = nums[i]
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- size
--
-- This returns the size of a key/value pair table. It will also work on arrays,
-- but for arrays it is more efficient to use the # operator.
------------------------------------------------------------------------------------
function p.size(t)
checkType('size', 1, t, 'table')
local i = 0
for _ in pairs(t) do
i = i + 1
end
return i
end
local function defaultKeySort(item1, item2)
-- "number" < "string", so numbers will be sorted before strings.
local type1, type2 = type(item1), type(item2)
if type1 ~= type2 then
return type1 < type2
elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then
return tostring(item1) < tostring(item2)
else
return item1 < item2
end
end
------------------------------------------------------------------------------------
-- keysToList
--
-- Returns an array of the keys in a table, sorted using either a default
-- comparison function or a custom keySort function.
------------------------------------------------------------------------------------
function p.keysToList(t, keySort, checked)
if not checked then
checkType('keysToList', 1, t, 'table')
checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'})
end
local arr = {}
local index = 1
for k in pairs(t) do
arr[index] = k
index = index + 1
end
if keySort ~= false then
keySort = type(keySort) == 'function' and keySort or defaultKeySort
table.sort(arr, keySort)
end
return arr
end
------------------------------------------------------------------------------------
-- sortedPairs
--
-- Iterates through a table, with the keys sorted using the keysToList function.
-- If there are only numerical keys, sparseIpairs is probably more efficient.
------------------------------------------------------------------------------------
function p.sortedPairs(t, keySort)
checkType('sortedPairs', 1, t, 'table')
checkType('sortedPairs', 2, keySort, 'function', true)
local arr = p.keysToList(t, keySort, true)
local i = 0
return function ()
i = i + 1
local key = arr[i]
if key ~= nil then
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- isArray
--
-- Returns true if the given value is a table and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArray(v)
if type(v) ~= 'table' then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- isArrayLike
--
-- Returns true if the given value is iterable and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArrayLike(v)
if not pcall(pairs, v) then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- invert
--
-- Transposes the keys and values in an array. For example, {"a", "b", "c"} ->
-- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to
-- the index of the last duplicate) and NaN values are ignored.
------------------------------------------------------------------------------------
function p.invert(arr)
checkType("invert", 1, arr, "table")
local isNan = p.isNan
local map = {}
for i, v in ipairs(arr) do
if not isNan(v) then
map[v] = i
end
end
return map
end
------------------------------------------------------------------------------------
-- listToSet
--
-- Creates a set from the array part of the table. Indexing the set by any of the
-- values of the array returns true. For example, {"a", "b", "c"} ->
-- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them
-- never equal to any value (including other NaNs or even themselves).
------------------------------------------------------------------------------------
function p.listToSet(arr)
checkType("listToSet", 1, arr, "table")
local isNan = p.isNan
local set = {}
for _, v in ipairs(arr) do
if not isNan(v) then
set[v] = true
end
end
return set
end
------------------------------------------------------------------------------------
-- deepCopy
--
-- Recursive deep copy function. Preserves identities of subtables.
------------------------------------------------------------------------------------
local function _deepCopy(orig, includeMetatable, already_seen)
if type(orig) ~= "table" then
return orig
end
-- already_seen stores copies of tables indexed by the original table.
local copy = already_seen[orig]
if copy ~= nil then
return copy
end
copy = {}
already_seen[orig] = copy -- memoize before any recursion, to avoid infinite loops
for orig_key, orig_value in pairs(orig) do
copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen)
end
if includeMetatable then
local mt = getmetatable(orig)
if mt ~= nil then
setmetatable(copy, _deepCopy(mt, true, already_seen))
end
end
return copy
end
function p.deepCopy(orig, noMetatable, already_seen)
checkType("deepCopy", 3, already_seen, "table", true)
return _deepCopy(orig, not noMetatable, already_seen or {})
end
------------------------------------------------------------------------------------
-- sparseConcat
--
-- Concatenates all values in the table that are indexed by a number, in order.
-- sparseConcat{a, nil, c, d} => "acd"
-- sparseConcat{nil, b, c, d} => "bcd"
------------------------------------------------------------------------------------
function p.sparseConcat(t, sep, i, j)
local arr = {}
local arr_i = 0
for _, v in p.sparseIpairs(t) do
arr_i = arr_i + 1
arr[arr_i] = v
end
return table.concat(arr, sep, i, j)
end
------------------------------------------------------------------------------------
-- length
--
-- Finds the length of an array, or of a quasi-array with keys such as "data1",
-- "data2", etc., using an exponential search algorithm. It is similar to the
-- operator #, but may return a different value when there are gaps in the array
-- portion of the table. Intended to be used on data loaded with mw.loadData. For
-- other tables, use #.
-- Note: #frame.args in frame object always be set to 0, regardless of the number
-- of unnamed template parameters, so use this function for frame.args.
------------------------------------------------------------------------------------
function p.length(t, prefix)
-- requiring module inline so that [[Module:Exponential search]] which is
-- only needed by this one function doesn't get millions of transclusions
local expSearch = require("Module:Exponential search")
checkType('length', 1, t, 'table')
checkType('length', 2, prefix, 'string', true)
return expSearch(function (i)
local key
if prefix then
key = prefix .. tostring(i)
else
key = i
end
return t[key] ~= nil
end) or 0
end
------------------------------------------------------------------------------------
-- inArray
--
-- Returns true if searchElement is a member of the array, and false otherwise.
-- Equivalent to JavaScript array.includes(searchElement) or
-- array.includes(searchElement, fromIndex), except fromIndex is 1 indexed
------------------------------------------------------------------------------------
function p.inArray(array, searchElement, fromIndex)
checkType("inArray", 1, array, "table")
-- if searchElement is nil, error?
fromIndex = tonumber(fromIndex)
if fromIndex then
if (fromIndex < 0) then
fromIndex = #array + fromIndex + 1
end
if fromIndex < 1 then fromIndex = 1 end
for _, v in ipairs({unpack(array, fromIndex)}) do
if v == searchElement then
return true
end
end
else
for _, v in pairs(array) do
if v == searchElement then
return true
end
end
end
return false
end
------------------------------------------------------------------------------------
-- merge
--
-- Given the arrays, returns an array containing the elements of each input array
-- in sequence.
------------------------------------------------------------------------------------
function p.merge(...)
local arrays = {...}
local ret = {}
for i, arr in ipairs(arrays) do
checkType('merge', i, arr, 'table')
for _, v in ipairs(arr) do
ret[#ret + 1] = v
end
end
return ret
end
------------------------------------------------------------------------------------
-- extend
--
-- Extends the first array in place by appending all elements from the second
-- array.
------------------------------------------------------------------------------------
function p.extend(arr1, arr2)
checkType('extend', 1, arr1, 'table')
checkType('extend', 2, arr2, 'table')
for _, v in ipairs(arr2) do
arr1[#arr1 + 1] = v
end
end
return p
4n03zk6kcoeg4gz82mieeh94c1szcjy
Модуль:TableTools/doc
828
2445
9495
2026-06-22T13:38:40Z
Sauit
2200
"[[Категория:Модульдар]] Lua тылынан табылыыссалары оҥорорго аналлаах." саҥа сирэй оҥоһулунна
9495
wikitext
text/x-wiki
[[Категория:Модульдар]]
Lua тылынан табылыыссалары оҥорорго аналлаах.
n23bp0ncl18n6nm1t8cjf4wdvajylyn
9498
9495
2026-06-22T13:39:47Z
Sauit
2200
9498
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
Lua тылынан табылыыссалары оҥорорго аналлаах.
9lry494j24k9n7zoa2x0mu4x9aea2sa
Модуль:Header/doc
828
2446
9496
2026-06-22T13:39:00Z
Sauit
2200
"[[Категория:Модульдар]] [[Халыып:Үрдэ]] халыыпка аналлаах модуль." саҥа сирэй оҥоһулунна
9496
wikitext
text/x-wiki
[[Категория:Модульдар]]
[[Халыып:Үрдэ]] халыыпка аналлаах модуль.
en2r7e5p7gq2vlbsstwlr1dyh91z435
9497
9496
2026-06-22T13:39:21Z
Sauit
2200
9497
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
[[Халыып:Үрдэ]] халыыпка аналлаах модуль.
dhv5yci8hcl8x7e4fm4z0c5gw75qc0k
Модуль:Auto parents
828
2447
9499
2026-06-22T13:40:36Z
Sauit
2200
"require('strict') local p = {} --p stands for package local getArgs = require('Module:Arguments').getArgs local yesno = require('Module:Yesno') --[=[ Return a formatted list of links referring to the parents of the current page Parameters: * page: the page title to use, if not the current page name * display: an override display title to use for the top level. * no_links: if yes, do not link page titles * existing_links: if yes, check wheth..." саҥа сирэй оҥоһулунна
9499
Scribunto
text/plain
require('strict')
local p = {} --p stands for package
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
--[=[
Return a formatted list of links referring to the parents of the current page
Parameters:
* page: the page title to use, if not the current page name
* display: an override display title to use for the top level.
* no_links: if yes, do not link page titles
* existing_links: if yes, check whether pages exist before making them links
Example:
* page = A/B/C/D => [[A|A]], [[A/B|B]], [[A/B/C|C]]
* page = A/B/C, display=Foo => [[A|Foo]], [[A/B|B]]
]=]
function p._parent_links(args)
args = args or {}
local no_links = yesno(args.no_links or args['no links']) or false
local existing_links = yesno(args.existing_links or args['existing links']) or false
-- select override page name if given
local title
if args['page'] then
title = mw.title.new(args['page'])
else
title = mw.title.getCurrentTitle()
end
local title_text = title.prefixedText
-- the parts of the page title
local parts = mw.text.split(title_text, '/', true)
-- collected links for each parent
-- at the top level, substitute the work display name if needed
-- don't include namespace in link name
local links = {
args['display'] or title.rootText
}
if not no_links and (not existing_links or (existing_links and mw.title.new(parts[1]).exists)) then
links[1] = '[[' .. parts[1] .. '|' .. links[1] .. ']]'
end
-- count forwards from the second-highest level to the second-lowest
-- (the lowest level is the current page, not a parent)
for level = 2, #parts - 1, 1 do
local link_name = parts[level]
local link_target = table.concat(parts, '/', 1, level)
-- construct the link wikitext
local link
if no_links then
link = link_name
elseif existing_links then
if mw.title.new(link_target).exists then
link = '[[' .. link_target .. '|' .. link_name .. ']]'
else
link = link_name
end
else
link = '[[' .. link_target .. '|' .. link_name .. ']]'
end
table.insert(links, link)
end
return table.concat(links, ', ')
end
function p.parent_links(frame)
return p._parent_links(getArgs(frame))
end
return p
j7sn3m9vhy2mcu49o2fno3trbn54cc8
Модуль:Auto parents/doc
828
2448
9500
2026-06-22T13:41:17Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]] [[Module:Header|Header]] модульунан туттуллар" саҥа сирэй оҥоһулунна
9500
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
[[Module:Header|Header]] модульунан туттуллар
thq0t6q22491vsjcteub3y24v69tx64
Модуль:Header structure
828
2449
9501
2026-06-22T13:45:09Z
Sauit
2200
"--[=[ This is a module to implement logic for header templates ]=] require('strict') local p = {} --p stands for package local getArgs = require('Module:Arguments').getArgs local plain_sister = require('Module:Plain sister')._plain_sister -- return true if any value in list is not nil or empty in args -- (nil means not present; empty string is not nil) local function has_any_arg(args, list) for k, v in pairs(list) do if args[v] ~= nil then..." саҥа сирэй оҥоһулунна
9501
Scribunto
text/plain
--[=[
This is a module to implement logic for header templates
]=]
require('strict')
local p = {} --p stands for package
local getArgs = require('Module:Arguments').getArgs
local plain_sister = require('Module:Plain sister')._plain_sister
-- return true if any value in list is not nil or empty in args
-- (nil means not present; empty string is not nil)
local function has_any_arg(args, list)
for k, v in pairs(list) do
if args[v] ~= nil then
return true
end
end
return false
end
--[=[
Construct the main block
]=]
local function construct_main_block(args, prefix)
-- header and tracking categories
local main_div = mw.html.create('div')
:addClass('wst-header-mainblock')
:addClass(prefix .. '-mainblock')
-- If an extra main class was provided, add it
-- TODO: Is this used? Is it needed?
if args.main_class ~= nil and args.main_class ~= "" then
main_div:addClass(args.main_class)
end
-- "Previous" field
local prev_div = main_div:tag('div')
:addClass('wst-header-back')
:addClass('searchaux')
:addClass(prefix .. '-back')
:tag('div'):addClass('wst-header-back-arrow'):wikitext('←')
:done()
:tag('div'):addClass('wst-header-back-link'):wikitext(args['previous'])
:done()
if args['previous'] == nil or args['previous'] == "" then
prev_div:addClass('wst-header-nav-empty')
end
-- The central cell
local center_div = main_div:tag('div')
:addClass('wst-header-central-cell')
:addClass(prefix .. '-central-cell')
-- Special case to manage exceptional formatting in disambiguation-like
-- pages; not otherwise documented
local pretitle = ''
if args.pretitle then
local br = '<br/>'
if not args.main_title or args.main_title == '' then
br = ''
end
center_div:tag('span')
:addClass('wst-header-pretitle')
:wikitext(args.pretitle .. br)
end
center_div:tag('span')
:addClass('wst-header-title')
:addClass(prefix .. '-title')
:wikitext(args.main_title or '')
-- "Next" field
local next_div = main_div:tag('div')
:addClass('wst-header-forward')
:addClass('searchaux')
:addClass(prefix .. '-forward')
:tag('div'):addClass('wst-header-forward-link'):wikitext(args['next'])
:done()
:tag('div'):addClass('wst-header-forward-arrow'):wikitext('→')
:done()
if args['next'] == nil or args['next'] == "" then
next_div:addClass('wst-header-nav-empty')
end
return tostring(main_div)
end
--[=[
Construct the notes block
]=]
local function construct_notes_block(args, prefix)
local main_div = mw.html.create('div')
:addClass('wst-header-notes')
:addClass('header_notes')
:addClass('searchaux')
:addClass(prefix .. '-notes')
-- If an extra main class was provided, add it
-- TODO: Is this used? Is it needed?
if args.notes_class ~= nil and args.notes_class ~= "" then
main_div:addClass(args.notes_class)
end
-- Left-floated content has to come first, or it may float below the sisters.
local notes_left_content = ''
if args.notes_left_content then
local notes_left_content_div = mw.html.create('div')
:addClass('wst-header-left')
:addClass('header_notes_left_content')
:addClass(prefix .. '-left')
:wikitext(args.notes_left_content)
notes_left_content = tostring(notes_left_content_div)
end
local shortcut = ''
if args.shortcut then
shortcut = mw.getCurrentFrame():expandTemplate {
title = 'shortcut',
args = {args.shortcut}
}
end
local notes_content = ''
if args.notes then
args.notes = mw.getCurrentFrame():preprocess(args.notes)
-- linebreaks are so notes get paragraph formatting
local notes_content_div = mw.html.create('div')
:addClass('wst-header-content')
:addClass('header_notes_content')
:addClass('wst-header-notes-content')
:addClass(prefix .. '-notes-content')
:wikitext('\n' .. args.notes .. '\n')
notes_content = tostring(notes_content_div)
end
local sister = plain_sister(args)
if not sister and not args.notes and not args.notes_left_content then
return ''
end
return tostring(main_div:wikitext(notes_left_content .. (sister or '') .. shortcut .. notes_content))
end
--[=[
Construct header
]=]
function p.construct_header(args)
-- Make sure the main identifying class for the client template is set
local prefix = "wst-unknown"
if args.template ~= nil and args.template ~= "" then
prefix = "wst-" .. args.template
end
local headerContainer = mw.html.create('div')
:addClass("ws-header")
:addClass("wst-header-structure")
:addClass(prefix)
-- header_class from client modules, class from individual uses
if args.header_class then
headerContainer:addClass(args.header_class)
end
if args.class then
headerContainer:addClass(args.class)
end
headerContainer:wikitext(table.concat({
(args.pre_main or ''),
construct_main_block(args, prefix),
construct_notes_block(args, prefix),
(args.post_notes or '')
}))
local stylesheet = mw.getCurrentFrame():extensionTag('templatestyles', '', {src = 'Header structure/styles.css'})
return stylesheet .. (args.pre_container or '') .. tostring(headerContainer)
end
function p.header_structure(frame)
return p.construct_header(getArgs(frame))
end
return p
971hsxfdvcp7ud5w4balnss3cmkboio
Модуль:Header structure/doc
828
2450
9502
2026-06-22T13:45:23Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9502
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Модуль:Header structure/styles.css
828
2451
9503
2026-06-22T13:46:02Z
Sauit
2200
"/* Styles used by header templates (not just header) */ /* * main block */ /* The top level wrapper for the header main block. */ .wst-header-mainblock { margin: 4px auto 4px auto; padding: 0 3px; display: flex; align-items: center; } /* Common styles for back and forward links */ .wst-header-back, .wst-header-forward { display: flex; flex: 1 4 100%; min-width: min-content; align-items: center; font-size: .9em; } .wst-header-nav-empty..." саҥа сирэй оҥоһулунна
9503
sanitized-css
text/css
/* Styles used by header templates (not just header) */
/*
* main block
*/
/* The top level wrapper for the header main block. */
.wst-header-mainblock {
margin: 4px auto 4px auto;
padding: 0 3px;
display: flex;
align-items: center;
}
/* Common styles for back and forward links */
.wst-header-back, .wst-header-forward {
display: flex;
flex: 1 4 100%;
min-width: min-content;
align-items: center;
font-size: .9em;
}
.wst-header-nav-empty {
visibility: hidden;
}
/* The container for the back (previous) link. */
.wst-header-back {
justify-content: flex-start;
text-align: left;
}
/* The container for the central cell. */
.wst-header-central-cell {
flex: 4 1 100%;
max-width: max-content;
text-align: center;
}
/* The container for the forward (next) link. */
.wst-header-forward {
justify-content: flex-end;
text-align: right;
}
@media(max-width:768px) {
/* Put title on its own flexbox row */
.wst-header-mainblock {
flex-wrap:wrap;
}
.wst-header-central-cell {
flex:0 0 100%;
order:-2;
width:auto;
}
.wst-header-back, .wst-header-forward {
width:auto;
}
}
/*
* notes block
*/
/* The overall notes container. */
.wst-header-notes {
display:inline-block;
border-collapse:collapse;
border-spacing:0;
empty-cells:hide;
font-size:.9em;
line-height:1.4;
margin:0 auto 4px auto;
width:100%;
}
/* Left-floated content. */
.wst-header-left {
float:left;
}
endbvjhthg540or09glpy5cpeygobni
9504
9503
2026-06-22T13:46:31Z
Sauit
2200
9504
sanitized-css
text/css
/* Styles used by header templates (not just header) */
/*
* main block
*/
/* The top level wrapper for the header main block. */
.wst-header-mainblock {
margin: 4px auto 4px auto;
padding: 0 3px;
display: flex;
align-items: center;
}
/* Common styles for back and forward links */
.wst-header-back, .wst-header-forward {
display: flex;
flex: 1 4 100%;
min-width: min-content;
align-items: center;
font-size: .9em;
}
.wst-header-nav-empty {
visibility: hidden;
}
/* The container for the back (previous) link. */
.wst-header-back {
justify-content: flex-start;
text-align: left;
}
/* The container for the central cell. */
.wst-header-central-cell {
flex: 4 1 100%;
max-width: max-content;
text-align: center;
}
/* The container for the forward (next) link. */
.wst-header-forward {
justify-content: flex-end;
text-align: right;
}
@media(max-width:768px) {
/* Put title on its own flexbox row */
.wst-header-mainblock {
flex-wrap:wrap;
}
.wst-header-central-cell {
flex:0 0 100%;
order:-2;
width:auto;
}
.wst-header-back, .wst-header-forward {
width:auto;
}
}
/*
* notes block
*/
/* The overall notes container. */
.wst-header-notes {
display:inline-block;
border-collapse:collapse;
border-spacing:0;
empty-cells:hide;
font-size:.9em;
line-height:1.4;
margin:0 auto 4px auto;
width:100%;
}
/* Left-floated content. */
.wst-header-left {
float:left;
}
/* [[Категория:Бикитиэкэ:Модульдар:CSS]] */
23av3kaysvrh9skfwxu0x8bk9jjzxiq
9505
9504
2026-06-22T13:46:41Z
Sauit
2200
9505
sanitized-css
text/css
/* Styles used by header templates (not just header) */
/*
* main block
*/
/* The top level wrapper for the header main block. */
.wst-header-mainblock {
margin: 4px auto 4px auto;
padding: 0 3px;
display: flex;
align-items: center;
}
/* Common styles for back and forward links */
.wst-header-back, .wst-header-forward {
display: flex;
flex: 1 4 100%;
min-width: min-content;
align-items: center;
font-size: .9em;
}
.wst-header-nav-empty {
visibility: hidden;
}
/* The container for the back (previous) link. */
.wst-header-back {
justify-content: flex-start;
text-align: left;
}
/* The container for the central cell. */
.wst-header-central-cell {
flex: 4 1 100%;
max-width: max-content;
text-align: center;
}
/* The container for the forward (next) link. */
.wst-header-forward {
justify-content: flex-end;
text-align: right;
}
@media(max-width:768px) {
/* Put title on its own flexbox row */
.wst-header-mainblock {
flex-wrap:wrap;
}
.wst-header-central-cell {
flex:0 0 100%;
order:-2;
width:auto;
}
.wst-header-back, .wst-header-forward {
width:auto;
}
}
/*
* notes block
*/
/* The overall notes container. */
.wst-header-notes {
display:inline-block;
border-collapse:collapse;
border-spacing:0;
empty-cells:hide;
font-size:.9em;
line-height:1.4;
margin:0 auto 4px auto;
width:100%;
}
/* Left-floated content. */
.wst-header-left {
float:left;
}
/* [[Категория:Модульдар:CSS]] */
5qchfooixb00cyz5ey31mtqf9isg4xy
Модуль:Plain sister
828
2452
9506
2026-06-22T13:52:58Z
Sauit
2200
"require('strict') local p = {} local getArgs = require('Module:Arguments').getArgs local yesno = require('Module:Yesno') local TableTools = require('Module:TableTools') local error_message = require('Module:Error')['error'] -- table of site data local sites = { -- interwiki prefix: parameter, label and site id (for Wikidata) ['w'] = {'wikipedia', 'Бикипиэдьийэ ыстатыйата', 'enwiki'}, ['c'] = {'commons', '..." саҥа сирэй оҥоһулунна
9506
Scribunto
text/plain
require('strict')
local p = {}
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
local error_message = require('Module:Error')['error']
-- table of site data
local sites = {
-- interwiki prefix: parameter, label and site id (for Wikidata)
['w'] = {'wikipedia', 'Бикипиэдьийэ ыстатыйата', 'enwiki'},
['c'] = {'commons', 'Биики Хааһахха', 'commonswiki'},
['c:Category'] = {'commonscat', 'Биики Хааһах категорията', 'commonswiki'},
['q'] = {'wikiquote', 'сытааталар', 'enwikiquote'},
['n'] = {'wikinews', 'сонуннар', 'enwikinews'},
['wikt'] = {'wiktionary', 'быһаарыыта', 'enwiktionary'},
['b'] = {'wikibooks', 'кинигэ', 'enwikibooks'},
['v'] = {'wikiversity', 'курс', 'enwikiversity'},
['wikispecies'] = {'wikispecies', 'таксономия', 'specieswiki'},
['voy'] = {'wikivoyage', 'сирдьит', 'enwikivoyage'},
['d'] = {'wikidata', 'Wikidata элэмиэнэ', 'wikidatawiki'},
['m'] = {'meta', 'Мета', 'metawiki'}
}
-- sites is display order (keyed as above)
local sites_in_order = {'w', 'c', 'c:Category', 'q', 'n', 'wikt', 'b', 'v', 'wikispecies', 'voy', 'd', 'm'}
-- some properties are not wanted from certain transitive links
-- for example, the P921 (main topic) should not add the Commons category
-- this is a map of WD property -> WD site ID keys
local transitiveLinkBlacklist = {
P921 = {'commonswiki', 'wikiquote', 'wikinews', 'wiktionary', 'wikiversity', 'wikivoyage', 'meta'},
}
--------------------------------------------------------------------------------
-- Get the item associated with the current page, or specified by the 'wikidata'
-- parameter (of either the module invocation, or the parent template).
-- @return mw.wikibase.entity
local function getItem(args)
local item = nil
-- Firstly, see if the calling tempate or module has a 'wikidata' argument.
if args.wikidata then
item = mw.wikibase.getEntity(args.wikidata)
end
-- Failing that just use the current page's item.
if item == nil then
item = mw.wikibase.getEntity()
end
return item
end
--------------------------------------------------------------------------------
-- Get the page title of the first sitelink found on the target item for the
-- given property.
-- @return string|nil
local function getFirstSitelink(item, property, sitename)
local statements = item:getBestStatements(property)
if #statements > 0 then
-- Go through each 'edition of' statement.
for _, statement in pairs(statements) do
-- datavalue is missing if set to 'unknown value'
if statement['mainsnak']['datatype'] == 'wikibase-item'
and statement['mainsnak']['datavalue'] then
local otherItemId = statement['mainsnak']['datavalue']['value']['id']
local sitelink = mw.wikibase.getSitelink(otherItemId, sitename)
-- If the parent has the required sitelink, return it.
if sitelink ~= '' and sitelink ~= nil then
-- mw.log(sitename, property, sitelink)
return sitelink
end
end -- if
end
end
return nil
end
local function listContains(list, item)
for _, v in pairs(list) do
if v == item then
return true
end
end
return false
end
local function transitivePropertyBlacklisted(prop, wdSitelinkKey)
-- reject prop/key pairs that we don't want
local blacklisted = transitiveLinkBlacklist[prop] and
listContains(transitiveLinkBlacklist[prop], wdSitelinkKey)
return blacklisted
end
function p.getLinks(args)
local item = getItem(args)
local links = {}
-- Build all the wikitext links.
for prefix, site in pairs(sites) do
local val = nil
local wd_sitelink_key = site[3]
local arg_name = site[1]
-- Allow overriding of individual sitelinks.
if args[arg_name] then
val = args[arg_name]
end
if not val and wd_sitelink_key ~= '' and item then -- fetch it from wikidata
val = item:getSitelink(wd_sitelink_key)
if wd_sitelink_key == 'wikidatawiki' and item.id then
val = item.id
elseif wd_sitelink_key == 'commonswiki' and val then -- we have link to commons
local catFlag = (#val>9 and string.sub(val, 1, 9) == 'Category:')
if (arg_name == 'commonscat' and catFlag==false) or (arg_name=='commons' and catFlag==true) then
val = nil -- link is to a wrong namespace so let's nuke it
elseif (arg_name =='commonscat' and catFlag==true) then
val = string.sub(val,10) -- trim 'Category:' from the front
end
end
end
-- Commons gallery.
if not val and arg_name == 'commons' and item then
local statements = item:getBestStatements('P935') -- get commons gallery page from P935 property
if statements[1] and statements[1].mainsnak.datavalue then
val = statements[1].mainsnak.datavalue.value
end
end
-- Commons category.
if not val and arg_name == 'commonscat' and item then
local statements = item:getBestStatements('P373') -- get commons category page from P373 property
if statements[1] and statements[1].mainsnak.datavalue then
val = statements[1].mainsnak.datavalue.value
end
end
-- edition or translation of (P629)
-- category's main topic (P301)
-- Wikimedia portal's main topic (P1204)
-- main subject (P921)
if item then
for _,prop in pairs({ 'P629', 'P301', 'P1204', 'P921' }) do
if not val and not transitivePropertyBlacklisted(prop, wd_sitelink_key) then
local workSitelink = getFirstSitelink(item, prop, wd_sitelink_key)
if workSitelink ~= nil then
val = workSitelink
break
end
end
end
end
if val then
links[prefix] = val
end
end
-- tidy up redundancies in the WD data
-- strip redundant commons category prefix
if links['c:Category'] then
links['c:Category'] = links['c:Category']:gsub('^Category:', '')
end
-- the gallery is exactly the same as the category, so just keep the category
if links['c'] and links['c:Category']
and ('Category:' .. links['c:Category']) == links['c'] then
links['c'] = nil
end
return links
end
--------
local function construct_sisicon_span(args)
return mw.html.create('span')
:addClass(args.class or 'sisicon')
:wikitext('[[File:' .. args.image .. '|frameless|18px|link=' .. args.link .. '|alt=' .. args.alt .. ']]')
end
-- Get an HTML list of all links to all sister projects.
function p._interprojectPart(args)
local item = getItem(args)
local link_data = p.getLinks(args)
local links = {}
-- iterate the links in the desired order and construct Wikitext links
for k, v in pairs(sites_in_order) do
if link_data[v] then
local display = sites[v][2]
local target = v .. ':' .. link_data[v]
table.insert(links, '[[' .. target .. '|' .. display .. ']]')
end
end
if #links == 0 then -- links table length is zero
return nil
end
return mw.html.create('li')
:addClass('sisitem')
:node(construct_sisicon_span({
image = 'Wikimedia-logo.svg',
link = 'Special:sitematrix',
alt = 'Уруулуу бырайыактар'
}))
:wikitext('[[Special:sitematrix|Уруулуу бырайыактар]]: ' .. table.concat(links, ', '))
end
function p.interprojectPart(frame)
return p._interprojectPart(getArgs(frame))
end
local function construct_related_links(sourceArgs, linkArgs, sisiconArgs)
local links = {}
for k, v in pairs(sourceArgs) do
local key = string.gsub(string.gsub(string.gsub(string.gsub(k, ' ', ''), '_', ''), '-', ''), 's(%d*)$', '%1')
if string.match(key, '^' .. linkArgs.param .. '%d*$') then
local n = string.gsub(key, '^' .. linkArgs.param .. '(%d*)$', '%1')
n = tonumber(n) or 1
if not links[n] then
local items = mw.text.split(v, '%s*/%s*', false)
local itemLinks = {}
for _, item in pairs(items) do
if item ~= '' then
table.insert(itemLinks, '[[' .. linkArgs.nsPrefix .. item .. '|' .. item .. ']]')
end
end
links[n] = table.concat(itemLinks, ', ')
end
end
end
links = TableTools.compressSparseArray(links)
if #links == 0 then
return nil
end
return mw.html.create('li')
:addClass('sisitem')
:node(construct_sisicon_span(sisiconArgs))
:wikitext(linkArgs.linkPrefix .. table.concat(links, ', '))
end
function p._plain_sister(args)
local current_frame = mw.getCurrentFrame()
local current_title = mw.title.getCurrentTitle()
local pagename = current_title.text
local item = getItem(args)
-- construct list
local ul_list = mw.html.create('ul'):addClass('plainSister')
if yesno(args.disambiguation) then
local dabText = 'Search for titles ' .. tostring(mw.html.create('span'):addClass('selfreference'):wikitext('[[Special:Search/intitle:"' .. pagename .. '"|containing]]')) .. ' or '
if current_title:inNamespaces(14) then
dabText = dabText .. '[[Special:Categories/' .. pagename .. '|beginning]]'
elseif current_title:inNamespaces(0) then
dabText = dabText .. '[[Special:PrefixIndex/' .. current_title.fullText .. '|beginning]]'
else
dabText = dabText .. '[[Special:PrefixIndex/' .. current_title.fullText .. '|beginning (in ' .. current_title.nsText .. 's)]]'
end
dabText = dabText .. ' with: "' .. pagename .. '"'
ul_list:tag('li')
:addClass('dabitem')
:node(construct_sisicon_span({
image = 'Disambiguation.svg',
link = 'WS:STYLE#Disambiguation, versions and translations pages',
alt = 'Style Guide for disambiguation, version and translation pages',
class = 'dabicon'
}))
:wikitext(dabText)
end
local edition_title = (args.textinfotitle and mw.title.new(args.textinfotitle)) or (yesno(args.textinfo or args.edition) and current_title) or nil
local edition_title_talk = edition_title and edition_title.talkPageTitle
local tracking_cats = {}
if args.edition then
table.insert(tracking_cats, '[[Category:' .. 'Plain sisters using edition parameter' .. ']]')
end
local textinfo_display
if edition_title_talk and edition_title_talk.exists then
textinfo_display = '[[' .. edition_title_talk.fullText .. '|information about this edition]]'
elseif edition_title and not edition_title.exists then
textinfo_display = error_message({'Textinfo page \"' .. edition_title.fullText .. '\" does not exist'})
table.insert(tracking_cats, '[[Category:' .. 'Plain sisters with nonexistent textinfo page' .. ']]')
end
if textinfo_display then
ul_list:tag('li')
:addClass('sisitem')
:node(construct_sisicon_span({
image = 'Information icon.svg',
link = 'Template:Textinfo',
alt = 'Documentation for the TextInfo template',
}))
:wikitext(textinfo_display)
end
local portalLI = construct_related_links(
args,
{
param = 'portal',
nsPrefix = 'Portal:',
linkPrefix = '[[Portal:Portals|related portals]]: '
},
{
image = 'Wikisource-logo.svg',
link = 'Portal:Portals',
alt = 'Related Portals'
}
)
if portalLI then
ul_list:node(portalLI)
end
local authorLI = construct_related_links(
args,
{
param = 'relatedauthor',
nsPrefix = 'Author:',
linkPrefix = '[[Wikisource:Authors|related authors]]: '
},
{
image = 'System-users.svg',
link = 'Wikisource:Authors',
alt = 'Related Authors'
}
)
if authorLI then
ul_list:node(authorLI)
end
local workLI = construct_related_links(
args,
{
param = 'relatedwork',
nsPrefix = '',
linkPrefix = '[[Wikisource:Works|related works]]: '
},
{
image = 'Nuvola apps bookcase.svg',
link = 'Wikisource:Works',
alt = 'Related Works'
}
)
if workLI then
ul_list:node(workLI)
end
local sisters = p._interprojectPart(args)
if sisters then
ul_list:node(sisters)
end
if yesno(args.wikidataswitch) and not item then
ul_list:tag('li')
:addClass('sisitem')
:node(construct_sisicon_span({
image = 'Wikidata-logo.svg',
link = 'Wikisource:Wikidata',
alt = 'Wikidata',
}))
:wikitext('[[d:Special:Search/' .. pagename .. '|Wikidata`ҕа көрдөө]]')
end
if not yesno(args.disambiguation) and not textinfo_display and not portalLI and not authorLI and not workLI and not sisters and not yesno(args.wikidataswitch) then
return nil
end
return current_frame:extensionTag('templatestyles', '', {src = 'Plain sister/styles.css'}) .. tostring(ul_list) .. table.concat(tracking_cats)
end
function p.plain_sister(frame)
return p._plain_sister(getArgs(frame))
end
return p
-- Debug console testing:
-- =p.interprojectPart(mw.getCurrentFrame():newChild{title='nop',args={wikidata='Q23308118'}})
mjoyy1rahb048mcib4e0s8x9z071q1n
9510
9506
2026-06-22T14:00:56Z
Sauit
2200
9510
Scribunto
text/plain
require('strict')
local p = {}
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
local error_message = require('Module:Error')['error']
-- table of site data
local sites = {
-- interwiki prefix: parameter, label and site id (for Wikidata)
['w'] = {'wikipedia', 'Бикипиэдьийэ ыстатыйата', 'sahwiki'},
['c'] = {'commons', 'Биики Хааһахха', 'commonswiki'},
['c:Category'] = {'commonscat', 'Биики Хааһах категорията', 'commonswiki'},
['q'] = {'wikiquote', 'сытааталар', 'sahwikiquote'},
['n'] = {'wikinews', 'сонуннар', 'sahwikinews'},
['wikt'] = {'wiktionary', 'быһаарыыта', 'sahwiktionary'},
['b'] = {'wikibooks', 'кинигэ', 'sahwikibooks'},
['v'] = {'wikiversity', 'курс', 'sahwikiversity'},
['wikispecies'] = {'wikispecies', 'таксономия', 'specieswiki'},
['voy'] = {'wikivoyage', 'сирдьит', 'sahwikivoyage'},
['d'] = {'wikidata', 'Wikidata элэмиэнэ', 'wikidatawiki'},
['m'] = {'meta', 'Мета', 'metawiki'}
}
-- sites is display order (keyed as above)
local sites_in_order = {'w', 'c', 'c:Category', 'q', 'n', 'wikt', 'b', 'v', 'wikispecies', 'voy', 'd', 'm'}
-- some properties are not wanted from certain transitive links
-- for example, the P921 (main topic) should not add the Commons category
-- this is a map of WD property -> WD site ID keys
local transitiveLinkBlacklist = {
P921 = {'commonswiki', 'wikiquote', 'wikinews', 'wiktionary', 'wikiversity', 'wikivoyage', 'meta'},
}
--------------------------------------------------------------------------------
-- Get the item associated with the current page, or specified by the 'wikidata'
-- parameter (of either the module invocation, or the parent template).
-- @return mw.wikibase.entity
local function getItem(args)
local item = nil
-- Firstly, see if the calling tempate or module has a 'wikidata' argument.
if args.wikidata then
item = mw.wikibase.getEntity(args.wikidata)
end
-- Failing that just use the current page's item.
if item == nil then
item = mw.wikibase.getEntity()
end
return item
end
--------------------------------------------------------------------------------
-- Get the page title of the first sitelink found on the target item for the
-- given property.
-- @return string|nil
local function getFirstSitelink(item, property, sitename)
local statements = item:getBestStatements(property)
if #statements > 0 then
-- Go through each 'edition of' statement.
for _, statement in pairs(statements) do
-- datavalue is missing if set to 'unknown value'
if statement['mainsnak']['datatype'] == 'wikibase-item'
and statement['mainsnak']['datavalue'] then
local otherItemId = statement['mainsnak']['datavalue']['value']['id']
local sitelink = mw.wikibase.getSitelink(otherItemId, sitename)
-- If the parent has the required sitelink, return it.
if sitelink ~= '' and sitelink ~= nil then
-- mw.log(sitename, property, sitelink)
return sitelink
end
end -- if
end
end
return nil
end
local function listContains(list, item)
for _, v in pairs(list) do
if v == item then
return true
end
end
return false
end
local function transitivePropertyBlacklisted(prop, wdSitelinkKey)
-- reject prop/key pairs that we don't want
local blacklisted = transitiveLinkBlacklist[prop] and
listContains(transitiveLinkBlacklist[prop], wdSitelinkKey)
return blacklisted
end
function p.getLinks(args)
local item = getItem(args)
local links = {}
-- Build all the wikitext links.
for prefix, site in pairs(sites) do
local val = nil
local wd_sitelink_key = site[3]
local arg_name = site[1]
-- Allow overriding of individual sitelinks.
if args[arg_name] then
val = args[arg_name]
end
if not val and wd_sitelink_key ~= '' and item then -- fetch it from wikidata
val = item:getSitelink(wd_sitelink_key)
if wd_sitelink_key == 'wikidatawiki' and item.id then
val = item.id
elseif wd_sitelink_key == 'commonswiki' and val then -- we have link to commons
local catFlag = (#val>9 and string.sub(val, 1, 9) == 'Category:')
if (arg_name == 'commonscat' and catFlag==false) or (arg_name=='commons' and catFlag==true) then
val = nil -- link is to a wrong namespace so let's nuke it
elseif (arg_name =='commonscat' and catFlag==true) then
val = string.sub(val,10) -- trim 'Category:' from the front
end
end
end
-- Commons gallery.
if not val and arg_name == 'commons' and item then
local statements = item:getBestStatements('P935') -- get commons gallery page from P935 property
if statements[1] and statements[1].mainsnak.datavalue then
val = statements[1].mainsnak.datavalue.value
end
end
-- Commons category.
if not val and arg_name == 'commonscat' and item then
local statements = item:getBestStatements('P373') -- get commons category page from P373 property
if statements[1] and statements[1].mainsnak.datavalue then
val = statements[1].mainsnak.datavalue.value
end
end
-- edition or translation of (P629)
-- category's main topic (P301)
-- Wikimedia portal's main topic (P1204)
-- main subject (P921)
if item then
for _,prop in pairs({ 'P629', 'P301', 'P1204', 'P921' }) do
if not val and not transitivePropertyBlacklisted(prop, wd_sitelink_key) then
local workSitelink = getFirstSitelink(item, prop, wd_sitelink_key)
if workSitelink ~= nil then
val = workSitelink
break
end
end
end
end
if val then
links[prefix] = val
end
end
-- tidy up redundancies in the WD data
-- strip redundant commons category prefix
if links['c:Category'] then
links['c:Category'] = links['c:Category']:gsub('^Category:', '')
end
-- the gallery is exactly the same as the category, so just keep the category
if links['c'] and links['c:Category']
and ('Category:' .. links['c:Category']) == links['c'] then
links['c'] = nil
end
return links
end
--------
local function construct_sisicon_span(args)
return mw.html.create('span')
:addClass(args.class or 'sisicon')
:wikitext('[[File:' .. args.image .. '|frameless|18px|link=' .. args.link .. '|alt=' .. args.alt .. ']]')
end
-- Get an HTML list of all links to all sister projects.
function p._interprojectPart(args)
local item = getItem(args)
local link_data = p.getLinks(args)
local links = {}
-- iterate the links in the desired order and construct Wikitext links
for k, v in pairs(sites_in_order) do
if link_data[v] then
local display = sites[v][2]
local target = v .. ':' .. link_data[v]
table.insert(links, '[[' .. target .. '|' .. display .. ']]')
end
end
if #links == 0 then -- links table length is zero
return nil
end
return mw.html.create('li')
:addClass('sisitem')
:node(construct_sisicon_span({
image = 'Wikimedia-logo.svg',
link = 'Special:sitematrix',
alt = 'Уруулуу бырайыактар'
}))
:wikitext('[[Special:sitematrix|Уруулуу бырайыактар]]: ' .. table.concat(links, ', '))
end
function p.interprojectPart(frame)
return p._interprojectPart(getArgs(frame))
end
local function construct_related_links(sourceArgs, linkArgs, sisiconArgs)
local links = {}
for k, v in pairs(sourceArgs) do
local key = string.gsub(string.gsub(string.gsub(string.gsub(k, ' ', ''), '_', ''), '-', ''), 's(%d*)$', '%1')
if string.match(key, '^' .. linkArgs.param .. '%d*$') then
local n = string.gsub(key, '^' .. linkArgs.param .. '(%d*)$', '%1')
n = tonumber(n) or 1
if not links[n] then
local items = mw.text.split(v, '%s*/%s*', false)
local itemLinks = {}
for _, item in pairs(items) do
if item ~= '' then
table.insert(itemLinks, '[[' .. linkArgs.nsPrefix .. item .. '|' .. item .. ']]')
end
end
links[n] = table.concat(itemLinks, ', ')
end
end
end
links = TableTools.compressSparseArray(links)
if #links == 0 then
return nil
end
return mw.html.create('li')
:addClass('sisitem')
:node(construct_sisicon_span(sisiconArgs))
:wikitext(linkArgs.linkPrefix .. table.concat(links, ', '))
end
function p._plain_sister(args)
local current_frame = mw.getCurrentFrame()
local current_title = mw.title.getCurrentTitle()
local pagename = current_title.text
local item = getItem(args)
-- construct list
local ul_list = mw.html.create('ul'):addClass('plainSister')
if yesno(args.disambiguation) then
local dabText = 'Search for titles ' .. tostring(mw.html.create('span'):addClass('selfreference'):wikitext('[[Special:Search/intitle:"' .. pagename .. '"|containing]]')) .. ' or '
if current_title:inNamespaces(14) then
dabText = dabText .. '[[Special:Categories/' .. pagename .. '|beginning]]'
elseif current_title:inNamespaces(0) then
dabText = dabText .. '[[Special:PrefixIndex/' .. current_title.fullText .. '|beginning]]'
else
dabText = dabText .. '[[Special:PrefixIndex/' .. current_title.fullText .. '|beginning (in ' .. current_title.nsText .. 's)]]'
end
dabText = dabText .. ' with: "' .. pagename .. '"'
ul_list:tag('li')
:addClass('dabitem')
:node(construct_sisicon_span({
image = 'Disambiguation.svg',
link = 'WS:STYLE#Disambiguation, versions and translations pages',
alt = 'Style Guide for disambiguation, version and translation pages',
class = 'dabicon'
}))
:wikitext(dabText)
end
local edition_title = (args.textinfotitle and mw.title.new(args.textinfotitle)) or (yesno(args.textinfo or args.edition) and current_title) or nil
local edition_title_talk = edition_title and edition_title.talkPageTitle
local tracking_cats = {}
if args.edition then
table.insert(tracking_cats, '[[Category:' .. 'Plain sisters using edition parameter' .. ']]')
end
local textinfo_display
if edition_title_talk and edition_title_talk.exists then
textinfo_display = '[[' .. edition_title_talk.fullText .. '|information about this edition]]'
elseif edition_title and not edition_title.exists then
textinfo_display = error_message({'Textinfo page \"' .. edition_title.fullText .. '\" does not exist'})
table.insert(tracking_cats, '[[Category:' .. 'Plain sisters with nonexistent textinfo page' .. ']]')
end
if textinfo_display then
ul_list:tag('li')
:addClass('sisitem')
:node(construct_sisicon_span({
image = 'Information icon.svg',
link = 'Template:Textinfo',
alt = 'Documentation for the TextInfo template',
}))
:wikitext(textinfo_display)
end
local portalLI = construct_related_links(
args,
{
param = 'portal',
nsPrefix = 'Portal:',
linkPrefix = '[[Portal:Portals|related portals]]: '
},
{
image = 'Wikisource-logo.svg',
link = 'Portal:Portals',
alt = 'Related Portals'
}
)
if portalLI then
ul_list:node(portalLI)
end
local authorLI = construct_related_links(
args,
{
param = 'relatedauthor',
nsPrefix = 'Author:',
linkPrefix = '[[Wikisource:Authors|related authors]]: '
},
{
image = 'System-users.svg',
link = 'Wikisource:Authors',
alt = 'Related Authors'
}
)
if authorLI then
ul_list:node(authorLI)
end
local workLI = construct_related_links(
args,
{
param = 'relatedwork',
nsPrefix = '',
linkPrefix = '[[Wikisource:Works|related works]]: '
},
{
image = 'Nuvola apps bookcase.svg',
link = 'Wikisource:Works',
alt = 'Related Works'
}
)
if workLI then
ul_list:node(workLI)
end
local sisters = p._interprojectPart(args)
if sisters then
ul_list:node(sisters)
end
if yesno(args.wikidataswitch) and not item then
ul_list:tag('li')
:addClass('sisitem')
:node(construct_sisicon_span({
image = 'Wikidata-logo.svg',
link = 'Wikisource:Wikidata',
alt = 'Wikidata',
}))
:wikitext('[[d:Special:Search/' .. pagename .. '|Wikidata`ҕа көрдөө]]')
end
if not yesno(args.disambiguation) and not textinfo_display and not portalLI and not authorLI and not workLI and not sisters and not yesno(args.wikidataswitch) then
return nil
end
return current_frame:extensionTag('templatestyles', '', {src = 'Plain sister/styles.css'}) .. tostring(ul_list) .. table.concat(tracking_cats)
end
function p.plain_sister(frame)
return p._plain_sister(getArgs(frame))
end
return p
-- Debug console testing:
-- =p.interprojectPart(mw.getCurrentFrame():newChild{title='nop',args={wikidata='Q23308118'}})
l8xo6w5hukpb3c7yn99biu3sxcd5r72
Модуль:Plain sister/doc
828
2453
9507
2026-06-22T13:56:48Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9507
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Модуль:Error
828
2454
9508
2026-06-22T13:57:40Z
Sauit
2200
"local p = {} local function _error(args) local tag = mw.ustring.lower(tostring(args.tag or 'strong')) -- Work out what html tag we should use. if not (tag == 'p' or tag == 'span' or tag == 'div') then tag = 'strong' end -- Generate the html. return tostring(mw.html.create(tag) :addClass('error') :wikitext(tostring(args.message or args[1] or error('no message specified', 2))) ) end function p.error(frame) local args if type(fram..." саҥа сирэй оҥоһулунна
9508
Scribunto
text/plain
local p = {}
local function _error(args)
local tag = mw.ustring.lower(tostring(args.tag or 'strong'))
-- Work out what html tag we should use.
if not (tag == 'p' or tag == 'span' or tag == 'div') then
tag = 'strong'
end
-- Generate the html.
return tostring(mw.html.create(tag)
:addClass('error')
:wikitext(tostring(args.message or args[1] or error('no message specified', 2)))
)
end
function p.error(frame)
local args
if type(frame.args) == 'table' then
--[=[
We're being called via #invoke.
The args are passed through to the module from the template page,
so use the args that were passed into the template.
]=]
args = frame.args
else
--[=[
We're being called from another module or from the debug console,
so assume the args are passed in directly.
]=]
args = frame
end
--[=[
If the message parameter is present but blank, change it to nil.
]=]
if args.message == '' then
args.message = nil
end
return _error(args)
end
return p
a1gea716qmg6nkngecd84mcx7lrtpgc
Модуль:Error/doc
828
2455
9509
2026-06-22T13:57:51Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9509
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Модуль:Header/attribution
828
2456
9511
2026-06-22T14:02:19Z
Sauit
2200
"require('strict') local p = {} local yesno = require('Module:Yesno') local TableTools = require('Module:TableTools') local contrib_types = require('Module:Header/attribution data') local headerLang = require('Module:Header/lang') p.attr_data = {} for k, v in pairs(contrib_types) do p.attr_data[v['param_name']] = v end local function get_attribution_params(args) local all_contributors = { title = {}, section = {} } for k, v in pairs(ar..." саҥа сирэй оҥоһулунна
9511
Scribunto
text/plain
require('strict')
local p = {}
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
local contrib_types = require('Module:Header/attribution data')
local headerLang = require('Module:Header/lang')
p.attr_data = {}
for k, v in pairs(contrib_types) do
p.attr_data[v['param_name']] = v
end
local function get_attribution_params(args)
local all_contributors = {
title = {},
section = {}
}
for k, v in pairs(args) do
local base_param_name = string.gsub(string.gsub(k, '%-display$', ''), '%-nolink$', '')
local arg_param_name = string.gsub(base_param_name, '^override%-', '')
local param_name = string.gsub(arg_param_name, '%d*$', '')
local section_key
if string.match(arg_param_name, '^section%-') then
section_key = 'section'
param_name = string.gsub(param_name, '^section%-', '')
else
section_key = 'title'
end
if p['attr_data'][param_name] then
local param_name_pattern = '^' .. string.gsub(string.gsub(base_param_name, '%d*$', ''), '%-', '%%%-')
local nText = string.match(k, param_name_pattern .. '%d*$')
local nDisplay = string.match(k, param_name_pattern .. '%d*%-display$')
local nNoLink = string.match(k, param_name_pattern .. '%d*%-nolink$')
local n
local info
if nText then
n = string.gsub(nText, param_name_pattern .. '(%d*)$', '%1')
n = tonumber(n) or 1
info = 'text'
elseif nDisplay then
n = string.gsub(nDisplay, param_name_pattern .. '(%d*)%-display$', '%1')
n = tonumber(n) or 1
info = 'display'
elseif nNoLink then
n = string.gsub(nNoLink, param_name_pattern .. '(%d*)%-nolink$', '%1')
n = tonumber(n) or 1
info = 'nolink'
end
local index = p['attr_data'][param_name]['index']
all_contributors[section_key][index] = all_contributors[section_key][index] or {}
all_contributors[section_key][index]['param_name'] = all_contributors[section_key][index]['param_name'] or param_name
all_contributors[section_key][index]['arg_param_name'] = all_contributors[section_key][index]['arg_param_name'] or arg_param_name
all_contributors[section_key][index]['override'] = all_contributors[section_key][index]['override'] or args['override-' .. arg_param_name]
if n and not (args.is_translation and arg_param_name == 'translator' and info == 'text' and string.lower(v) == 'wikisource') then
all_contributors[section_key][index]['values'] = all_contributors[section_key][index]['values'] or {}
all_contributors[section_key][index]['values'][n] = all_contributors[section_key][index]['values'][n] or {}
all_contributors[section_key][index]['values'][n][info] = all_contributors[section_key][index]['values'][n][info] or v
end
end
end
if args.is_translation then
local index = p['attr_data']['translator']['index']
all_contributors['title'][index] = all_contributors['title'][index] or {}
all_contributors['title'][index]['param_name'] = all_contributors['title'][index]['param_name'] or 'translator'
all_contributors['title'][index]['arg_param_name'] = all_contributors['title'][index]['arg_param_name'] or 'translator'
all_contributors['title'][index]['override'] = all_contributors['title'][index]['override'] or nil
all_contributors['title'][index]['values'] = all_contributors['title'][index]['values'] or {}
table.insert(all_contributors['title'][index]['values'], {text = 'wikisource'})
end
local contributors = {
title = {},
section = {}
}
for section_key, section_values in pairs(all_contributors) do
for i, contrib in ipairs(TableTools.compressSparseArray(section_values)) do
local new_contrib = {}
for k, v in pairs(TableTools.shallowClone(contrib)) do
if k == 'values' then
new_contrib[k] = TableTools.compressSparseArray(v)
else
new_contrib[k] = v
end
end
table.insert(contributors[section_key], new_contrib)
end
end
return contributors
end
function p.get_attribution_params(args)
return get_attribution_params(args)
end
local function construct_attribution_span(args)
local aspan = mw.html.create('span')
:addClass('vcard')
:attr('id', 'header-' .. args.span_param_name .. '-text')
:tag('span'):addClass('fn'):wikitext(args.atext)
return tostring(mw.html.create('span')
:addClass('contributor-text')
:wikitext(args.prefix .. tostring(aspan))
)
end
local function construct_attribution(args)
local data = args.data
local param_name = data['param_name']
local span_param_name = param_name
local prefix = p['attr_data'][param_name]['prefix'] .. ' '
local is_section = args.is_section
if data['arg_param_name'] == 'section-author' then
span_param_name = 'contributor'
end
if data['arg_param_name'] == 'author' and data['override'] then
prefix = '' -- legacy parameter
elseif param_name == 'translator' and args.languages then
prefix = p['attr_data'][param_name]['language_prefix'](args.language_name or 'an undefined language') .. ' '
end
-- override (legacy parameter)
local atext = data['override']
if atext then
if args.is_translation and param_name == 'translator' then
atext = atext .. ' and ' .. p['attr_data'][param_name]['special_cases']['wikisource']
end
return construct_attribution_span({span_param_name = span_param_name, prefix = prefix, atext = atext, is_section = is_section})
end
local contributors = {}
for i, contributor in ipairs(data['values']) do
local text = contributor['text']
local display = contributor['display']
local nolink = yesno(contributor['nolink']) or false
if nolink then
table.insert(contributors, display or text)
elseif text then
local special = false
for k, v in pairs(p['attr_data'][param_name]['special_cases']) do
if string.lower(text) == k then
special = true
if type(v) == 'function' then
display = v(display)
else
display = v
end
break
end
end
if not special then
if not display then
display = string.gsub(text, ' %(.*%)$', '')
end
display = '[[Author:' .. text .. '|' .. display .. ']]'
end
if display then
table.insert(contributors, display)
end
else
mw.logObject(contributor)
end
end
if #contributors == 0 then
return nil
elseif #contributors == 1 then
atext = contributors[1]
else
atext = table.concat(contributors, ', ', 1, #contributors - 1) .. ' and ' .. contributors[#contributors]
end
-- Temporary check for illustrator in subpages.
-- TODO: remove once
-- [[Special:PermanentLink/14324127#Replace illustrator header parameter with section illustrator in subpages of works]]
-- has been addressed.
local cat = ''
if param_name == 'illustrator' and mw.title.getCurrentTitle().isSubpage and not is_section then
cat = '[[' .. 'Category:' .. 'Subpages using illustrator parameter' .. ']]'
end
local s = construct_attribution_span({span_param_name = span_param_name, prefix = prefix, atext = atext, is_section = is_section})
return s .. cat
end
function p.construct_attributions(args)
local attributions = {}
local a_args = TableTools.shallowClone(args)
local attr_params = get_attribution_params(args)['title']
for i, data in ipairs(attr_params) do
a_args['data'] = data
a_args['is_section'] = false
local atext = construct_attribution(a_args)
if atext then
table.insert(attributions, atext)
end
end
if #attributions == 0 then
return ''
end
return table.concat(attributions, ', ')
end
-- section
function p.construct_section(args)
local section_text = args['section']
if not section_text or section_text == '' then
return ''
end
local attributions = {}
local a_args = TableTools.shallowClone(args)
a_args.languages = a_args.section_languages or a_args.languages
a_args.language_name = a_args.section_language_name or a_args.language_name
local attr_params = get_attribution_params(args)['section']
for i, data in ipairs(attr_params) do
a_args['data'] = data
a_args['is_section'] = true
local atext = construct_attribution(a_args)
if atext then
table.insert(attributions, atext)
end
end
if #attributions > 0 then
local sep = ' '
if #attributions > 1 then
sep = '<br/>'
end
section_text = section_text .. sep .. table.concat(attributions, ', ')
end
return tostring(mw.html.create('div')
:addClass('header-section-text')
:wikitext(section_text)
)
end
--[=[
Construct the [[Help:Microformat]] for the page.
This is in the form:
<div id="ws-data" ...>
<span id="ws-title">Title here...</span>
...
<div>
]=]
function p.construct_microformat(args)
local mf_div = mw.html.create('div')
:addClass('ws-noexport')
:attr('id', 'ws-data')
:css({speak = 'none'})
-- override to show the microformat
if yesno(args['show-microformat']) then
mf_div:addClass('ws-data-show')
end
-- collect the MF values here
local mf = {};
-- page ID
mf['ws-article-id'] = mw.title.getCurrentTitle().id
-- title
if args['title'] then
mf['ws-title'] = args['title']
-- append section if there is one
if args['section'] then
mf['ws-title'] = mf['ws-title'] .. " — " .. args['section']
end
end
-- year
mf['ws-year'] = args['year']
-- cover
mf['ws-cover'] = args['cover']
-- use section values if available, otherwise use work values
local attr_params = get_attribution_params(args)
local joined_attr_params = {}
for i, section_key in ipairs({'section', 'title'}) do
for i, data in ipairs(attr_params[section_key]) do
local index = p['attr_data'][data['param_name']]['index']
joined_attr_params[index] = joined_attr_params[index] or data
end
end
joined_attr_params = TableTools.compressSparseArray(joined_attr_params)
for i, data in ipairs(joined_attr_params) do
local atext = data['override']
local ws_translator = args.template_name == 'Translation header' and data['param_name'] == 'translator'
if atext and ws_translator then
atext = atext .. ' and Wikisource'
elseif not atext then
local attr_text = {}
for i, values in ipairs(data['values']) do
local display = values['text']
local special = false
if values['text'] then
for k, v in pairs(p['attr_data'][data['param_name']]['special_cases']) do
if string.lower(values['text']) == k then
special = true
if k == 'anon' or k == 'anonymous' then
display = 'Anonymous'
elseif k == 'wikisource' then
display = 'Wikisource'
elseif type(v) == 'function' then
display = v(display)
else
display = v
end
break
end
end
else
mw.logObject(values)
end
table.insert(attr_text, display)
end
if #attr_text == 1 then
atext = attr_text[1]
elseif #attr_text > 1 then
atext = table.concat(attr_text, ', ', 1, #attr_text - 1) .. ' and ' .. attr_text[#attr_text]
end
end
if atext then
mf['ws-' .. data['param_name']] = atext
end
end
for k, v in pairs(mf) do
mf_div:tag('span'):attr('id', k):wikitext(v)
end
return tostring(mf_div)
end
return p
88ntodpl1jelxio2hv60fb0mxadl2cp
Модуль:Header/attribution/doc
828
2457
9512
2026-06-22T14:02:31Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9512
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Модуль:Header/attribution data
828
2458
9513
2026-06-22T14:05:36Z
Sauit
2200
"require('strict') local function anon(text) text = text or 'Аноним' local cat = '' if mw.title.getCurrentTitle():inNamespaces(0, 114) then cat = '[[Category:' .. 'Биллибэт ааптардаах' .. ']]' end return '[[Бикитиэкэ:Анонимнай тиэкистэр|' .. text .. ']]' .. cat end local function anon_nocat(text) return '[[Бикитиэкэ:Анонимнай тиэкистэр|' .. (text or 'Аноним..." саҥа сирэй оҥоһулунна
9513
Scribunto
text/plain
require('strict')
local function anon(text)
text = text or 'Аноним'
local cat = ''
if mw.title.getCurrentTitle():inNamespaces(0, 114) then
cat = '[[Category:' .. 'Биллибэт ааптардаах' .. ']]'
end
return '[[Бикитиэкэ:Анонимнай тиэкистэр|' .. text .. ']]' .. cat
end
local function anon_nocat(text)
return '[[Бикитиэкэ:Анонимнай тиэкистэр|' .. (text or 'Аноним') .. ']]'
end
local contrib_types = {
{noun = 'ааптар'},
{noun = 'attributed to', prefix = 'attributed to', special_cases = {}},
{noun = 'adapter', prefix = 'adapted by'},
{noun = 'abridger', prefix = 'abridged by'},
{noun = 'illustrator', prefix = 'illustrated by'},
{noun = 'director', prefix = 'directed by'},
{noun = 'lyricist', prefix = 'lyrics by'},
{noun = 'librettist', prefix = 'libretto by'},
{
noun = 'book by',
prefix = 'book by',
special_cases = {
['?'] = 'unknown author',
['unknown'] = 'unknown author',
['not mentioned'] = 'unknown author',
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various authors'
}
},
{noun = 'composer', prefix = 'composed by'},
{noun = 'arranger', prefix = 'arranged by'},
{
noun = 'translator',
prefix = 'translated by',
language_prefix = function(language_name)
return 'translated from ' .. language_name .. ' by'
end,
special_cases = {
['?'] = 'unknown translator',
['unknown'] = 'unknown translator',
['not mentioned'] = 'unknown translator',
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various translators',
['wikisource'] = '[[Wikisource:Translations|Wikisource]]'
}
},
{
noun = 'editor',
prefix = 'edited by',
special_cases = {
['?'] = 'unknown editor',
['unknown'] = 'unknown editor',
['not mentioned'] = 'unknown editor',
['anon'] = anon_nocat,
['anonymous'] = anon_nocat,
['various'] = 'various editors'
}
},
{noun = 'compiler', prefix = 'compiled by'}
}
for i = 1, #contrib_types do
local noun = contrib_types[i]['noun']
contrib_types[i]['param_name'] = contrib_types[i]['param_name'] or string.gsub(noun, ' ', '-')
contrib_types[i]['special_cases'] = contrib_types[i]['special_cases'] or {
['?'] = 'unknown ' .. noun,
['unknown'] = 'unknown ' .. noun,
['not mentioned'] = 'unknown ' .. noun,
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various ' .. noun .. 's'
}
contrib_types[i]['index'] = i
end
return contrib_types
sx39qo8lsbcan8o0h5pwoifx2siqvkd
9536
9513
2026-06-22T14:23:56Z
Sauit
2200
9536
Scribunto
text/plain
require('strict')
local function anon(text)
text = text or 'Аноним'
local cat = ''
if mw.title.getCurrentTitle():inNamespaces(0, 114) then
cat = '[[Category:' .. 'Биллибэт ааптардаах' .. ']]'
end
return '[[Бикитиэкэ:Анонимнай тиэкистэр|' .. text .. ']]' .. cat
end
local function anon_nocat(text)
return '[[Бикитиэкэ:Анонимнай тиэкистэр|' .. (text or 'Аноним') .. ']]'
end
local contrib_types = {
{noun = 'author', prefix = '' },
{noun = 'attributed to', prefix = 'attributed to', special_cases = {}},
{noun = 'adapter', prefix = 'adapted by'},
{noun = 'abridger', prefix = 'abridged by'},
{noun = 'illustrator', prefix = 'illustrated by'},
{noun = 'director', prefix = 'directed by'},
{noun = 'lyricist', prefix = 'lyrics by'},
{noun = 'librettist', prefix = 'libretto by'},
{
noun = 'book by',
prefix = 'book by',
special_cases = {
['?'] = 'unknown author',
['unknown'] = 'unknown author',
['not mentioned'] = 'unknown author',
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various authors'
}
},
{noun = 'composer', prefix = 'composed by'},
{noun = 'arranger', prefix = 'arranged by'},
{
noun = 'translator',
prefix = 'translated by',
language_prefix = function(language_name)
return 'translated from ' .. language_name .. ' by'
end,
special_cases = {
['?'] = 'unknown translator',
['unknown'] = 'unknown translator',
['not mentioned'] = 'unknown translator',
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various translators',
['wikisource'] = '[[Wikisource:Translations|Wikisource]]'
}
},
{
noun = 'editor',
prefix = 'edited by',
special_cases = {
['?'] = 'unknown editor',
['unknown'] = 'unknown editor',
['not mentioned'] = 'unknown editor',
['anon'] = anon_nocat,
['anonymous'] = anon_nocat,
['various'] = 'various editors'
}
},
{noun = 'compiler', prefix = 'compiled by'}
}
for i = 1, #contrib_types do
local noun = contrib_types[i]['noun']
contrib_types[i]['param_name'] = contrib_types[i]['param_name'] or string.gsub(noun, ' ', '-')
contrib_types[i]['special_cases'] = contrib_types[i]['special_cases'] or {
['?'] = 'unknown ' .. noun,
['unknown'] = 'unknown ' .. noun,
['not mentioned'] = 'unknown ' .. noun,
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various ' .. noun .. 's'
}
contrib_types[i]['index'] = i
end
return contrib_types
0suvo4q4cmdcl24yvs7e4usmaufc82f
Модуль:Header/attribution data/doc
828
2459
9514
2026-06-22T14:05:52Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9514
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Модуль:Header/lang
828
2460
9515
2026-06-22T14:06:37Z
Sauit
2200
"require('strict') local p = {} local ISO_639_language_name = require('Module:ISO 639').language_name local TableTools = require('Module:TableTools') p.project_language = mw.language.getContentLanguage().code p.project_language_name = ISO_639_language_name(p.project_language) p.interwiki_prefixes = { ['grc'] = 'el', ['ang'] = 'ang:' .. p.project_language, ['enm'] = 'enm:' .. p.project_language, ['sco'] = 'sco:' .. p.project_language } --[=[..." саҥа сирэй оҥоһулунна
9515
Scribunto
text/plain
require('strict')
local p = {}
local ISO_639_language_name = require('Module:ISO 639').language_name
local TableTools = require('Module:TableTools')
p.project_language = mw.language.getContentLanguage().code
p.project_language_name = ISO_639_language_name(p.project_language)
p.interwiki_prefixes = {
['grc'] = 'el',
['ang'] = 'ang:' .. p.project_language,
['enm'] = 'enm:' .. p.project_language,
['sco'] = 'sco:' .. p.project_language
}
--[=[
Construct the automatic categories for the header
]=]
function p.language_category_name(cat_works_start, lang, is_translation)
local cat_language_name = ISO_639_language_name(lang) or 'an undefined language'
if lang == 'el' then
cat_language_name = 'Modern Greek'
elseif lang == p.project_language and not is_translation then
cat_language_name = 'explicitly cited ' .. p.project_language_name
end
return cat_works_start .. ' ' .. cat_language_name
end
function p.get_languages(args, prefix)
prefix = (prefix and prefix .. '%-') or ''
-- language handling
local languages = {}
for k, v in pairs(args) do
local n
local nText = string.match(k, '^' .. prefix .. 'language%d*$') or string.match(k, '^' .. prefix .. 'lang%d*$')
if nText and type(v) == 'string' then
n = string.gsub(string.gsub(nText, 'language', ''), 'lang', '')
n = tonumber(n) or 1
languages[n] = mw.text.split(v, '%s*,%s*')
end
end
languages = TableTools.compressSparseArray(languages)
if #languages == 0 then
return {}
end
local flat_languages = {}
local language_name
local language_names = {}
for i, langs in ipairs(languages) do
for j, lang in ipairs(langs) do
table.insert(flat_languages, lang)
local name = ISO_639_language_name(lang)
if name then
table.insert(language_names, name)
end
end
end
if #language_names == 1 then
language_name = language_names[1]
elseif #language_names > 1 then
language_name = table.concat(language_names, ', ', 1, #language_names - 1) .. ' and ' .. language_names[#language_names]
end
return {
languages = flat_languages,
language_name = language_name
}
end
return p
qsmse5pmpoijw807kl1pbdmrr05kxaz
Модуль:Header/lang/doc
828
2461
9516
2026-06-22T14:06:51Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9516
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Модуль:ISO 639
828
2462
9517
2026-06-22T14:08:16Z
Sauit
2200
"require('strict') local p = {} local getArgs = require('Module:Arguments').getArgs local warn = require('Module:Warning') local languageNameOverrides = mw.loadData('Module:ISO 639/overrides') --[=[ Get the language name, in English, for a given ISO 639 (-1, -2 or -3) code Returns nil if the language is not in the lookup tables. ]=] function p.language_name(code, failValue) -- Only continue if we get passed a non-empty string for the code para..." саҥа сирэй оҥоһулунна
9517
Scribunto
text/plain
require('strict')
local p = {}
local getArgs = require('Module:Arguments').getArgs
local warn = require('Module:Warning')
local languageNameOverrides = mw.loadData('Module:ISO 639/overrides')
--[=[
Get the language name, in English, for a given ISO 639 (-1, -2 or -3) code
Returns nil if the language is not in the lookup tables.
]=]
function p.language_name(code, failValue)
-- Only continue if we get passed a non-empty string for the code param
if code == nil or code == '' then
warn('No ISO code provided to [[Module:ISO 639]]')
return failValue
elseif type(code) ~= 'string' then
warn('ISO code \"' .. tostring(code) .. '\" is not a string')
return failValue
end
-- If we have a local override, apply it
local language = languageNameOverrides[code]
-- Otherwise, ask MediaWiki for the language name in English for this code
if language == nil or language == '' then
language = mw.language.fetchLanguageName(code, 'en')
end
-- If we got no name from MediaWiki and have no override for this code,
-- load the big honkin' local lookup table and check there.
if language == nil or language == '' then
local localLanguageNames = mw.loadData('Module:ISO 639/local')
language = localLanguageNames[code]
end
-- If we found a non-empty lang name we return it.
if language ~= nil and language ~= '' then
return language
end
-- otherwise we return the failure value
warn('ISO code \"' .. code .. '\" not recognized by [[Module:ISO 639]]')
return failValue
end
--[=[
Implements [[Template:ISO 639 name]]
]=]
function p.ISO_639_name(frame)
local args = getArgs(frame)
return p.language_name(args[1] or args.code, '[[Category:' .. 'ISO 639 name template errors' .. ']]')
end
return p
3tr0b4bhq6112dvnq0at9vsygu80pd6
Модуль:ISO 639/doc
828
2463
9518
2026-06-22T14:08:36Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9518
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Модуль:ISO 639/overrides
828
2464
9519
2026-06-22T14:09:10Z
Sauit
2200
"return { ["ab"] = "Abkhaz", ["acm"] = "Mesopotamian Arabic", ["als"] = "Tosk Albanian", ["bn"] = "Bengali", ["bpy"] = "Bishnupriya Manipuri", ["cdo"] = "Min Dong", ["cu"] = "Church Slavonic", ["dga"] = "Southern Dagaare", ["diq"] = "Dimli", ["dv"] = "Dhivehi", ["fiu-vro"] = "Võro", ["frp"] = "Franco-Provençal", ["gcr"] = "Guianese Creole", ["gur"] = "Farefare", ["ii"] = "Nuosu", ["kaa"] = "Karakalpak", ["kj"] = "Kwanyama", ["krj..." саҥа сирэй оҥоһулунна
9519
Scribunto
text/plain
return {
["ab"] = "Abkhaz",
["acm"] = "Mesopotamian Arabic",
["als"] = "Tosk Albanian",
["bn"] = "Bengali",
["bpy"] = "Bishnupriya Manipuri",
["cdo"] = "Min Dong",
["cu"] = "Church Slavonic",
["dga"] = "Southern Dagaare",
["diq"] = "Dimli",
["dv"] = "Dhivehi",
["fiu-vro"] = "Võro",
["frp"] = "Franco-Provençal",
["gcr"] = "Guianese Creole",
["gur"] = "Farefare",
["ii"] = "Nuosu",
["kaa"] = "Karakalpak",
["kj"] = "Kwanyama",
["krj"] = "Karay-a",
["kus"] = "Kusaal",
["lad"] = "Judaeo-Spanish",
["lg"] = "Luganda",
["map-bms"] = "Banyumasan",
["nah"] = "Nahuatl",
["nan"] = "Southern Min",
["new"] = "Newar",
["nit"] = "Naiki",
["nqo"] = "N'Ko",
["nrm"] = "Narom",
["ny"] = "Chewa",
["nys"] = "Noongar",
["pi"] = "Pāli",
["pih"] = "Pitkern",
["rif"] = "Tmazight",
["rki"] = "Rakhine",
["st"] = "Sotho",
["tay"] = "Atayal",
["trv"] = "Seediq",
["vmf"] = "East Franconian",
["wal"] = "Wolaitta",
["zh-min-nan"] = "Southern Min"
}
thn706ro24wcxcx8wd6f0rlhfux9u0q
Модуль:ISO 639/overrides/doc
828
2465
9520
2026-06-22T14:09:24Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9520
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Модуль:Warning
828
2466
9521
2026-06-22T14:10:04Z
Sauit
2200
"local libraryUtil = require('libraryUtil') local wrapper = "%s" -- wikitext formatting local msg_loc = "Lua warning in %s at line %d: %s." local msg = "Lua warning: %s." return function (message, level) libraryUtil.checkType('warn', 2, level, 'number', true) level = level or 1 if level > 0 then local _, location = pcall(error, '', level+2) if location ~= '' then location = mw.text.split(location:sub(1,-3), ':%f[%d]') message = msg_lo..." саҥа сирэй оҥоһулунна
9521
Scribunto
text/plain
local libraryUtil = require('libraryUtil')
local wrapper = "%s" -- wikitext formatting
local msg_loc = "Lua warning in %s at line %d: %s."
local msg = "Lua warning: %s."
return function (message, level)
libraryUtil.checkType('warn', 2, level, 'number', true)
level = level or 1
if level > 0 then
local _, location = pcall(error, '', level+2)
if location ~= '' then
location = mw.text.split(location:sub(1,-3), ':%f[%d]')
message = msg_loc:format(location[1], location[2], message)
else
message = msg:format(message)
end
else
message = msg:format(message)
end
mw.addWarning(wrapper:format(message))
end
6n5nxfk4xtrlul0szoxeogpa9uj1ggn
Модуль:Warning/doc
828
2467
9522
2026-06-22T14:10:16Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9522
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Модуль:Header/sort
828
2468
9523
2026-06-22T14:10:51Z
Sauit
2200
"require('strict') local p = {} local getArgs = require('Module:Arguments').getArgs local yesno = require('Module:Yesno') --[=[ Generate a {{DEFAULTSORT}} magic word according to the defaultsort parameter ]=] function p._construct_defaultsort(args) local defsortKey local title = mw.title.getCurrentTitle().text if args.sortkey then defsortKey = args.sortkey else -- construct defaultsort automatically by stripping A/An/The as needed loc..." саҥа сирэй оҥоһулунна
9523
Scribunto
text/plain
require('strict')
local p = {}
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
--[=[
Generate a {{DEFAULTSORT}} magic word according to the defaultsort parameter
]=]
function p._construct_defaultsort(args)
local defsortKey
local title = mw.title.getCurrentTitle().text
if args.sortkey then
defsortKey = args.sortkey
else
-- construct defaultsort automatically by stripping A/An/The as needed
local title_table = mw.text.split(title, '/')
local sorted_title
local sorted_title_table = {}
local articles = {'A', 'An', 'The'}
for k, part in pairs(title_table) do
local sorted_part = part
local disambig = string.match(sorted_part, ' %(.*%)$')
if disambig then
sorted_part = string.gsub(sorted_part, ' %(.*%)$', '')
else
disambig = ''
end
for j, article in pairs(articles) do
if string.len(sorted_part) > string.len(article) and string.sub(sorted_part, 1, string.len(article) + 1) == (article .. ' ') then
sorted_part = string.sub(sorted_part, string.len(article) + 2) .. ', ' .. article .. disambig
break
end
end
table.insert(sorted_title_table, sorted_part)
end
defsortKey = table.concat(sorted_title_table, '/')
if defsortKey == title then
defsortKey = nil
end
end
-- if a suitable key is found or constructed, apply it
if defsortKey == title then
return args.equalsortcat or ''
elseif defsortKey then
return mw.getCurrentFrame():callParserFunction('DEFAULTSORT', {defsortKey}) .. (args.diffsortcat or '')
end
-- otherwise, don't do anything and use the default
return ''
end
function p.construct_defaultsort(frame)
return p._construct_defaultsort(getArgs(frame))
end
return p
1n19hnqrhvczpbubuuf59ozzv3lkchj
Модуль:Header/sort/doc
828
2469
9524
2026-06-22T14:11:03Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9524
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Модуль:Header/year
828
2470
9525
2026-06-22T14:13:14Z
Sauit
2200
"--[=[ Construct the year span --]=] require('strict') local p = {} --p stands for package local yesno = require('Module:Yesno') local TableTools = require('Module:TableTools') --[=[ Year properties: { year = integer, precision = integer, circa = boolean, bce = boolean, uncertain = boolean, unknown = boolean, unrecognised = boolean, display = string, start_year = year, end_year = year, year_list = year } ]=] --[=[ Precision:..." саҥа сирэй оҥоһулунна
9525
Scribunto
text/plain
--[=[
Construct the year span
--]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
--[=[
Year properties:
{
year = integer,
precision = integer,
circa = boolean,
bce = boolean,
uncertain = boolean,
unknown = boolean,
unrecognised = boolean,
display = string,
start_year = year,
end_year = year,
year_list = year
}
]=]
--[=[ Precision:
0 - billion years
1 - hundred million years,
2 - ten million years,
3 - million years,
4 - hundred thousand years,
5 - ten thousand years,
6 - millenia,
7 - centuries,
8 - decades,
9 - years,
10 - months,
11 - days
12 - hours
13 - minutes
14 - seconds
]=]
local currentyear = {
year = tonumber(os.date('%Y')),
precision = 9,
circa = false,
bce = false,
display = os.date('%Y')
}
local unknownyear = {
unknown = true,
display = 'unknown'
}
local function year_less_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year1 == nil
elseif year1.bce ~= year2.bce then
return year1.bce
end
if year1.bce then
return year1.year > year2.year
else
return year1.year < year2.year
end
end
local function year_greater_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year2 == nil
elseif year1.bce ~= year2.bce then
return year2.bce
end
if year1.bce then
return year1.year < year2.year
else
return year1.year > year2.year
end
end
local function year_equal(year1, year2)
if year1 == year2 then
return true
elseif not year1 or not year2 then
return false
end
year1.bce = year2.bce == true
year1.bce = year2.bce == true
return year1.bce == year2.bce and year1.year == year2.year
end
local function pad_number(n, pad)
n = tostring(n)
return string.rep('0', pad - string.len(n)) .. n
end
local function get_year_text(year, precision, bce)
if not tonumber(year) then
return year
elseif precision < 6 then
return nil
end
year = tonumber(year)
local suffixes = {
[1] = 'st',
[2] = 'nd',
[3] = 'rd',
['default'] = 'th'
}
local bce_text = (bce and ' BCE') or ''
if precision == 6 then
local millennium = (year - year % 1000)/1000 + 1
return millennium .. (suffixes[millennium] or suffixes['default']) .. ' millennium' .. bce_text
elseif precision == 7 then
local century = (year - year % 100)/100 + 1
return century .. (suffixes[century] or suffixes['default']) .. ' үйэ' .. bce_text
elseif precision == 8 then
local decade = year - year % 10
return decade .. 's' .. bce_text
else
return year .. bce_text
end
end
local function format_year_for_display(year)
if not year then
return nil
end
local start_year = year.start_year and TableTools.shallowClone(year.start_year)
local end_year = year.end_year and TableTools.shallowClone(year.end_year)
if year.year then
return (year.circa and 'c. ' or '') .. get_year_text(year.year, year.precision + (year.circa and 1 or 0), year.bce) .. ((year.bce == nil and ' CE') or '')
elseif start_year or end_year then
if start_year and end_year then
if start_year.bce and end_year.bce then
start_year.bce = false
elseif start_year.bce ~= end_year.bce then
start_year.bce = start_year.bce or nil
end_year.bce = end_year.bce or nil
end
if start_year.circa then
end_year.circa = false
end
end
return table.concat({format_year_for_display(start_year) or '', format_year_for_display(end_year) or ''}, '–')
end
return nil
end
local function format_year_list_for_display(years)
local year_displays = {}
for _, year in ipairs(years) do
table.insert(year_displays, year.display or format_year_for_display(year))
end
return table.concat(year_displays, '/')
end
local function substrings_all_equal(years, i)
local substrings = {}
for _, year in ipairs(years) do
table.insert(substrings, string.sub(year, 1, i))
end
return #(TableTools.removeDuplicates(substrings)) <= 1
end
local function get_containing_year_category(years_to_categorize)
local years = {}
for _, year in ipairs(TableTools.shallowClone(years_to_categorize)) do
if not year.year or not year.precision then
return nil
else
table.insert(years, year)
end
end
if #years == 0 then
return nil
end
local bce = years[1].bce
for _, year in ipairs(years) do
year.bce = year.bce == true
if bce ~= year.bce then
return nil
end
end
local precisions = {}
for _, year in ipairs(years) do
table.insert(precisions, year.precision)
end
table.sort(precisions)
local n_length = 0
for _, year in ipairs(years) do
n_length = math.max(n_length, string.len(year.year))
end
local padded_years = {}
for _, year in ipairs(years) do
table.insert(padded_years, pad_number(year.year, n_length))
end
local shared_digits = 1
while shared_digits <= n_length and substrings_all_equal(padded_years, shared_digits) do
shared_digits = shared_digits + 1
end
shared_digits = shared_digits - 1
local range_precision = math.min(precisions[1], 9 - n_length + shared_digits)
return get_year_text(years[1].year, range_precision, years[1].bce)
end
local function categorise_year(args)
local cats = {}
if not args.input_year and args.year then
table.insert(cats, '[[Category:' .. 'Works with year from Wikidata' .. ']]')
elseif not args.input_year then
table.insert(cats, '[[Category:' .. 'Undated works' .. ']]')
elseif args.input_year and not tonumber(args.input_year) then
table.insert(cats, '[[Category:' .. 'Works with non-numeric dates' .. ']]')
end
if args.unrecognised then
table.insert(cats, '[[Category:' .. 'Works with unrecognised dates' .. ']]')
end
local year = args.year or {}
local start_year = year.start_year or (year.end_year ~= nil and unknownyear) or {}
local end_year = year.end_year or (year.start_year ~= nil and currentyear) or {}
start_year.bce = start_year.bce == true
end_year.bce = end_year.bce == true
local year_list = year.year_list or {}
local precisions = {}
table.insert(precisions, year.precision)
table.insert(precisions, start_year.precision)
table.insert(precisions, end_year.precision)
table.sort(precisions)
if year.uncertain or start_year.uncertain or end_year.uncertain or year.circa or start_year.circa or end_year.circa or #(year_list) > 1 or (precisions[1] and precisions[1] < 9) then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
if year.unknown or start_year.unknown or end_year.unknown then
table.insert(cats, '[[Category:' .. 'Works of unknown date' .. ']]')
end
if start_year.year and end_year.year and year_greater_than(start_year, end_year) then
table.insert(cats, '[[Category:' .. 'Works with start and end dates in the wrong order' .. ']]')
end
-- single year
local year_for_cat
if year.year then
year_for_cat = get_year_text(year.year, year.precision, year.bce)
-- date range
elseif start_year.year and end_year.year and start_year.bce == end_year.bce then
year_for_cat = get_containing_year_category({start_year, end_year})
elseif #year_list > 0 then
year_for_cat = get_containing_year_category(year_list)
end
table.insert(cats, year_for_cat and ('[[Category:' .. year_for_cat .. ' works]]'))
return table.concat(cats)
end
local function get_year_from_single_statement(statement)
local snak = statement.mainsnak
if not snak or not snak.datavalue or not snak.datavalue.value or not snak['datavalue']['value']['time'] or not snak.datavalue.value.precision then
return nil
end
local precision = snak.datavalue.value.precision
if precision < 6 then
-- precision is less than a millennium
return {
precision = precision,
display = string.gsub(mw.wikibase.formatValue(statement.mainsnak), '^<span>(.*)</span>$', '%1')
}
end
local start_years = {}
local end_years = {}
local start_year, end_year
local circa = false
if statement.qualifiers then
-- Check if date is approximate
-- P1480 = sourcing circumstances, Q5727902 = circa
if statement.qualifiers.P1480 then
for _, qualifier in ipairs(statement.qualifiers.P1480) do
if qualifier.datavalue and qualifier.datavalue.value.id == 'Q5727902' then
circa = true
break
end
end
end
if circa then
precision = precision - 1
end
-- P580 = start time
if statement.qualifiers.P580 then
for k, v in pairs(statement.qualifiers.P580) do
table.insert(start_years, get_year_from_single_statement({mainsnak = v}))
end
start_years = TableTools.compressSparseArray(TableTools.removeDuplicates(start_years))
table.sort(start_years, year_less_than)
start_year = start_years[1]
if #start_years > 1 then
start_year.uncertain = true
end
end
-- P582 = end time
if statement.qualifiers.P582 then
for k, v in pairs(statement.qualifiers.P582) do
table.insert(end_years, get_year_from_single_statement({mainsnak = v}))
end
end_years = TableTools.compressSparseArray(TableTools.removeDuplicates(end_years))
table.sort(end_years, year_less_than)
end_year = end_years[1]
if #end_years > 1 then
end_year.uncertain = true
end
end
end
-- extract the year from the timestamp
-- example timestamps: +2016-10-05T00:00:00Z, -1752-00-00T00:00:00Z
local year
local bce = false
local split = mw.text.split(snak['datavalue']['value']['time'], '-', true)
if split[1] == '' then
year = tonumber(split[2])
bce = true
else
year = tonumber(split[1])
end
-- malformed timestamp
if not year then
return nil
end
local year_data = {
year = (not start_year and not end_year and year) or nil,
circa = circa,
bce = bce,
uncertain = (start_year and start_year.year ~= year) or circa,
precision = precision,
start_year = start_year,
end_year = end_year
}
year_data.display = format_year_for_display(year_data)
return year_data
end
local function get_wikidata_year(args)
-- Fetch entity object for Wikidata item connected to the current page
-- Let manually-specified Wikidata ID override if given and valid
if not (args.wikidata and mw.wikibase.isValidEntityId(args.wikidata)) then
args.wikidata = mw.wikibase.getEntityIdForCurrentPage()
end
if not args.wikidata then
return nil
end
local item = mw.wikibase.getEntity(args.wikidata)
if not item then
return nil
end
local statements = item:getBestStatements('P577') -- publication date
if #statements == 0 then
return nil
end
local years = {}
for _, statement in ipairs(statements) do
local year_data = get_year_from_single_statement(statement)
table.insert(years, year_data)
end
years = TableTools.compressSparseArray(TableTools.removeDuplicates(years))
if #years == 0 then
return nil
elseif #years == 1 then
return years[1]
end
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
end
local function parse_year(year)
if not year then
return nil
elseif year == '?' or string.lower(year) == 'unknown' then
return unknownyear
end
local input_year = year
local circa = false
-- Lua patterns can't do ^c(irca)?(%s|%.|/)* because they don't do alternation or apply quantifiers to groups
if string.match(year, '^circa') or string.match(year, '^c%.') or string.match(year, '^c%s*/') then
circa = true
year = string.gsub(string.gsub(string.gsub(year, '^circa%s*', ''), '^c%.%s*', ''), '^c%s*/%s*', '')
end
local bce = false
if string.match(year, 'BC[E]?$') then
bce = true
year = string.gsub(year, '%s*BC[E]?$', '')
end
if string.match(year, '/') then
local year_split = mw.text.split(year, '/')
local years = {}
for _, opt in ipairs(year_split) do
if opt ~= '' then
local y = parse_year(opt)
y.bce = y.bce or bce
y.circa = y.circa or circa
table.insert(years, y)
end
end
if #years > 1 then
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
elseif #years == 1 then
return years[1]
end
end
local start_year, end_year
year = string.gsub(string.gsub(year, '%-', '–'), '—', '–')
if string.match(year, '^[^–]*–[^–]*$') then
local year_range = mw.text.split(year, '–')
start_year = mw.text.trim(year_range[1])
end_year = mw.text.trim(year_range[2])
if start_year == '' then
start_year = nil
else
start_year = parse_year(start_year)
start_year.circa = start_year.circa or circa
start_year.bce = start_year.bce or bce
end
if end_year == '' then
end_year = nil
else
end_year = parse_year(end_year)
end_year.circa = end_year.circa or circa
end_year.bce = end_year.bce or bce
end
end
local precision
if tonumber(year) then
precision = 9
-- Check if it looks like a decade
elseif string.match(year, '^%d*0s$') then
precision = 8
year = string.gsub(year, '^(%d*0)s$', '%1')
-- Or a century
elseif string.match(year, '^%d+[a-z]* үйэ$') then
precision = 7
year = string.gsub(year, '^(%d+)[a-z]* үйэ$', '%1')
year = 100 * (tonumber(year) - 1)
-- Or a millennium
elseif string.match(year, '^%d+[a-z]* millennium$') then
precision = 6
year = string.gsub(year, '^(%d+)[a-z]* millennium', '%1')
year = 1000 * (tonumber(year) - 1)
end
if circa and precision then
precision = precision - 1
end
if tonumber(year) then
local data = {
year = tonumber(year),
bce = bce,
circa = circa,
precision = precision
}
data['display'] = format_year_for_display(data)
return data
elseif start_year or end_year then
return {
start_year = start_year,
end_year = end_year,
display = format_year_for_display({start_year = start_year, end_year = end_year})
}
end
return {
unrecognised = true,
display = input_year
}
end
function p.construct_year(args)
local current_title = mw.title.getCurrentTitle()
local year_args = {
year = args.year,
noprint = yesno(args.noyear) or false,
wikidata = args.wikidata
}
year_args.nocat = yesno(args.noyearcat)
if year_args.nocat == nil then
if args.testing then
year_args.nocat = false
else
year_args.nocat = (
yesno(args.disambiguation) -- disambiguations never categorise
or not current_title:inNamespaces(0, 114) -- only categorise in mainspace and Translation
or current_title.isSubpage -- only categorise if this is a base page
)
end
end
local year_data = parse_year(year_args.year) or get_wikidata_year(year_args)
local cats = (year_args.nocat and '') or categorise_year({input_year = year_args.year, year = year_data})
if args.testing then
cats = mw.text.nowiki(cats) .. cats
end
if year_args.noprint or not year_data or not year_data.display then
return cats
end
local year_span = mw.html.create('span')
:addClass('wst-header-year-text')
:wikitext(year_data.display)
:allDone()
return ' (' .. tostring(year_span) .. ')' .. cats
end
return p
stuufsvxa570pomfwi11o7qepv8b4ca
9528
9525
2026-06-22T14:15:09Z
Sauit
2200
9528
Scribunto
text/plain
--[=[
Construct the year span
--]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
--[=[
Year properties:
{
year = integer,
precision = integer,
circa = boolean,
bce = boolean,
uncertain = boolean,
unknown = boolean,
unrecognised = boolean,
display = string,
start_year = year,
end_year = year,
year_list = year
}
]=]
--[=[ Precision:
0 - billion years
1 - hundred million years,
2 - ten million years,
3 - million years,
4 - hundred thousand years,
5 - ten thousand years,
6 - millenia,
7 - centuries,
8 - decades,
9 - years,
10 - months,
11 - days
12 - hours
13 - minutes
14 - seconds
]=]
local currentyear = {
year = tonumber(os.date('%Y')),
precision = 9,
circa = false,
bce = false,
display = os.date('%Y')
}
local unknownyear = {
unknown = true,
display = 'unknown'
}
local function year_less_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year1 == nil
elseif year1.bce ~= year2.bce then
return year1.bce
end
if year1.bce then
return year1.year > year2.year
else
return year1.year < year2.year
end
end
local function year_greater_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year2 == nil
elseif year1.bce ~= year2.bce then
return year2.bce
end
if year1.bce then
return year1.year < year2.year
else
return year1.year > year2.year
end
end
local function year_equal(year1, year2)
if year1 == year2 then
return true
elseif not year1 or not year2 then
return false
end
year1.bce = year2.bce == true
year1.bce = year2.bce == true
return year1.bce == year2.bce and year1.year == year2.year
end
local function pad_number(n, pad)
n = tostring(n)
return string.rep('0', pad - string.len(n)) .. n
end
local function get_year_text(year, precision, bce)
if not tonumber(year) then
return year
elseif precision < 6 then
return nil
end
year = tonumber(year)
local suffixes = {
[1] = 'st',
[2] = 'nd',
[3] = 'rd',
['default'] = 'th'
}
local bce_text = (bce and ' BCE') or ''
if precision == 6 then
local millennium = (year - year % 1000)/1000 + 1
return millennium .. (suffixes[millennium] or suffixes['default']) .. ' millennium' .. bce_text
elseif precision == 7 then
local century = (year - year % 100)/100 + 1
return century .. (suffixes[century] or suffixes['default']) .. ' үйэ' .. bce_text
elseif precision == 8 then
local decade = year - year % 10
return decade .. 's' .. bce_text
else
return year .. bce_text
end
end
local function format_year_for_display(year)
if not year then
return nil
end
local start_year = year.start_year and TableTools.shallowClone(year.start_year)
local end_year = year.end_year and TableTools.shallowClone(year.end_year)
if year.year then
return (year.circa and 'c. ' or '') .. get_year_text(year.year, year.precision + (year.circa and 1 or 0), year.bce) .. ((year.bce == nil and ' CE') or '')
elseif start_year or end_year then
if start_year and end_year then
if start_year.bce and end_year.bce then
start_year.bce = false
elseif start_year.bce ~= end_year.bce then
start_year.bce = start_year.bce or nil
end_year.bce = end_year.bce or nil
end
if start_year.circa then
end_year.circa = false
end
end
return table.concat({format_year_for_display(start_year) or '', format_year_for_display(end_year) or ''}, '–')
end
return nil
end
local function format_year_list_for_display(years)
local year_displays = {}
for _, year in ipairs(years) do
table.insert(year_displays, year.display or format_year_for_display(year))
end
return table.concat(year_displays, '/')
end
local function substrings_all_equal(years, i)
local substrings = {}
for _, year in ipairs(years) do
table.insert(substrings, string.sub(year, 1, i))
end
return #(TableTools.removeDuplicates(substrings)) <= 1
end
local function get_containing_year_category(years_to_categorize)
local years = {}
for _, year in ipairs(TableTools.shallowClone(years_to_categorize)) do
if not year.year or not year.precision then
return nil
else
table.insert(years, year)
end
end
if #years == 0 then
return nil
end
local bce = years[1].bce
for _, year in ipairs(years) do
year.bce = year.bce == true
if bce ~= year.bce then
return nil
end
end
local precisions = {}
for _, year in ipairs(years) do
table.insert(precisions, year.precision)
end
table.sort(precisions)
local n_length = 0
for _, year in ipairs(years) do
n_length = math.max(n_length, string.len(year.year))
end
local padded_years = {}
for _, year in ipairs(years) do
table.insert(padded_years, pad_number(year.year, n_length))
end
local shared_digits = 1
while shared_digits <= n_length and substrings_all_equal(padded_years, shared_digits) do
shared_digits = shared_digits + 1
end
shared_digits = shared_digits - 1
local range_precision = math.min(precisions[1], 9 - n_length + shared_digits)
return get_year_text(years[1].year, range_precision, years[1].bce)
end
local function categorise_year(args)
local cats = {}
if not args.input_year and args.year then
table.insert(cats, '[[Category:' .. 'Works with year from Wikidata' .. ']]')
elseif not args.input_year then
table.insert(cats, '[[Category:' .. 'Undated works' .. ']]')
elseif args.input_year and not tonumber(args.input_year) then
table.insert(cats, '[[Category:' .. 'Works with non-numeric dates' .. ']]')
end
if args.unrecognised then
table.insert(cats, '[[Category:' .. 'Works with unrecognised dates' .. ']]')
end
local year = args.year or {}
local start_year = year.start_year or (year.end_year ~= nil and unknownyear) or {}
local end_year = year.end_year or (year.start_year ~= nil and currentyear) or {}
start_year.bce = start_year.bce == true
end_year.bce = end_year.bce == true
local year_list = year.year_list or {}
local precisions = {}
table.insert(precisions, year.precision)
table.insert(precisions, start_year.precision)
table.insert(precisions, end_year.precision)
table.sort(precisions)
if year.uncertain or start_year.uncertain or end_year.uncertain or year.circa or start_year.circa or end_year.circa or #(year_list) > 1 or (precisions[1] and precisions[1] < 9) then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
if year.unknown or start_year.unknown or end_year.unknown then
table.insert(cats, '[[Category:' .. 'Works of unknown date' .. ']]')
end
if start_year.year and end_year.year and year_greater_than(start_year, end_year) then
table.insert(cats, '[[Category:' .. 'Works with start and end dates in the wrong order' .. ']]')
end
-- single year
local year_for_cat
if year.year then
year_for_cat = get_year_text(year.year, year.precision, year.bce)
-- date range
elseif start_year.year and end_year.year and start_year.bce == end_year.bce then
year_for_cat = get_containing_year_category({start_year, end_year})
elseif #year_list > 0 then
year_for_cat = get_containing_year_category(year_list)
end
table.insert(cats, year_for_cat and ('[[Category:' .. year_for_cat .. ' works]]'))
return table.concat(cats)
end
local function get_year_from_single_statement(statement)
local snak = statement.mainsnak
if not snak or not snak.datavalue or not snak.datavalue.value or not snak['datavalue']['value']['time'] or not snak.datavalue.value.precision then
return nil
end
local precision = snak.datavalue.value.precision
if precision < 6 then
-- precision is less than a millennium
return {
precision = precision,
display = string.gsub(mw.wikibase.formatValue(statement.mainsnak), '^<span>(.*)</span>$', '%1')
}
end
local start_years = {}
local end_years = {}
local start_year, end_year
local circa = false
if statement.qualifiers then
-- Check if date is approximate
-- P1480 = sourcing circumstances, Q5727902 = circa
if statement.qualifiers.P1480 then
for _, qualifier in ipairs(statement.qualifiers.P1480) do
if qualifier.datavalue and qualifier.datavalue.value.id == 'Q5727902' then
circa = true
break
end
end
end
if circa then
precision = precision - 1
end
-- P580 = start time
if statement.qualifiers.P580 then
for k, v in pairs(statement.qualifiers.P580) do
table.insert(start_years, get_year_from_single_statement({mainsnak = v}))
end
start_years = TableTools.compressSparseArray(TableTools.removeDuplicates(start_years))
table.sort(start_years, year_less_than)
start_year = start_years[1]
if #start_years > 1 then
start_year.uncertain = true
end
end
-- P582 = end time
if statement.qualifiers.P582 then
for k, v in pairs(statement.qualifiers.P582) do
table.insert(end_years, get_year_from_single_statement({mainsnak = v}))
end
end_years = TableTools.compressSparseArray(TableTools.removeDuplicates(end_years))
table.sort(end_years, year_less_than)
end_year = end_years[1]
if #end_years > 1 then
end_year.uncertain = true
end
end
end
-- extract the year from the timestamp
-- example timestamps: +2016-10-05T00:00:00Z, -1752-00-00T00:00:00Z
local year
local bce = false
local split = mw.text.split(snak['datavalue']['value']['time'], '-', true)
if split[1] == '' then
year = tonumber(split[2])
bce = true
else
year = tonumber(split[1])
end
-- malformed timestamp
if not year then
return nil
end
local year_data = {
year = (not start_year and not end_year and year) or nil,
circa = circa,
bce = bce,
uncertain = (start_year and start_year.year ~= year) or circa,
precision = precision,
start_year = start_year,
end_year = end_year
}
year_data.display = format_year_for_display(year_data)
return year_data
end
local function get_wikidata_year(args)
-- Fetch entity object for Wikidata item connected to the current page
-- Let manually-specified Wikidata ID override if given and valid
if not (args.wikidata and mw.wikibase.isValidEntityId(args.wikidata)) then
args.wikidata = mw.wikibase.getEntityIdForCurrentPage()
end
if not args.wikidata then
return nil
end
local item = mw.wikibase.getEntity(args.wikidata)
if not item then
return nil
end
local statements = item:getBestStatements('P577') -- publication date
if #statements == 0 then
return nil
end
local years = {}
for _, statement in ipairs(statements) do
local year_data = get_year_from_single_statement(statement)
table.insert(years, year_data)
end
years = TableTools.compressSparseArray(TableTools.removeDuplicates(years))
if #years == 0 then
return nil
elseif #years == 1 then
return years[1]
end
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
end
local function parse_year(year)
if not year then
return nil
elseif year == '?' or string.lower(year) == 'unknown' then
return unknownyear
end
local input_year = year
local circa = false
-- Lua patterns can't do ^c(irca)?(%s|%.|/)* because they don't do alternation or apply quantifiers to groups
if string.match(year, '^circa') or string.match(year, '^c%.') or string.match(year, '^c%s*/') then
circa = true
year = string.gsub(string.gsub(string.gsub(year, '^circa%s*', ''), '^c%.%s*', ''), '^c%s*/%s*', '')
end
local bce = false
if string.match(year, 'BC[E]?$') then
bce = true
year = string.gsub(year, '%s*BC[E]?$', '')
end
if string.match(year, '/') then
local year_split = mw.text.split(year, '/')
local years = {}
for _, opt in ipairs(year_split) do
if opt ~= '' then
local y = parse_year(opt)
y.bce = y.bce or bce
y.circa = y.circa or circa
table.insert(years, y)
end
end
if #years > 1 then
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
elseif #years == 1 then
return years[1]
end
end
local start_year, end_year
year = string.gsub(string.gsub(year, '%-', '–'), '—', '–')
if string.match(year, '^[^–]*–[^–]*$') then
local year_range = mw.text.split(year, '–')
start_year = mw.text.trim(year_range[1])
end_year = mw.text.trim(year_range[2])
if start_year == '' then
start_year = nil
else
start_year = parse_year(start_year)
start_year.circa = start_year.circa or circa
start_year.bce = start_year.bce or bce
end
if end_year == '' then
end_year = nil
else
end_year = parse_year(end_year)
end_year.circa = end_year.circa or circa
end_year.bce = end_year.bce or bce
end
end
local precision
if tonumber(year) then
precision = 9
-- Check if it looks like a decade
elseif string.match(year, '^%d*0s$') then
precision = 8
year = string.gsub(year, '^(%d*0)s$', '%1')
-- Or a century
elseif string.match(year, '^%d+[a-z]* үйэ$') then
precision = 7
year = string.gsub(year, '^(%d+)[a-z]* үйэ$', '%1')
year = 100 * (tonumber(year) - 1)
-- Or a millennium
elseif string.match(year, '^%d+[a-z]* millennium$') then
precision = 6
year = string.gsub(year, '^(%d+)[a-z]* millennium', '%1')
year = 1000 * (tonumber(year) - 1)
end
if circa and precision then
precision = precision - 1
end
if tonumber(year) then
local data = {
year = tonumber(year),
bce = bce,
circa = circa,
precision = precision
}
data['display'] = format_year_for_display(data)
return data
elseif start_year or end_year then
return {
start_year = start_year,
end_year = end_year,
display = format_year_for_display({start_year = start_year, end_year = end_year})
}
end
return {
unrecognised = true,
display = input_year
}
end
function p.construct_year(args)
local current_title = mw.title.getCurrentTitle()
local year_args = {
year = args.year,
noprint = yesno(args.noyear) or false,
wikidata = args.wikidata
}
year_args.nocat = yesno(args.noyearcat)
if year_args.nocat == nil then
if args.testing then
year_args.nocat = false
else
year_args.nocat = (
yesno(args.disambiguation) -- disambiguations never categorise
or not current_title:inNamespaces(0, 103) -- only categorise in mainspace and Translation
or current_title.isSubpage -- only categorise if this is a base page
)
end
end
local year_data = parse_year(year_args.year) or get_wikidata_year(year_args)
local cats = (year_args.nocat and '') or categorise_year({input_year = year_args.year, year = year_data})
if args.testing then
cats = mw.text.nowiki(cats) .. cats
end
if year_args.noprint or not year_data or not year_data.display then
return cats
end
local year_span = mw.html.create('span')
:addClass('wst-header-year-text')
:wikitext(year_data.display)
:allDone()
return ' (' .. tostring(year_span) .. ')' .. cats
end
return p
k6hro0247qzikhe3aot5dis5fxd3wp3
9542
9528
2026-06-22T14:39:56Z
Sauit
2200
9542
Scribunto
text/plain
--[=[
Construct the year span
--]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
--[=[
Year properties:
{
year = integer,
precision = integer,
circa = boolean,
bce = boolean,
uncertain = boolean,
unknown = boolean,
unrecognised = boolean,
display = string,
start_year = year,
end_year = year,
year_list = year
}
]=]
--[=[ Precision:
0 - billion years
1 - hundred million years,
2 - ten million years,
3 - million years,
4 - hundred thousand years,
5 - ten thousand years,
6 - millenia,
7 - centuries,
8 - decades,
9 - years,
10 - months,
11 - days
12 - hours
13 - minutes
14 - seconds
]=]
local currentyear = {
year = tonumber(os.date('%Y')),
precision = 9,
circa = false,
bce = false,
display = os.date('%Y')
}
local unknownyear = {
unknown = true,
display = 'unknown'
}
local function year_less_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year1 == nil
elseif year1.bce ~= year2.bce then
return year1.bce
end
if year1.bce then
return year1.year > year2.year
else
return year1.year < year2.year
end
end
local function year_greater_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year2 == nil
elseif year1.bce ~= year2.bce then
return year2.bce
end
if year1.bce then
return year1.year < year2.year
else
return year1.year > year2.year
end
end
local function year_equal(year1, year2)
if year1 == year2 then
return true
elseif not year1 or not year2 then
return false
end
year1.bce = year2.bce == true
year1.bce = year2.bce == true
return year1.bce == year2.bce and year1.year == year2.year
end
local function pad_number(n, pad)
n = tostring(n)
return string.rep('0', pad - string.len(n)) .. n
end
local function get_year_text(year, precision, bce)
if not tonumber(year) then
return year
elseif precision < 6 then
return nil
end
year = tonumber(year)
local suffixes = {
[1] = 'st',
[2] = 'nd',
[3] = 'rd',
['default'] = 'th'
}
local bce_text = (bce and ' BCE') or ''
if precision == 6 then
local millennium = (year - year % 1000)/1000 + 1
return millennium .. (suffixes[millennium] or suffixes['default']) .. ' millennium' .. bce_text
elseif precision == 7 then
local century = (year - year % 100)/100 + 1
return century .. (suffixes[century] or suffixes['default']) .. ' үйэ' .. bce_text
elseif precision == 8 then
local decade = year - year % 10
return decade .. 's' .. bce_text
else
return year .. bce_text
end
end
local function format_year_for_display(year)
if not year then
return nil
end
local start_year = year.start_year and TableTools.shallowClone(year.start_year)
local end_year = year.end_year and TableTools.shallowClone(year.end_year)
if year.year then
return (year.circa and 'c. ' or '') .. get_year_text(year.year, year.precision + (year.circa and 1 or 0), year.bce) .. ((year.bce == nil and ' CE') or '')
elseif start_year or end_year then
if start_year and end_year then
if start_year.bce and end_year.bce then
start_year.bce = false
elseif start_year.bce ~= end_year.bce then
start_year.bce = start_year.bce or nil
end_year.bce = end_year.bce or nil
end
if start_year.circa then
end_year.circa = false
end
end
return table.concat({format_year_for_display(start_year) or '', format_year_for_display(end_year) or ''}, '–')
end
return nil
end
local function format_year_list_for_display(years)
local year_displays = {}
for _, year in ipairs(years) do
table.insert(year_displays, year.display or format_year_for_display(year))
end
return table.concat(year_displays, '/')
end
local function substrings_all_equal(years, i)
local substrings = {}
for _, year in ipairs(years) do
table.insert(substrings, string.sub(year, 1, i))
end
return #(TableTools.removeDuplicates(substrings)) <= 1
end
local function get_containing_year_category(years_to_categorize)
local years = {}
for _, year in ipairs(TableTools.shallowClone(years_to_categorize)) do
if not year.year or not year.precision then
return nil
else
table.insert(years, year)
end
end
if #years == 0 then
return nil
end
local bce = years[1].bce
for _, year in ipairs(years) do
year.bce = year.bce == true
if bce ~= year.bce then
return nil
end
end
local precisions = {}
for _, year in ipairs(years) do
table.insert(precisions, year.precision)
end
table.sort(precisions)
local n_length = 0
for _, year in ipairs(years) do
n_length = math.max(n_length, string.len(year.year))
end
local padded_years = {}
for _, year in ipairs(years) do
table.insert(padded_years, pad_number(year.year, n_length))
end
local shared_digits = 1
while shared_digits <= n_length and substrings_all_equal(padded_years, shared_digits) do
shared_digits = shared_digits + 1
end
shared_digits = shared_digits - 1
local range_precision = math.min(precisions[1], 9 - n_length + shared_digits)
return get_year_text(years[1].year, range_precision, years[1].bce)
end
local function categorise_year(args)
local cats = {}
if not args.input_year and args.year then
table.insert(cats, '[[Category:]]')
elseif not args.input_year then
table.insert(cats, '[[Category:]]')
elseif args.input_year and not tonumber(args.input_year) then
table.insert(cats, '[[Category:]]')
end
if args.unrecognised then
table.insert(cats, '[[Category:]]')
end
local year = args.year or {}
local start_year = year.start_year or (year.end_year ~= nil and unknownyear) or {}
local end_year = year.end_year or (year.start_year ~= nil and currentyear) or {}
start_year.bce = start_year.bce == true
end_year.bce = end_year.bce == true
local year_list = year.year_list or {}
local precisions = {}
table.insert(precisions, year.precision)
table.insert(precisions, start_year.precision)
table.insert(precisions, end_year.precision)
table.sort(precisions)
if year.uncertain or start_year.uncertain or end_year.uncertain or year.circa or start_year.circa or end_year.circa or #(year_list) > 1 or (precisions[1] and precisions[1] < 9) then
table.insert(cats, '[[Category:]]')
end
if year.unknown or start_year.unknown or end_year.unknown then
table.insert(cats, '[[Category:]]')
end
if start_year.year and end_year.year and year_greater_than(start_year, end_year) then
table.insert(cats, '[[Category:]]')
end
-- single year
local year_for_cat
if year.year then
year_for_cat = get_year_text(year.year, year.precision, year.bce)
-- date range
elseif start_year.year and end_year.year and start_year.bce == end_year.bce then
year_for_cat = get_containing_year_category({start_year, end_year})
elseif #year_list > 0 then
year_for_cat = get_containing_year_category(year_list)
end
table.insert(cats, year_for_cat and ('[[Category:]]'))
return table.concat(cats)
end
local function get_year_from_single_statement(statement)
local snak = statement.mainsnak
if not snak or not snak.datavalue or not snak.datavalue.value or not snak['datavalue']['value']['time'] or not snak.datavalue.value.precision then
return nil
end
local precision = snak.datavalue.value.precision
if precision < 6 then
-- precision is less than a millennium
return {
precision = precision,
display = string.gsub(mw.wikibase.formatValue(statement.mainsnak), '^<span>(.*)</span>$', '%1')
}
end
local start_years = {}
local end_years = {}
local start_year, end_year
local circa = false
if statement.qualifiers then
-- Check if date is approximate
-- P1480 = sourcing circumstances, Q5727902 = circa
if statement.qualifiers.P1480 then
for _, qualifier in ipairs(statement.qualifiers.P1480) do
if qualifier.datavalue and qualifier.datavalue.value.id == 'Q5727902' then
circa = true
break
end
end
end
if circa then
precision = precision - 1
end
-- P580 = start time
if statement.qualifiers.P580 then
for k, v in pairs(statement.qualifiers.P580) do
table.insert(start_years, get_year_from_single_statement({mainsnak = v}))
end
start_years = TableTools.compressSparseArray(TableTools.removeDuplicates(start_years))
table.sort(start_years, year_less_than)
start_year = start_years[1]
if #start_years > 1 then
start_year.uncertain = true
end
end
-- P582 = end time
if statement.qualifiers.P582 then
for k, v in pairs(statement.qualifiers.P582) do
table.insert(end_years, get_year_from_single_statement({mainsnak = v}))
end
end_years = TableTools.compressSparseArray(TableTools.removeDuplicates(end_years))
table.sort(end_years, year_less_than)
end_year = end_years[1]
if #end_years > 1 then
end_year.uncertain = true
end
end
end
-- extract the year from the timestamp
-- example timestamps: +2016-10-05T00:00:00Z, -1752-00-00T00:00:00Z
local year
local bce = false
local split = mw.text.split(snak['datavalue']['value']['time'], '-', true)
if split[1] == '' then
year = tonumber(split[2])
bce = true
else
year = tonumber(split[1])
end
-- malformed timestamp
if not year then
return nil
end
local year_data = {
year = (not start_year and not end_year and year) or nil,
circa = circa,
bce = bce,
uncertain = (start_year and start_year.year ~= year) or circa,
precision = precision,
start_year = start_year,
end_year = end_year
}
year_data.display = format_year_for_display(year_data)
return year_data
end
local function get_wikidata_year(args)
-- Fetch entity object for Wikidata item connected to the current page
-- Let manually-specified Wikidata ID override if given and valid
if not (args.wikidata and mw.wikibase.isValidEntityId(args.wikidata)) then
args.wikidata = mw.wikibase.getEntityIdForCurrentPage()
end
if not args.wikidata then
return nil
end
local item = mw.wikibase.getEntity(args.wikidata)
if not item then
return nil
end
local statements = item:getBestStatements('P577') -- publication date
if #statements == 0 then
return nil
end
local years = {}
for _, statement in ipairs(statements) do
local year_data = get_year_from_single_statement(statement)
table.insert(years, year_data)
end
years = TableTools.compressSparseArray(TableTools.removeDuplicates(years))
if #years == 0 then
return nil
elseif #years == 1 then
return years[1]
end
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
end
local function parse_year(year)
if not year then
return nil
elseif year == '?' or string.lower(year) == 'unknown' then
return unknownyear
end
local input_year = year
local circa = false
-- Lua patterns can't do ^c(irca)?(%s|%.|/)* because they don't do alternation or apply quantifiers to groups
if string.match(year, '^circa') or string.match(year, '^c%.') or string.match(year, '^c%s*/') then
circa = true
year = string.gsub(string.gsub(string.gsub(year, '^circa%s*', ''), '^c%.%s*', ''), '^c%s*/%s*', '')
end
local bce = false
if string.match(year, 'BC[E]?$') then
bce = true
year = string.gsub(year, '%s*BC[E]?$', '')
end
if string.match(year, '/') then
local year_split = mw.text.split(year, '/')
local years = {}
for _, opt in ipairs(year_split) do
if opt ~= '' then
local y = parse_year(opt)
y.bce = y.bce or bce
y.circa = y.circa or circa
table.insert(years, y)
end
end
if #years > 1 then
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
elseif #years == 1 then
return years[1]
end
end
local start_year, end_year
year = string.gsub(string.gsub(year, '%-', '–'), '—', '–')
if string.match(year, '^[^–]*–[^–]*$') then
local year_range = mw.text.split(year, '–')
start_year = mw.text.trim(year_range[1])
end_year = mw.text.trim(year_range[2])
if start_year == '' then
start_year = nil
else
start_year = parse_year(start_year)
start_year.circa = start_year.circa or circa
start_year.bce = start_year.bce or bce
end
if end_year == '' then
end_year = nil
else
end_year = parse_year(end_year)
end_year.circa = end_year.circa or circa
end_year.bce = end_year.bce or bce
end
end
local precision
if tonumber(year) then
precision = 9
-- Check if it looks like a decade
elseif string.match(year, '^%d*0s$') then
precision = 8
year = string.gsub(year, '^(%d*0)s$', '%1')
-- Or a century
elseif string.match(year, '^%d+[a-z]* үйэ$') then
precision = 7
year = string.gsub(year, '^(%d+)[a-z]* үйэ$', '%1')
year = 100 * (tonumber(year) - 1)
-- Or a millennium
elseif string.match(year, '^%d+[a-z]* millennium$') then
precision = 6
year = string.gsub(year, '^(%d+)[a-z]* millennium', '%1')
year = 1000 * (tonumber(year) - 1)
end
if circa and precision then
precision = precision - 1
end
if tonumber(year) then
local data = {
year = tonumber(year),
bce = bce,
circa = circa,
precision = precision
}
data['display'] = format_year_for_display(data)
return data
elseif start_year or end_year then
return {
start_year = start_year,
end_year = end_year,
display = format_year_for_display({start_year = start_year, end_year = end_year})
}
end
return {
unrecognised = true,
display = input_year
}
end
function p.construct_year(args)
local current_title = mw.title.getCurrentTitle()
local year_args = {
year = args.year,
noprint = yesno(args.noyear) or false,
wikidata = args.wikidata
}
year_args.nocat = yesno(args.noyearcat)
if year_args.nocat == nil then
if args.testing then
year_args.nocat = false
else
year_args.nocat = (
yesno(args.disambiguation) -- disambiguations never categorise
or not current_title:inNamespaces(0, 103) -- only categorise in mainspace and Translation
or current_title.isSubpage -- only categorise if this is a base page
)
end
end
local year_data = parse_year(year_args.year) or get_wikidata_year(year_args)
local cats = (year_args.nocat and '') or categorise_year({input_year = year_args.year, year = year_data})
if args.testing then
cats = mw.text.nowiki(cats) .. cats
end
if year_args.noprint or not year_data or not year_data.display then
return cats
end
local year_span = mw.html.create('span')
:addClass('wst-header-year-text')
:wikitext(year_data.display)
:allDone()
return ' (' .. tostring(year_span) .. ')' .. cats
end
return p
sw2q4c16dsmw7zuijpnky6klmiklve1
9544
9542
2026-06-22T14:43:25Z
Sauit
2200
9544
Scribunto
text/plain
--[=[
Construct the year span
--]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
--[=[
Year properties:
{
year = integer,
precision = integer,
circa = boolean,
bce = boolean,
uncertain = boolean,
unknown = boolean,
unrecognised = boolean,
display = string,
start_year = year,
end_year = year,
year_list = year
}
]=]
--[=[ Precision:
0 - billion years
1 - hundred million years,
2 - ten million years,
3 - million years,
4 - hundred thousand years,
5 - ten thousand years,
6 - millenia,
7 - centuries,
8 - decades,
9 - years,
10 - months,
11 - days
12 - hours
13 - minutes
14 - seconds
]=]
local currentyear = {
year = tonumber(os.date('%Y')),
precision = 9,
circa = false,
bce = false,
display = os.date('%Y')
}
local unknownyear = {
unknown = true,
display = 'unknown'
}
local function year_less_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year1 == nil
elseif year1.bce ~= year2.bce then
return year1.bce
end
if year1.bce then
return year1.year > year2.year
else
return year1.year < year2.year
end
end
local function year_greater_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year2 == nil
elseif year1.bce ~= year2.bce then
return year2.bce
end
if year1.bce then
return year1.year < year2.year
else
return year1.year > year2.year
end
end
local function year_equal(year1, year2)
if year1 == year2 then
return true
elseif not year1 or not year2 then
return false
end
year1.bce = year2.bce == true
year1.bce = year2.bce == true
return year1.bce == year2.bce and year1.year == year2.year
end
local function pad_number(n, pad)
n = tostring(n)
return string.rep('0', pad - string.len(n)) .. n
end
local function get_year_text(year, precision, bce)
if not tonumber(year) then
return year
elseif precision < 6 then
return nil
end
year = tonumber(year)
local suffixes = {
[1] = 'st',
[2] = 'nd',
[3] = 'rd',
['default'] = 'th'
}
local bce_text = (bce and ' BCE') or ''
if precision == 6 then
local millennium = (year - year % 1000)/1000 + 1
return millennium .. (suffixes[millennium] or suffixes['default']) .. ' millennium' .. bce_text
elseif precision == 7 then
local century = (year - year % 100)/100 + 1
return century .. (suffixes[century] or suffixes['default']) .. ' үйэ' .. bce_text
elseif precision == 8 then
local decade = year - year % 10
return decade .. 's' .. bce_text
else
return year .. bce_text
end
end
local function format_year_for_display(year)
if not year then
return nil
end
local start_year = year.start_year and TableTools.shallowClone(year.start_year)
local end_year = year.end_year and TableTools.shallowClone(year.end_year)
if year.year then
return (year.circa and 'c. ' or '') .. get_year_text(year.year, year.precision + (year.circa and 1 or 0), year.bce) .. ((year.bce == nil and ' CE') or '')
elseif start_year or end_year then
if start_year and end_year then
if start_year.bce and end_year.bce then
start_year.bce = false
elseif start_year.bce ~= end_year.bce then
start_year.bce = start_year.bce or nil
end_year.bce = end_year.bce or nil
end
if start_year.circa then
end_year.circa = false
end
end
return table.concat({format_year_for_display(start_year) or '', format_year_for_display(end_year) or ''}, '–')
end
return nil
end
local function format_year_list_for_display(years)
local year_displays = {}
for _, year in ipairs(years) do
table.insert(year_displays, year.display or format_year_for_display(year))
end
return table.concat(year_displays, '/')
end
local function substrings_all_equal(years, i)
local substrings = {}
for _, year in ipairs(years) do
table.insert(substrings, string.sub(year, 1, i))
end
return #(TableTools.removeDuplicates(substrings)) <= 1
end
local function get_containing_year_category(years_to_categorize)
local years = {}
for _, year in ipairs(TableTools.shallowClone(years_to_categorize)) do
if not year.year or not year.precision then
return nil
else
table.insert(years, year)
end
end
if #years == 0 then
return nil
end
local bce = years[1].bce
for _, year in ipairs(years) do
year.bce = year.bce == true
if bce ~= year.bce then
return nil
end
end
local precisions = {}
for _, year in ipairs(years) do
table.insert(precisions, year.precision)
end
table.sort(precisions)
local n_length = 0
for _, year in ipairs(years) do
n_length = math.max(n_length, string.len(year.year))
end
local padded_years = {}
for _, year in ipairs(years) do
table.insert(padded_years, pad_number(year.year, n_length))
end
local shared_digits = 1
while shared_digits <= n_length and substrings_all_equal(padded_years, shared_digits) do
shared_digits = shared_digits + 1
end
shared_digits = shared_digits - 1
local range_precision = math.min(precisions[1], 9 - n_length + shared_digits)
return get_year_text(years[1].year, range_precision, years[1].bce)
end
local function categorise_year(args)
local cats = {}
local year = args.year or {}
local start_year = year.start_year or (year.end_year ~= nil and unknownyear) or {}
local end_year = year.end_year or (year.start_year ~= nil and currentyear) or {}
start_year.bce = start_year.bce == true
end_year.bce = end_year.bce == true
local year_list = year.year_list or {}
local precisions = {}
table.insert(precisions, year.precision)
table.insert(precisions, start_year.precision)
table.insert(precisions, end_year.precision)
table.sort(precisions)
if year.uncertain or start_year.uncertain or end_year.uncertain or year.circa or start_year.circa or end_year.circa or #(year_list) > 1 or (precisions[1] and precisions[1] < 9) then
table.insert(cats, '[[Category:]]')
end
if year.unknown or start_year.unknown or end_year.unknown then
table.insert(cats, '[[Category:]]')
end
if start_year.year and end_year.year and year_greater_than(start_year, end_year) then
table.insert(cats, '[[Category:]]')
end
-- single year
local year_for_cat
if year.year then
year_for_cat = get_year_text(year.year, year.precision, year.bce)
-- date range
elseif start_year.year and end_year.year and start_year.bce == end_year.bce then
year_for_cat = get_containing_year_category({start_year, end_year})
elseif #year_list > 0 then
year_for_cat = get_containing_year_category(year_list)
end
table.insert(cats, year_for_cat and ('[[Category:]]'))
return table.concat(cats)
end
local function get_year_from_single_statement(statement)
local snak = statement.mainsnak
if not snak or not snak.datavalue or not snak.datavalue.value or not snak['datavalue']['value']['time'] or not snak.datavalue.value.precision then
return nil
end
local precision = snak.datavalue.value.precision
if precision < 6 then
-- precision is less than a millennium
return {
precision = precision,
display = string.gsub(mw.wikibase.formatValue(statement.mainsnak), '^<span>(.*)</span>$', '%1')
}
end
local start_years = {}
local end_years = {}
local start_year, end_year
local circa = false
if statement.qualifiers then
-- Check if date is approximate
-- P1480 = sourcing circumstances, Q5727902 = circa
if statement.qualifiers.P1480 then
for _, qualifier in ipairs(statement.qualifiers.P1480) do
if qualifier.datavalue and qualifier.datavalue.value.id == 'Q5727902' then
circa = true
break
end
end
end
if circa then
precision = precision - 1
end
-- P580 = start time
if statement.qualifiers.P580 then
for k, v in pairs(statement.qualifiers.P580) do
table.insert(start_years, get_year_from_single_statement({mainsnak = v}))
end
start_years = TableTools.compressSparseArray(TableTools.removeDuplicates(start_years))
table.sort(start_years, year_less_than)
start_year = start_years[1]
if #start_years > 1 then
start_year.uncertain = true
end
end
-- P582 = end time
if statement.qualifiers.P582 then
for k, v in pairs(statement.qualifiers.P582) do
table.insert(end_years, get_year_from_single_statement({mainsnak = v}))
end
end_years = TableTools.compressSparseArray(TableTools.removeDuplicates(end_years))
table.sort(end_years, year_less_than)
end_year = end_years[1]
if #end_years > 1 then
end_year.uncertain = true
end
end
end
-- extract the year from the timestamp
-- example timestamps: +2016-10-05T00:00:00Z, -1752-00-00T00:00:00Z
local year
local bce = false
local split = mw.text.split(snak['datavalue']['value']['time'], '-', true)
if split[1] == '' then
year = tonumber(split[2])
bce = true
else
year = tonumber(split[1])
end
-- malformed timestamp
if not year then
return nil
end
local year_data = {
year = (not start_year and not end_year and year) or nil,
circa = circa,
bce = bce,
uncertain = (start_year and start_year.year ~= year) or circa,
precision = precision,
start_year = start_year,
end_year = end_year
}
year_data.display = format_year_for_display(year_data)
return year_data
end
local function get_wikidata_year(args)
-- Fetch entity object for Wikidata item connected to the current page
-- Let manually-specified Wikidata ID override if given and valid
if not (args.wikidata and mw.wikibase.isValidEntityId(args.wikidata)) then
args.wikidata = mw.wikibase.getEntityIdForCurrentPage()
end
if not args.wikidata then
return nil
end
local item = mw.wikibase.getEntity(args.wikidata)
if not item then
return nil
end
local statements = item:getBestStatements('P577') -- publication date
if #statements == 0 then
return nil
end
local years = {}
for _, statement in ipairs(statements) do
local year_data = get_year_from_single_statement(statement)
table.insert(years, year_data)
end
years = TableTools.compressSparseArray(TableTools.removeDuplicates(years))
if #years == 0 then
return nil
elseif #years == 1 then
return years[1]
end
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
end
local function parse_year(year)
if not year then
return nil
elseif year == '?' or string.lower(year) == 'unknown' then
return unknownyear
end
local input_year = year
local circa = false
-- Lua patterns can't do ^c(irca)?(%s|%.|/)* because they don't do alternation or apply quantifiers to groups
if string.match(year, '^circa') or string.match(year, '^c%.') or string.match(year, '^c%s*/') then
circa = true
year = string.gsub(string.gsub(string.gsub(year, '^circa%s*', ''), '^c%.%s*', ''), '^c%s*/%s*', '')
end
local bce = false
if string.match(year, 'BC[E]?$') then
bce = true
year = string.gsub(year, '%s*BC[E]?$', '')
end
if string.match(year, '/') then
local year_split = mw.text.split(year, '/')
local years = {}
for _, opt in ipairs(year_split) do
if opt ~= '' then
local y = parse_year(opt)
y.bce = y.bce or bce
y.circa = y.circa or circa
table.insert(years, y)
end
end
if #years > 1 then
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
elseif #years == 1 then
return years[1]
end
end
local start_year, end_year
year = string.gsub(string.gsub(year, '%-', '–'), '—', '–')
if string.match(year, '^[^–]*–[^–]*$') then
local year_range = mw.text.split(year, '–')
start_year = mw.text.trim(year_range[1])
end_year = mw.text.trim(year_range[2])
if start_year == '' then
start_year = nil
else
start_year = parse_year(start_year)
start_year.circa = start_year.circa or circa
start_year.bce = start_year.bce or bce
end
if end_year == '' then
end_year = nil
else
end_year = parse_year(end_year)
end_year.circa = end_year.circa or circa
end_year.bce = end_year.bce or bce
end
end
local precision
if tonumber(year) then
precision = 9
-- Check if it looks like a decade
elseif string.match(year, '^%d*0s$') then
precision = 8
year = string.gsub(year, '^(%d*0)s$', '%1')
-- Or a century
elseif string.match(year, '^%d+[a-z]* үйэ$') then
precision = 7
year = string.gsub(year, '^(%d+)[a-z]* үйэ$', '%1')
year = 100 * (tonumber(year) - 1)
-- Or a millennium
elseif string.match(year, '^%d+[a-z]* millennium$') then
precision = 6
year = string.gsub(year, '^(%d+)[a-z]* millennium', '%1')
year = 1000 * (tonumber(year) - 1)
end
if circa and precision then
precision = precision - 1
end
if tonumber(year) then
local data = {
year = tonumber(year),
bce = bce,
circa = circa,
precision = precision
}
data['display'] = format_year_for_display(data)
return data
elseif start_year or end_year then
return {
start_year = start_year,
end_year = end_year,
display = format_year_for_display({start_year = start_year, end_year = end_year})
}
end
return {
unrecognised = true,
display = input_year
}
end
function p.construct_year(args)
local current_title = mw.title.getCurrentTitle()
local year_args = {
year = args.year,
noprint = yesno(args.noyear) or false,
wikidata = args.wikidata
}
year_args.nocat = yesno(args.noyearcat)
if year_args.nocat == nil then
if args.testing then
year_args.nocat = false
else
year_args.nocat = (
yesno(args.disambiguation) -- disambiguations never categorise
or not current_title:inNamespaces(0, 103) -- only categorise in mainspace and Translation
or current_title.isSubpage -- only categorise if this is a base page
)
end
end
local year_data = parse_year(year_args.year) or get_wikidata_year(year_args)
local cats = (year_args.nocat and '') or categorise_year({input_year = year_args.year, year = year_data})
if args.testing then
cats = mw.text.nowiki(cats) .. cats
end
if year_args.noprint or not year_data or not year_data.display then
return cats
end
local year_span = mw.html.create('span')
:addClass('wst-header-year-text')
:wikitext(year_data.display)
:allDone()
return ' (' .. tostring(year_span) .. ')' .. cats
end
return p
nafm6660n20rbby341fz5bjys11xr4w
9589
9544
2026-06-23T05:14:21Z
Sauit
2200
9589
Scribunto
text/plain
--[=[
Construct the year span
--]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
--[=[
Year properties:
{
year = integer,
precision = integer,
circa = boolean,
bce = boolean,
uncertain = boolean,
unknown = boolean,
unrecognised = boolean,
display = string,
start_year = year,
end_year = year,
year_list = year
}
]=]
--[=[ Precision:
0 - billion years
1 - hundred million years,
2 - ten million years,
3 - million years,
4 - hundred thousand years,
5 - ten thousand years,
6 - millenia,
7 - centuries,
8 - decades,
9 - years,
10 - months,
11 - days
12 - hours
13 - minutes
14 - seconds
]=]
local currentyear = {
year = tonumber(os.date('%Y')),
precision = 9,
circa = false,
bce = false,
display = os.date('%Y')
}
local unknownyear = {
unknown = true,
display = 'unknown'
}
local function year_less_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year1 == nil
elseif year1.bce ~= year2.bce then
return year1.bce
end
if year1.bce then
return year1.year > year2.year
else
return year1.year < year2.year
end
end
local function year_greater_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year2 == nil
elseif year1.bce ~= year2.bce then
return year2.bce
end
if year1.bce then
return year1.year < year2.year
else
return year1.year > year2.year
end
end
local function year_equal(year1, year2)
if year1 == year2 then
return true
elseif not year1 or not year2 then
return false
end
year1.bce = year2.bce == true
year1.bce = year2.bce == true
return year1.bce == year2.bce and year1.year == year2.year
end
local function pad_number(n, pad)
n = tostring(n)
return string.rep('0', pad - string.len(n)) .. n
end
local function get_year_text(year, precision, bce)
if not tonumber(year) then
return year
elseif precision < 6 then
return nil
end
year = tonumber(year)
local suffixes = {
[1] = 'st',
[2] = 'nd',
[3] = 'rd',
['default'] = 'th'
}
local bce_text = (bce and ' BCE') or ''
if precision == 6 then
local millennium = (year - year % 1000)/1000 + 1
return millennium .. (suffixes[millennium] or suffixes['default']) .. ' millennium' .. bce_text
elseif precision == 7 then
local century = (year - year % 100)/100 + 1
return century .. (suffixes[century] or suffixes['default']) .. ' үйэ' .. bce_text
elseif precision == 8 then
local decade = year - year % 10
return decade .. 's' .. bce_text
else
return year .. bce_text
end
end
local function format_year_for_display(year)
if not year then
return nil
end
local start_year = year.start_year and TableTools.shallowClone(year.start_year)
local end_year = year.end_year and TableTools.shallowClone(year.end_year)
if year.year then
return (year.circa and 'c. ' or '') .. get_year_text(year.year, year.precision + (year.circa and 1 or 0), year.bce) .. ((year.bce == nil and ' CE') or '')
elseif start_year or end_year then
if start_year and end_year then
if start_year.bce and end_year.bce then
start_year.bce = false
elseif start_year.bce ~= end_year.bce then
start_year.bce = start_year.bce or nil
end_year.bce = end_year.bce or nil
end
if start_year.circa then
end_year.circa = false
end
end
return table.concat({format_year_for_display(start_year) or '', format_year_for_display(end_year) or ''}, '–')
end
return nil
end
local function format_year_list_for_display(years)
local year_displays = {}
for _, year in ipairs(years) do
table.insert(year_displays, year.display or format_year_for_display(year))
end
return table.concat(year_displays, '/')
end
local function substrings_all_equal(years, i)
local substrings = {}
for _, year in ipairs(years) do
table.insert(substrings, string.sub(year, 1, i))
end
return #(TableTools.removeDuplicates(substrings)) <= 1
end
local function get_containing_year_category(years_to_categorize)
local years = {}
for _, year in ipairs(TableTools.shallowClone(years_to_categorize)) do
if not year.year or not year.precision then
return nil
else
table.insert(years, year)
end
end
if #years == 0 then
return nil
end
local bce = years[1].bce
for _, year in ipairs(years) do
year.bce = year.bce == true
if bce ~= year.bce then
return nil
end
end
local precisions = {}
for _, year in ipairs(years) do
table.insert(precisions, year.precision)
end
table.sort(precisions)
local n_length = 0
for _, year in ipairs(years) do
n_length = math.max(n_length, string.len(year.year))
end
local padded_years = {}
for _, year in ipairs(years) do
table.insert(padded_years, pad_number(year.year, n_length))
end
local shared_digits = 1
while shared_digits <= n_length and substrings_all_equal(padded_years, shared_digits) do
shared_digits = shared_digits + 1
end
shared_digits = shared_digits - 1
local range_precision = math.min(precisions[1], 9 - n_length + shared_digits)
return get_year_text(years[1].year, range_precision, years[1].bce)
end
local function categorise_year(args)
local cats = {}
local year = args.year or {}
local start_year = year.start_year or (year.end_year ~= nil and unknownyear) or {}
local end_year = year.end_year or (year.start_year ~= nil and currentyear) or {}
start_year.bce = start_year.bce == true
end_year.bce = end_year.bce == true
local year_list = year.year_list or {}
local precisions = {}
table.insert(precisions, year.precision)
table.insert(precisions, start_year.precision)
table.insert(precisions, end_year.precision)
table.sort(precisions)
-- single year
local year_for_cat
if year.year then
year_for_cat = get_year_text(year.year, year.precision, year.bce)
-- date range
elseif start_year.year and end_year.year and start_year.bce == end_year.bce then
year_for_cat = get_containing_year_category({start_year, end_year})
elseif #year_list > 0 then
year_for_cat = get_containing_year_category(year_list)
end
end
local function get_year_from_single_statement(statement)
local snak = statement.mainsnak
if not snak or not snak.datavalue or not snak.datavalue.value or not snak['datavalue']['value']['time'] or not snak.datavalue.value.precision then
return nil
end
local precision = snak.datavalue.value.precision
if precision < 6 then
-- precision is less than a millennium
return {
precision = precision,
display = string.gsub(mw.wikibase.formatValue(statement.mainsnak), '^<span>(.*)</span>$', '%1')
}
end
local start_years = {}
local end_years = {}
local start_year, end_year
local circa = false
if statement.qualifiers then
-- Check if date is approximate
-- P1480 = sourcing circumstances, Q5727902 = circa
if statement.qualifiers.P1480 then
for _, qualifier in ipairs(statement.qualifiers.P1480) do
if qualifier.datavalue and qualifier.datavalue.value.id == 'Q5727902' then
circa = true
break
end
end
end
if circa then
precision = precision - 1
end
-- P580 = start time
if statement.qualifiers.P580 then
for k, v in pairs(statement.qualifiers.P580) do
table.insert(start_years, get_year_from_single_statement({mainsnak = v}))
end
start_years = TableTools.compressSparseArray(TableTools.removeDuplicates(start_years))
table.sort(start_years, year_less_than)
start_year = start_years[1]
if #start_years > 1 then
start_year.uncertain = true
end
end
-- P582 = end time
if statement.qualifiers.P582 then
for k, v in pairs(statement.qualifiers.P582) do
table.insert(end_years, get_year_from_single_statement({mainsnak = v}))
end
end_years = TableTools.compressSparseArray(TableTools.removeDuplicates(end_years))
table.sort(end_years, year_less_than)
end_year = end_years[1]
if #end_years > 1 then
end_year.uncertain = true
end
end
end
-- extract the year from the timestamp
-- example timestamps: +2016-10-05T00:00:00Z, -1752-00-00T00:00:00Z
local year
local bce = false
local split = mw.text.split(snak['datavalue']['value']['time'], '-', true)
if split[1] == '' then
year = tonumber(split[2])
bce = true
else
year = tonumber(split[1])
end
-- malformed timestamp
if not year then
return nil
end
local year_data = {
year = (not start_year and not end_year and year) or nil,
circa = circa,
bce = bce,
uncertain = (start_year and start_year.year ~= year) or circa,
precision = precision,
start_year = start_year,
end_year = end_year
}
year_data.display = format_year_for_display(year_data)
return year_data
end
local function get_wikidata_year(args)
-- Fetch entity object for Wikidata item connected to the current page
-- Let manually-specified Wikidata ID override if given and valid
if not (args.wikidata and mw.wikibase.isValidEntityId(args.wikidata)) then
args.wikidata = mw.wikibase.getEntityIdForCurrentPage()
end
if not args.wikidata then
return nil
end
local item = mw.wikibase.getEntity(args.wikidata)
if not item then
return nil
end
local statements = item:getBestStatements('P577') -- publication date
if #statements == 0 then
return nil
end
local years = {}
for _, statement in ipairs(statements) do
local year_data = get_year_from_single_statement(statement)
table.insert(years, year_data)
end
years = TableTools.compressSparseArray(TableTools.removeDuplicates(years))
if #years == 0 then
return nil
elseif #years == 1 then
return years[1]
end
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
end
local function parse_year(year)
if not year then
return nil
elseif year == '?' or string.lower(year) == 'unknown' then
return unknownyear
end
local input_year = year
local circa = false
-- Lua patterns can't do ^c(irca)?(%s|%.|/)* because they don't do alternation or apply quantifiers to groups
if string.match(year, '^circa') or string.match(year, '^c%.') or string.match(year, '^c%s*/') then
circa = true
year = string.gsub(string.gsub(string.gsub(year, '^circa%s*', ''), '^c%.%s*', ''), '^c%s*/%s*', '')
end
local bce = false
if string.match(year, 'BC[E]?$') then
bce = true
year = string.gsub(year, '%s*BC[E]?$', '')
end
if string.match(year, '/') then
local year_split = mw.text.split(year, '/')
local years = {}
for _, opt in ipairs(year_split) do
if opt ~= '' then
local y = parse_year(opt)
y.bce = y.bce or bce
y.circa = y.circa or circa
table.insert(years, y)
end
end
if #years > 1 then
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
elseif #years == 1 then
return years[1]
end
end
local start_year, end_year
year = string.gsub(string.gsub(year, '%-', '–'), '—', '–')
if string.match(year, '^[^–]*–[^–]*$') then
local year_range = mw.text.split(year, '–')
start_year = mw.text.trim(year_range[1])
end_year = mw.text.trim(year_range[2])
if start_year == '' then
start_year = nil
else
start_year = parse_year(start_year)
start_year.circa = start_year.circa or circa
start_year.bce = start_year.bce or bce
end
if end_year == '' then
end_year = nil
else
end_year = parse_year(end_year)
end_year.circa = end_year.circa or circa
end_year.bce = end_year.bce or bce
end
end
local precision
if tonumber(year) then
precision = 9
-- Check if it looks like a decade
elseif string.match(year, '^%d*0s$') then
precision = 8
year = string.gsub(year, '^(%d*0)s$', '%1')
-- Or a century
elseif string.match(year, '^%d+[a-z]* үйэ$') then
precision = 7
year = string.gsub(year, '^(%d+)[a-z]* үйэ$', '%1')
year = 100 * (tonumber(year) - 1)
-- Or a millennium
elseif string.match(year, '^%d+[a-z]* millennium$') then
precision = 6
year = string.gsub(year, '^(%d+)[a-z]* millennium', '%1')
year = 1000 * (tonumber(year) - 1)
end
if circa and precision then
precision = precision - 1
end
if tonumber(year) then
local data = {
year = tonumber(year),
bce = bce,
circa = circa,
precision = precision
}
data['display'] = format_year_for_display(data)
return data
elseif start_year or end_year then
return {
start_year = start_year,
end_year = end_year,
display = format_year_for_display({start_year = start_year, end_year = end_year})
}
end
return {
unrecognised = true,
display = input_year
}
end
function p.construct_year(args)
local current_title = mw.title.getCurrentTitle()
local year_args = {
year = args.year,
noprint = yesno(args.noyear) or false,
wikidata = args.wikidata
}
year_args.nocat = yesno(args.noyearcat)
if year_args.nocat == nil then
if args.testing then
year_args.nocat = false
else
year_args.nocat = (
yesno(args.disambiguation) -- disambiguations never categorise
or not current_title:inNamespaces(0, 103) -- only categorise in mainspace and Translation
or current_title.isSubpage -- only categorise if this is a base page
)
end
end
local year_data = parse_year(year_args.year) or get_wikidata_year(year_args)
local cats = (year_args.nocat and '') or categorise_year({input_year = year_args.year, year = year_data})
if args.testing then
cats = mw.text.nowiki(cats) .. cats
end
if year_args.noprint or not year_data or not year_data.display then
return cats
end
local year_span = mw.html.create('span')
:addClass('wst-header-year-text')
:wikitext(year_data.display)
:allDone()
return ' (' .. tostring(year_span) .. ')' .. cats
end
return p
k52gsbgm2ptsb2m4mynjg92mulrt3la
9590
9589
2026-06-23T05:14:57Z
Sauit
2200
[[Special:Contributions/Sauit|Sauit]] [[User talk:Sauit|ырытыы]] оҥорбут [[Special:Diff/9589|9589]] барылын сотуу
9590
Scribunto
text/plain
--[=[
Construct the year span
--]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
--[=[
Year properties:
{
year = integer,
precision = integer,
circa = boolean,
bce = boolean,
uncertain = boolean,
unknown = boolean,
unrecognised = boolean,
display = string,
start_year = year,
end_year = year,
year_list = year
}
]=]
--[=[ Precision:
0 - billion years
1 - hundred million years,
2 - ten million years,
3 - million years,
4 - hundred thousand years,
5 - ten thousand years,
6 - millenia,
7 - centuries,
8 - decades,
9 - years,
10 - months,
11 - days
12 - hours
13 - minutes
14 - seconds
]=]
local currentyear = {
year = tonumber(os.date('%Y')),
precision = 9,
circa = false,
bce = false,
display = os.date('%Y')
}
local unknownyear = {
unknown = true,
display = 'unknown'
}
local function year_less_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year1 == nil
elseif year1.bce ~= year2.bce then
return year1.bce
end
if year1.bce then
return year1.year > year2.year
else
return year1.year < year2.year
end
end
local function year_greater_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year2 == nil
elseif year1.bce ~= year2.bce then
return year2.bce
end
if year1.bce then
return year1.year < year2.year
else
return year1.year > year2.year
end
end
local function year_equal(year1, year2)
if year1 == year2 then
return true
elseif not year1 or not year2 then
return false
end
year1.bce = year2.bce == true
year1.bce = year2.bce == true
return year1.bce == year2.bce and year1.year == year2.year
end
local function pad_number(n, pad)
n = tostring(n)
return string.rep('0', pad - string.len(n)) .. n
end
local function get_year_text(year, precision, bce)
if not tonumber(year) then
return year
elseif precision < 6 then
return nil
end
year = tonumber(year)
local suffixes = {
[1] = 'st',
[2] = 'nd',
[3] = 'rd',
['default'] = 'th'
}
local bce_text = (bce and ' BCE') or ''
if precision == 6 then
local millennium = (year - year % 1000)/1000 + 1
return millennium .. (suffixes[millennium] or suffixes['default']) .. ' millennium' .. bce_text
elseif precision == 7 then
local century = (year - year % 100)/100 + 1
return century .. (suffixes[century] or suffixes['default']) .. ' үйэ' .. bce_text
elseif precision == 8 then
local decade = year - year % 10
return decade .. 's' .. bce_text
else
return year .. bce_text
end
end
local function format_year_for_display(year)
if not year then
return nil
end
local start_year = year.start_year and TableTools.shallowClone(year.start_year)
local end_year = year.end_year and TableTools.shallowClone(year.end_year)
if year.year then
return (year.circa and 'c. ' or '') .. get_year_text(year.year, year.precision + (year.circa and 1 or 0), year.bce) .. ((year.bce == nil and ' CE') or '')
elseif start_year or end_year then
if start_year and end_year then
if start_year.bce and end_year.bce then
start_year.bce = false
elseif start_year.bce ~= end_year.bce then
start_year.bce = start_year.bce or nil
end_year.bce = end_year.bce or nil
end
if start_year.circa then
end_year.circa = false
end
end
return table.concat({format_year_for_display(start_year) or '', format_year_for_display(end_year) or ''}, '–')
end
return nil
end
local function format_year_list_for_display(years)
local year_displays = {}
for _, year in ipairs(years) do
table.insert(year_displays, year.display or format_year_for_display(year))
end
return table.concat(year_displays, '/')
end
local function substrings_all_equal(years, i)
local substrings = {}
for _, year in ipairs(years) do
table.insert(substrings, string.sub(year, 1, i))
end
return #(TableTools.removeDuplicates(substrings)) <= 1
end
local function get_containing_year_category(years_to_categorize)
local years = {}
for _, year in ipairs(TableTools.shallowClone(years_to_categorize)) do
if not year.year or not year.precision then
return nil
else
table.insert(years, year)
end
end
if #years == 0 then
return nil
end
local bce = years[1].bce
for _, year in ipairs(years) do
year.bce = year.bce == true
if bce ~= year.bce then
return nil
end
end
local precisions = {}
for _, year in ipairs(years) do
table.insert(precisions, year.precision)
end
table.sort(precisions)
local n_length = 0
for _, year in ipairs(years) do
n_length = math.max(n_length, string.len(year.year))
end
local padded_years = {}
for _, year in ipairs(years) do
table.insert(padded_years, pad_number(year.year, n_length))
end
local shared_digits = 1
while shared_digits <= n_length and substrings_all_equal(padded_years, shared_digits) do
shared_digits = shared_digits + 1
end
shared_digits = shared_digits - 1
local range_precision = math.min(precisions[1], 9 - n_length + shared_digits)
return get_year_text(years[1].year, range_precision, years[1].bce)
end
local function categorise_year(args)
local cats = {}
local year = args.year or {}
local start_year = year.start_year or (year.end_year ~= nil and unknownyear) or {}
local end_year = year.end_year or (year.start_year ~= nil and currentyear) or {}
start_year.bce = start_year.bce == true
end_year.bce = end_year.bce == true
local year_list = year.year_list or {}
local precisions = {}
table.insert(precisions, year.precision)
table.insert(precisions, start_year.precision)
table.insert(precisions, end_year.precision)
table.sort(precisions)
if year.uncertain or start_year.uncertain or end_year.uncertain or year.circa or start_year.circa or end_year.circa or #(year_list) > 1 or (precisions[1] and precisions[1] < 9) then
table.insert(cats, '[[Category:]]')
end
if year.unknown or start_year.unknown or end_year.unknown then
table.insert(cats, '[[Category:]]')
end
if start_year.year and end_year.year and year_greater_than(start_year, end_year) then
table.insert(cats, '[[Category:]]')
end
-- single year
local year_for_cat
if year.year then
year_for_cat = get_year_text(year.year, year.precision, year.bce)
-- date range
elseif start_year.year and end_year.year and start_year.bce == end_year.bce then
year_for_cat = get_containing_year_category({start_year, end_year})
elseif #year_list > 0 then
year_for_cat = get_containing_year_category(year_list)
end
table.insert(cats, year_for_cat and ('[[Category:]]'))
return table.concat(cats)
end
local function get_year_from_single_statement(statement)
local snak = statement.mainsnak
if not snak or not snak.datavalue or not snak.datavalue.value or not snak['datavalue']['value']['time'] or not snak.datavalue.value.precision then
return nil
end
local precision = snak.datavalue.value.precision
if precision < 6 then
-- precision is less than a millennium
return {
precision = precision,
display = string.gsub(mw.wikibase.formatValue(statement.mainsnak), '^<span>(.*)</span>$', '%1')
}
end
local start_years = {}
local end_years = {}
local start_year, end_year
local circa = false
if statement.qualifiers then
-- Check if date is approximate
-- P1480 = sourcing circumstances, Q5727902 = circa
if statement.qualifiers.P1480 then
for _, qualifier in ipairs(statement.qualifiers.P1480) do
if qualifier.datavalue and qualifier.datavalue.value.id == 'Q5727902' then
circa = true
break
end
end
end
if circa then
precision = precision - 1
end
-- P580 = start time
if statement.qualifiers.P580 then
for k, v in pairs(statement.qualifiers.P580) do
table.insert(start_years, get_year_from_single_statement({mainsnak = v}))
end
start_years = TableTools.compressSparseArray(TableTools.removeDuplicates(start_years))
table.sort(start_years, year_less_than)
start_year = start_years[1]
if #start_years > 1 then
start_year.uncertain = true
end
end
-- P582 = end time
if statement.qualifiers.P582 then
for k, v in pairs(statement.qualifiers.P582) do
table.insert(end_years, get_year_from_single_statement({mainsnak = v}))
end
end_years = TableTools.compressSparseArray(TableTools.removeDuplicates(end_years))
table.sort(end_years, year_less_than)
end_year = end_years[1]
if #end_years > 1 then
end_year.uncertain = true
end
end
end
-- extract the year from the timestamp
-- example timestamps: +2016-10-05T00:00:00Z, -1752-00-00T00:00:00Z
local year
local bce = false
local split = mw.text.split(snak['datavalue']['value']['time'], '-', true)
if split[1] == '' then
year = tonumber(split[2])
bce = true
else
year = tonumber(split[1])
end
-- malformed timestamp
if not year then
return nil
end
local year_data = {
year = (not start_year and not end_year and year) or nil,
circa = circa,
bce = bce,
uncertain = (start_year and start_year.year ~= year) or circa,
precision = precision,
start_year = start_year,
end_year = end_year
}
year_data.display = format_year_for_display(year_data)
return year_data
end
local function get_wikidata_year(args)
-- Fetch entity object for Wikidata item connected to the current page
-- Let manually-specified Wikidata ID override if given and valid
if not (args.wikidata and mw.wikibase.isValidEntityId(args.wikidata)) then
args.wikidata = mw.wikibase.getEntityIdForCurrentPage()
end
if not args.wikidata then
return nil
end
local item = mw.wikibase.getEntity(args.wikidata)
if not item then
return nil
end
local statements = item:getBestStatements('P577') -- publication date
if #statements == 0 then
return nil
end
local years = {}
for _, statement in ipairs(statements) do
local year_data = get_year_from_single_statement(statement)
table.insert(years, year_data)
end
years = TableTools.compressSparseArray(TableTools.removeDuplicates(years))
if #years == 0 then
return nil
elseif #years == 1 then
return years[1]
end
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
end
local function parse_year(year)
if not year then
return nil
elseif year == '?' or string.lower(year) == 'unknown' then
return unknownyear
end
local input_year = year
local circa = false
-- Lua patterns can't do ^c(irca)?(%s|%.|/)* because they don't do alternation or apply quantifiers to groups
if string.match(year, '^circa') or string.match(year, '^c%.') or string.match(year, '^c%s*/') then
circa = true
year = string.gsub(string.gsub(string.gsub(year, '^circa%s*', ''), '^c%.%s*', ''), '^c%s*/%s*', '')
end
local bce = false
if string.match(year, 'BC[E]?$') then
bce = true
year = string.gsub(year, '%s*BC[E]?$', '')
end
if string.match(year, '/') then
local year_split = mw.text.split(year, '/')
local years = {}
for _, opt in ipairs(year_split) do
if opt ~= '' then
local y = parse_year(opt)
y.bce = y.bce or bce
y.circa = y.circa or circa
table.insert(years, y)
end
end
if #years > 1 then
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
elseif #years == 1 then
return years[1]
end
end
local start_year, end_year
year = string.gsub(string.gsub(year, '%-', '–'), '—', '–')
if string.match(year, '^[^–]*–[^–]*$') then
local year_range = mw.text.split(year, '–')
start_year = mw.text.trim(year_range[1])
end_year = mw.text.trim(year_range[2])
if start_year == '' then
start_year = nil
else
start_year = parse_year(start_year)
start_year.circa = start_year.circa or circa
start_year.bce = start_year.bce or bce
end
if end_year == '' then
end_year = nil
else
end_year = parse_year(end_year)
end_year.circa = end_year.circa or circa
end_year.bce = end_year.bce or bce
end
end
local precision
if tonumber(year) then
precision = 9
-- Check if it looks like a decade
elseif string.match(year, '^%d*0s$') then
precision = 8
year = string.gsub(year, '^(%d*0)s$', '%1')
-- Or a century
elseif string.match(year, '^%d+[a-z]* үйэ$') then
precision = 7
year = string.gsub(year, '^(%d+)[a-z]* үйэ$', '%1')
year = 100 * (tonumber(year) - 1)
-- Or a millennium
elseif string.match(year, '^%d+[a-z]* millennium$') then
precision = 6
year = string.gsub(year, '^(%d+)[a-z]* millennium', '%1')
year = 1000 * (tonumber(year) - 1)
end
if circa and precision then
precision = precision - 1
end
if tonumber(year) then
local data = {
year = tonumber(year),
bce = bce,
circa = circa,
precision = precision
}
data['display'] = format_year_for_display(data)
return data
elseif start_year or end_year then
return {
start_year = start_year,
end_year = end_year,
display = format_year_for_display({start_year = start_year, end_year = end_year})
}
end
return {
unrecognised = true,
display = input_year
}
end
function p.construct_year(args)
local current_title = mw.title.getCurrentTitle()
local year_args = {
year = args.year,
noprint = yesno(args.noyear) or false,
wikidata = args.wikidata
}
year_args.nocat = yesno(args.noyearcat)
if year_args.nocat == nil then
if args.testing then
year_args.nocat = false
else
year_args.nocat = (
yesno(args.disambiguation) -- disambiguations never categorise
or not current_title:inNamespaces(0, 103) -- only categorise in mainspace and Translation
or current_title.isSubpage -- only categorise if this is a base page
)
end
end
local year_data = parse_year(year_args.year) or get_wikidata_year(year_args)
local cats = (year_args.nocat and '') or categorise_year({input_year = year_args.year, year = year_data})
if args.testing then
cats = mw.text.nowiki(cats) .. cats
end
if year_args.noprint or not year_data or not year_data.display then
return cats
end
local year_span = mw.html.create('span')
:addClass('wst-header-year-text')
:wikitext(year_data.display)
:allDone()
return ' (' .. tostring(year_span) .. ')' .. cats
end
return p
nafm6660n20rbby341fz5bjys11xr4w
9591
9590
2026-06-23T05:16:28Z
Sauit
2200
9591
Scribunto
text/plain
--[=[
Construct the year span
--]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
--[=[
Year properties:
{
year = integer,
precision = integer,
circa = boolean,
bce = boolean,
uncertain = boolean,
unknown = boolean,
unrecognised = boolean,
display = string,
start_year = year,
end_year = year,
year_list = year
}
]=]
--[=[ Precision:
0 - billion years
1 - hundred million years,
2 - ten million years,
3 - million years,
4 - hundred thousand years,
5 - ten thousand years,
6 - millenia,
7 - centuries,
8 - decades,
9 - years,
10 - months,
11 - days
12 - hours
13 - minutes
14 - seconds
]=]
local currentyear = {
year = tonumber(os.date('%Y')),
precision = 9,
circa = false,
bce = false,
display = os.date('%Y')
}
local unknownyear = {
unknown = true,
display = 'unknown'
}
local function year_less_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year1 == nil
elseif year1.bce ~= year2.bce then
return year1.bce
end
if year1.bce then
return year1.year > year2.year
else
return year1.year < year2.year
end
end
local function year_greater_than(year1, year2)
if year1 == year2 then
return false
elseif not year1 or not year2 then
return year2 == nil
elseif year1.bce ~= year2.bce then
return year2.bce
end
if year1.bce then
return year1.year < year2.year
else
return year1.year > year2.year
end
end
local function year_equal(year1, year2)
if year1 == year2 then
return true
elseif not year1 or not year2 then
return false
end
year1.bce = year2.bce == true
year1.bce = year2.bce == true
return year1.bce == year2.bce and year1.year == year2.year
end
local function pad_number(n, pad)
n = tostring(n)
return string.rep('0', pad - string.len(n)) .. n
end
local function get_year_text(year, precision, bce)
if not tonumber(year) then
return year
elseif precision < 6 then
return nil
end
year = tonumber(year)
local suffixes = {
[1] = 'st',
[2] = 'nd',
[3] = 'rd',
['default'] = 'th'
}
local bce_text = (bce and ' BCE') or ''
if precision == 6 then
local millennium = (year - year % 1000)/1000 + 1
return millennium .. (suffixes[millennium] or suffixes['default']) .. ' millennium' .. bce_text
elseif precision == 7 then
local century = (year - year % 100)/100 + 1
return century .. (suffixes[century] or suffixes['default']) .. ' үйэ' .. bce_text
elseif precision == 8 then
local decade = year - year % 10
return decade .. 's' .. bce_text
else
return year .. bce_text
end
end
local function format_year_for_display(year)
if not year then
return nil
end
local start_year = year.start_year and TableTools.shallowClone(year.start_year)
local end_year = year.end_year and TableTools.shallowClone(year.end_year)
if year.year then
return (year.circa and 'c. ' or '') .. get_year_text(year.year, year.precision + (year.circa and 1 or 0), year.bce) .. ((year.bce == nil and ' CE') or '')
elseif start_year or end_year then
if start_year and end_year then
if start_year.bce and end_year.bce then
start_year.bce = false
elseif start_year.bce ~= end_year.bce then
start_year.bce = start_year.bce or nil
end_year.bce = end_year.bce or nil
end
if start_year.circa then
end_year.circa = false
end
end
return table.concat({format_year_for_display(start_year) or '', format_year_for_display(end_year) or ''}, '–')
end
return nil
end
local function format_year_list_for_display(years)
local year_displays = {}
for _, year in ipairs(years) do
table.insert(year_displays, year.display or format_year_for_display(year))
end
return table.concat(year_displays, '/')
end
local function substrings_all_equal(years, i)
local substrings = {}
for _, year in ipairs(years) do
table.insert(substrings, string.sub(year, 1, i))
end
return #(TableTools.removeDuplicates(substrings)) <= 1
end
local function get_containing_year_category(years_to_categorize)
local years = {}
for _, year in ipairs(TableTools.shallowClone(years_to_categorize)) do
if not year.year or not year.precision then
return nil
else
table.insert(years, year)
end
end
if #years == 0 then
return nil
end
local bce = years[1].bce
for _, year in ipairs(years) do
year.bce = year.bce == true
if bce ~= year.bce then
return nil
end
end
local precisions = {}
for _, year in ipairs(years) do
table.insert(precisions, year.precision)
end
table.sort(precisions)
local n_length = 0
for _, year in ipairs(years) do
n_length = math.max(n_length, string.len(year.year))
end
local padded_years = {}
for _, year in ipairs(years) do
table.insert(padded_years, pad_number(year.year, n_length))
end
local shared_digits = 1
while shared_digits <= n_length and substrings_all_equal(padded_years, shared_digits) do
shared_digits = shared_digits + 1
end
shared_digits = shared_digits - 1
local range_precision = math.min(precisions[1], 9 - n_length + shared_digits)
return get_year_text(years[1].year, range_precision, years[1].bce)
end
local function categorise_year(args)
local cats = {}
local year = args.year or {}
local start_year = year.start_year or (year.end_year ~= nil and unknownyear) or {}
local end_year = year.end_year or (year.start_year ~= nil and currentyear) or {}
start_year.bce = start_year.bce == true
end_year.bce = end_year.bce == true
local year_list = year.year_list or {}
local precisions = {}
table.insert(precisions, year.precision)
table.insert(precisions, start_year.precision)
table.insert(precisions, end_year.precision)
table.sort(precisions)
if year.uncertain or start_year.uncertain or end_year.uncertain or year.circa or start_year.circa or end_year.circa or #(year_list) > 1 or (precisions[1] and precisions[1] < 9) then
-- table.insert(cats, '[[Category:]]') --
end
if year.unknown or start_year.unknown or end_year.unknown then
-- table.insert(cats, '[[Category:]]') --
end
if start_year.year and end_year.year and year_greater_than(start_year, end_year) then
-- table.insert(cats, '[[Category:]]') --
end
-- single year
local year_for_cat
if year.year then
year_for_cat = get_year_text(year.year, year.precision, year.bce)
-- date range
elseif start_year.year and end_year.year and start_year.bce == end_year.bce then
year_for_cat = get_containing_year_category({start_year, end_year})
elseif #year_list > 0 then
year_for_cat = get_containing_year_category(year_list)
end
-- table.insert(cats, year_for_cat and ('[[Category:]]')) --
return table.concat(cats)
end
local function get_year_from_single_statement(statement)
local snak = statement.mainsnak
if not snak or not snak.datavalue or not snak.datavalue.value or not snak['datavalue']['value']['time'] or not snak.datavalue.value.precision then
return nil
end
local precision = snak.datavalue.value.precision
if precision < 6 then
-- precision is less than a millennium
return {
precision = precision,
display = string.gsub(mw.wikibase.formatValue(statement.mainsnak), '^<span>(.*)</span>$', '%1')
}
end
local start_years = {}
local end_years = {}
local start_year, end_year
local circa = false
if statement.qualifiers then
-- Check if date is approximate
-- P1480 = sourcing circumstances, Q5727902 = circa
if statement.qualifiers.P1480 then
for _, qualifier in ipairs(statement.qualifiers.P1480) do
if qualifier.datavalue and qualifier.datavalue.value.id == 'Q5727902' then
circa = true
break
end
end
end
if circa then
precision = precision - 1
end
-- P580 = start time
if statement.qualifiers.P580 then
for k, v in pairs(statement.qualifiers.P580) do
table.insert(start_years, get_year_from_single_statement({mainsnak = v}))
end
start_years = TableTools.compressSparseArray(TableTools.removeDuplicates(start_years))
table.sort(start_years, year_less_than)
start_year = start_years[1]
if #start_years > 1 then
start_year.uncertain = true
end
end
-- P582 = end time
if statement.qualifiers.P582 then
for k, v in pairs(statement.qualifiers.P582) do
table.insert(end_years, get_year_from_single_statement({mainsnak = v}))
end
end_years = TableTools.compressSparseArray(TableTools.removeDuplicates(end_years))
table.sort(end_years, year_less_than)
end_year = end_years[1]
if #end_years > 1 then
end_year.uncertain = true
end
end
end
-- extract the year from the timestamp
-- example timestamps: +2016-10-05T00:00:00Z, -1752-00-00T00:00:00Z
local year
local bce = false
local split = mw.text.split(snak['datavalue']['value']['time'], '-', true)
if split[1] == '' then
year = tonumber(split[2])
bce = true
else
year = tonumber(split[1])
end
-- malformed timestamp
if not year then
return nil
end
local year_data = {
year = (not start_year and not end_year and year) or nil,
circa = circa,
bce = bce,
uncertain = (start_year and start_year.year ~= year) or circa,
precision = precision,
start_year = start_year,
end_year = end_year
}
year_data.display = format_year_for_display(year_data)
return year_data
end
local function get_wikidata_year(args)
-- Fetch entity object for Wikidata item connected to the current page
-- Let manually-specified Wikidata ID override if given and valid
if not (args.wikidata and mw.wikibase.isValidEntityId(args.wikidata)) then
args.wikidata = mw.wikibase.getEntityIdForCurrentPage()
end
if not args.wikidata then
return nil
end
local item = mw.wikibase.getEntity(args.wikidata)
if not item then
return nil
end
local statements = item:getBestStatements('P577') -- publication date
if #statements == 0 then
return nil
end
local years = {}
for _, statement in ipairs(statements) do
local year_data = get_year_from_single_statement(statement)
table.insert(years, year_data)
end
years = TableTools.compressSparseArray(TableTools.removeDuplicates(years))
if #years == 0 then
return nil
elseif #years == 1 then
return years[1]
end
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
end
local function parse_year(year)
if not year then
return nil
elseif year == '?' or string.lower(year) == 'unknown' then
return unknownyear
end
local input_year = year
local circa = false
-- Lua patterns can't do ^c(irca)?(%s|%.|/)* because they don't do alternation or apply quantifiers to groups
if string.match(year, '^circa') or string.match(year, '^c%.') or string.match(year, '^c%s*/') then
circa = true
year = string.gsub(string.gsub(string.gsub(year, '^circa%s*', ''), '^c%.%s*', ''), '^c%s*/%s*', '')
end
local bce = false
if string.match(year, 'BC[E]?$') then
bce = true
year = string.gsub(year, '%s*BC[E]?$', '')
end
if string.match(year, '/') then
local year_split = mw.text.split(year, '/')
local years = {}
for _, opt in ipairs(year_split) do
if opt ~= '' then
local y = parse_year(opt)
y.bce = y.bce or bce
y.circa = y.circa or circa
table.insert(years, y)
end
end
if #years > 1 then
return {
uncertain = true,
year_list = years,
display = format_year_list_for_display(years)
}
elseif #years == 1 then
return years[1]
end
end
local start_year, end_year
year = string.gsub(string.gsub(year, '%-', '–'), '—', '–')
if string.match(year, '^[^–]*–[^–]*$') then
local year_range = mw.text.split(year, '–')
start_year = mw.text.trim(year_range[1])
end_year = mw.text.trim(year_range[2])
if start_year == '' then
start_year = nil
else
start_year = parse_year(start_year)
start_year.circa = start_year.circa or circa
start_year.bce = start_year.bce or bce
end
if end_year == '' then
end_year = nil
else
end_year = parse_year(end_year)
end_year.circa = end_year.circa or circa
end_year.bce = end_year.bce or bce
end
end
local precision
if tonumber(year) then
precision = 9
-- Check if it looks like a decade
elseif string.match(year, '^%d*0s$') then
precision = 8
year = string.gsub(year, '^(%d*0)s$', '%1')
-- Or a century
elseif string.match(year, '^%d+[a-z]* үйэ$') then
precision = 7
year = string.gsub(year, '^(%d+)[a-z]* үйэ$', '%1')
year = 100 * (tonumber(year) - 1)
-- Or a millennium
elseif string.match(year, '^%d+[a-z]* millennium$') then
precision = 6
year = string.gsub(year, '^(%d+)[a-z]* millennium', '%1')
year = 1000 * (tonumber(year) - 1)
end
if circa and precision then
precision = precision - 1
end
if tonumber(year) then
local data = {
year = tonumber(year),
bce = bce,
circa = circa,
precision = precision
}
data['display'] = format_year_for_display(data)
return data
elseif start_year or end_year then
return {
start_year = start_year,
end_year = end_year,
display = format_year_for_display({start_year = start_year, end_year = end_year})
}
end
return {
unrecognised = true,
display = input_year
}
end
function p.construct_year(args)
local current_title = mw.title.getCurrentTitle()
local year_args = {
year = args.year,
noprint = yesno(args.noyear) or false,
wikidata = args.wikidata
}
year_args.nocat = yesno(args.noyearcat)
if year_args.nocat == nil then
if args.testing then
year_args.nocat = false
else
year_args.nocat = (
yesno(args.disambiguation) -- disambiguations never categorise
or not current_title:inNamespaces(0, 103) -- only categorise in mainspace and Translation
or current_title.isSubpage -- only categorise if this is a base page
)
end
end
local year_data = parse_year(year_args.year) or get_wikidata_year(year_args)
local cats = (year_args.nocat and '') or categorise_year({input_year = year_args.year, year = year_data})
if args.testing then
cats = mw.text.nowiki(cats) .. cats
end
if year_args.noprint or not year_data or not year_data.display then
return cats
end
local year_span = mw.html.create('span')
:addClass('wst-header-year-text')
:wikitext(year_data.display)
:allDone()
return ' (' .. tostring(year_span) .. ')' .. cats
end
return p
i1hpi89viu1s43ggnc8kb5auok9b1lo
Модуль:Edition
828
2471
9526
2026-06-22T14:13:51Z
Sauit
2200
"-------------------------------------------------------------------------------- -- Organisation of this module: the exports are listed at the bottom; their -- direct functions are just above there, and supporting functions are higher -- up. -- -- Please add testcases before modifying anything. -- -------------------------------------------------------------------------------- require('strict') local instanceOfProp = 'P31' local authorProp = 'P50'..." саҥа сирэй оҥоһулунна
9526
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Organisation of this module: the exports are listed at the bottom; their
-- direct functions are just above there, and supporting functions are higher
-- up.
--
-- Please add testcases before modifying anything.
--
--------------------------------------------------------------------------------
require('strict')
local instanceOfProp = 'P31'
local authorProp = 'P50'
local editionOrTranslationOfProp = 'P629'
local equivalentClassProp = 'P1709'
local topicsMainWikimediaPortalProp = 'P1151';
--------------------------------------------------------------------------------
-- Insert a value into a table, but not if it's already there.
local function tableInsertUnique( theTable, value )
for _, item in pairs( theTable ) do
if item == value then
-- Already present
return
end
end
-- Otherwise, add the new value.
table.insert( theTable, value )
end
--------------------------------------------------------------------------------
-- For the given author item, find the Wikisource sitelink. If there isn't one,
-- check to see if there the author has a topicsMainWikimediaPortal statement,
-- and then see if that portal has a sitelink instead.
local function get_author_sitelink( authorItem )
local siteLink = authorItem:getSitelink( mw.language.getContentLanguage().code .. 'wikisource' )
if ( siteLink ~= nil ) then
return siteLink
end
local portalStatements = authorItem:getBestStatements( topicsMainWikimediaPortalProp )
for _, mainPortal in pairs( portalStatements ) do
local mainPortalId = mainPortal['mainsnak']['datavalue']['value']['id']
local mainPortalItem = mw.wikibase.getEntity( mainPortalId )
siteLink = mainPortalItem:getSitelink( mw.language.getContentLanguage().code .. 'wikisource' )
end
return siteLink
end
--------------------------------------------------------------------------------
-- Get the schema.org URL for the itemtype of the given item.
local function getSchemaorgItemtype( item )
local schemaPrefix = 'http://schema.org/'
for _, instanceOf in pairs( item:getBestStatements( instanceOfProp ) ) do
local instanceOfId = instanceOf['mainsnak']['datavalue']['value']['id']
local instanceOfItem = mw.wikibase.getEntity( instanceOfId )
-- Now go through each of the instance-of item's class statements,
-- seeing if we can find a matching schema.org URL.
for _, equivClass in pairs( instanceOfItem:getBestStatements( equivalentClassProp ) ) do
local val = equivClass['mainsnak']['datavalue']['value']
if string.sub( val, 1, #schemaPrefix ) == schemaPrefix then
-- This is a schema.org URL.
return val
end
end
end
-- If we've not figured it out by now, give up with the default.
return schemaPrefix .. 'Thing'
end
--------------------------------------------------------------------------------
-- Create the HTML (including wikitext link) for all provided authors,
-- and add it to the given authorLinks table (for later concatenation).
local function process_authors( authorLinks, authors )
if authors == nil or #authors == 0 then
return
end
for _, author in pairs( authors ) do
local authorId = author['mainsnak']['datavalue']['value']['id']
local authorItem = mw.wikibase.getEntity( authorId )
local siteLink = get_author_sitelink( authorItem )
local authorName = authorItem:getLabel()
if siteLink ~= nil then
authorName = mw.title.new( siteLink ).text
end
local authorHtml = mw.html.create('span')
:attr('itemprop', 'author')
:attr('itemscope', '')
:attr('itemtype', getSchemaorgItemtype( authorItem ) )
local authorNameHtml = authorHtml:tag( 'span' )
authorNameHtml:attr( 'itemprop', 'name' )
:wikitext( authorName )
local authorHtmlStr = tostring( authorHtml )
if siteLink == nil then
tableInsertUnique( authorLinks, authorHtmlStr )
else
tableInsertUnique( authorLinks, '[[' .. siteLink .. '|' .. authorHtmlStr .. ']]' )
end
end
end
--------------------------------------------------------------------------------
-- Get an Item based on what's passed in the 'wikidata' or 'page' parameters of
-- the args, or the current page's ID otherwise.
local function getItem( args )
local id = nil
-- If args is a table with an appropriate element, use it.
if type( args ) == 'table' then
if args.wikidata ~= '' and args.wikidata ~= nil then
id = args.wikidata
elseif args.wikidata_id ~= '' and args.wikidata_id ~= nil then
id = args.wikidata_id
elseif args.page ~= '' and args.page ~= nil then
local title = mw.title.new( args.page )
id = mw.wikibase.getEntityIdForTitle( title.nsText .. title.text )
-- If no entity for this page, maybe it's a subpage and we should look for the root page's entity.
if id == nil then
id = mw.wikibase.getEntityIdForTitle( title.nsText .. title.rootText )
end
end
end
if type( args ) == 'string' and args ~= '' then
id = args
end
return mw.wikibase.getEntity( id )
end
--------------------------------------------------------------------------------
-- Exported method.
--
local function author_list( args )
local item = getItem( args )
if item == nil then
return ''
end
local authorLinks = {}
-- Collect the authors of this item.
local authors = item:getBestStatements( authorProp )
process_authors( authorLinks, authors )
-- Also collect the authors of the parent work.
local works = item:getBestStatements( editionOrTranslationOfProp )
for _, work in pairs( works ) do
local workId = work['mainsnak']['datavalue']['value']['id']
local workItem = mw.wikibase.getEntity( workId )
authors = workItem:getBestStatements( authorProp )
if #authors > 0 then
process_authors( authorLinks, authors )
end
end
-- Output the final list of links.
local outHtml = mw.html.create()
local separator = args.separator or ', '
local last_separator = args.last_separator or ', and '
local i = 1
for _, link in pairs( authorLinks ) do
outHtml:wikitext( link )
if i == ( #authorLinks - 1 ) then
outHtml:wikitext( last_separator )
elseif #authorLinks > 1 and i ~= #authorLinks then
outHtml:wikitext( separator )
end
i = i + 1
end
return tostring( outHtml )
end
--------------------------------------------------------------------------------
-- Exported method.
--
local function inline( args )
local item = getItem( args )
local outHtml = mw.html.create()
if ( item == nil ) then
outHtml:wikitext( '<span class="error">Unable to determine the Wikidata item to use</span>' )
return tostring( outHtml )
end
-- Make sure it's an edition.
local editionOrTranslationOfStmts = item:getBestStatements( editionOrTranslationOfProp )
if #editionOrTranslationOfStmts == 0 then
outHtml:wikitext( '<span class="error">' .. item.id .. ' is not an edition or translation of a work (missing P629)</span>' )
return tostring( outHtml )
end
-- Title/label.
local title = item:getSitelink( 'enwikisource' )
local label = item:getLabel( 'en' )
local hasWikisourcePage = false
if title == nil or title == '' then
title = label
else
hasWikisourcePage = true
title = '[[' .. title .. '|' .. label .. ']]'
end
outHtml:wikitext( title .. ' ' );
-- Publication date
local publicationDate = item:formatPropertyValues( 'P577' )
outHtml:wikitext( '(' .. publicationDate.value .. ') ' )
-- Authors
if args.hideauthors == nil or args.hideauthors == '' then
local authorList = author_list( args )
if authorList ~= '' then
outHtml:wikitext( ' by ' .. authorList .. ' ' )
end
end
-- Scanned file on Wikimedia Commons.
if not hasWikisourcePage then
-- Add links to Index page or Commons file.
local hasIndexOrCommonsLink = false
local scannedFileOnWikimediaCommons = 'P996'
local scannedFileOnWikimediaCommonsStmts = item:getBestStatements( scannedFileOnWikimediaCommons )
for _, stmt in pairs( scannedFileOnWikimediaCommonsStmts ) do
local commonsFilename = stmt['mainsnak']['datavalue']['value']
outHtml:wikitext( ' ' .. mw.getCurrentFrame():expandTemplate{ title = 'Small scan link', args = { commonsFilename } } )
hasIndexOrCommonsLink = true;
end
-- Add link to the IA item if no links were added above.
if not hasIndexOrCommonsLink then
local internetArchiveIdProp = 'P724'
local internetArchiveIdStmts = item:getBestStatements( internetArchiveIdProp )
for _, stmt in pairs( internetArchiveIdStmts ) do
local internetArchiveId = stmt['mainsnak']['datavalue']['value']
outHtml:wikitext( ' ' .. mw.getCurrentFrame():expandTemplate{ title = 'IA small link', args = { internetArchiveId } } )
end
end
end
-- Wikidata and Wikipedia links.
local img = '[[File:Wikidata-books-task-force-logo.svg|20px|alt=Wikidata books task force logo|link=d:' .. item.id .. '|View on Wikidata]]'
outHtml:wikitext( img )
return tostring( outHtml )
end
--------------------------------------------------------------------------------
-- Exported method. Get wikitext for displaying an edition's badges from Wikidata.
-- To get an indicator, pass args.indicator = true
-- Testing: =p.badge({args={wikidata='Q75043199'}})
--
local function badge( args )
local item = getItem( args )
if not ( item and item.sitelinks and item.sitelinks.enwikisource and item.sitelinks.enwikisource.badges ) then
return ''
end
local badges = item.sitelinks.enwikisource.badges
local out = ''
for _, badge in pairs( badges ) do
local badgeOut = ''
local badgeItem = mw.wikibase.getEntity( badge )
local badgeName = ''
local wikisourceBadgeClass = 'Q75042035'
if badgeItem.claims.P31[1].mainsnak.datavalue.value.id == wikisourceBadgeClass and badgeItem.claims.P18 ~= nil then
local imageName = badgeItem.claims.P18[1].mainsnak.datavalue.value
if mw.wikibase.getLabel( badge ) ~= nil then
badgeName = mw.wikibase.getLabel( badge )
end
badgeOut = '<span class="indicator-badge">[[File:' .. imageName .. '|16px|link=Help:Text status|' .. badgeName .. ']]</span>'
if args.indicator ~= nil then
badgeOut = '<indicator name="wikisource-badge-' .. badgeName .. '">' .. badgeOut .. '</indicator>'
end
if args.category ~= nil and badgeItem.claims.P910 ~= nil then
local categoryQid = badgeItem.claims.P910[1].mainsnak.datavalue.value.id
local category = mw.wikibase.getEntity( categoryQid )
badgeOut = badgeOut .. '[[' .. category.sitelinks.enwikisource.title .. ']]'
end
out = out .. badgeOut
end
end
return mw.getCurrentFrame():preprocess( out )
end
--------------------------------------------------------------------------------
-- Exported method.
local function authority_control( args )
local item = getItem( args )
-- Gather every 'external-id' statement.
local out = mw.html.create( '' )
for propertyId,claims in pairs( item.claims) do
local propItem = getItem( propertyId )
for _,claim in pairs( claims ) do
if claim.mainsnak.datatype == 'external-id' then
local propLabel = propItem:getLabel()
if not propLabel then
if propItem.aliases.en and propItem.aliases.en[1].value then
propLabel = propItem.aliases.en[1].value
else
propLabel = propertyId
end
end
out:wikitext( '* [[d:Special:EntityPage/'.. propertyId .. '|' .. propLabel .. ']]: ' .. claim.mainsnak.datavalue.value .. '\n' )
end
end
end
return tostring( out )
end
--------------------------------------------------------------------------------
-- Export all public functions.
return {
-- =p.author_list({args={wikidata='Q28913867'}})
author_list = function( frame ) return author_list( frame.args ) end;
-- =p.inline({args={wikidata_id='Q28913867'}})
inline = function( frame ) return inline( frame.args ) end;
-- =p.badge({args={wikidata='Q28020002'}})
badge = function( frame ) return badge( frame.args ) end;
-- =p.authority_control({args={wikidata='Q19035838'}})
authority_control = function( frame ) return authority_control( frame.args ) end;
}
k1vza9jbs6j4dfxyxlxqbxi6ftyq0kt
Модуль:Edition/doc
828
2472
9527
2026-06-22T14:14:06Z
Sauit
2200
"[[Категория:Бикитиэкэ:Модульдар]]" саҥа сирэй оҥоһулунна
9527
wikitext
text/x-wiki
[[Категория:Бикитиэкэ:Модульдар]]
92yd9acwb4a8fbbxpieefto3kn28ys4
Халыып:Header/styles.css
10
2473
9531
2026-06-22T14:16:50Z
Sauit
2200
".wst-header .wst-header-mainblock { border: 1px solid var(--border-color-success, #ACA); background-color: var(--background-color-success-subtle, #E6F2E6); color: var(--color-base, #202122); } .wst-header .wst-header-notes { border-bottom: 1px solid var(--border-color-notice, #A0A0A0); background-color: var(--background-color-neutral, #FAFAFF); color: var(--color-base, #202122); } .wst-header .contributor-text { font-style: italic; } .wst..." саҥа сирэй оҥоһулунна
9531
sanitized-css
text/css
.wst-header .wst-header-mainblock {
border: 1px solid var(--border-color-success, #ACA);
background-color: var(--background-color-success-subtle, #E6F2E6);
color: var(--color-base, #202122);
}
.wst-header .wst-header-notes {
border-bottom: 1px solid var(--border-color-notice, #A0A0A0);
background-color: var(--background-color-neutral, #FAFAFF);
color: var(--color-base, #202122);
}
.wst-header .contributor-text {
font-style: italic;
}
.wst-header #header-title-text,
.wst-header .wst-header-title-text {
font-weight: bold;
}
/* microformat */
.wst-header #ws-data {
display: none;
}
.wst-header #ws-data.ws-data-show {
display: block;
}
/* [[Category:Халыыптар:CSS]] */
tdw5ulth5xpg7801trt1qyuets891z8
Халыып:Header structure/styles.css
10
2474
9532
2026-06-22T14:17:38Z
Sauit
2200
"/* Styles used by header templates (not just header) */ /* * main block */ /* The top level wrapper for the header main block. */ .wst-header-mainblock { margin: 4px auto 4px auto; padding: 0 3px; display: flex; align-items: center; } /* Common styles for back and forward links */ .wst-header-back, .wst-header-forward { display: flex; flex: 1 4 100%; min-width: min-content; align-items: center; font-size: .9em; } .wst-header-nav-empty..." саҥа сирэй оҥоһулунна
9532
sanitized-css
text/css
/* Styles used by header templates (not just header) */
/*
* main block
*/
/* The top level wrapper for the header main block. */
.wst-header-mainblock {
margin: 4px auto 4px auto;
padding: 0 3px;
display: flex;
align-items: center;
}
/* Common styles for back and forward links */
.wst-header-back, .wst-header-forward {
display: flex;
flex: 1 4 100%;
min-width: min-content;
align-items: center;
font-size: .9em;
}
.wst-header-nav-empty {
visibility: hidden;
}
/* The container for the back (previous) link. */
.wst-header-back {
justify-content: flex-start;
text-align: left;
}
/* The container for the central cell. */
.wst-header-central-cell {
flex: 4 1 100%;
max-width: max-content;
text-align: center;
}
/* The container for the forward (next) link. */
.wst-header-forward {
justify-content: flex-end;
text-align: right;
}
@media(max-width:768px) {
/* Put title on its own flexbox row */
.wst-header-mainblock {
flex-wrap:wrap;
}
.wst-header-central-cell {
flex:0 0 100%;
order:-2;
width:auto;
}
.wst-header-back, .wst-header-forward {
width:auto;
}
}
/*
* notes block
*/
/* The overall notes container. */
.wst-header-notes {
display:inline-block;
border-collapse:collapse;
border-spacing:0;
empty-cells:hide;
font-size:.9em;
line-height:1.4;
margin:0 auto 4px auto;
width:100%;
}
/* Left-floated content. */
.wst-header-left {
float:left;
}
/* [[Category:Халыыптар:CSS]] */
2ro8q0u3rv7d4ypzxeodoa58q7r7xu3
Халыып:Үрдэ/1
10
2475
9533
2026-06-22T14:17:47Z
Sauit
2200
"{{#invoke:Header|header}}<noinclude>{{documentation|Үрдэ/doc}}</noinclude>" саҥа сирэй оҥоһулунна
9533
wikitext
text/x-wiki
{{#invoke:Header|header}}<noinclude>{{documentation|Үрдэ/doc}}</noinclude>
foox6zgx7n6zijbxb38he0utbvs44l5
9540
9533
2026-06-22T14:30:52Z
Sauit
2200
9540
wikitext
text/x-wiki
{| style="width:100%; margin-bottom:5px; border: 1px solid #ADA; background-color: #E4F2E4; text-align:center; font-size:0.9em;"
|-
| style="width:20%; text-align:left; font-size:0.9em;" | {{{previous|}}}
| style="width:60%;" | '''{{{title|Айымньы}}}'''<br/>{{#if: {{{section|}}}|{{{section|}}}<br/>|}}{{{noauthor|''{{#if: {{{noby|}}}|{{{noby|}}}|{{{noby|}}}}} {{{override_author|[[Ааптар:{{{author|}}}|{{{author|ааптар}}}]]}}}''}}}
| style="width:20%; text-align:right;font-size:0.9em;" | {{{next|}}}
|}
{| style="width:100%; border-bottom:1px solid #A88; background:#fAfAff; font-size:0.9em;"
|-
| {{{notes|}}}
|}
<br clear=all /><noinclude>
{{documentation}}
[[Категория:Халыыптар:Сирэйдэр халыыптара|{{PAGENAME}}]]
</noinclude>
i0r7ndixscdpaq6tr4vzet4f6gpyaok
Халыып:Header structure
10
2476
9534
2026-06-22T14:19:55Z
Sauit
2200
"{{#invoke:Header structure|header_structure}}<noinclude>{{documentation}}</noinclude>" саҥа сирэй оҥоһулунна
9534
wikitext
text/x-wiki
{{#invoke:Header structure|header_structure}}<noinclude>{{documentation}}</noinclude>
a8a025zdxwt7so6774qcce2bicaj2ql
9535
9534
2026-06-22T14:20:23Z
Sauit
2200
9535
wikitext
text/x-wiki
{{#invoke:Header structure|header_structure}}<noinclude>{{documentation}}[[Категория:Халыыптар:Форматтааһын]]</noinclude>
cdcg2haembxpohagu25ynziby3xl453
Халыып:Plain sister/styles.css
10
2477
9537
2026-06-22T14:26:08Z
Sauit
2200
".plainSister { display:block; font-size:93%; line-height:normal; list-style-type:none; list-style-image:none; list-style-position:outside; border:1px solid var(--border-color-interactive--hover, #AAA); float:right; clear:right; margin:0.5ex 0 0.5ex 0.5ex; padding:0; background:var(--background-color-base, #FFFFFF); color:var(--color-base, #202122); } .sisicon, .dabicon { padding-right:1ex } /* [[Категория:Халыыптар:C..." саҥа сирэй оҥоһулунна
9537
sanitized-css
text/css
.plainSister {
display:block;
font-size:93%;
line-height:normal;
list-style-type:none;
list-style-image:none;
list-style-position:outside;
border:1px solid var(--border-color-interactive--hover, #AAA);
float:right;
clear:right;
margin:0.5ex 0 0.5ex 0.5ex;
padding:0;
background:var(--background-color-base, #FFFFFF);
color:var(--color-base, #202122);
}
.sisicon,
.dabicon {
padding-right:1ex
}
/* [[Категория:Халыыптар:CSS]] */
s6dyswvv5mocqggr7r0a7s419i2suur
Кыттааччы:SauitBot
2
2478
9574
2026-06-22T15:25:44Z
SauitBot
2363
"{{Bot|Sauit}}" саҥа сирэй оҥоһулунна
9574
wikitext
text/x-wiki
{{Bot|Sauit}}
6jjp3vfzvu7avtvjdek34fh5hdvoz01
СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Илин-Хаҥалас барыйаана)
0
2479
9578
2026-06-23T04:54:09Z
Sauit
2200
"<div class="text"> ::Оконешников Николай Саввич, 40 саастаах, I Нөрүктээйи нэһилиэгэ, Мэҥэ—Хаҥалас оройуона, холкуостаах, саха, үөрэҕэ суох. ::1933 с. От ыйын 15 күнэ, "Улуу сыһыы" Соҕуруу бэрээт омук сиригэр олохтоох бэрээт омук ойууна Омоҕой Баайга кыыран, үс ү..." саҥа сирэй оҥоһулунна
9578
wikitext
text/x-wiki
<div class="text">
::Оконешников Николай Саввич, 40 саастаах, I Нөрүктээйи нэһилиэгэ, Мэҥэ—Хаҥалас оройуона, холкуостаах, саха, үөрэҕэ суох.
::1933 с. От ыйын 15 күнэ, "Улуу сыһыы"
Соҕуруу бэрээт омук сиригэр олохтоох бэрээт омук ойууна Омоҕой Баайга кыыран, үс үөстээх Өлүөнэ өрүһү куба кыыл буолан таҥнаран, Бүлүү төрдүгэр тиийэ көрүү көрөн эппит:
— Өлүөнэ өрүс кэҥээн тиийитигэр соҕуруу Ытык—Хайа арыый аллараа өттүгэр үс үтүө харыйалар үөскээн тураллар. Онно оҕонньордоох эмээхсин "дойду ийэжэхитэбит" диэн, кэлбити ууһатар—тэнитэр бэриилээх буолан турабыт диэн, уруйдуу тураллар. Соҕуруу Ытык Хайа сылгы сүөһү төрдө буолааччык, Хоту Ытык Хайа ынах сүөһү төрдө буолааччык буолан үөскээбиттэр эбит, онон, дьэ бу мин көрөр дойдубар тиийдэххинэ, дьолу—соргуну көрсүөҥ, кэнэҕэһин ууһуоҥ—тэнийиэҥ этэ.
Маны ылынан Омоҕой Баай ойохтоох, икки кыыстаах, уонча кэргэн уолаттардаах буолан, олохтоорун көһөн айаннаан иһэн, хайдах эрэ алҕас Бүлүү өрүһүн төбөтүн булан, ол устун болуотунан таҥнаран, Өлүөнэҕэ тиийэ Бүлүү төрдүгэр кэлэн тохтоон баран, Өлүөнэни бэйэтэ соҕотоҕун дьүлүнү миинэн илин эҥэр туораан үрэх сындыыһа үрдүк хайатын (Дьааҥытын) үрдүгэр тахсан дойду былаанын көрбүт уһу.
Ол көрөн: "Онтон өрө бардахха сөп буолуо, бу дойдуга тоҕо эрэ хоту өттүттэн тымныы салгыннар биллэллэр, киһи—сүөһү үөскээбэт, дьоло—соргута тохтообут дойду быһыылаах; соҕуруу өрө диэккиттэн итии сылаас салгын охсуллар, бука, үтүө дойду манан буолуо", — диэн болуотун бэчимэлэнэн, Өлүөнэ өрүһү өрө өксөйөн билигин Киллэм хонуутугар кэлэллэр. Дьэ, кырдьык, билии бэрээт ойууна эппитин курдук, илэ—бодо ийэжэхситтээх, чахчы—бааччы айыыһыттаах оҕонньордоох эмээхсин буолан үс харыйаҕа уруйдуу тураллар эбит уһу. Омоҕойдоох манна туос ураһа туруоран түһэллэр. Сассыныгар Хоту Ытык Хайаҕа бараннар ыҥырыа эриэн дьүһүннээх, уулаах, үс саастаах бургунас ынаҕы булан аҕалаллар. Онтон сассыныгар соҕуруу Ытык Хайаҕа тиийэн "Иэйээни хонуута, Кэркээни хонуута аатырыам" диир сирдэргэ үс харыйаны булан баран, онтон төрдүс саастаах чоҥкуруун сиэллээх, кутуруктаах уулаах биэни хайа хаҥас хоонньуттан булан аҕалаллар. Манна олохсуйан, бултаан—алтаан, кыыллаан, саһыллыан билии сүөһүлэрин үөскэтэллэр, ыал буолан олороллор.
Үс сыл буолан баран, улуу тунах саҕана, иккис сүһүөх (сайыҥҥы) уунан, арай бирдэ Омоҕой уолаттара көрбүттэрэ — өрүс үөһүттэн кус, кыыл түүтэ, мас сыыһа устан ааһаллар. Ону көрөн, тахсан Омоҕойго тыллыыллар. Маныаха Омоҕой: "Кэтэһиҥ!" — диэн сорудахтыыр. Ньиргитэр уонна Доргутар буоланнар Соҕуруу Ытык Хайаҕа тиийэ бараллар. Онно тиийбиттэрэ — олох сыгынньах киһи олорор уһу. Ону көрөөт, уолаттар уомуйаллар. Онуоха киһилэрэ билэн: "Бу Омоҕой уолаттараҕыт дуо? Мин эһи турбуккут кэннэ сыл аҥаара буолан баран, эһигини эккирэтэн, икки аҥаар сыл хонугар айаннаан бу кэлэн олоробун", — диэн билэр киһи курдук, дөксө "мин Эллэй Боотур буолабын" диэн кэпсэтэн, бисэн, бары Омоҕойдооххо тиийэн кэлэллэр. Дьэ ол кэлэн, Эллэй Омоҕойго олорон үс сыл тоҕору кэргэн (хамныыр) уол курдук буолан олорор.
Үлэтигэр олус бөҕө—таҕа, модьу, үс киһи тутуута тутуулаах, киэптээх—талалаах буолан (Омоҕойго) хайҕатан сылдьар.
Биир сасыарда Омогой эмээхсинэ чороонноох кымыһы айах туттаран туран Эллэйтэн:
—Биһи кыргыттарбытыттан биир үчүгэйин анал ойох ылан киһи—сүөһү төрдө буолууй. Биһи эйиэхэ ити Ньыкы—Дакханы аныыбыт, — диэн чороонноох кымыһын биэрэн туран көрдөһөр. Эллэй эмээхсин биэрбит кымыһын иһэр, тугу да эппэккэ истэн эрэ кэбиһэр.
Эллэй бултуур—алтыыр, аҕалара да олус, тутуута да бэт. Икки кыыс туой арҕаа бэскэ тахсан киирэр идэлээхтэр. Ону Эллэй үлэлии сылдьан кэтэһэн олорон саһан көрдө — икки кыыстан хойго кыыс Дэкиэй—Дэпсэ иигэ үрүҥ күүгэн буолан куос курдук чомчойо олорор уһу, оттон кыра, мааны кыыс Ньыкы—Дакхан иигэ сиргэ уу курдук күүгэнэ суох иҥэн—сутэн хаалбыт уһу. Ону тойонноон "бу — хойуутуттан төрүөхтээх, ыччаттаах буолуо, кыра мааны кыыс уоһуо—тэнийиэ суоҕа, сотору үйэлээх буолуо", — дии саныы сылдьыбыт. Ол курдук саныы сырыттаҕына, Омогой Баай бирдэ Эллэйи ыҥыран ылан ыйытар: "Хайа, бу биһи оҕолорбутуттан хайаларын ойох ылан, оҕо—уруу төрдө—ууһа буолаҕын?" — диэн. Ону Эллэй: "Ити хойго, куһаҕан кыыһы Дэкиэй—Дэпсини ойох ылабын" — диэбит. Маныаха Омогой Баайдаах хойго кыыһы ойох ыларын иһин өһүүн, сөбүлэмиэнэ, чаастарын баайдарыттан биир кутуруга, муоһа суох, Куочай кугас ынаҕы биэрэллэр, уонна: "Чэ, бара охсуҥ, икки харахпытыгар көстүмэҥ! Ханна саныыргыт даа, атын сиргэ баран араан тыа буолуҥ", диэн кырыан—таныйан туран холдьоҕоллор. Эллэйдээх иккиэжэҕин отчотооҕу Киэҥ—Иэйээни хонуутугар (билигин) Сахсарыга кэлэн олохсуйан, сэп—сэбиргэл оҥостон, ураһа туруорунан, сылгы сэлэтэ оҥостон, түптэлээн, сылгы иһитэ тэринэн, сылгыларын тутан уан, кымыс мунньунан ыал буолан бараллар.
Аҕыйах сылынан байан—тайан, оҕолонон—урууланан бараллар. Муспут кымыстарын биир сайын "Кулун кымыһа" оҥорон, аймахтарын Омогойдооҕу ыҥыран ыһыах ыһаллар. Ыҥырыыга эмээхсини кытта кэргэн уолаттар кэлэ сылдьыбыттар. Омогой мааны кыыһыныын кэлбэтэхтэр.
Эллэй ыһыаҕар чороонноох, сиэллээх айаҕы өрө тутан, сөхүрүэстээн туран алгыыр. Кини аан дойду иччитин алҕаан (ааттаталаан) айак туттарар (аһатар—сиэтэр). Маныаха Илин халлаан улаҕатыттан сүүмэх сылгы кыла күн тахсыбытыттан күнү быһа батыһа тахсан эргийэ көтөн ааспыт. Ол икки ардыгар ыһыах ортотугар Омогой хамначчыт кыыһа кэлэн тыллыыр: "Мааны кыыс Ньыкы—Дакхан кулун баһын быатынан быаланан биэҕэ состоро сылдьар, бара охсуоҕуҥ!" — диэн. Маны бары баар дьон баран көрбүттэрэ, Ньыкы—Дакхан биэҕэ бас быатынан состорон өлбүт уһу. Ононо өлбүтүгэр тиийэн хаалаллар.
Эллэй дьэ онтон ыла киһи—сүөһү, саха төрдө буолар гына ууһуур—тэнийэр, байар—тайар. Билигин саха 5 улууһа Эллэй Боотур оҕолоруттан эбит уһу (Хаҥалас, Мэҥэ, Боотуруускай, Бороҕон, Нам).
</div>
tvzugpn8nwu4fv9m644g6q48iu7lk7y
9579
9578
2026-06-23T04:56:12Z
Sauit
2200
9579
wikitext
text/x-wiki
{{header
| title = Омоҕой Баай, Эллэй Боотур (Илин-Хаҥалас барыйаана)
| author =
| section = [[Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)|Саха төрүттэрэ уонна кыргыс үйэтэ]]
| previous =
| next = [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)]]
| notes =
}}
<div class="text">
::Оконешников Николай Саввич, 40 саастаах, I Нөрүктээйи нэһилиэгэ, Мэҥэ—Хаҥалас оройуона, холкуостаах, саха, үөрэҕэ суох.
::1933 с. От ыйын 15 күнэ, "Улуу сыһыы"
Соҕуруу бэрээт омук сиригэр олохтоох бэрээт омук ойууна Омоҕой Баайга кыыран, үс үөстээх Өлүөнэ өрүһү куба кыыл буолан таҥнаран, Бүлүү төрдүгэр тиийэ көрүү көрөн эппит:
— Өлүөнэ өрүс кэҥээн тиийитигэр соҕуруу Ытык—Хайа арыый аллараа өттүгэр үс үтүө харыйалар үөскээн тураллар. Онно оҕонньордоох эмээхсин "дойду ийэжэхитэбит" диэн, кэлбити ууһатар—тэнитэр бэриилээх буолан турабыт диэн, уруйдуу тураллар. Соҕуруу Ытык Хайа сылгы сүөһү төрдө буолааччык, Хоту Ытык Хайа ынах сүөһү төрдө буолааччык буолан үөскээбиттэр эбит, онон, дьэ бу мин көрөр дойдубар тиийдэххинэ, дьолу—соргуну көрсүөҥ, кэнэҕэһин ууһуоҥ—тэнийиэҥ этэ.
Маны ылынан Омоҕой Баай ойохтоох, икки кыыстаах, уонча кэргэн уолаттардаах буолан, олохтоорун көһөн айаннаан иһэн, хайдах эрэ алҕас Бүлүү өрүһүн төбөтүн булан, ол устун болуотунан таҥнаран, Өлүөнэҕэ тиийэ Бүлүү төрдүгэр кэлэн тохтоон баран, Өлүөнэни бэйэтэ соҕотоҕун дьүлүнү миинэн илин эҥэр туораан үрэх сындыыһа үрдүк хайатын (Дьааҥытын) үрдүгэр тахсан дойду былаанын көрбүт уһу.
Ол көрөн: "Онтон өрө бардахха сөп буолуо, бу дойдуга тоҕо эрэ хоту өттүттэн тымныы салгыннар биллэллэр, киһи—сүөһү үөскээбэт, дьоло—соргута тохтообут дойду быһыылаах; соҕуруу өрө диэккиттэн итии сылаас салгын охсуллар, бука, үтүө дойду манан буолуо", — диэн болуотун бэчимэлэнэн, Өлүөнэ өрүһү өрө өксөйөн билигин Киллэм хонуутугар кэлэллэр. Дьэ, кырдьык, билии бэрээт ойууна эппитин курдук, илэ—бодо ийэжэхситтээх, чахчы—бааччы айыыһыттаах оҕонньордоох эмээхсин буолан үс харыйаҕа уруйдуу тураллар эбит уһу. Омоҕойдоох манна туос ураһа туруоран түһэллэр. Сассыныгар Хоту Ытык Хайаҕа бараннар ыҥырыа эриэн дьүһүннээх, уулаах, үс саастаах бургунас ынаҕы булан аҕалаллар. Онтон сассыныгар соҕуруу Ытык Хайаҕа тиийэн "Иэйээни хонуута, Кэркээни хонуута аатырыам" диир сирдэргэ үс харыйаны булан баран, онтон төрдүс саастаах чоҥкуруун сиэллээх, кутуруктаах уулаах биэни хайа хаҥас хоонньуттан булан аҕалаллар. Манна олохсуйан, бултаан—алтаан, кыыллаан, саһыллыан билии сүөһүлэрин үөскэтэллэр, ыал буолан олороллор.
Үс сыл буолан баран, улуу тунах саҕана, иккис сүһүөх (сайыҥҥы) уунан, арай бирдэ Омоҕой уолаттара көрбүттэрэ — өрүс үөһүттэн кус, кыыл түүтэ, мас сыыһа устан ааһаллар. Ону көрөн, тахсан Омоҕойго тыллыыллар. Маныаха Омоҕой: "Кэтэһиҥ!" — диэн сорудахтыыр. Ньиргитэр уонна Доргутар буоланнар Соҕуруу Ытык Хайаҕа тиийэ бараллар. Онно тиийбиттэрэ — олох сыгынньах киһи олорор уһу. Ону көрөөт, уолаттар уомуйаллар. Онуоха киһилэрэ билэн: "Бу Омоҕой уолаттараҕыт дуо? Мин эһи турбуккут кэннэ сыл аҥаара буолан баран, эһигини эккирэтэн, икки аҥаар сыл хонугар айаннаан бу кэлэн олоробун", — диэн билэр киһи курдук, дөксө "мин Эллэй Боотур буолабын" диэн кэпсэтэн, бисэн, бары Омоҕойдооххо тиийэн кэлэллэр. Дьэ ол кэлэн, Эллэй Омоҕойго олорон үс сыл тоҕору кэргэн (хамныыр) уол курдук буолан олорор.
Үлэтигэр олус бөҕө—таҕа, модьу, үс киһи тутуута тутуулаах, киэптээх—талалаах буолан (Омоҕойго) хайҕатан сылдьар.
Биир сасыарда Омогой эмээхсинэ чороонноох кымыһы айах туттаран туран Эллэйтэн:
—Биһи кыргыттарбытыттан биир үчүгэйин анал ойох ылан киһи—сүөһү төрдө буолууй. Биһи эйиэхэ ити Ньыкы—Дакханы аныыбыт, — диэн чороонноох кымыһын биэрэн туран көрдөһөр. Эллэй эмээхсин биэрбит кымыһын иһэр, тугу да эппэккэ истэн эрэ кэбиһэр.
Эллэй бултуур—алтыыр, аҕалара да олус, тутуута да бэт. Икки кыыс туой арҕаа бэскэ тахсан киирэр идэлээхтэр. Ону Эллэй үлэлии сылдьан кэтэһэн олорон саһан көрдө — икки кыыстан хойго кыыс Дэкиэй—Дэпсэ иигэ үрүҥ күүгэн буолан куос курдук чомчойо олорор уһу, оттон кыра, мааны кыыс Ньыкы—Дакхан иигэ сиргэ уу курдук күүгэнэ суох иҥэн—сутэн хаалбыт уһу. Ону тойонноон "бу — хойуутуттан төрүөхтээх, ыччаттаах буолуо, кыра мааны кыыс уоһуо—тэнийиэ суоҕа, сотору үйэлээх буолуо", — дии саныы сылдьыбыт. Ол курдук саныы сырыттаҕына, Омогой Баай бирдэ Эллэйи ыҥыран ылан ыйытар: "Хайа, бу биһи оҕолорбутуттан хайаларын ойох ылан, оҕо—уруу төрдө—ууһа буолаҕын?" — диэн. Ону Эллэй: "Ити хойго, куһаҕан кыыһы Дэкиэй—Дэпсини ойох ылабын" — диэбит. Маныаха Омогой Баайдаах хойго кыыһы ойох ыларын иһин өһүүн, сөбүлэмиэнэ, чаастарын баайдарыттан биир кутуруга, муоһа суох, Куочай кугас ынаҕы биэрэллэр, уонна: "Чэ, бара охсуҥ, икки харахпытыгар көстүмэҥ! Ханна саныыргыт даа, атын сиргэ баран араан тыа буолуҥ", диэн кырыан—таныйан туран холдьоҕоллор. Эллэйдээх иккиэжэҕин отчотооҕу Киэҥ—Иэйээни хонуутугар (билигин) Сахсарыга кэлэн олохсуйан, сэп—сэбиргэл оҥостон, ураһа туруорунан, сылгы сэлэтэ оҥостон, түптэлээн, сылгы иһитэ тэринэн, сылгыларын тутан уан, кымыс мунньунан ыал буолан бараллар.
Аҕыйах сылынан байан—тайан, оҕолонон—урууланан бараллар. Муспут кымыстарын биир сайын "Кулун кымыһа" оҥорон, аймахтарын Омогойдооҕу ыҥыран ыһыах ыһаллар. Ыҥырыыга эмээхсини кытта кэргэн уолаттар кэлэ сылдьыбыттар. Омогой мааны кыыһыныын кэлбэтэхтэр.
Эллэй ыһыаҕар чороонноох, сиэллээх айаҕы өрө тутан, сөхүрүэстээн туран алгыыр. Кини аан дойду иччитин алҕаан (ааттаталаан) айак туттарар (аһатар—сиэтэр). Маныаха Илин халлаан улаҕатыттан сүүмэх сылгы кыла күн тахсыбытыттан күнү быһа батыһа тахсан эргийэ көтөн ааспыт. Ол икки ардыгар ыһыах ортотугар Омогой хамначчыт кыыһа кэлэн тыллыыр: "Мааны кыыс Ньыкы—Дакхан кулун баһын быатынан быаланан биэҕэ состоро сылдьар, бара охсуоҕуҥ!" — диэн. Маны бары баар дьон баран көрбүттэрэ, Ньыкы—Дакхан биэҕэ бас быатынан состорон өлбүт уһу. Ононо өлбүтүгэр тиийэн хаалаллар.
Эллэй дьэ онтон ыла киһи—сүөһү, саха төрдө буолар гына ууһуур—тэнийэр, байар—тайар. Билигин саха 5 улууһа Эллэй Боотур оҕолоруттан эбит уһу (Хаҥалас, Мэҥэ, Боотуруускай, Бороҕон, Нам).
</div>
j8vbovg3er9c20jjqns31yhb63ycnjf
9580
9579
2026-06-23T04:57:13Z
Sauit
2200
9580
wikitext
text/x-wiki
{{header
| title = Омоҕой Баай, Эллэй Боотур (Илин-Хаҥалас барыйаана)
| author =
| section = [[Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)|Саха төрүттэрэ уонна кыргыс үйэтэ]]
| previous =
| next = [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)]]
| notes =
}}
<div class="text">
::Оконешников Николай Саввич, 40 саастаах, I Нөрүктээйи нэһилиэгэ, Мэҥэ—Хаҥалас оройуона, холкуостаах, саха, үөрэҕэ суох.
::1933 с. От ыйын 15 күнэ, "Улуу сыһыы"
Соҕуруу бэрээт омук сиригэр олохтоох бэрээт омук ойууна Омоҕой Баайга кыыран, үс үөстээх Өлүөнэ өрүһү куба кыыл буолан таҥнаран, Бүлүү төрдүгэр тиийэ көрүү көрөн эппит:
— Өлүөнэ өрүс кэҥээн тиийитигэр соҕуруу Ытык—Хайа арыый аллараа өттүгэр үс үтүө харыйалар үөскээн тураллар. Онно оҕонньордоох эмээхсин "дойду ийэжэхитэбит" диэн, кэлбити ууһатар—тэнитэр бэриилээх буолан турабыт диэн, уруйдуу тураллар. Соҕуруу Ытык Хайа сылгы сүөһү төрдө буолааччык, Хоту Ытык Хайа ынах сүөһү төрдө буолааччык буолан үөскээбиттэр эбит, онон, дьэ бу мин көрөр дойдубар тиийдэххинэ, дьолу—соргуну көрсүөҥ, кэнэҕэһин ууһуоҥ—тэнийиэҥ этэ.
Маны ылынан Омоҕой Баай ойохтоох, икки кыыстаах, уонча кэргэн уолаттардаах буолан, олохтоорун көһөн айаннаан иһэн, хайдах эрэ алҕас Бүлүү өрүһүн төбөтүн булан, ол устун болуотунан таҥнаран, Өлүөнэҕэ тиийэ Бүлүү төрдүгэр кэлэн тохтоон баран, Өлүөнэни бэйэтэ соҕотоҕун дьүлүнү миинэн илин эҥэр туораан үрэх сындыыһа үрдүк хайатын (Дьааҥытын) үрдүгэр тахсан дойду былаанын көрбүт уһу.
Ол көрөн: "Онтон өрө бардахха сөп буолуо, бу дойдуга тоҕо эрэ хоту өттүттэн тымныы салгыннар биллэллэр, киһи—сүөһү үөскээбэт, дьоло—соргута тохтообут дойду быһыылаах; соҕуруу өрө диэккиттэн итии сылаас салгын охсуллар, бука, үтүө дойду манан буолуо", — диэн болуотун бэчимэлэнэн, Өлүөнэ өрүһү өрө өксөйөн билигин Киллэм хонуутугар кэлэллэр. Дьэ, кырдьык, билии бэрээт ойууна эппитин курдук, илэ—бодо ийэжэхситтээх, чахчы—бааччы айыыһыттаах оҕонньордоох эмээхсин буолан үс харыйаҕа уруйдуу тураллар эбит уһу. Омоҕойдоох манна туос ураһа туруоран түһэллэр. Сассыныгар Хоту Ытык Хайаҕа бараннар ыҥырыа эриэн дьүһүннээх, уулаах, үс саастаах бургунас ынаҕы булан аҕалаллар. Онтон сассыныгар соҕуруу Ытык Хайаҕа тиийэн "Иэйээни хонуута, Кэркээни хонуута аатырыам" диир сирдэргэ үс харыйаны булан баран, онтон төрдүс саастаах чоҥкуруун сиэллээх, кутуруктаах уулаах биэни хайа хаҥас хоонньуттан булан аҕалаллар. Манна олохсуйан, бултаан—алтаан, кыыллаан, саһыллыан билии сүөһүлэрин үөскэтэллэр, ыал буолан олороллор.
Үс сыл буолан баран, улуу тунах саҕана, иккис сүһүөх (сайыҥҥы) уунан, арай бирдэ Омоҕой уолаттара көрбүттэрэ — өрүс үөһүттэн кус, кыыл түүтэ, мас сыыһа устан ааһаллар. Ону көрөн, тахсан Омоҕойго тыллыыллар. Маныаха Омоҕой: "Кэтэһиҥ!" — диэн сорудахтыыр. Ньиргитэр уонна Доргутар буоланнар Соҕуруу Ытык Хайаҕа тиийэ бараллар. Онно тиийбиттэрэ — олох сыгынньах киһи олорор уһу. Ону көрөөт, уолаттар уомуйаллар. Онуоха киһилэрэ билэн: "Бу Омоҕой уолаттараҕыт дуо? Мин эһи турбуккут кэннэ сыл аҥаара буолан баран, эһигини эккирэтэн, икки аҥаар сыл хонугар айаннаан бу кэлэн олоробун", — диэн билэр киһи курдук, дөксө "мин Эллэй Боотур буолабын" диэн кэпсэтэн, бисэн, бары Омоҕойдооххо тиийэн кэлэллэр. Дьэ ол кэлэн, Эллэй Омоҕойго олорон үс сыл тоҕору кэргэн (хамныыр) уол курдук буолан олорор.
Үлэтигэр олус бөҕө—таҕа, модьу, үс киһи тутуута тутуулаах, киэптээх—талалаах буолан (Омоҕойго) хайҕатан сылдьар.
Биир сасыарда Омогой эмээхсинэ чороонноох кымыһы айах туттаран туран Эллэйтэн:
—Биһи кыргыттарбытыттан биир үчүгэйин анал ойох ылан киһи—сүөһү төрдө буолууй. Биһи эйиэхэ ити Ньыкы—Дакханы аныыбыт, — диэн чороонноох кымыһын биэрэн туран көрдөһөр. Эллэй эмээхсин биэрбит кымыһын иһэр, тугу да эппэккэ истэн эрэ кэбиһэр.
Эллэй бултуур—алтыыр, аҕалара да олус, тутуута да бэт. Икки кыыс туой арҕаа бэскэ тахсан киирэр идэлээхтэр. Ону Эллэй үлэлии сылдьан кэтэһэн олорон саһан көрдө — икки кыыстан хойго кыыс Дэкиэй—Дэпсэ иигэ үрүҥ күүгэн буолан куос курдук чомчойо олорор уһу, оттон кыра, мааны кыыс Ньыкы—Дакхан иигэ сиргэ уу курдук күүгэнэ суох иҥэн—сутэн хаалбыт уһу. Ону тойонноон "бу — хойуутуттан төрүөхтээх, ыччаттаах буолуо, кыра мааны кыыс уоһуо—тэнийиэ суоҕа, сотору үйэлээх буолуо", — дии саныы сылдьыбыт. Ол курдук саныы сырыттаҕына, Омогой Баай бирдэ Эллэйи ыҥыран ылан ыйытар: "Хайа, бу биһи оҕолорбутуттан хайаларын ойох ылан, оҕо—уруу төрдө—ууһа буолаҕын?" — диэн. Ону Эллэй: "Ити хойго, куһаҕан кыыһы Дэкиэй—Дэпсини ойох ылабын" — диэбит. Маныаха Омогой Баайдаах хойго кыыһы ойох ыларын иһин өһүүн, сөбүлэмиэнэ, чаастарын баайдарыттан биир кутуруга, муоһа суох, Куочай кугас ынаҕы биэрэллэр, уонна: "Чэ, бара охсуҥ, икки харахпытыгар көстүмэҥ! Ханна саныыргыт даа, атын сиргэ баран араан тыа буолуҥ", диэн кырыан—таныйан туран холдьоҕоллор. Эллэйдээх иккиэжэҕин отчотооҕу Киэҥ—Иэйээни хонуутугар (билигин) Сахсарыга кэлэн олохсуйан, сэп—сэбиргэл оҥостон, ураһа туруорунан, сылгы сэлэтэ оҥостон, түптэлээн, сылгы иһитэ тэринэн, сылгыларын тутан уан, кымыс мунньунан ыал буолан бараллар.
Аҕыйах сылынан байан—тайан, оҕолонон—урууланан бараллар. Муспут кымыстарын биир сайын "Кулун кымыһа" оҥорон, аймахтарын Омогойдооҕу ыҥыран ыһыах ыһаллар. Ыҥырыыга эмээхсини кытта кэргэн уолаттар кэлэ сылдьыбыттар. Омогой мааны кыыһыныын кэлбэтэхтэр.
Эллэй ыһыаҕар чороонноох, сиэллээх айаҕы өрө тутан, сөхүрүэстээн туран алгыыр. Кини аан дойду иччитин алҕаан (ааттаталаан) айак туттарар (аһатар—сиэтэр). Маныаха Илин халлаан улаҕатыттан сүүмэх сылгы кыла күн тахсыбытыттан күнү быһа батыһа тахсан эргийэ көтөн ааспыт. Ол икки ардыгар ыһыах ортотугар Омогой хамначчыт кыыһа кэлэн тыллыыр: "Мааны кыыс Ньыкы—Дакхан кулун баһын быатынан быаланан биэҕэ состоро сылдьар, бара охсуоҕуҥ!" — диэн. Маны бары баар дьон баран көрбүттэрэ, Ньыкы—Дакхан биэҕэ бас быатынан состорон өлбүт уһу. Ононо өлбүтүгэр тиийэн хаалаллар.
Эллэй дьэ онтон ыла киһи—сүөһү, саха төрдө буолар гына ууһуур—тэнийэр, байар—тайар. Билигин саха 5 улууһа Эллэй Боотур оҕолоруттан эбит уһу (Хаҥалас, Мэҥэ, Боотуруускай, Бороҕон, Нам).
</div>
[[Категория:Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)]]
kqnsohpjkp1mgby3jir58c91tfr8zky
9581
9580
2026-06-23T05:02:34Z
Sauit
2200
9581
wikitext
text/x-wiki
{{header
| title = Омоҕой Баай, Эллэй Боотур (Илин-Хаҥалас барыйаана)
| author =
| section = [[Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)|Саха төрүттэрэ уонна кыргыс үйэтэ]]
| previous =
| next = [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)]]
| notes =
}}
<div class="text">
Оконешников Николай Саввич,
40 саастаах, I Нөрүктээйи нэһилиэгэ,
Мэҥэ—Хаҥалас оройуона,
холкуостаах, саха, үөрэҕэ суох.
1933 с. От ыйын 15 күнэ, "Улуу сыһыы"
Соҕуруу бэрээт омук сиригэр олохтоох бэрээт омук ойууна Омоҕой Баайга кыыран, үс үөстээх Өлүөнэ өрүһү куба кыыл буолан таҥнаран, Бүлүү төрдүгэр тиийэ көрүү көрөн эппит:
— Өлүөнэ өрүс кэҥээн тиийитигэр соҕуруу Ытык—Хайа арыый аллараа өттүгэр үс үтүө харыйалар үөскээн тураллар. Онно оҕонньордоох эмээхсин "дойду ийэжэхитэбит" диэн, кэлбити ууһатар—тэнитэр бэриилээх буолан турабыт диэн, уруйдуу тураллар. Соҕуруу Ытык Хайа сылгы сүөһү төрдө буолааччык, Хоту Ытык Хайа ынах сүөһү төрдө буолааччык буолан үөскээбиттэр эбит, онон, дьэ бу мин көрөр дойдубар тиийдэххинэ, дьолу—соргуну көрсүөҥ, кэнэҕэһин ууһуоҥ—тэнийиэҥ этэ.
Маны ылынан Омоҕой Баай ойохтоох, икки кыыстаах, уонча кэргэн уолаттардаах буолан, олохтоорун көһөн айаннаан иһэн, хайдах эрэ алҕас Бүлүү өрүһүн төбөтүн булан, ол устун болуотунан таҥнаран, Өлүөнэҕэ тиийэ Бүлүү төрдүгэр кэлэн тохтоон баран, Өлүөнэни бэйэтэ соҕотоҕун дьүлүнү миинэн илин эҥэр туораан үрэх сындыыһа үрдүк хайатын (Дьааҥытын) үрдүгэр тахсан дойду былаанын көрбүт уһу.
Ол көрөн: "Онтон өрө бардахха сөп буолуо, бу дойдуга тоҕо эрэ хоту өттүттэн тымныы салгыннар биллэллэр, киһи—сүөһү үөскээбэт, дьоло—соргута тохтообут дойду быһыылаах; соҕуруу өрө диэккиттэн итии сылаас салгын охсуллар, бука, үтүө дойду манан буолуо", — диэн болуотун бэчимэлэнэн, Өлүөнэ өрүһү өрө өксөйөн билигин Киллэм хонуутугар кэлэллэр. Дьэ, кырдьык, билии бэрээт ойууна эппитин курдук, илэ—бодо ийэжэхситтээх, чахчы—бааччы айыыһыттаах оҕонньордоох эмээхсин буолан үс харыйаҕа уруйдуу тураллар эбит уһу. Омоҕойдоох манна туос ураһа туруоран түһэллэр. Сассыныгар Хоту Ытык Хайаҕа бараннар ыҥырыа эриэн дьүһүннээх, уулаах, үс саастаах бургунас ынаҕы булан аҕалаллар. Онтон сассыныгар соҕуруу Ытык Хайаҕа тиийэн "Иэйээни хонуута, Кэркээни хонуута аатырыам" диир сирдэргэ үс харыйаны булан баран, онтон төрдүс саастаах чоҥкуруун сиэллээх, кутуруктаах уулаах биэни хайа хаҥас хоонньуттан булан аҕалаллар. Манна олохсуйан, бултаан—алтаан, кыыллаан, саһыллыан билии сүөһүлэрин үөскэтэллэр, ыал буолан олороллор.
Үс сыл буолан баран, улуу тунах саҕана, иккис сүһүөх (сайыҥҥы) уунан, арай бирдэ Омоҕой уолаттара көрбүттэрэ — өрүс үөһүттэн кус, кыыл түүтэ, мас сыыһа устан ааһаллар. Ону көрөн, тахсан Омоҕойго тыллыыллар. Маныаха Омоҕой: "Кэтэһиҥ!" — диэн сорудахтыыр. Ньиргитэр уонна Доргутар буоланнар Соҕуруу Ытык Хайаҕа тиийэ бараллар. Онно тиийбиттэрэ — олох сыгынньах киһи олорор уһу. Ону көрөөт, уолаттар уомуйаллар. Онуоха киһилэрэ билэн: "Бу Омоҕой уолаттараҕыт дуо? Мин эһи турбуккут кэннэ сыл аҥаара буолан баран, эһигини эккирэтэн, икки аҥаар сыл хонугар айаннаан бу кэлэн олоробун", — диэн билэр киһи курдук, дөксө "мин Эллэй Боотур буолабын" диэн кэпсэтэн, бисэн, бары Омоҕойдооххо тиийэн кэлэллэр. Дьэ ол кэлэн, Эллэй Омоҕойго олорон үс сыл тоҕору кэргэн (хамныыр) уол курдук буолан олорор.
Үлэтигэр олус бөҕө—таҕа, модьу, үс киһи тутуута тутуулаах, киэптээх—талалаах буолан (Омоҕойго) хайҕатан сылдьар.
Биир сасыарда Омогой эмээхсинэ чороонноох кымыһы айах туттаран туран Эллэйтэн:
—Биһи кыргыттарбытыттан биир үчүгэйин анал ойох ылан киһи—сүөһү төрдө буолууй. Биһи эйиэхэ ити Ньыкы—Дакханы аныыбыт, — диэн чороонноох кымыһын биэрэн туран көрдөһөр. Эллэй эмээхсин биэрбит кымыһын иһэр, тугу да эппэккэ истэн эрэ кэбиһэр.
Эллэй бултуур—алтыыр, аҕалара да олус, тутуута да бэт. Икки кыыс туой арҕаа бэскэ тахсан киирэр идэлээхтэр. Ону Эллэй үлэлии сылдьан кэтэһэн олорон саһан көрдө — икки кыыстан хойго кыыс Дэкиэй—Дэпсэ иигэ үрүҥ күүгэн буолан куос курдук чомчойо олорор уһу, оттон кыра, мааны кыыс Ньыкы—Дакхан иигэ сиргэ уу курдук күүгэнэ суох иҥэн—сутэн хаалбыт уһу. Ону тойонноон "бу — хойуутуттан төрүөхтээх, ыччаттаах буолуо, кыра мааны кыыс уоһуо—тэнийиэ суоҕа, сотору үйэлээх буолуо", — дии саныы сылдьыбыт. Ол курдук саныы сырыттаҕына, Омогой Баай бирдэ Эллэйи ыҥыран ылан ыйытар: "Хайа, бу биһи оҕолорбутуттан хайаларын ойох ылан, оҕо—уруу төрдө—ууһа буолаҕын?" — диэн. Ону Эллэй: "Ити хойго, куһаҕан кыыһы Дэкиэй—Дэпсини ойох ылабын" — диэбит. Маныаха Омогой Баайдаах хойго кыыһы ойох ыларын иһин өһүүн, сөбүлэмиэнэ, чаастарын баайдарыттан биир кутуруга, муоһа суох, Куочай кугас ынаҕы биэрэллэр, уонна: "Чэ, бара охсуҥ, икки харахпытыгар көстүмэҥ! Ханна саныыргыт даа, атын сиргэ баран араан тыа буолуҥ", диэн кырыан—таныйан туран холдьоҕоллор. Эллэйдээх иккиэжэҕин отчотооҕу Киэҥ—Иэйээни хонуутугар (билигин) Сахсарыга кэлэн олохсуйан, сэп—сэбиргэл оҥостон, ураһа туруорунан, сылгы сэлэтэ оҥостон, түптэлээн, сылгы иһитэ тэринэн, сылгыларын тутан уан, кымыс мунньунан ыал буолан бараллар.
Аҕыйах сылынан байан—тайан, оҕолонон—урууланан бараллар. Муспут кымыстарын биир сайын "Кулун кымыһа" оҥорон, аймахтарын Омогойдооҕу ыҥыран ыһыах ыһаллар. Ыҥырыыга эмээхсини кытта кэргэн уолаттар кэлэ сылдьыбыттар. Омогой мааны кыыһыныын кэлбэтэхтэр.
Эллэй ыһыаҕар чороонноох, сиэллээх айаҕы өрө тутан, сөхүрүэстээн туран алгыыр. Кини аан дойду иччитин алҕаан (ааттаталаан) айак туттарар (аһатар—сиэтэр). Маныаха Илин халлаан улаҕатыттан сүүмэх сылгы кыла күн тахсыбытыттан күнү быһа батыһа тахсан эргийэ көтөн ааспыт. Ол икки ардыгар ыһыах ортотугар Омогой хамначчыт кыыһа кэлэн тыллыыр: "Мааны кыыс Ньыкы—Дакхан кулун баһын быатынан быаланан биэҕэ состоро сылдьар, бара охсуоҕуҥ!" — диэн. Маны бары баар дьон баран көрбүттэрэ, Ньыкы—Дакхан биэҕэ бас быатынан состорон өлбүт уһу. Ононо өлбүтүгэр тиийэн хаалаллар.
Эллэй дьэ онтон ыла киһи—сүөһү, саха төрдө буолар гына ууһуур—тэнийэр, байар—тайар. Билигин саха 5 улууһа Эллэй Боотур оҕолоруттан эбит уһу (Хаҥалас, Мэҥэ, Боотуруускай, Бороҕон, Нам).
</div>
[[Категория:Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)]]
4jdh4taghqgkdpf06sirdod5xugdi96
9582
9581
2026-06-23T05:03:28Z
Sauit
2200
9582
wikitext
text/x-wiki
{{header
| title = Омоҕой Баай, Эллэй Боотур (Илин-Хаҥалас барыйаана)
| author =
| section = [[Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)|Саха төрүттэрэ уонна кыргыс үйэтэ]]
| previous =
| next = [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)]]
| notes =
}}
<div class="text">
<poem>
Оконешников Николай Саввич,
40 саастаах, I Нөрүктээйи нэһилиэгэ,
Мэҥэ—Хаҥалас оройуона,
холкуостаах, саха, үөрэҕэ суох.
1933 с. От ыйын 15 күнэ, "Улуу сыһыы"</poem>
Соҕуруу бэрээт омук сиригэр олохтоох бэрээт омук ойууна Омоҕой Баайга кыыран, үс үөстээх Өлүөнэ өрүһү куба кыыл буолан таҥнаран, Бүлүү төрдүгэр тиийэ көрүү көрөн эппит:
— Өлүөнэ өрүс кэҥээн тиийитигэр соҕуруу Ытык—Хайа арыый аллараа өттүгэр үс үтүө харыйалар үөскээн тураллар. Онно оҕонньордоох эмээхсин "дойду ийэжэхитэбит" диэн, кэлбити ууһатар—тэнитэр бэриилээх буолан турабыт диэн, уруйдуу тураллар. Соҕуруу Ытык Хайа сылгы сүөһү төрдө буолааччык, Хоту Ытык Хайа ынах сүөһү төрдө буолааччык буолан үөскээбиттэр эбит, онон, дьэ бу мин көрөр дойдубар тиийдэххинэ, дьолу—соргуну көрсүөҥ, кэнэҕэһин ууһуоҥ—тэнийиэҥ этэ.
Маны ылынан Омоҕой Баай ойохтоох, икки кыыстаах, уонча кэргэн уолаттардаах буолан, олохтоорун көһөн айаннаан иһэн, хайдах эрэ алҕас Бүлүү өрүһүн төбөтүн булан, ол устун болуотунан таҥнаран, Өлүөнэҕэ тиийэ Бүлүү төрдүгэр кэлэн тохтоон баран, Өлүөнэни бэйэтэ соҕотоҕун дьүлүнү миинэн илин эҥэр туораан үрэх сындыыһа үрдүк хайатын (Дьааҥытын) үрдүгэр тахсан дойду былаанын көрбүт уһу.
Ол көрөн: "Онтон өрө бардахха сөп буолуо, бу дойдуга тоҕо эрэ хоту өттүттэн тымныы салгыннар биллэллэр, киһи—сүөһү үөскээбэт, дьоло—соргута тохтообут дойду быһыылаах; соҕуруу өрө диэккиттэн итии сылаас салгын охсуллар, бука, үтүө дойду манан буолуо", — диэн болуотун бэчимэлэнэн, Өлүөнэ өрүһү өрө өксөйөн билигин Киллэм хонуутугар кэлэллэр. Дьэ, кырдьык, билии бэрээт ойууна эппитин курдук, илэ—бодо ийэжэхситтээх, чахчы—бааччы айыыһыттаах оҕонньордоох эмээхсин буолан үс харыйаҕа уруйдуу тураллар эбит уһу. Омоҕойдоох манна туос ураһа туруоран түһэллэр. Сассыныгар Хоту Ытык Хайаҕа бараннар ыҥырыа эриэн дьүһүннээх, уулаах, үс саастаах бургунас ынаҕы булан аҕалаллар. Онтон сассыныгар соҕуруу Ытык Хайаҕа тиийэн "Иэйээни хонуута, Кэркээни хонуута аатырыам" диир сирдэргэ үс харыйаны булан баран, онтон төрдүс саастаах чоҥкуруун сиэллээх, кутуруктаах уулаах биэни хайа хаҥас хоонньуттан булан аҕалаллар. Манна олохсуйан, бултаан—алтаан, кыыллаан, саһыллыан билии сүөһүлэрин үөскэтэллэр, ыал буолан олороллор.
Үс сыл буолан баран, улуу тунах саҕана, иккис сүһүөх (сайыҥҥы) уунан, арай бирдэ Омоҕой уолаттара көрбүттэрэ — өрүс үөһүттэн кус, кыыл түүтэ, мас сыыһа устан ааһаллар. Ону көрөн, тахсан Омоҕойго тыллыыллар. Маныаха Омоҕой: "Кэтэһиҥ!" — диэн сорудахтыыр. Ньиргитэр уонна Доргутар буоланнар Соҕуруу Ытык Хайаҕа тиийэ бараллар. Онно тиийбиттэрэ — олох сыгынньах киһи олорор уһу. Ону көрөөт, уолаттар уомуйаллар. Онуоха киһилэрэ билэн: "Бу Омоҕой уолаттараҕыт дуо? Мин эһи турбуккут кэннэ сыл аҥаара буолан баран, эһигини эккирэтэн, икки аҥаар сыл хонугар айаннаан бу кэлэн олоробун", — диэн билэр киһи курдук, дөксө "мин Эллэй Боотур буолабын" диэн кэпсэтэн, бисэн, бары Омоҕойдооххо тиийэн кэлэллэр. Дьэ ол кэлэн, Эллэй Омоҕойго олорон үс сыл тоҕору кэргэн (хамныыр) уол курдук буолан олорор.
Үлэтигэр олус бөҕө—таҕа, модьу, үс киһи тутуута тутуулаах, киэптээх—талалаах буолан (Омоҕойго) хайҕатан сылдьар.
Биир сасыарда Омогой эмээхсинэ чороонноох кымыһы айах туттаран туран Эллэйтэн:
—Биһи кыргыттарбытыттан биир үчүгэйин анал ойох ылан киһи—сүөһү төрдө буолууй. Биһи эйиэхэ ити Ньыкы—Дакханы аныыбыт, — диэн чороонноох кымыһын биэрэн туран көрдөһөр. Эллэй эмээхсин биэрбит кымыһын иһэр, тугу да эппэккэ истэн эрэ кэбиһэр.
Эллэй бултуур—алтыыр, аҕалара да олус, тутуута да бэт. Икки кыыс туой арҕаа бэскэ тахсан киирэр идэлээхтэр. Ону Эллэй үлэлии сылдьан кэтэһэн олорон саһан көрдө — икки кыыстан хойго кыыс Дэкиэй—Дэпсэ иигэ үрүҥ күүгэн буолан куос курдук чомчойо олорор уһу, оттон кыра, мааны кыыс Ньыкы—Дакхан иигэ сиргэ уу курдук күүгэнэ суох иҥэн—сутэн хаалбыт уһу. Ону тойонноон "бу — хойуутуттан төрүөхтээх, ыччаттаах буолуо, кыра мааны кыыс уоһуо—тэнийиэ суоҕа, сотору үйэлээх буолуо", — дии саныы сылдьыбыт. Ол курдук саныы сырыттаҕына, Омогой Баай бирдэ Эллэйи ыҥыран ылан ыйытар: "Хайа, бу биһи оҕолорбутуттан хайаларын ойох ылан, оҕо—уруу төрдө—ууһа буолаҕын?" — диэн. Ону Эллэй: "Ити хойго, куһаҕан кыыһы Дэкиэй—Дэпсини ойох ылабын" — диэбит. Маныаха Омогой Баайдаах хойго кыыһы ойох ыларын иһин өһүүн, сөбүлэмиэнэ, чаастарын баайдарыттан биир кутуруга, муоһа суох, Куочай кугас ынаҕы биэрэллэр, уонна: "Чэ, бара охсуҥ, икки харахпытыгар көстүмэҥ! Ханна саныыргыт даа, атын сиргэ баран араан тыа буолуҥ", диэн кырыан—таныйан туран холдьоҕоллор. Эллэйдээх иккиэжэҕин отчотооҕу Киэҥ—Иэйээни хонуутугар (билигин) Сахсарыга кэлэн олохсуйан, сэп—сэбиргэл оҥостон, ураһа туруорунан, сылгы сэлэтэ оҥостон, түптэлээн, сылгы иһитэ тэринэн, сылгыларын тутан уан, кымыс мунньунан ыал буолан бараллар.
Аҕыйах сылынан байан—тайан, оҕолонон—урууланан бараллар. Муспут кымыстарын биир сайын "Кулун кымыһа" оҥорон, аймахтарын Омогойдооҕу ыҥыран ыһыах ыһаллар. Ыҥырыыга эмээхсини кытта кэргэн уолаттар кэлэ сылдьыбыттар. Омогой мааны кыыһыныын кэлбэтэхтэр.
Эллэй ыһыаҕар чороонноох, сиэллээх айаҕы өрө тутан, сөхүрүэстээн туран алгыыр. Кини аан дойду иччитин алҕаан (ааттаталаан) айак туттарар (аһатар—сиэтэр). Маныаха Илин халлаан улаҕатыттан сүүмэх сылгы кыла күн тахсыбытыттан күнү быһа батыһа тахсан эргийэ көтөн ааспыт. Ол икки ардыгар ыһыах ортотугар Омогой хамначчыт кыыһа кэлэн тыллыыр: "Мааны кыыс Ньыкы—Дакхан кулун баһын быатынан быаланан биэҕэ состоро сылдьар, бара охсуоҕуҥ!" — диэн. Маны бары баар дьон баран көрбүттэрэ, Ньыкы—Дакхан биэҕэ бас быатынан состорон өлбүт уһу. Ононо өлбүтүгэр тиийэн хаалаллар.
Эллэй дьэ онтон ыла киһи—сүөһү, саха төрдө буолар гына ууһуур—тэнийэр, байар—тайар. Билигин саха 5 улууһа Эллэй Боотур оҕолоруттан эбит уһу (Хаҥалас, Мэҥэ, Боотуруускай, Бороҕон, Нам).
</div>
[[Категория:Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)]]
qvb9drevniazo3r30gkmi3itsxhys2j
9583
9582
2026-06-23T05:04:36Z
Sauit
2200
9583
wikitext
text/x-wiki
{{header
| title = Омоҕой Баай, Эллэй Боотур (Илин-Хаҥалас барыйаана)
| author =
| section = [[Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)|Саха төрүттэрэ уонна кыргыс үйэтэ]]
| previous =
| next = [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)]]
| notes =
}}
<div class="text">
<i>Оконешников Николай Саввич,
40 саастаах, I Нөрүктээйи нэһилиэгэ,
Мэҥэ—Хаҥалас оройуона,
холкуостаах, саха, үөрэҕэ суох.
1933 с. От ыйын 15 күнэ, "Улуу сыһыы"</i>
Соҕуруу бэрээт омук сиригэр олохтоох бэрээт омук ойууна Омоҕой Баайга кыыран, үс үөстээх Өлүөнэ өрүһү куба кыыл буолан таҥнаран, Бүлүү төрдүгэр тиийэ көрүү көрөн эппит:
— Өлүөнэ өрүс кэҥээн тиийитигэр соҕуруу Ытык—Хайа арыый аллараа өттүгэр үс үтүө харыйалар үөскээн тураллар. Онно оҕонньордоох эмээхсин "дойду ийэжэхитэбит" диэн, кэлбити ууһатар—тэнитэр бэриилээх буолан турабыт диэн, уруйдуу тураллар. Соҕуруу Ытык Хайа сылгы сүөһү төрдө буолааччык, Хоту Ытык Хайа ынах сүөһү төрдө буолааччык буолан үөскээбиттэр эбит, онон, дьэ бу мин көрөр дойдубар тиийдэххинэ, дьолу—соргуну көрсүөҥ, кэнэҕэһин ууһуоҥ—тэнийиэҥ этэ.
Маны ылынан Омоҕой Баай ойохтоох, икки кыыстаах, уонча кэргэн уолаттардаах буолан, олохтоорун көһөн айаннаан иһэн, хайдах эрэ алҕас Бүлүү өрүһүн төбөтүн булан, ол устун болуотунан таҥнаран, Өлүөнэҕэ тиийэ Бүлүү төрдүгэр кэлэн тохтоон баран, Өлүөнэни бэйэтэ соҕотоҕун дьүлүнү миинэн илин эҥэр туораан үрэх сындыыһа үрдүк хайатын (Дьааҥытын) үрдүгэр тахсан дойду былаанын көрбүт уһу.
Ол көрөн: "Онтон өрө бардахха сөп буолуо, бу дойдуга тоҕо эрэ хоту өттүттэн тымныы салгыннар биллэллэр, киһи—сүөһү үөскээбэт, дьоло—соргута тохтообут дойду быһыылаах; соҕуруу өрө диэккиттэн итии сылаас салгын охсуллар, бука, үтүө дойду манан буолуо", — диэн болуотун бэчимэлэнэн, Өлүөнэ өрүһү өрө өксөйөн билигин Киллэм хонуутугар кэлэллэр. Дьэ, кырдьык, билии бэрээт ойууна эппитин курдук, илэ—бодо ийэжэхситтээх, чахчы—бааччы айыыһыттаах оҕонньордоох эмээхсин буолан үс харыйаҕа уруйдуу тураллар эбит уһу. Омоҕойдоох манна туос ураһа туруоран түһэллэр. Сассыныгар Хоту Ытык Хайаҕа бараннар ыҥырыа эриэн дьүһүннээх, уулаах, үс саастаах бургунас ынаҕы булан аҕалаллар. Онтон сассыныгар соҕуруу Ытык Хайаҕа тиийэн "Иэйээни хонуута, Кэркээни хонуута аатырыам" диир сирдэргэ үс харыйаны булан баран, онтон төрдүс саастаах чоҥкуруун сиэллээх, кутуруктаах уулаах биэни хайа хаҥас хоонньуттан булан аҕалаллар. Манна олохсуйан, бултаан—алтаан, кыыллаан, саһыллыан билии сүөһүлэрин үөскэтэллэр, ыал буолан олороллор.
Үс сыл буолан баран, улуу тунах саҕана, иккис сүһүөх (сайыҥҥы) уунан, арай бирдэ Омоҕой уолаттара көрбүттэрэ — өрүс үөһүттэн кус, кыыл түүтэ, мас сыыһа устан ааһаллар. Ону көрөн, тахсан Омоҕойго тыллыыллар. Маныаха Омоҕой: "Кэтэһиҥ!" — диэн сорудахтыыр. Ньиргитэр уонна Доргутар буоланнар Соҕуруу Ытык Хайаҕа тиийэ бараллар. Онно тиийбиттэрэ — олох сыгынньах киһи олорор уһу. Ону көрөөт, уолаттар уомуйаллар. Онуоха киһилэрэ билэн: "Бу Омоҕой уолаттараҕыт дуо? Мин эһи турбуккут кэннэ сыл аҥаара буолан баран, эһигини эккирэтэн, икки аҥаар сыл хонугар айаннаан бу кэлэн олоробун", — диэн билэр киһи курдук, дөксө "мин Эллэй Боотур буолабын" диэн кэпсэтэн, бисэн, бары Омоҕойдооххо тиийэн кэлэллэр. Дьэ ол кэлэн, Эллэй Омоҕойго олорон үс сыл тоҕору кэргэн (хамныыр) уол курдук буолан олорор.
Үлэтигэр олус бөҕө—таҕа, модьу, үс киһи тутуута тутуулаах, киэптээх—талалаах буолан (Омоҕойго) хайҕатан сылдьар.
Биир сасыарда Омогой эмээхсинэ чороонноох кымыһы айах туттаран туран Эллэйтэн:
—Биһи кыргыттарбытыттан биир үчүгэйин анал ойох ылан киһи—сүөһү төрдө буолууй. Биһи эйиэхэ ити Ньыкы—Дакханы аныыбыт, — диэн чороонноох кымыһын биэрэн туран көрдөһөр. Эллэй эмээхсин биэрбит кымыһын иһэр, тугу да эппэккэ истэн эрэ кэбиһэр.
Эллэй бултуур—алтыыр, аҕалара да олус, тутуута да бэт. Икки кыыс туой арҕаа бэскэ тахсан киирэр идэлээхтэр. Ону Эллэй үлэлии сылдьан кэтэһэн олорон саһан көрдө — икки кыыстан хойго кыыс Дэкиэй—Дэпсэ иигэ үрүҥ күүгэн буолан куос курдук чомчойо олорор уһу, оттон кыра, мааны кыыс Ньыкы—Дакхан иигэ сиргэ уу курдук күүгэнэ суох иҥэн—сутэн хаалбыт уһу. Ону тойонноон "бу — хойуутуттан төрүөхтээх, ыччаттаах буолуо, кыра мааны кыыс уоһуо—тэнийиэ суоҕа, сотору үйэлээх буолуо", — дии саныы сылдьыбыт. Ол курдук саныы сырыттаҕына, Омогой Баай бирдэ Эллэйи ыҥыран ылан ыйытар: "Хайа, бу биһи оҕолорбутуттан хайаларын ойох ылан, оҕо—уруу төрдө—ууһа буолаҕын?" — диэн. Ону Эллэй: "Ити хойго, куһаҕан кыыһы Дэкиэй—Дэпсини ойох ылабын" — диэбит. Маныаха Омогой Баайдаах хойго кыыһы ойох ыларын иһин өһүүн, сөбүлэмиэнэ, чаастарын баайдарыттан биир кутуруга, муоһа суох, Куочай кугас ынаҕы биэрэллэр, уонна: "Чэ, бара охсуҥ, икки харахпытыгар көстүмэҥ! Ханна саныыргыт даа, атын сиргэ баран араан тыа буолуҥ", диэн кырыан—таныйан туран холдьоҕоллор. Эллэйдээх иккиэжэҕин отчотооҕу Киэҥ—Иэйээни хонуутугар (билигин) Сахсарыга кэлэн олохсуйан, сэп—сэбиргэл оҥостон, ураһа туруорунан, сылгы сэлэтэ оҥостон, түптэлээн, сылгы иһитэ тэринэн, сылгыларын тутан уан, кымыс мунньунан ыал буолан бараллар.
Аҕыйах сылынан байан—тайан, оҕолонон—урууланан бараллар. Муспут кымыстарын биир сайын "Кулун кымыһа" оҥорон, аймахтарын Омогойдооҕу ыҥыран ыһыах ыһаллар. Ыҥырыыга эмээхсини кытта кэргэн уолаттар кэлэ сылдьыбыттар. Омогой мааны кыыһыныын кэлбэтэхтэр.
Эллэй ыһыаҕар чороонноох, сиэллээх айаҕы өрө тутан, сөхүрүэстээн туран алгыыр. Кини аан дойду иччитин алҕаан (ааттаталаан) айак туттарар (аһатар—сиэтэр). Маныаха Илин халлаан улаҕатыттан сүүмэх сылгы кыла күн тахсыбытыттан күнү быһа батыһа тахсан эргийэ көтөн ааспыт. Ол икки ардыгар ыһыах ортотугар Омогой хамначчыт кыыһа кэлэн тыллыыр: "Мааны кыыс Ньыкы—Дакхан кулун баһын быатынан быаланан биэҕэ состоро сылдьар, бара охсуоҕуҥ!" — диэн. Маны бары баар дьон баран көрбүттэрэ, Ньыкы—Дакхан биэҕэ бас быатынан состорон өлбүт уһу. Ононо өлбүтүгэр тиийэн хаалаллар.
Эллэй дьэ онтон ыла киһи—сүөһү, саха төрдө буолар гына ууһуур—тэнийэр, байар—тайар. Билигин саха 5 улууһа Эллэй Боотур оҕолоруттан эбит уһу (Хаҥалас, Мэҥэ, Боотуруускай, Бороҕон, Нам).
</div>
[[Категория:Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)]]
fi5idgpzdy6k0is7k3a1dz98fzyreje
9584
9583
2026-06-23T05:05:02Z
Sauit
2200
9584
wikitext
text/x-wiki
{{header
| title = Омоҕой Баай, Эллэй Боотур (Илин-Хаҥалас барыйаана)
| author =
| section = [[Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)|Саха төрүттэрэ уонна кыргыс үйэтэ]]
| previous =
| next = [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)]]
| notes =
}}
<div class="text">
<i>Оконешников Николай Саввич,
40 саастаах, I Нөрүктээйи нэһилиэгэ,
Мэҥэ—Хаҥалас оройуона,
холкуостаах, саха, үөрэҕэ суох.
1933 с. От ыйын 15 күнэ, "Улуу сыһыы"</i>
Соҕуруу бэрээт омук сиригэр олохтоох бэрээт омук ойууна Омоҕой Баайга кыыран, үс үөстээх Өлүөнэ өрүһү куба кыыл буолан таҥнаран, Бүлүү төрдүгэр тиийэ көрүү көрөн эппит:
— Өлүөнэ өрүс кэҥээн тиийитигэр соҕуруу Ытык—Хайа арыый аллараа өттүгэр үс үтүө харыйалар үөскээн тураллар. Онно оҕонньордоох эмээхсин "дойду ийэжэхитэбит" диэн, кэлбити ууһатар—тэнитэр бэриилээх буолан турабыт диэн, уруйдуу тураллар. Соҕуруу Ытык Хайа сылгы сүөһү төрдө буолааччык, Хоту Ытык Хайа ынах сүөһү төрдө буолааччык буолан үөскээбиттэр эбит, онон, дьэ бу мин көрөр дойдубар тиийдэххинэ, дьолу—соргуну көрсүөҥ, кэнэҕэһин ууһуоҥ—тэнийиэҥ этэ.
Маны ылынан Омоҕой Баай ойохтоох, икки кыыстаах, уонча кэргэн уолаттардаах буолан, олохтоорун көһөн айаннаан иһэн, хайдах эрэ алҕас Бүлүү өрүһүн төбөтүн булан, ол устун болуотунан таҥнаран, Өлүөнэҕэ тиийэ Бүлүү төрдүгэр кэлэн тохтоон баран, Өлүөнэни бэйэтэ соҕотоҕун дьүлүнү миинэн илин эҥэр туораан үрэх сындыыһа үрдүк хайатын (Дьааҥытын) үрдүгэр тахсан дойду былаанын көрбүт уһу.
Ол көрөн: "Онтон өрө бардахха сөп буолуо, бу дойдуга тоҕо эрэ хоту өттүттэн тымныы салгыннар биллэллэр, киһи—сүөһү үөскээбэт, дьоло—соргута тохтообут дойду быһыылаах; соҕуруу өрө диэккиттэн итии сылаас салгын охсуллар, бука, үтүө дойду манан буолуо", — диэн болуотун бэчимэлэнэн, Өлүөнэ өрүһү өрө өксөйөн билигин Киллэм хонуутугар кэлэллэр. Дьэ, кырдьык, билии бэрээт ойууна эппитин курдук, илэ—бодо ийэжэхситтээх, чахчы—бааччы айыыһыттаах оҕонньордоох эмээхсин буолан үс харыйаҕа уруйдуу тураллар эбит уһу. Омоҕойдоох манна туос ураһа туруоран түһэллэр. Сассыныгар Хоту Ытык Хайаҕа бараннар ыҥырыа эриэн дьүһүннээх, уулаах, үс саастаах бургунас ынаҕы булан аҕалаллар. Онтон сассыныгар соҕуруу Ытык Хайаҕа тиийэн "Иэйээни хонуута, Кэркээни хонуута аатырыам" диир сирдэргэ үс харыйаны булан баран, онтон төрдүс саастаах чоҥкуруун сиэллээх, кутуруктаах уулаах биэни хайа хаҥас хоонньуттан булан аҕалаллар. Манна олохсуйан, бултаан—алтаан, кыыллаан, саһыллыан билии сүөһүлэрин үөскэтэллэр, ыал буолан олороллор.
Үс сыл буолан баран, улуу тунах саҕана, иккис сүһүөх (сайыҥҥы) уунан, арай бирдэ Омоҕой уолаттара көрбүттэрэ — өрүс үөһүттэн кус, кыыл түүтэ, мас сыыһа устан ааһаллар. Ону көрөн, тахсан Омоҕойго тыллыыллар. Маныаха Омоҕой: "Кэтэһиҥ!" — диэн сорудахтыыр. Ньиргитэр уонна Доргутар буоланнар Соҕуруу Ытык Хайаҕа тиийэ бараллар. Онно тиийбиттэрэ — олох сыгынньах киһи олорор уһу. Ону көрөөт, уолаттар уомуйаллар. Онуоха киһилэрэ билэн: "Бу Омоҕой уолаттараҕыт дуо? Мин эһи турбуккут кэннэ сыл аҥаара буолан баран, эһигини эккирэтэн, икки аҥаар сыл хонугар айаннаан бу кэлэн олоробун", — диэн билэр киһи курдук, дөксө "мин Эллэй Боотур буолабын" диэн кэпсэтэн, бисэн, бары Омоҕойдооххо тиийэн кэлэллэр. Дьэ ол кэлэн, Эллэй Омоҕойго олорон үс сыл тоҕору кэргэн (хамныыр) уол курдук буолан олорор.
Үлэтигэр олус бөҕө—таҕа, модьу, үс киһи тутуута тутуулаах, киэптээх—талалаах буолан (Омоҕойго) хайҕатан сылдьар.
Биир сасыарда Омоҕой эмээхсинэ чороонноох кымыһы айах туттаран туран Эллэйтэн:
—Биһи кыргыттарбытыттан биир үчүгэйин анал ойох ылан киһи—сүөһү төрдө буолууй. Биһи эйиэхэ ити Ньыкы—Дакханы аныыбыт, — диэн чороонноох кымыһын биэрэн туран көрдөһөр. Эллэй эмээхсин биэрбит кымыһын иһэр, тугу да эппэккэ истэн эрэ кэбиһэр.
Эллэй бултуур—алтыыр, аҕалара да олус, тутуута да бэт. Икки кыыс туой арҕаа бэскэ тахсан киирэр идэлээхтэр. Ону Эллэй үлэлии сылдьан кэтэһэн олорон саһан көрдө — икки кыыстан хойго кыыс Дэкиэй—Дэпсэ иигэ үрүҥ күүгэн буолан куос курдук чомчойо олорор уһу, оттон кыра, мааны кыыс Ньыкы—Дакхан иигэ сиргэ уу курдук күүгэнэ суох иҥэн—сутэн хаалбыт уһу. Ону тойонноон "бу — хойуутуттан төрүөхтээх, ыччаттаах буолуо, кыра мааны кыыс уоһуо—тэнийиэ суоҕа, сотору үйэлээх буолуо", — дии саныы сылдьыбыт. Ол курдук саныы сырыттаҕына, Омоҕой Баай бирдэ Эллэйи ыҥыран ылан ыйытар: "Хайа, бу биһи оҕолорбутуттан хайаларын ойох ылан, оҕо—уруу төрдө—ууһа буолаҕын?" — диэн. Ону Эллэй: "Ити хойго, куһаҕан кыыһы Дэкиэй—Дэпсини ойох ылабын" — диэбит. Маныаха Омоҕой Баайдаах хойго кыыһы ойох ыларын иһин өһүүн, сөбүлэмиэнэ, чаастарын баайдарыттан биир кутуруга, муоһа суох, Куочай кугас ынаҕы биэрэллэр, уонна: "Чэ, бара охсуҥ, икки харахпытыгар көстүмэҥ! Ханна саныыргыт даа, атын сиргэ баран араан тыа буолуҥ", диэн кырыан—таныйан туран холдьоҕоллор. Эллэйдээх иккиэжэҕин отчотооҕу Киэҥ—Иэйээни хонуутугар (билигин) Сахсарыга кэлэн олохсуйан, сэп—сэбиргэл оҥостон, ураһа туруорунан, сылгы сэлэтэ оҥостон, түптэлээн, сылгы иһитэ тэринэн, сылгыларын тутан уан, кымыс мунньунан ыал буолан бараллар.
Аҕыйах сылынан байан—тайан, оҕолонон—урууланан бараллар. Муспут кымыстарын биир сайын "Кулун кымыһа" оҥорон, аймахтарын Омоҕойдооҕу ыҥыран ыһыах ыһаллар. Ыҥырыыга эмээхсини кытта кэргэн уолаттар кэлэ сылдьыбыттар. Омоҕой мааны кыыһыныын кэлбэтэхтэр.
Эллэй ыһыаҕар чороонноох, сиэллээх айаҕы өрө тутан, сөхүрүэстээн туран алгыыр. Кини аан дойду иччитин алҕаан (ааттаталаан) айак туттарар (аһатар—сиэтэр). Маныаха Илин халлаан улаҕатыттан сүүмэх сылгы кыла күн тахсыбытыттан күнү быһа батыһа тахсан эргийэ көтөн ааспыт. Ол икки ардыгар ыһыах ортотугар Омоҕой хамначчыт кыыһа кэлэн тыллыыр: "Мааны кыыс Ньыкы—Дакхан кулун баһын быатынан быаланан биэҕэ состоро сылдьар, бара охсуоҕуҥ!" — диэн. Маны бары баар дьон баран көрбүттэрэ, Ньыкы—Дакхан биэҕэ бас быатынан состорон өлбүт уһу. Ононо өлбүтүгэр тиийэн хаалаллар.
Эллэй дьэ онтон ыла киһи—сүөһү, саха төрдө буолар гына ууһуур—тэнийэр, байар—тайар. Билигин саха 5 улууһа Эллэй Боотур оҕолоруттан эбит уһу (Хаҥалас, Мэҥэ, Боотуруускай, Бороҕон, Нам).
</div>
[[Категория:Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)]]
29y0w77ogs9ardb0co48lqkr9pjqouf
9585
9584
2026-06-23T05:05:18Z
Sauit
2200
9585
wikitext
text/x-wiki
{{header
| title = Омоҕой Баай, Эллэй Боотур
| author =
| section = [[Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)|Саха төрүттэрэ уонна кыргыс үйэтэ]]
| previous =
| next = [[СТУоКҮ/Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)|Омоҕой Баай, Эллэй Боотур (Чурапчы оройуонун барыйаана)]]
| notes =
}}
<div class="text">
<i>Оконешников Николай Саввич,
40 саастаах, I Нөрүктээйи нэһилиэгэ,
Мэҥэ—Хаҥалас оройуона,
холкуостаах, саха, үөрэҕэ суох.
1933 с. От ыйын 15 күнэ, "Улуу сыһыы"</i>
Соҕуруу бэрээт омук сиригэр олохтоох бэрээт омук ойууна Омоҕой Баайга кыыран, үс үөстээх Өлүөнэ өрүһү куба кыыл буолан таҥнаран, Бүлүү төрдүгэр тиийэ көрүү көрөн эппит:
— Өлүөнэ өрүс кэҥээн тиийитигэр соҕуруу Ытык—Хайа арыый аллараа өттүгэр үс үтүө харыйалар үөскээн тураллар. Онно оҕонньордоох эмээхсин "дойду ийэжэхитэбит" диэн, кэлбити ууһатар—тэнитэр бэриилээх буолан турабыт диэн, уруйдуу тураллар. Соҕуруу Ытык Хайа сылгы сүөһү төрдө буолааччык, Хоту Ытык Хайа ынах сүөһү төрдө буолааччык буолан үөскээбиттэр эбит, онон, дьэ бу мин көрөр дойдубар тиийдэххинэ, дьолу—соргуну көрсүөҥ, кэнэҕэһин ууһуоҥ—тэнийиэҥ этэ.
Маны ылынан Омоҕой Баай ойохтоох, икки кыыстаах, уонча кэргэн уолаттардаах буолан, олохтоорун көһөн айаннаан иһэн, хайдах эрэ алҕас Бүлүү өрүһүн төбөтүн булан, ол устун болуотунан таҥнаран, Өлүөнэҕэ тиийэ Бүлүү төрдүгэр кэлэн тохтоон баран, Өлүөнэни бэйэтэ соҕотоҕун дьүлүнү миинэн илин эҥэр туораан үрэх сындыыһа үрдүк хайатын (Дьааҥытын) үрдүгэр тахсан дойду былаанын көрбүт уһу.
Ол көрөн: "Онтон өрө бардахха сөп буолуо, бу дойдуга тоҕо эрэ хоту өттүттэн тымныы салгыннар биллэллэр, киһи—сүөһү үөскээбэт, дьоло—соргута тохтообут дойду быһыылаах; соҕуруу өрө диэккиттэн итии сылаас салгын охсуллар, бука, үтүө дойду манан буолуо", — диэн болуотун бэчимэлэнэн, Өлүөнэ өрүһү өрө өксөйөн билигин Киллэм хонуутугар кэлэллэр. Дьэ, кырдьык, билии бэрээт ойууна эппитин курдук, илэ—бодо ийэжэхситтээх, чахчы—бааччы айыыһыттаах оҕонньордоох эмээхсин буолан үс харыйаҕа уруйдуу тураллар эбит уһу. Омоҕойдоох манна туос ураһа туруоран түһэллэр. Сассыныгар Хоту Ытык Хайаҕа бараннар ыҥырыа эриэн дьүһүннээх, уулаах, үс саастаах бургунас ынаҕы булан аҕалаллар. Онтон сассыныгар соҕуруу Ытык Хайаҕа тиийэн "Иэйээни хонуута, Кэркээни хонуута аатырыам" диир сирдэргэ үс харыйаны булан баран, онтон төрдүс саастаах чоҥкуруун сиэллээх, кутуруктаах уулаах биэни хайа хаҥас хоонньуттан булан аҕалаллар. Манна олохсуйан, бултаан—алтаан, кыыллаан, саһыллыан билии сүөһүлэрин үөскэтэллэр, ыал буолан олороллор.
Үс сыл буолан баран, улуу тунах саҕана, иккис сүһүөх (сайыҥҥы) уунан, арай бирдэ Омоҕой уолаттара көрбүттэрэ — өрүс үөһүттэн кус, кыыл түүтэ, мас сыыһа устан ааһаллар. Ону көрөн, тахсан Омоҕойго тыллыыллар. Маныаха Омоҕой: "Кэтэһиҥ!" — диэн сорудахтыыр. Ньиргитэр уонна Доргутар буоланнар Соҕуруу Ытык Хайаҕа тиийэ бараллар. Онно тиийбиттэрэ — олох сыгынньах киһи олорор уһу. Ону көрөөт, уолаттар уомуйаллар. Онуоха киһилэрэ билэн: "Бу Омоҕой уолаттараҕыт дуо? Мин эһи турбуккут кэннэ сыл аҥаара буолан баран, эһигини эккирэтэн, икки аҥаар сыл хонугар айаннаан бу кэлэн олоробун", — диэн билэр киһи курдук, дөксө "мин Эллэй Боотур буолабын" диэн кэпсэтэн, бисэн, бары Омоҕойдооххо тиийэн кэлэллэр. Дьэ ол кэлэн, Эллэй Омоҕойго олорон үс сыл тоҕору кэргэн (хамныыр) уол курдук буолан олорор.
Үлэтигэр олус бөҕө—таҕа, модьу, үс киһи тутуута тутуулаах, киэптээх—талалаах буолан (Омоҕойго) хайҕатан сылдьар.
Биир сасыарда Омоҕой эмээхсинэ чороонноох кымыһы айах туттаран туран Эллэйтэн:
—Биһи кыргыттарбытыттан биир үчүгэйин анал ойох ылан киһи—сүөһү төрдө буолууй. Биһи эйиэхэ ити Ньыкы—Дакханы аныыбыт, — диэн чороонноох кымыһын биэрэн туран көрдөһөр. Эллэй эмээхсин биэрбит кымыһын иһэр, тугу да эппэккэ истэн эрэ кэбиһэр.
Эллэй бултуур—алтыыр, аҕалара да олус, тутуута да бэт. Икки кыыс туой арҕаа бэскэ тахсан киирэр идэлээхтэр. Ону Эллэй үлэлии сылдьан кэтэһэн олорон саһан көрдө — икки кыыстан хойго кыыс Дэкиэй—Дэпсэ иигэ үрүҥ күүгэн буолан куос курдук чомчойо олорор уһу, оттон кыра, мааны кыыс Ньыкы—Дакхан иигэ сиргэ уу курдук күүгэнэ суох иҥэн—сутэн хаалбыт уһу. Ону тойонноон "бу — хойуутуттан төрүөхтээх, ыччаттаах буолуо, кыра мааны кыыс уоһуо—тэнийиэ суоҕа, сотору үйэлээх буолуо", — дии саныы сылдьыбыт. Ол курдук саныы сырыттаҕына, Омоҕой Баай бирдэ Эллэйи ыҥыран ылан ыйытар: "Хайа, бу биһи оҕолорбутуттан хайаларын ойох ылан, оҕо—уруу төрдө—ууһа буолаҕын?" — диэн. Ону Эллэй: "Ити хойго, куһаҕан кыыһы Дэкиэй—Дэпсини ойох ылабын" — диэбит. Маныаха Омоҕой Баайдаах хойго кыыһы ойох ыларын иһин өһүүн, сөбүлэмиэнэ, чаастарын баайдарыттан биир кутуруга, муоһа суох, Куочай кугас ынаҕы биэрэллэр, уонна: "Чэ, бара охсуҥ, икки харахпытыгар көстүмэҥ! Ханна саныыргыт даа, атын сиргэ баран араан тыа буолуҥ", диэн кырыан—таныйан туран холдьоҕоллор. Эллэйдээх иккиэжэҕин отчотооҕу Киэҥ—Иэйээни хонуутугар (билигин) Сахсарыга кэлэн олохсуйан, сэп—сэбиргэл оҥостон, ураһа туруорунан, сылгы сэлэтэ оҥостон, түптэлээн, сылгы иһитэ тэринэн, сылгыларын тутан уан, кымыс мунньунан ыал буолан бараллар.
Аҕыйах сылынан байан—тайан, оҕолонон—урууланан бараллар. Муспут кымыстарын биир сайын "Кулун кымыһа" оҥорон, аймахтарын Омоҕойдооҕу ыҥыран ыһыах ыһаллар. Ыҥырыыга эмээхсини кытта кэргэн уолаттар кэлэ сылдьыбыттар. Омоҕой мааны кыыһыныын кэлбэтэхтэр.
Эллэй ыһыаҕар чороонноох, сиэллээх айаҕы өрө тутан, сөхүрүэстээн туран алгыыр. Кини аан дойду иччитин алҕаан (ааттаталаан) айак туттарар (аһатар—сиэтэр). Маныаха Илин халлаан улаҕатыттан сүүмэх сылгы кыла күн тахсыбытыттан күнү быһа батыһа тахсан эргийэ көтөн ааспыт. Ол икки ардыгар ыһыах ортотугар Омоҕой хамначчыт кыыһа кэлэн тыллыыр: "Мааны кыыс Ньыкы—Дакхан кулун баһын быатынан быаланан биэҕэ состоро сылдьар, бара охсуоҕуҥ!" — диэн. Маны бары баар дьон баран көрбүттэрэ, Ньыкы—Дакхан биэҕэ бас быатынан состорон өлбүт уһу. Ононо өлбүтүгэр тиийэн хаалаллар.
Эллэй дьэ онтон ыла киһи—сүөһү, саха төрдө буолар гына ууһуур—тэнийэр, байар—тайар. Билигин саха 5 улууһа Эллэй Боотур оҕолоруттан эбит уһу (Хаҥалас, Мэҥэ, Боотуруускай, Бороҕон, Нам).
</div>
[[Категория:Саха төрүттэрэ уонна кыргыс үйэтэ (Сэһэн Боло)]]
cxow6bpxqa1o8890m74k4yn36yy2m16