Авикипедиа
abwiki
https://ab.wikipedia.org/wiki/%D0%98%D1%85%D0%B0%D0%B4%D0%BE%D1%83_%D0%B0%D0%B4%D0%B0%D2%9F%D1%8C%D0%B0
MediaWiki 1.46.0-wmf.23
first-letter
Амедиа
Цастәи
Ахцәажәара
Алахәыла
Алахәыла ахцәажәара
Авикипедиа
Авикипедиа ахцәажәара
Афаил
Афаил ахцәажәара
Амедиавики
Амедиавики ахцәажәара
Ашаблон
Ашаблон ахцәажәара
Ацхыраара
Ацхыраара ахцәажәара
Акатегориа
Акатегориа ахцәажәара
TimedText
TimedText talk
Амодуль
Амодуль ахцәажәара
Event
Event talk
Азиа
0
17449
163540
139906
2026-04-10T23:40:17Z
Abslakak
24903
163540
wikitext
text/x-wiki
[[Афаил:Asia (orthographic projection).svg|мини|Азиа]]
'''Азиа''' ({{lang-ru|Азия}}; {{lang-zh|亚洲}}; {{lang-hi|एशिया}}; {{lang-ar|آسيا}}; {{lang-fr|Asie}}; {{lang-en|Asia}}) — [[аконтинент]].
== Атәылақәа ==
* [[Аахыҵ Уаԥстәыла]]
* [[Аладатәи Кореиа]]
* [[Афганистан]]
* [[Азербаиџьан]]
* [[Аԥсны]]
* [[Бангладеш]]
* [[Баҳреин]]
* [[Брунеи]]
* [[Бутан]]
* [[Виетнам]]
* [[Гонконг]]
* [[Еиду Арабтәи Емиратқәа]]
* [[Ермантәыла]]
* [[Иапониа]]
* [[Иемен]]
* [[Индиа]]
* [[Индонезиа]]
* [[Иорданиа]]
* [[Ирак]]
* [[Иран]]
* ''[[Израиль]]''
* [[Џьамтәыла]]
* [[Камбоџа]]
* [[Китаи]]
* [[Кувеит]]
* [[Кырӷызсҭан]]
* [[Қырҭтәыла]]
* [[Ҟазахсҭан]]
* [[Ҟатар]]
* [[Лаос]]
* [[Ливан]]
* [[Малаизиа]]
* [[Мальдив]]
* [[Мианма]]
* [[Монголиа]]
* [[Непал]]
* [[Оман]]
* [[Пакистан]]
* [[Палестина]]
* [[Саудтәи Аравиа]]
* [[Сингапур]]
* [[Шьамтәыла]]
* [[Шри-Ланка]]
* [[Таиланд]]
* [[Таџьықьсҭан]]
* [[Ҭурқменисҭан]]
* [[Ҭырқәтәыла]]
* [[Урыстәыла]]
* [[Узбеқьисҭан]]
* [[Филиппин]]
{{авторитет змоу адыррақәа}}
[[Акатегориа:Азиа]]
[[Акатегориа:Аконтинентқәа]]
4jlw3obe8eke6bqsb5nobcs008fz2ww
163541
163540
2026-04-10T23:41:07Z
Abslakak
24903
163541
wikitext
text/x-wiki
[[Афаил:Asia (orthographic projection).svg|мини|Азиа]]
'''Азиа''' ({{lang-ru|Азия}}; {{lang-zh|亚洲}}; {{lang-hi|एशिया}}; {{lang-ar|آسيا}}; {{lang-fr|Asie}}; {{lang-en|Asia}}) — [[аконтинент]].
== Атәылақәа ==
* [[Аахыҵ Уаԥстәыла]]
* [[Аладатәи Кореиа]]
* [[Афганистан]]
* [[Азербаиџьан]]
* [[Аԥсны Аҳәынҭқарра|Аԥсны]]
* [[Бангладеш]]
* [[Баҳреин]]
* [[Брунеи]]
* [[Бутан]]
* [[Виетнам]]
* [[Гонконг]]
* [[Еиду Арабтәи Емиратқәа]]
* [[Ермантәыла]]
* [[Иапониа]]
* [[Иемен]]
* [[Индиа]]
* [[Индонезиа]]
* [[Иорданиа]]
* [[Ирак]]
* [[Иран]]
* ''[[Израиль]]''
* [[Џьамтәыла]]
* [[Камбоџа]]
* [[Китаи]]
* [[Кувеит]]
* [[Кырӷызсҭан]]
* [[Қырҭтәыла]]
* [[Ҟазахсҭан]]
* [[Ҟатар]]
* [[Лаос]]
* [[Ливан]]
* [[Малаизиа]]
* [[Мальдив]]
* [[Мианма]]
* [[Монголиа]]
* [[Непал]]
* [[Оман]]
* [[Пакистан]]
* [[Палестина]]
* [[Саудтәи Аравиа]]
* [[Сингапур]]
* [[Шьамтәыла]]
* [[Шри-Ланка]]
* [[Таиланд]]
* [[Таџьықьсҭан]]
* [[Ҭурқменисҭан]]
* [[Ҭырқәтәыла]]
* [[Урыстәыла]]
* [[Узбеқьисҭан]]
* [[Филиппин]]
{{авторитет змоу адыррақәа}}
[[Акатегориа:Азиа]]
[[Акатегориа:Аконтинентқәа]]
fmjx58uc55gvheqkfj1ygkvq0fm68r8
163543
163541
2026-04-10T23:47:05Z
Abslakak
24903
163543
wikitext
text/x-wiki
[[Афаил:Asia (orthographic projection).svg|мини|Азиа]]
'''Азиа''' ({{lang-ru|Азия}}; {{lang-zh|亚洲}}; {{lang-hi|एशिया}}; {{lang-ar|آسيا}}; {{lang-fr|Asie}}; {{lang-en|Asia}}) — [[аконтинент]].
== Атәылақәа ==
* [[Аахыҵ Уаԥстәыла]]
* [[Аладатәи Кореиа]]
* [[Аԥсны Аҳәынҭқарра|Аԥсны]]
* [[Афганистан]]
* [[Азербаиџьан]]
* [[Аҩадатәи Кореиа]]
* [[Бангладеш]]
* [[Баҳреин]]
* [[Брунеи]]
* [[Бутан]]
* [[Виетнам]]
* [[Гонконг]]
* [[Еиду Арабтәи Емиратқәа]]
* [[Ермантәыла]]
* [[Иапониа]]
* [[Иемен]]
* [[Индиа]]
* [[Индонезиа]]
* [[Иорданиа]]
* [[Ирак]]
* [[Иран]]
* ''[[Израиль]]''
* [[Џьамтәыла]]
* [[Камбоџа]]
* [[Китаи]]
* [[Кувеит]]
* [[Кырӷызсҭан]]
* [[Қырҭтәыла]]
* [[Ҟазахсҭан]]
* [[Ҟатар]]
* [[Лаос]]
* [[Ливан]]
* [[Малаизиа]]
* [[Мальдив]]
* [[Мианма]]
* [[Монголиа]]
* [[Непал]]
* [[Оман]]
* [[Пакистан]]
* [[Палестина]]
* [[Саудтәи Аравиа]]
* [[Сингапур]]
* [[Шьамтәыла]]
* [[Шри-Ланка]]
* [[Таиланд]]
* [[Таџьықьсҭан]]
* [[Ҭурқменисҭан]]
* [[Ҭырқәтәыла]]
* [[Урыстәыла]]
* [[Узбеқьисҭан]]
* [[Филиппин]]
{{авторитет змоу адыррақәа}}
[[Акатегориа:Азиа]]
[[Акатегориа:Аконтинентқәа]]
3ejug7wxfckhujspz2g0urtyyp2sdtv
163589
163543
2026-04-11T01:23:02Z
Fraxinus.cs
8381
/* Атәылақәа */
163589
wikitext
text/x-wiki
[[Афаил:Asia (orthographic projection).svg|мини|Азиа]]
'''Азиа''' ({{lang-ru|Азия}}; {{lang-zh|亚洲}}; {{lang-hi|एशिया}}; {{lang-ar|آسيا}}; {{lang-fr|Asie}}; {{lang-en|Asia}}) — [[аконтинент]].
== Атәылақәа ==
* [[Аахыҵ Уаԥстәыла]]
* [[Аладатәи Кореиа]]
* [[Аԥсны Аҳәынҭқарра|Аԥсны]]
* [[Афганистан]]
* [[Азербаиџьан]]
* [[Аҩадатәи Кореиа]]
* [[Бангладеш]]
* [[Баҳреин]]
* [[Брунеи]]
* [[Бутан]]
* [[Виетнам]]
* [[Гонконг]]
* [[Еиду Арабтә Емиратқәа]]
* [[Ермантәыла]]
* [[Иапониа]]
* [[Иемен]]
* [[Индиа]]
* [[Индонезиа]]
* [[Иорданиа]]
* [[Ирак]]
* [[Иран]]
* ''[[Израиль]]''
* [[Џьамтәыла]]
* [[Камбоџа]]
* [[Китаи]]
* [[Кувеит]]
* [[Кырӷызсҭан]]
* [[Қырҭтәыла]]
* [[Ҟазахсҭан]]
* [[Ҟатар]]
* [[Лаос]]
* [[Ливан]]
* [[Малаизиа]]
* [[Мальдив]]
* [[Мианма]]
* [[Монголиа]]
* [[Непал]]
* [[Оман]]
* [[Пакистан]]
* [[Палестина]]
* [[Саудтәи Аравиа]]
* [[Сингапур]]
* [[Шьамтәыла]]
* [[Шри-Ланка]]
* [[Таиланд]]
* [[Таџьықьсҭан]]
* [[Ҭурқменисҭан]]
* [[Ҭырқәтәыла]]
* [[Урыстәыла]]
* [[Узбеқьисҭан]]
* [[Филиппин]]
{{авторитет змоу адыррақәа}}
[[Акатегориа:Азиа]]
[[Акатегориа:Аконтинентқәа]]
pmo2kh88r8vyd8o12ugxgc7zuqq7koc
Амодуль:Category series navigation
828
37074
163518
145466
2026-04-10T23:06:04Z
Fraxinus.cs
8381
163518
Scribunto
text/plain
require('strict')
local p = {}
local horizontal = require('Module:List').horizontal
--[[==========================================================================]]
--[[ Globals ]]
--[[==========================================================================]]
local currtitle = mw.title.getCurrentTitle()
local nexistingcats = 0
local errors = ''
local testcasecolon = ''
local testcases = string.match(currtitle.subpageText, '^testcases')
if testcases then testcasecolon = ':' end
local navborder = true
local followRs = true
local skipgaps = false
local skipgaps_limit = 30
local term_limit = 10
local hgap_limit = 6
local ygap_limit = 5
local listall = false
local tlistall = {}
local tlistallbwd = {}
local tlistallfwd = {}
local ttrackingcats = { --when reindexing, Ctrl+H 'trackcat(13,' & 'ttrackingcats[16]'
'', -- [1] placeholder for [[Акатегориа:Category series navigation using cat parameter]]
'', -- [2] placeholder for [[Акатегориа:Category series navigation using testcase parameter]]
'', -- [3] placeholder for [[Акатегориа:Category series navigation using unknown parameter]]
'', -- [4] placeholder for [[Акатегориа:Category series navigation range not using en dash]]
'', -- [5] placeholder for [[Акатегориа:Category series navigation range abbreviated (MOS)]]
'', -- [6] placeholder for [[Акатегориа:Category series navigation range redirected (base change)]]
'', -- [7] placeholder for [[Акатегориа:Category series navigation range redirected (var change)]]
'', -- [8] placeholder for [[Акатегориа:Category series navigation range redirected (end)]]
'', -- [9] placeholder for [[Акатегориа:Category series navigation range redirected (MOS)]]
'', --[10] placeholder for [[Акатегориа:Category series navigation range redirected (other)]]
'', --[11] placeholder for [[Акатегориа:Category series navigation range gaps]]
'', --[12] placeholder for [[Акатегориа:Category series navigation range irregular]]
'', --[13] placeholder for [[Акатегориа:Category series navigation range irregular, 0-length]]
'', --[14] placeholder for [[Акатегориа:Category series navigation range ends (present)]]
'', --[15] placeholder for [[Акатегориа:Category series navigation range ends (blank, MOS)]]
'', --[16] placeholder for [[Акатегориа:Category series navigation isolated]]
'', --[17] placeholder for [[Акатегориа:Category series navigation default season gap size]]
'', --[18] placeholder for [[Акатегориа:Category series navigation decade redirected]]
'', --[19] placeholder for [[Акатегориа:Category series navigation year redirected (base change)]]
'', --[20] placeholder for [[Акатегориа:Category series navigation year redirected (var change)]]
'', --[21] placeholder for [[Акатегориа:Category series navigation year redirected (other)]]
'', --[22] placeholder for [[Акатегориа:Category series navigation roman numeral redirected]]
'', --[23] placeholder for [[Акатегориа:Category series navigation nordinal redirected]]
'', --[24] placeholder for [[Акатегориа:Category series navigation wordinal redirected]]
'', --[25] placeholder for [[Акатегориа:Category series navigation TV season redirected]]
'', --[26] placeholder for [[Акатегориа:Category series navigation using skip-gaps parameter]]
'', --[27] placeholder for [[Акатегориа:Category series navigation year and range]]
'', --[28] placeholder for [[Акатегориа:Category series navigation year and decade]]
'', --[29] placeholder for [[Акатегориа:Category series navigation decade and century]]
'', --[30] placeholder for [[Акатегориа:Category series navigation in mainspace]]
'', --[31] placeholder for [[Акатегориа:Category series navigation redirection error]]
}
local avoidself = (not string.match(currtitle.text, 'Category series navigation with') and
not string.match(currtitle.text, 'Category series navigation.*/doc') and
not string.match(currtitle.text, 'Category series navigation.*/sandbox') and
currtitle.text ~= 'Category series navigation' and
currtitle.nsText ~= 'User_talk' and
currtitle.nsText ~= 'Template_talk' and
(currtitle.nsText ~= 'Template' or testcases)) --avoid nested transclusion errors (i.e. {{Infilmdecade}})
--[[==========================================================================]]
--[[ Utility & category functions ]]
--[[==========================================================================]]
--Determine if a category exists (in a function for easier localization).
local function catexists( title )
return mw.title.new( title, 'Акатегориа' ).exists
end
--Error message handling.
function p.errorclass( msg )
return mw.text.tag( 'span', {class='error mw-ext-cite-error'}, '<b>Агха!</b> '..string.gsub(msg, '&#', '&#') )
end
--Failure handling.
function p.failedcat( errors, sortkey )
if avoidself then
return (errors or '')..'***Category series navigation failed to generate navbox***'..
'[['..testcasecolon..'Акатегориа:Category series navigation failed to generate navbox|'..(sortkey or 'O')..']]\n'
end
return ''
end
--Tracking cat handling.
-- key: 15 (when reindexing ttrackingcats{}, Ctrl+H 'trackcat(13,' & 'ttrackingcats[16]')
-- cat: 'Category series navigation isolated'; '' to remove
--Used by main, all nav_*(), & several utility functions.
local function trackcat( key, cat )
if avoidself and key and cat then
if cat ~= '' then
ttrackingcats[key] = '[['..testcasecolon..'Акатегориа:'..cat..']]'
else
ttrackingcats[key] = ''
end
end
return
end
--Check for unknown parameters.
--Used by main only.
local function checkforunknownparams( tbl )
local knownparams = { --parameter whitelist
['min'] = 'min',
['max'] = 'max',
['cat'] = 'cat',
['show'] = 'show',
['testcase'] = 'testcase',
['testcasegap'] = 'testcasegap',
['skip-gaps'] = 'skip-gaps',
['list-all-links'] = 'list-all-links',
['follow-redirects'] = 'follow-redirects',
}
for k, _ in pairs (tbl) do
if knownparams[k] == nil then
trackcat(3, 'Category series navigation using unknown parameter')
break
end
end
end
--Check for nav_*() navigational isolation (not necessarily an error).
--Used by all nav_*().
local function isolatedcat()
if nexistingcats == 0 then
trackcat(16, 'Category series navigation isolated')
end
end
--Returns the target of {{Category redirect}}, if it exists, else returns the original cat.
--{{Title year}}, etc., if found, are evaluated.
--Used by catlinkfollowr(), and so indirectly by all nav_*().
local function rtarget( frame, cat )
local catcontent = mw.title.new( cat or '', 'Акатегориа' ):getContent()
if string.match( catcontent or '', '{{ *[Cc]at' ) then --prelim test
local getRegex = require('Module:Template redirect regex').main
local tregex = getRegex('Category redirect')
for _, v in pairs (tregex) do
local rtarget = mw.ustring.match( catcontent, v..'%s*|%s*([^|}]+)' )
if rtarget then
if string.match(rtarget, '{{') then --{{Title year}}, etc., exists; evaluate
local regex_ty = '%s*|%s*([^{}]*{{([^{|}]+)}}[^{}]-)%s*}}' --eval null-param templates only; expanded if/as needed
local rtarget_orig, ty = mw.ustring.match( catcontent, v..regex_ty )
if rtarget_orig then
local ty_eval = frame:expandTemplate{ title = ty, args = { page = cat } } --frame:newChild doesn't work, use 'page' param instead
local rtarget_eval = mw.ustring.gsub(rtarget_orig, '{{%s*'..ty..'%s*}}', ty_eval )
return rtarget_eval
else --sub-parameters present; track & return default
trackcat(31, 'Category series navigation redirection error')
end
end
rtarget = mw.ustring.gsub(rtarget, '^1%s*=%s*', '')
rtarget = string.gsub(rtarget, '^[Cc]ategory:', '')
return rtarget
end
end --for
end --if
return cat
end
--Similar to {{LinkCatIfExists2}}: make a piped link to a category, if it exists;
--if it doesn't exist, just display the greyed link title without linking.
--Follows {{Category redirect}}s.
--Returns {
-- ['cat'] = cat,
-- ['catexists'] = true,
-- ['rtarget'] = <#R target>,
-- ['navelement'] = <#R target navelement>,
-- ['displaytext'] = displaytext,
-- }
-- if #R followed;
--returns {
-- ['cat'] = cat,
-- ['catexists'] = <true|false>,
-- ['rtarget'] = nil,
-- ['navelement'] = <cat navelement>,
-- ['displaytext'] = displaytext,
-- }
-- otherwise.
--Used by all nav_*().
local function catlinkfollowr( frame, cat, displaytext, displayend )
cat = mw.text.trim(cat or '')
displaytext = mw.text.trim(displaytext or '')
displayend = displayend or false --bool flag to override displaytext IIF the cat/target is terminal (e.g. "2021–present" or "2021–")
local disp = cat
if displaytext ~= '' then --use 'displaytext' parameter if present
disp = mw.ustring.gsub(displaytext, '%s+%(.+$', ''); --strip any trailing disambiguator
end
local link, nilorR
local exists = catexists(cat)
if exists then
nexistingcats = nexistingcats + 1
if followRs then
local R = rtarget(frame, cat) --find & follow #R
if R ~= cat then --#R followed
nilorR = R
end
if displayend then
local y, hyph, ending = mw.ustring.match(R, '^.-(%d+)([–-])(.*)$')
if ending == 'present' then
disp = y..hyph..ending
elseif ending == '' then
disp = y..hyph..'<span style="visibility:hidden">'..y..'</span>' --hidden y to match spacing
end
end
link = '[[:Акатегориа:'..R..'|'..disp..']]'
else
link = '[[:Акатегориа:'..cat..'|'..disp..']]'
end
else
link = '<span class="categorySeriesNavigation-item-inactive">'..disp..'</span>'
end
if listall then
if nilorR then --#R followed
table.insert( tlistall, '[[:Category:'..cat..']] → '..'[[:Category:'..nilorR..']] ('..link..')' )
else --no #R
table.insert( tlistall, '[[:Category:'..cat..']] ('..link..')' )
end
end
return {
['cat'] = cat,
['catexists'] = exists,
['rtarget'] = nilorR,
['navelement'] = link,
['displaytext'] = disp,
}
end
--Returns a numbered list of all {{Category redirect}}s followed by catlinkfollowr() -> rtarget().
--For a nav_hyphen() cat, also returns a formatted list of all cats searched for & found, & all loop indices.
--Used by all nav_*().
local function listalllinks()
local nl = '\n# '
local out = ''
if currtitle.nsText == 'Category' then
errors = p.errorclass('The <b><code>|list-all-links=yes</code></b> parameter/utility '..
'should not be saved in category space, only previewed.')
out = p.failedcat(errors, 'Z')
end
local bwd, fwd = '', ''
if tlistallbwd[1] then
bwd = '\n\nbackward search:'..nl..table.concat(tlistallbwd, nl)
end
if tlistallfwd[1] then
fwd = '\n\nforward search:'..nl..table.concat(tlistallfwd, nl)
end
if tlistall[1] then
return out..nl..table.concat(tlistall, nl)..bwd..fwd
else
return out..nl..'No links found!?'..bwd..fwd
end
end
--Returns the difference b/w 2 ints separated by endash|hyphen, nil if error.
--Used by nav_hyphen() only.
local function find_duration( cat )
local from, to = mw.ustring.match(cat, '(%d+)[–-](%d+)')
if from and to then
if to == '00' then return nil end --doesn't follow MOS:DATERANGE
if (#from == 4) and (#to == 2) then --1900-01
to = string.match(from, '(%d%d)%d%d')..to --1900-1901
elseif (#from == 2) and (#to == 4) then -- 01-1902
from = string.match(to, '(%d%d)%d%d')..from --1901-1902
end
return (tonumber(to) - tonumber(from))
end
return 0
end
--Returns the ending of a terminal cat, and sets the appropriate tracking cat, else nil.
--Used by nav_hyphen() only.
local function find_terminaltxt( cat )
local terminaltxt = nil
if mw.ustring.match(cat, '%d+[–-]present$') then
terminaltxt = 'present'
trackcat(14, 'Category series navigation range ends (present)')
elseif mw.ustring.match(cat, '%d+[–-]$') then
terminaltxt = ''
trackcat(15, 'Category series navigation range ends (blank, MOS)')
end
return terminaltxt
end
--Returns an unsigned string of the 1-4 digit decade ending in "0", else nil.
--Used by nav_decade() only.
local function sterilizedec( decade )
if decade == nil or decade == '' then
return nil
end
local dec = string.match(decade, '^[-%+]?(%d?%d?%d?0)$') or
string.match(decade, '^[-%+]?(%d?%d?%d?0)%D')
if dec then
return dec
else
--fix 2-4 digit decade
local decade_fixed234 = string.match(decade, '^[-%+]?(%d%d?%d?)%d$') or
string.match(decade, '^[-%+]?(%d%d?%d?)%d%D')
if decade_fixed234 then
return decade_fixed234..'0'
end
--fix 1-digit decade
local decade_fixed1 = string.match(decade, '^[-%+]?(%d)$') or
string.match(decade, '^[-%+]?(%d)%D')
if decade_fixed1 then
return '0'
end
--unfixable
return nil
end
end
--Check for nav_hyphen default gap size + isolatedcat() (not necessarily an error).
--Used by nav_hyphen() only.
local function defaultgapcat( bool )
if bool and nexistingcats == 0 then
--using "nexistingcats > 0" isn't as useful, since the default gap size obviously worked
trackcat(17, 'Category series navigation default season gap size')
end
end
--12 -> 12th, etc.
--Used by nav_nordinal() & nav_wordinal().
function p.addord( i )
if tonumber(i) then
local s = tostring(i)
local tens = string.match(s, '1%d$')
if tens then return s..'-тәи' end
local ones = string.match(s, '%d$')
if ones == '1' then return s..'-тәи'
elseif ones == '2' then return s..'-тәи'
elseif ones == '3' then return s..'-тәи' end
return s..'-тәи'
end
return i
end
--Returns the properly formatted central nav element.
--Expects an integer i, and a catlinkfollowr() table.
--Used by nav_decade() & nav_ordinal() only.
local function navcenter( i, catlink )
if i == 0 then --center nav element
if navborder == true then
return '<b>'..catlink.displaytext..'</b>'
else
return '<b>'..catlink.navelement..'</b>'
end
else
return catlink.navelement
end
end
--Wrap one or two navs in a <div> with ARIA attributes; add TemplateStyles
--before it. This also aligns the navs in case some floating element (like a
--portal box) breaks their alignment.
--Used by main only.
local function wrap( nav1, nav2 )
local templatestyles = require("Module:TemplateStyles")(
"Module:Category series navigation/styles.css"
)
local prepare = function (nav)
if nav then
nav = '\n'..nav
else
nav = ''
end
return nav
end
return templatestyles..
'<div class="categorySeriesNavigation" role="navigation" aria-label="Range">'..
prepare(nav1)..prepare(nav2)..
'\n</div>'
end
--[[==========================================================================]]
--[[ Formerly separated templates/modules ]]
--[[==========================================================================]]
--[[==========================={{ nav_hyphen }}=============================]]
local function nav_hyphen( frame, start, hyph, finish, firstpart, lastpart, minseas, maxseas, testgap )
--Expects a PAGENAME of the form "Some sequential 2015–16 example cat", where
-- start = 2015
-- hyph = –
-- finish = 16 (sequential years can be abbreviated, but others should be full year, e.g. "2001–2005")
-- firstpart = Some sequential
-- lastpart = example cat
-- minseas = 1800 ('min' starting season shown; optional; defaults to -9999)
-- maxseas = 2000 ('max' starting season shown; optional; defaults to 9999; 2000 will show 2000-01)
-- testgap = 0 (testcasegap parameter for easier testing; optional)
--sterilize start
if string.match(start or '', '^%d%d?%d?%d?$') == nil then --1-4 digits, AD only
local start_fixed = mw.ustring.match(start or '', '^%s*(%d%d?%d?%d?)%D')
if start_fixed then
start = start_fixed
else
errors = p.errorclass('Function nav_hyphen can\'t recognize the number "'..(start or '')..'" '..
'in the first part of the "season" that was passed to it. '..
'For e.g. "2015–16", "2015" is expected via "|2015|–|16|".')
return p.failedcat(errors, 'H')
end
end
local nstart = tonumber(start)
--en dash check
if hyph ~= '–' then
trackcat(4, 'Category series navigation range not using en dash') --nav still processable, but track
end
--sterilize finish & check for weird parents
local tgaps = {} --table of gap sizes found b/w terms { [<gap size found>] = 1 }
local ttlens = {} --table of term lengths found w/i terms { [<term length found>] = 1 }
local tirregs = {} --table of ir/regular-term-length cats' "from"s & "to"s found
local regularparent = true
if (finish == -1) or --"Members of the Scottish Parliament 2021–present"
(finish == 0) --"Members of the Scottish Parliament 2021–"
then
regularparent = false
if maxseas == nil or maxseas == '' then
maxseas = start --hide subsequent ranges
end
if finish == -1 then trackcat(14, 'Category series navigation range ends (present)')
else trackcat(15, 'Category series navigation range ends (blank, MOS)') end
elseif (start == finish) and
(ttrackingcats[16] ~= '') --nav_year found isolated; check for surrounding hyphenated terms (e.g. UK MPs 1974)
then
trackcat(16, '') --reset for another check later
trackcat(13, 'Category series navigation range irregular, 0-length')
ttlens[0] = 1 --calc ttlens for std cases below
regularparent = 'isolated'
end
if (string.match(finish or '', '^%d+$') == nil) and
(string.match(finish or '', '^%-%d+$') == nil)
then
local finish_fixed = mw.ustring.match(finish or '', '^%s*(%d%d?%d?%d?)%D')
if finish_fixed then
finish = finish_fixed
else
errors = p.errorclass('Function nav_hyphen can\'t recognize "'..(finish or '')..'" '..
'in the second part of the "season" that was passed to it. '..
'For e.g. "2015–16", "16" is expected via "|2015|–|16|".')
return p.failedcat(errors, 'I')
end
else
if string.len(finish) >= 5 then
errors = p.errorclass('The second part of the season passed to function nav_hyphen should only be four or fewer digits, not "'..(finish or '')..'". '..
'See [[MOS:DATERANGE]] for details.')
return p.failedcat(errors, 'J')
end
end
local nfinish = tonumber(finish)
--save sterilized parent range for easier lookup later
tirregs['from0'] = nstart
tirregs['to0'] = nfinish
--sterilize min/max
local nminseas_default = -9999
local nmaxseas_default = 9999
local nminseas = tonumber(minseas) or nminseas_default --same behavior as nav_year
local nmaxseas = tonumber(maxseas) or nmaxseas_default --same behavior as nav_year
if nminseas > nstart then nminseas = nstart end
if nmaxseas < nstart then nmaxseas = nstart end
local lspace = ' ' --assume a leading space (most common)
local tspace = ' ' --assume a trailing space (most common)
if string.match(firstpart, '%($') then lspace = '' end --DNE for "Madrid city councillors (2007–2011)"-type cats
if string.match(lastpart, '^%)') then tspace = '' end --DNE for "Madrid city councillors (2007–2011)"-type cats
--calculate term length/intRAseason size & finishing year
local t = 1
while t <= term_limit and regularparent == true do
local nish = nstart + t --use switchADBC to flip this sign to work for years BC, if/when the time comes
if (nish == nfinish) or (string.match(nish, '%d?%d$') == finish) then
ttlens[t] = 1
break
end
if t == term_limit then
errors = p.errorclass('Function nav_hyphen can\'t determine a reasonable term length for "'..start..hyph..finish..'".')
return p.failedcat(errors, 'K')
end
t = t + 1
end
--apply MOS:DATERANGE to parent
local lenstart = string.len(start)
local lenfinish = string.len(finish)
if lenstart == 4 and regularparent == true then --"2001–..."
if t == 1 then --"2001–02" & "2001–2002" both allowed
if lenfinish ~= 2 and lenfinish ~= 4 then
errors = p.errorclass('The second part of the season passed to function nav_hyphen should be two or four digits, not "'..finish..'".')
return p.failedcat(errors, 'L')
end
else --"2001–2005" is required for t > 1; track "2001–05"; anything else = error
if lenfinish == 2 then
trackcat(5, 'Category series navigation range abbreviated (MOS)')
elseif lenfinish ~= 4 then
errors = p.errorclass('The second part of the season passed to function nav_hyphen should be four digits, not "'..finish..'".')
return p.failedcat(errors, 'M')
end
end
if finish == '00' then --full year required regardless of term length
trackcat(5, 'Category series navigation range abbreviated (MOS)')
end
end
--calculate intERseason gap size
local hgap_default = 0 --assume & start at the most common case: 2001–02 -> 2002–03, etc.
local hgap_limit_reg = hgap_limit --less expensive per-increment (inc x 4)
local hgap_limit_irreg = hgap_limit --more expensive per-increment (inc x 23 = inc x (k_bwd + k_fwd) = inc x (12 + 11))
local hgap_success = false
local hgap = hgap_default
while hgap <= hgap_limit_reg and regularparent == true do --verify
local prevseason2 = firstpart..lspace..(nstart-t-hgap)..hyph..string.match(nstart-hgap, '%d?%d$') ..tspace..lastpart
local nextseason2 = firstpart..lspace..(nstart+t+hgap)..hyph..string.match(nstart+2*t+hgap, '%d?%d$')..tspace..lastpart
local prevseason4 = firstpart..lspace..(nstart-t-hgap)..hyph..(nstart-hgap) ..tspace..lastpart
local nextseason4 = firstpart..lspace..(nstart+t+hgap)..hyph..(nstart+2*t+hgap)..tspace..lastpart
if t == 1 then --test abbreviated range first, then full range, to be frugal with expensive functions
if catexists(prevseason2) or --use 'or', in case we're at the edge of the cat structure,
catexists(nextseason2) or --or we hit a "–00"/"–2000" situation on one side
catexists(prevseason4) or
catexists(nextseason4)
then
hgap_success = true
break
end
elseif t > 1 then --test full range first, then abbreviated range, to be frugal with expensive functions
if catexists(prevseason4) or --use 'or', in case we're at the edge of the cat structure,
catexists(nextseason4) or --or we hit a "–00"/"–2000" situation on one side
catexists(prevseason2) or
catexists(nextseason2)
then
hgap_success = true
break
end
end
hgap = hgap + 1
end
if hgap_success == false then
hgap = tonumber(testgap) or hgap_default --tracked via defaultgapcat()
end
--preliminary scan to determine ir/regular spacing of nearby cats;
--to limit expensive function calls, MOS:DATERANGE-violating cats are ignored;
--an irregular-term-length series should follow "YYYY..hyph..YYYY" throughout
if hgap <= hgap_limit_reg then --also to isolate temp vars
--find # of nav-visible ir/regular-term-length cats
local bwanchor = nstart --backward anchor/common year
local fwanchor = bwanchor + t --forward anchor/common year
if regularparent == 'isolated' then
fwanchor = bwanchor
end
local spangreen = '[<span style="color:green">j, g, k = ' --used for/when debugging via list-all-links=yes
local spanblue = '<span style="color:blue">'
local spanred = ' (<span style="color:red">'
local span = '</span>'
local lastg = nil --to check for run-on searches
local lastk = nil --to check for run-on searches
local endfound = false --switch used to stop searching forward
local iirregs = 0 --index of tirregs[] for j < 0, since search starts from parent
local j = -3 --index of tirregs[] for j > 0 & pseudo nav position
while j <= 3 do
if j < 0 then --search backward from parent
local gbreak = false --switch used to break out of g-loop
local g = 0 --gap size
while g <= hgap_limit_irreg do
local k = 0 --term length: 0 = "0-length", 1+ = normal
while k <= term_limit do
local from = bwanchor - k - g
local to = bwanchor - g
local full = mw.text.trim( firstpart..lspace..from..hyph..to..tspace..lastpart )
if k == 0 then
if regularparent ~= 'isolated' then --+restrict to g == 0 if repeating year problems arise
to = '0-length'
full = mw.text.trim( firstpart..lspace..from..tspace..lastpart )
if catlinkfollowr( frame, full ).rtarget ~= nil then --#R followed
table.insert( tlistallbwd, spangreen..j..', '..g..', '..k..span..'] '..full..spanred..'#R ignored'..span..')' )
full, to = '', '' --don't use/follow 0-length cat #Rs from nav_hyphen(); otherwise gets messy
end
end
end
if (k >= 1) or --the normal case; only continue k = 0 if 0-length found
(to == '0-length') --ghetto "continue" (thx Lua) to avoid expensive searches for "UK MPs 1974-1974", etc.
then
table.insert( tlistallbwd, spangreen..j..', '..g..', '..k..span..'] '..full )
if (k == 1) and
-- (g == 0 or g == 1) and --commented to match j>0 case ("1995–96 in Federal Republic of Yugoslavia basketball")
(catexists(full) == false)
then --allow bare-bones MOS:DATERANGE alternation, in case we're on a 0|1-gap, 1-year term series
local to2 = string.match(to, '%d%d$')
if to2 and to2 ~= '00' then --and not at a century transition (i.e. 1999–2000)
to = to2
full = mw.text.trim( firstpart..lspace..from..hyph..to..tspace..lastpart )
table.insert( tlistallbwd, spangreen..j..', '..g..', '..k..span..'] '..full )
end
end
if catexists(full) then
if to == '0-length' then
trackcat(13, 'Category series navigation range irregular, 0-length')
end
tlistallbwd[#tlistallbwd] = spanblue..tlistallbwd[#tlistallbwd]..span..' (found)'
ttlens[ find_duration(full) ] = 1
tgaps[g] = 1
iirregs = iirregs + 1
tirregs['from-'..iirregs] = from
tirregs['to-'..iirregs] = to
bwanchor = from --ratchet down
if to ~= '0-length' then
gbreak = true
break
else
g = 0 --soft-reset g, to keep stepping thru k
j = j + 1 --save, but keep searching thru k
if j > 0 then --(restore "> 3" if acts up) lest we keep searching bwd & finding 0-length cats ("MEPs for the Republic of Ireland 1973" & down)
j = -1 --allow a normal, full search fwd after break
gbreak = true
break
end
end
elseif (j >= 0) and
(lastg and lastk) and
((lastg >= hgap_limit_irreg) or
(lastk >= term_limit))
then --bwd search exhausted and/or done (runaway bwd search on "2018–19 FIA World Endurance Championship season")
j = -1 --allow a normal, full search fwd after break
gbreak = true
break
end
end --ghetto "continue"
k = k + 1
lastk = k
end --while k
if gbreak == true then break end
g = g + 1
lastg = g
end --while g
end --if j < 0
if j > 0 and endfound == false then --search forward from parent
local gbreak = false --switch used to break out of g-loop
local g = 0 --gap size
while g <= hgap_limit_irreg do
local k = -2 --term length: -2 = "0-length", -1 = "2020–present", 0 = "2020–", 1+ = normal
while k <= term_limit do
local from = fwanchor + g
local to4 = fwanchor + k + g --override carefully
local to2 = nil --last 2 digits of to4, IIF exists
if k == -1 then to4 = 'present' --see if end-cat exists (present)
elseif k == 0 then to4 = '' end --see if end-cat exists (blank)
local full = mw.text.trim( firstpart..lspace..from..hyph..to4..tspace..lastpart )
if k == -2 then
if regularparent ~= 'isolated' then --+restrict to g == 0 if repeating year problems arise
to4 = '0-length' --see if 0-length cat exists
full = mw.text.trim( firstpart..lspace..from..tspace..lastpart )
if catlinkfollowr( frame, full ).rtarget ~= nil then --#R followed
table.insert( tlistallfwd, spangreen..j..', '..g..', '..k..span..'] '..full..spanred..'#R ignored'..span..')' )
full, to4 = '', '' --don't use/follow 0-length cat #Rs from nav_hyphen(); otherwise gets messy
end
end
end
if (k >= -1) or --only continue k = -2 if 0-length found
(to4 == '0-length') --ghetto "continue" (thx Lua) to avoid expensive searches for "UK MPs 1974-1974", etc.
then
table.insert( tlistallfwd, spangreen..j..', '..g..', '..k..span..'] '..full )
if (k == 1) and
-- (g == 0 or g == 1) and --commented to let "2002–03 in Scottish women's football" find "2008–09 in Scottish women's football"
(catexists(full) == false)
then --allow bare-bones MOS:DATERANGE alternation, in case we're on a 0|1-gap, 1-year term series
to2 = string.match(to4, '%d%d$')
if to2 and to2 ~= '00' then --and not at a century transition (i.e. 1999–2000)
full = mw.text.trim( firstpart..lspace..from..hyph..to2..tspace..lastpart )
table.insert( tlistallfwd, spangreen..j..', '..g..', '..k..span..'] '..full )
end
end
if catexists(full) then
if to4 == '0-length' then
if rtarget(frame, full) == full then --only use 0-length cats that don't #R
trackcat(13, 'Category series navigation range irregular, 0-length')
end
end
tirregs['from'..j] = from
tirregs['to'..j] = (to2 or to4)
if (k == -1) or (k == 0) then
endfound = true --tentative
else --k == { -2, > 0 }
tlistallfwd[#tlistallfwd] = spanblue..tlistallfwd[#tlistallfwd]..span..' (found)'
ttlens[ find_duration(full) ] = 1
tgaps[g] = 1
endfound = false
if to4 ~= '0-length' then --k > 0
fwanchor = to4 --ratchet up
gbreak = true
break --only break on k > 0 b/c old end-cat #Rs still exist like "Members of the Scottish Parliament 2011–"
else --k == -2
j = j + 1 --save, but keep searching k's, in case "1974" → "1974-1979"
if j > 3 then --lest we keep searching & finding 0-length cats ("2018 CONCACAF Champions League" & up)
gbreak = true
break
end
end
end
end
end --ghetto "continue"
k = k + 1
lastk = k
end --while k
if gbreak == true then break end
g = g + 1
lastg = g
end --while g
end --if j > 0
if (lastg and lastk) and
(lastg > hgap_limit_irreg) and
(lastk > term_limit)
then --search exhausted
if j < 0 then j = 0 --bwd search exhausted; continue fwd
elseif j > 0 then break end --fwd search exhausted
end
j = j + 1
end --while j <= 3
end --if hgap <= hgap_limit_reg
--begin navhyphen
local navh = '<div class="toccolours categorySeriesNavigation-range">\n'
local navlist = {}
local terminalcat = false --switch used to hide future cats
local terminaltxt = nil
local i = -3 --nav position
while i <= 3 do
local from = nstart + i*(t+hgap) --the logical, but not necessarily correct, 'from'
if tirregs['from'..i] then --prefer the irregular term table
from = tonumber(tirregs['from'..i])
else --fallback to lazy/naive 'from'
if i > 0 and
tirregs['from'..(i-1)] and
tirregs['from'..(i-1)] >= from
then --end of the line: avoid dups/past, and create reasonable grey'd ranges
local greyto = tonumber(tirregs['to' .. (i-1)]) or -9999
local greyfrom = tonumber(tirregs['from'..(i-1)]) or -9999
local grey = greyto --prefer 'to'
if greyfrom > greyto then grey = greyfrom end --'from' fallback, in case "1995–96", "1995-present", etc.
if grey > -9999 then
if grey ~= greyto then
from = grey + t + hgap --account for missing/incomplete 'to'
else
from = grey + hgap
end
tirregs['from'..i] = from --remember
tirregs['to' .. i] = from + t
end
elseif i < 0 then
local greyfrom
local ii = 0
while ii < 3 do
ii = ii + 1
greyfrom = tonumber(tirregs['from'..(i+ii)])
if greyfrom then break end
end
from = greyfrom - ii*(t+hgap)
tirregs['from'..i] = from --remember
tirregs['to' .. i] = from + t
end
end
local from2 = string.match(from, '%d?%d$')
local to = tostring(from+t) --the logical, naive range, but
if tirregs['to'..i] then --prefer irregular term table
to = tirregs['to'..i]
elseif regularparent == false and tirregs and i > 0 then
to = tirregs['to-1'] --special treatment for parent terminal cats, since they have no natural 'to'
end
local to2 = string.match(to, '%d?%d$')
local tofinal = (to2 or '') --assume t=1 and abbreviated 'to' (the most common case)
if t > 1 or --per MOS:DATERANGE (e.g. 1999-2004)
(from2 - (to2 or from2)) > 0 --century transition exception (e.g. 1999–2000)
then
tofinal = (to or '') --default to the MOS-correct format, in case no fallbacks found
end
if to == '0-length' then
tofinal = to
end
--check existance of 4-digit, MOS-correct range, with abbreviation fallback
if tofinal ~= '0-length' then
if t > 1 and string.len(from) == 4 then --e.g. 1999-2004
--determine which link exists (full or abbr)
local full = firstpart..lspace..from..hyph..tofinal..tspace..lastpart
if not catexists(full) then
local abbr = firstpart..lspace..from..hyph..to2..tspace..lastpart
if catexists(abbr) then
tofinal = (to2 or '') --rv to MOS-incorrect format; if full AND abbr DNE, then tofinal is still in its MOS-correct format
end
end
elseif t == 1 then --full-year consecutive ranges are also allowed
local abbr = firstpart..lspace..from..hyph..tofinal..tspace..lastpart --assume tofinal is in abbr format
if not catexists(abbr) and tofinal ~= to then
local full = firstpart..lspace..from..hyph..to..tspace..lastpart
if catexists(full) then
tofinal = (to or '') --if abbr AND full DNE, then tofinal is still in its abbr format (unless it's a century transition)
end end end end
--populate navh
if i ~= 0 then --left/right navh
local orig = firstpart..lspace..from..hyph..tofinal..tspace..lastpart
local disp = from..hyph..tofinal
if tofinal == '0-length' then
orig = firstpart..lspace..from..tspace..lastpart
disp = from
end
local catlink = catlinkfollowr(frame, orig, disp, true) --force terminal cat display
if terminalcat == false then
terminaltxt = find_terminaltxt( disp ) --also sets tracking cats
terminalcat = (terminaltxt ~= nil)
end
if catlink.rtarget and avoidself then --a {{Category redirect}} was followed, figure out why
--determine new term length & gap size
ttlens[ find_duration( catlink.rtarget ) ] = 1
if i > -3 then
local lastto = tirregs['to'..(i-1)]
if lastto == nil then
local lastfrom = nstart + (i-1)*(t+hgap)
lastto = lastfrom+t --use last logical 'from' to calc lastto
end
if lastto then
local gapcat = lastto..'-'..from --dummy cat to calc with
local gap = find_duration(gapcat) or -1 --in case of nil,
tgaps[ gap ] = 1 --tgaps[-1] is ignored
end
end
--display/tracking handling
local base_regex = '%d+[–-]%d+'
local origbase = mw.ustring.gsub(orig, base_regex, '')
local rtarbase, rtarbase_success = mw.ustring.gsub(catlink.rtarget, base_regex, '')
if rtarbase_success == 0 then
local base_regex_lax = '%d%d%d%d' --in case rtarget is a year cat
rtarbase, rtarbase_success = mw.ustring.gsub(catlink.rtarget, base_regex_lax, '')
end
local terminal_regex = '%d+[–-]'..(terminaltxt or '')..'$' --more manual ORs bc Lua regex sux
if mw.ustring.match(orig, terminal_regex) then
origbase = mw.ustring.gsub(orig, terminal_regex, '')
end
if mw.ustring.match(catlink.rtarget, terminal_regex) then
--finagle/overload terminalcat type to set nmaxseas on 1st occurence only
if terminalcat == false then terminalcat = 1 end
local dummy = find_terminaltxt( catlink.rtarget ) --also sets tracking cats
rtarbase = mw.ustring.gsub(catlink.rtarget, terminal_regex, '')
end
origbase = mw.text.trim(origbase)
rtarbase = mw.text.trim(rtarbase)
if origbase ~= rtarbase then
trackcat(6, 'Category series navigation range redirected (base change)')
elseif terminalcat == 1 then
trackcat(8, 'Category series navigation range redirected (end)')
else --origbase == rtarbase
local all4s_regex = '%d%d%d%d[–-]%d%d%d%d'
local orig_all4s = mw.ustring.match(orig, all4s_regex)
local rtar_all4s = mw.ustring.match(catlink.rtarget, all4s_regex)
if orig_all4s and rtar_all4s then
trackcat(10, 'Category series navigation range redirected (other)')
else
local year_regex1 = '%d%d%d%d$'
local year_regex2 = '%d%d%d%d[%s%)]'
local year_rtar = mw.ustring.match(catlink.rtarget, year_regex1) or
mw.ustring.match(catlink.rtarget, year_regex2)
if orig_all4s and year_rtar then
trackcat(7, 'Category series navigation range redirected (var change)')
else
trackcat(9, 'Category series navigation range redirected (MOS)')
end
end
end
end
if terminalcat then --true or 1
if type(terminalcat) ~= 'boolean' then nmaxseas = from end --only want to do this once
terminalcat = true --done finagling/overloading
end
if (from >= 0) and (nminseas <= from) and (from <= nmaxseas) then
table.insert(navlist, catlink.navelement)
if terminalcat then nmaxseas = nminseas_default end --prevent display of future ranges
else
local hidden = '<span style="visibility:hidden">'..disp..'</span>'
table.insert(navlist, hidden)
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
else --center navh
if finish == -1 then finish = 'present'
elseif finish == 0 then finish = '<span style="visibility:hidden">'..start..'</span>' end
local disp = start..hyph..finish
if regularparent == 'isolated' then disp = start end
table.insert(navlist, '<b>'..disp..'</b>')
end
i = i + 1
end
-- add the list
navh = navh..horizontal(navlist)..'\n'
--tracking cats & finalize
if avoidself then
local igaps = 0 --# of diff gap sizes > 0 found
local itlens = 0 --# of diff term lengths found
for s = 1, hgap_limit_reg do --must loop; #tgaps, #ttlens unreliable
igaps = igaps + (tgaps[s] or 0)
end
for s = 0, term_limit do
itlens = itlens + (ttlens[s] or 0)
end
if igaps > 0 then trackcat(11, 'Category series navigation range gaps') end
if itlens > 1 and ttrackingcats[13] == '' then --avoid duplication in "Category series navigation range irregular, 0-length"
trackcat(12, 'Category series navigation range irregular')
end
end
isolatedcat()
defaultgapcat(not hgap_success)
if listall then
return listalllinks()
else
return navh..'</div>'
end
end
--[[=========================={{ nav_tvseason }}============================]]
local function nav_tvseason( frame, firstpart, tv, lastpart, maximumtv )
--Expects a PAGENAME of the form "Futurama (season 1) episodes", where
-- firstpart = Futurama (season
-- tv = 1
-- lastpart = ) episodes
-- maximumtv = 7 ('max' tv season parameter; optional; defaults to 9999)
tv = tonumber(tv)
if tv == nil then
errors = p.errorclass('Function nav_tvseason can\'t recognize the TV season number sent to its 2nd parameter.')
return p.failedcat(errors, 'T')
end
local maxtv = tonumber(maximumtv) or 9999 --allow +/- qualifier
if maxtv < tv then maxtv = tv end --input error; maxtv should be >= parent
--begin navtvseason
local navt = '<div class="toccolours categorySeriesNavigation-range">\n'
local navlist = {}
local i = -5 --nav position
while i <= 5 do
local t = tv + i
if i ~= 0 then --left/right navt
local catlink = catlinkfollowr( frame, firstpart..' '..t..lastpart, t )
if (t >= 1 and t <= maxtv) then --hardcode mintv
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(25, 'Category series navigation TV season redirected')
end
table.insert(navlist, catlink.navelement)
else
local hidden = '<span style="visibility:hidden">'..'0'..'</span>' --'0' to maintain dot spacing
table.insert(navlist, hidden)
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
else --center navt
table.insert(navlist, '<b>'..tv..'</b>')
end
i = i + 1
end
-- add the list
navt = navt..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navt..'</div>'
end
end
--[[==========================={{ nav_decade }}=============================]]
local function nav_decade( frame, firstpart, decade, lastpart, mindecade, maxdecade )
--Expects a PAGENAME of the form "Some sequential 2000 example cat", where
-- firstpart = Some sequential
-- decade = 2000
-- lastpart = example cat
-- mindecade = 1800 ('min' decade parameter; optional; defaults to -9999)
-- maxdecade = 2020 ('max' decade parameter; optional; defaults to 9999)
--sterilize dec
local dec = sterilizedec(decade)
if dec == nil then
errors = p.errorclass('Function nav_decade was sent "'..(decade or '')..'" as its 2nd parameter, '..
'but expects a 1 to 4-digit year ending in "0".')
return p.failedcat(errors, 'D')
end
local ndec = tonumber(dec)
--sterilize mindecade & determine AD/BC
local mindefault = '-9999'
local mindec = sterilizedec(mindecade) --returns a tostring(unsigned int), or nil
if mindec then
if string.match(mindecade, '-%d') or
string.match(mindecade, 'Ҳ. ҟ.')
then
mindec = '-'..mindec --better +/-0 behavior with strings (0-initialized int == "-0" string...)
end
elseif mindec == nil and mindecade and mindecade ~= '' then
errors = p.errorclass('Function nav_decade was sent "'..(mindecade or '')..'" as its 4th parameter, '..
'but expects a 1 to 4-digit year ending in "0", the earliest decade to be shown.')
return p.failedcat(errors, 'E')
else --mindec == nil
mindec = mindefault --tonumber() later, after error checks
end
--sterilize maxdecade & determine AD/BC
local maxdefault = '9999'
local maxdec = sterilizedec(maxdecade) --returns a tostring(unsigned int), or nil + error
if maxdec then
if string.match(maxdecade, '-%d') or
string.match(maxdecade, 'Ҳ. ҟ.')
then --better +/-0 behavior with strings (0-initialized int == "-0" string...),
maxdec = '-'..maxdec --but a "-0" string -> tonumber() -> tostring() = "-0",
end --and a "0" string -> tonumber() -> tostring() = "0"
elseif maxdec == nil and maxdecade and maxdecade ~= '' then
errors = p.errorclass('Function nav_decade was sent "'..(maxdecade or '')..'" as its 5th parameter, '..
'but expects a 1 to 4-digit year ending in "0", the highest decade to be shown.')
return p.failedcat(errors, 'F')
else --maxdec == nil
maxdec = maxdefault
end
local tspace = ' ' --assume trailing space for "1950s in X"-type cats
if string.match(lastpart, '^-') then tspace = '' end --DNE for "1970s-related"-type cats
--AD/BC switches & vars
local parentBC = string.match(lastpart, '^Ҳ. ҟ.') --following the "0s BC" convention for all years BC
lastpart = mw.ustring.gsub(lastpart, '^Ҳ. ҟ.%s*', '') --handle BC separately; AD never used
--TODO?: handle BCE, but only if it exists in the wild
local dec0to40AD = (ndec >= 0 and ndec <= 40 and not parentBC) --special behavior in this range
local switchADBC = 1 -- 1=AD parent
if parentBC then switchADBC = -1 end -- -1=BC parent; possibly adjusted later
local BCdisp = ''
local D = -math.huge --secondary switch & iterator for AD/BC transition
--check non-default min/max more carefully
if mindec ~= mindefault then
if tonumber(mindec) > ndec*switchADBC then
mindec = tostring(ndec*switchADBC) --input error; mindec should be <= parent
end
end
if maxdec ~= maxdefault then
if tonumber(maxdec) < ndec*switchADBC then
maxdec = tostring(ndec*switchADBC) --input error; maxdec should be >= parent
end
end
local nmindec = tonumber(mindec) --similar behavior to nav_year & nav_nordinal
local nmaxdec = tonumber(maxdec) --similar behavior to nav_nordinal
--begin navdecade
local bnb = '' --border/no border
if navborder == false then --for Category series navigation year and decade
bnb = 'categorySeriesNavigation-range-transparent'
end
local navd = '<div class="toccolours categorySeriesNavigation-range '..bnb..'">\n'
local navlist = {}
local i = -50 --nav position x 10
while i <= 50 do
local d = ndec + i*switchADBC
local BC = ''
BCdisp = ''
if dec0to40AD then
if D < -10 then
d = math.abs(d + 10) --b/c 2 "0s" decades exist: "0s BC" & "0s" (AD)
BC = 'Ҳ. ҟ. '
if d == 0 then
D = -10 --track 1st d = 0 use (BC)
end
elseif D >= -10 then
D = D + 10 --now iterate from 0s AD
d = D --2nd d = 0 use
end
elseif parentBC then
if switchADBC == -1 then --parentBC looking at the BC side (the common case)
BC = 'Ҳ. ҟ. '
if d == 0 then --prepare to switch to the AD side on the next iteration
switchADBC = 1 --1st d = 0 use (BC)
D = -10 --prep
end
elseif switchADBC == 1 then --switched to the AD side
D = D + 10 --now iterate from 0s AD
d = D --2nd d = 0 use (on first use)
end
end
if BC ~= '' and ndec <= 50 then
BCdisp = 'Ҳ. ҟ. ' --show BC for all BC decades whenever a "0s" is displayed on the nav
end
--determine target cat
local disp = d..'s'..BCdisp
local catlink = catlinkfollowr( frame, firstpart..' '..d..'s'..tspace..BC..lastpart, disp )
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(18, 'Category series navigation decade redirected')
end
--populate left/right navd
local shown = navcenter(i, catlink)
local hidden = '<span style="visibility:hidden">'..disp..'</span>'
local dsign = d --use d for display & dsign for logic
if BC ~= '' then dsign = -dsign end
if (nmindec <= dsign) and (dsign <= nmaxdec) then
if dsign == 0 and (nmindec == 0 or nmaxdec == 0) then --distinguish b/w -0 (BC) & 0 (AD)
--"zoom in" on +/- 0 and turn dsign/min/max temporarily into +/- 1 for easier processing
local zsign, zmin, zmax = 1, nmindec, nmaxdec
if BC ~= '' then zsign = -1 end
if mindec == '-0' then zmin = -1
elseif mindec == '0' then zmin = 1 end
if maxdec == '-0' then zmax = -1
elseif maxdec == '0' then zmax = 1 end
if (zmin <= zsign) and (zsign <= zmax) then
table.insert(navlist, shown)
hidden = nil
else
table.insert(navlist, hidden)
end
else
table.insert(navlist, shown)--the common case
hidden = nil
end
else
table.insert(navlist, hidden)
end
if listall and hidden then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
i = i + 10
end
-- add the list
navd = navd..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navd..'</div>'
end
end
--[[============================{{ nav_year }}==============================]]
local function nav_year( frame, firstpart, year, lastpart, minimumyear, maximumyear )
--Expects a PAGENAME of the form "Some sequential 1760 example cat", where
-- firstpart = Some sequential
-- year = 1760
-- lastpart = example cat
-- minimumyear = 1758 ('min' year parameter; optional)
-- maximumyear = 1800 ('max' year parameter; optional)
local minyear_default = -9999
local maxyear_default = 9999
year = tonumber(year) or tonumber(mw.ustring.match(year or '', '^%s*(%d*)'))
local minyear = tonumber(string.match(minimumyear or '', '-?%d+')) or minyear_default --allow +/- qualifier
local maxyear = tonumber(string.match(maximumyear or '', '-?%d+')) or maxyear_default --allow +/- qualifier
if string.match(minimumyear or '', 'Ҳ. ҟ.') then minyear = -math.abs(minyear) end --allow BC qualifier (AD otherwise assumed)
if string.match(maximumyear or '', 'Ҳ. ҟ.') then maxyear = -math.abs(maxyear) end --allow BC qualifier (AD otherwise assumed)
if year == nil then
errors = p.errorclass('Function nav_year can\'t recognize the year sent to its 2nd parameter.')
return p.failedcat(errors, 'Y')
end
--AD/BC switches & vars
local yearBCElastparts = { --needed for parent = AD 1-5, when the BC/E format is unknown
--"BCE" removed to match both AD & BCE cats; easier & faster than multiple string.match()s
['example_Hebrew people_example'] = 'BCE', --example entry format; add to & adjust as needed
}
local parentAD = string.match(firstpart, 'Ҳ. ҳ.$') --following the "AD 1" convention from AD 1 to AD 10
local parentBC = string.match(lastpart, '^Ҳ. ҟ.?') --following the "1 BC" convention for all years BC
firstpart = mw.ustring.gsub(firstpart, '%s*Ҳ. ҳ.$', '') --handle AD/BC separately for easier & faster accounting
lastpart = mw.ustring.gsub(lastpart, '^Ҳ. ҟ.?%s*', '')
local BCe = parentBC or yearBCElastparts[lastpart] or 'BC' --"BC" default
local year1to10 = (year >= 1 and year <= 10)
local year1to10ADBC = year1to10 and (parentBC or parentAD) --special behavior 1-10 for low-# non-year series
local year1to15AD = (year >= 1 and year <= 15 and not parentBC) --special behavior 1-15 for AD/BC display
local switchADBC = 1 -- 1=AD parent
if parentBC then switchADBC = -1 end -- -1=BC parent; possibly adjusted later
local Y = 0 --secondary iterator for AD-on-a-BC-parent
if minyear > year*switchADBC then minyear = year*switchADBC end --input error; minyear should be <= parent
if maxyear < year*switchADBC then maxyear = year*switchADBC end --input error; maxyear should be >= parent
local lspace = ' ' --leading space before year, after firstpart
if string.match(firstpart, '[%-VW]$') then
lspace = '' --e.g. "Straight-8 engines"
end
local tspace = ' ' --trailing space after year, before lastpart
if string.match(lastpart, '^-') then
tspace = '' --e.g. "2018-related timelines"
end
--determine interyear gap size to condense special category types, if possible
local ygapdefault = 1 --assume/start at the most common case: 2001, 2002, etc.
local ygap = ygapdefault
if string.match(lastpart, 'presidential') then
local ygap1, ygap2 = ygapdefault, ygapdefault --need to determine previous & next year gaps indepedently
local ygap1_success, ygap2_success = false, false
local prevseason = nil
while ygap1 <= ygap_limit do --Czech Republic, Poland, Sri Lanka, etc. have 5-year terms
prevseason = firstpart..lspace..(year-ygap1)..tspace..lastpart
if catexists(prevseason) then
ygap1_success = true
break
end
ygap1 = ygap1 + 1
end
local nextseason = nil
while ygap2 <= ygap_limit do --Czech Republic, Poland, Sri Lanka, etc. have 5-year terms
nextseason = firstpart..lspace..(year+ygap2)..tspace..lastpart
if catexists(nextseason) then
ygap2_success = true
break
end
ygap2 = ygap2 + 1
end
if ygap1_success and ygap2_success then
if ygap1 == ygap2 then ygap = ygap1 end
elseif ygap1_success then ygap = ygap1
elseif ygap2_success then ygap = ygap2
end
end
--skip non-existing years, if requested
local ynogaps = {} --populate with existing years in the range, at most, [year - (skipgaps_limit * 5), year + (skipgaps_limit * 5)]
if skipgaps then
if minyear == minyear_default then
minyear = 0 --automatically set minyear to 0, as AD/BC not supported anyway
end
if (year > 70) or --add support for AD/BC (<= AD 10) if/when needed
(minyear >= 0 and --must be a non-year series like "AC with 0 elements"
not parentAD and not parentBC)
then
local yskipped = {} --track skipped y's to avoid double-checking
local cat, found, Yeary
--populate nav element queue outwards positively from the parent
local Year = year --to save/ratchet progression
local i = 1
while i <= 5 do
local y = 1
while y <= skipgaps_limit do
found = false
Yeary = Year + y
if yskipped[Yeary] == nil then
yskipped[Yeary] = Yeary
cat = firstpart..lspace..Yeary..tspace..lastpart
found = catexists(cat)
if found then break end
end
y = y + 1
end
if found then Year = Yeary
else Year = Year + 1 end
ynogaps[i] = Year
i = i + 1
end
ynogaps[0] = year --the parent
--populate nav element queue outwards negatively from the parent
Year = year --reset ratchet
i = -1
while i >= -5 do
local y = -1
while y >= -skipgaps_limit do
found = false
Yeary = Year + y
if yskipped[Yeary] == nil then
yskipped[Yeary] = Yeary
cat = firstpart..lspace..Yeary..tspace..lastpart
found = catexists(cat)
if found then break end
end
y = y - 1
end
if found then Year = Yeary
else Year = Year - 1 end
ynogaps[i] = Year
i = i - 1
end
else
skipgaps = false --TODO: AD/BC support, then lift BC restrictions @ [[Template:Establishment category BC]] & [[Template:Year category header/core]]
end
end
--begin navyears
local navy = '<div class="toccolours categorySeriesNavigation-range">\n'
local navlist = {}
local y
local j = 0 --decrementor for special cases "2021 World Rugby Sevens Series" -> "2021–2022"
local i = -5 --nav position
while i <= 5 do
if skipgaps then
y = ynogaps[i]
else
y = year + i*ygap*switchADBC - j
end
local BCdisp = ''
if i ~= 0 then --left/right navy
local AD = ''
local BC = ''
if year1to15AD and not
(year1to10 and not year1to10ADBC) --don't AD/BC 1-10's if parents don't contain AD/BC
then
if year >= 11 then --parent = AD 11-15
if y <= 10 then --prepend AD on y = 1-10 cats only, per existing cats
AD = 'Ҳ. ҳ. '
end
elseif year >= 1 then --parent = AD 1-10
if y <= 0 then
BC = BCe..' '
y = math.abs(y - 1) --skip y = 0 (DNE)
elseif y >= 1 and y <= 10 then --prepend AD on y = 1-10 cats only, per existing cats
AD = 'Ҳ. ҳ. '
end
end
elseif parentBC then
if switchADBC == -1 then --displayed y is in the BC regime
if y >= 1 then --the common case
BC = BCe..' '
elseif y == 0 then --switch from BC to AD regime
switchADBC = 1
end
end
if switchADBC == 1 then --displayed y is now in the AD regime
Y = Y + 1 --skip y = 0 (DNE)
y = Y --easiest solution: start another iterator for these AD y's displayed on a BC year parent
AD = 'Ҳ. ҳ. '
end
end
if BC ~= '' and year <= 5 then --only show 'BC' for parent years <= 5: saves room, easier to read,
BCdisp = ' '..BCe --and 6 is the first/last nav year that doesn't need a disambiguator;
end --the center/parent year will always show BC, so no need to show it another 10x
--populate left/right navy
local ysign = y --use y for display & ysign for logic
local disp = y..BCdisp
if BC ~= '' then ysign = -ysign end
local firsttry = firstpart..lspace..AD..y..tspace..BC..lastpart
if (minyear <= ysign) and (ysign <= maxyear) then
local catlinkAD = catlinkfollowr( frame, firsttry, disp ) --try AD
local catlink = catlinkAD --tentative winner
if AD ~= '' then --for "ACArt with 5 suppressed elements"-type cats
local catlinkNoAD = catlinkfollowr( frame, firstpart..lspace..y..tspace..BC..lastpart, disp ) --try !AD
if catlinkNoAD.catexists == true then
catlink = catlinkNoAD --usurp
elseif listall then
tlistall[#tlistall] = tlistall[#tlistall]..' (tried; not displayed)<sup>1</sup>'
end
end
if (AD..BC == '') and (catlink.catexists == false) and (y >= 1000) then --!ADBC & DNE; 4-digit only, to be frugal
--try basic hyphenated cats: 1-year, endash, MOS-correct only, no #Rs
local yHyph_4 = y..'–'..(y+1) --try 2010–2011 type cats
local catlinkHyph_4 = catlinkfollowr( frame, firstpart..lspace..yHyph_4..tspace..BC..lastpart, yHyph_4 )
if catlinkHyph_4.catexists and catlinkHyph_4.rtarget == nil then --exists & no #Rs
catlink = catlinkHyph_4 --usurp
trackcat(27, 'Category series navigation year and range')
else
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' (tried; not displayed)<sup>2</sup>'
end
local yHyph_2 = y..'–'..string.match(y+1, '%d%d$') --try 2010–11 type cats
if i == 1 then
local yHyph_2_special = (y-1)..'–'..string.match(y, '%d%d$') --try special case 2021 -> 2021–22
local catlinkHyph_2_special = catlinkfollowr( frame, firstpart..lspace..yHyph_2_special..tspace..BC..lastpart, yHyph_2_special )
if catlinkHyph_2_special.catexists and catlinkHyph_2_special.rtarget == nil then --exists & no #Rs
catlink = catlinkHyph_2_special --usurp
trackcat(27, 'Category series navigation year and range')
j = 1
elseif listall then
tlistall[#tlistall] = tlistall[#tlistall]..' (tried; not displayed)<sup>3</sup>'
end
end
if not (i == 1 and j == 1) then
local catlinkHyph_2 = catlinkfollowr( frame, firstpart..lspace..yHyph_2..tspace..BC..lastpart, yHyph_2 )
if catlinkHyph_2.catexists and catlinkHyph_2.rtarget == nil then --exists & no #Rs
catlink = catlinkHyph_2 --usurp
trackcat(27, 'Category series navigation year and range')
elseif listall then
tlistall[#tlistall] = tlistall[#tlistall]..' (tried; not displayed)<sup>4</sup>'
end
end
end
end
if catlink.rtarget then --#R followed; determine why
local r = catlink.rtarget
local c = catlink.cat
local year_regex = '%d%d%d%d[–-]?%d?%d?%d?%d?' --prioritize year/range stripping, e.g. for "2006 Super 14 season"
local hyph_regex = '%d%d%d%d[–-]%d+' --stricter
local num_regex = '%d+' --strip any number otherwise
local final_regex = nil --best choice goes here
if mw.ustring.match(r, year_regex) and mw.ustring.match(c, year_regex) then
final_regex = year_regex
elseif mw.ustring.match(r, num_regex) and mw.ustring.match(c, num_regex) then
final_regex = num_regex
end
if final_regex then
local r_base = mw.ustring.gsub(r, final_regex, '')
local c_base = mw.ustring.gsub(c, final_regex, '')
if r_base ~= c_base then
trackcat(19, 'Category series navigation year redirected (base change)') --acceptable #R target
elseif mw.ustring.match(r, hyph_regex) then
trackcat(20, 'Category series navigation year redirected (var change)') --e.g. "2008 in Scottish women's football" to "2008–09"
else
trackcat(21, 'Category series navigation year redirected (other)') --exceptions go here
end
else
trackcat(20, 'Category series navigation year redirected (var change)') --e.g. "V2 engines" to "V-twin engines"
end
end
table.insert(navlist, catlink.navelement)
else --OOB vs min/max
local hidden = '<span style="visibility:hidden">'..disp..'</span>'
table.insert(navlist, hidden)
if listall then
local dummy = catlinkfollowr( frame, firsttry, disp )
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
else --center navy
if parentBC then BCdisp = ' '..BCe end
table.insert(navlist, '<b>'..year..BCdisp..'</b>')
end
i = i + 1
end
--add the list
navy = navy..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navy..'</div>'
end
end
--[[==========================={{ nav_roman }}==============================]]
local function nav_roman( frame, firstpart, roman, lastpart, minimumrom, maximumrom )
local toarabic = require('Module:ConvertNumeric').roman_to_numeral
local toroman = require('Module:Roman').main
--sterilize/convert rom/num
local num = tonumber(toarabic(roman))
local rom = toroman({ [1] = num })
if num == nil or rom == nil then --out of range or some other error
errors = p.errorclass('Function nav_roman can\'t recognize one or more of "'..(num or 'nil')..'" & "'..
(rom or 'nil')..'" in category "'..firstpart..' '..roman..' '..lastpart..'".')
return p.failedcat(errors, 'R')
end
--sterilize min/max
local minrom = tonumber(minimumrom or '') or tonumber(toarabic(minimumrom or ''))
local maxrom = tonumber(maximumrom or '') or tonumber(toarabic(maximumrom or ''))
if minrom < 1 then minrom = 1 end --toarabic() returns -1 on error
if maxrom < 1 then maxrom = 9999 end --toarabic() returns -1 on error
if minrom > num then minrom = num end
if maxrom < num then maxrom = num end
--begin navroman
local navr = '<div class="toccolours categorySeriesNavigation-range">\n'
local navlist = {}
local i = -5 --nav position
while i <= 5 do
local n = num + i
if n >= 1 then
local r = toroman({ [1] = n })
if i ~= 0 then --left/right navr
local catlink = catlinkfollowr( frame, firstpart..' '..r..' '..lastpart, r )
if minrom <= n and n <= maxrom then
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(22, 'Category series navigation roman numeral redirected')
end
table.insert(navlist, catlink.navelement)
else
local hidden = '<span style="visibility:hidden">'..r..'</span>'
table.insert(navlist, hidden)
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
else --center navr
table.insert(navlist, '<b>'..r..'</b>')
end
else
table.insert(navlist, '<span style="visibility:hidden">I</span>')
end
i = i + 1
end
-- add the list
navr = navr..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navr..'</div>'
end
end
--[[=========================={{ nav_nordinal }}============================]]
local function nav_nordinal( frame, firstpart, ord, lastpart, minimumord, maximumord )
local nord = tonumber(ord)
local minord = tonumber(string.match(minimumord or '', '(-?%d+)[snrt]?[tdh]?')) or -9999 --allow full ord & +/- qualifier
local maxord = tonumber(string.match(maximumord or '', '(-?%d+)[snrt]?[tdh]?')) or 9999 --allow full ord & +/- qualifier
if string.match(minimumord or '', 'Ҳ. ҟ.') then minord = -math.abs(minord) end --allow BC qualifier (AD otherwise assumed)
if string.match(maximumord or '', 'Ҳ. ҟ.') then maxord = -math.abs(maxord) end --allow BC qualifier (AD otherwise assumed)
local temporal = string.match(lastpart, '-тәи ашәышықәса') or
string.match(lastpart, 'азқьышықәса')
local tspace = ' ' --assume a trailing space after ordinal
if string.match(lastpart, '^-') then tspace = '' end --DNE for "19th-century"-type cats
--AD/BC switches & vars
local ordBCElastparts = { --needed for parent = AD 1-5, when the BC/E format is unknown
--lists the lastpart of valid BCE cats
--"BCE" removed to match both AD & BCE cats; easier & faster than multiple string.match()s
['-century Hebrew people'] = 'Ҳ. ҟ.', --WP:CFD/Log/2016 June 21#Category:11th-century BC Hebrew people
['-century Jews'] = 'Ҳ. ҟ.', --co-nominated
['-century Judaism'] = 'Ҳ. ҟ.', --co-nominated
['-century rabbis'] = 'Ҳ. ҟ.', --co-nominated
['-century High Priests of Israel'] = 'Ҳ. ҟ.',
}
local parentBC = mw.ustring.match(lastpart, '(Ҳ. ҟ.?)%s') --"1st-century BC" format
local lastpartNoBC = mw.ustring.gsub(lastpart, 'Ҳ. ҟ.?%s', '') --easier than splitting lastpart up in 2; AD never used
local BCe = parentBC or ordBCElastparts[lastpartNoBC] or 'Ҳ. ҟ.' --"BC" default
local switchADBC = 1 -- 1=AD parent
if parentBC then switchADBC = -1 end -- -1=BC parent; possibly adjusted later
local O = 0 --secondary iterator for AD-on-a-BC-parent
if not temporal and minord < 1 then minord = 1 end --nothing before "1st parliament", etc.
if minord > nord*switchADBC then minord = nord*switchADBC end --input error; minord should be <= parent
if maxord < nord*switchADBC then maxord = nord*switchADBC end --input error; maxord should be >= parent
--begin navnordinal
local bnb = '' --border/no border
if navborder == false then --for Category series navigation decade and century
bnb = 'categorySeriesNavigation-range-transparent'
end
local navo = '<div class="toccolours categorySeriesNavigation-range '..bnb..'">\n'
local navlist = {}
local i = -5 --nav position
while i <= 5 do
local o = nord + i*switchADBC
local BC = ''
local BCdisp = ''
if parentBC then
if switchADBC == -1 then --parentBC looking at the BC side
if o >= 1 then --the common case
BC = ' '..BCe
elseif o == 0 then --switch to the AD side
BC = ''
switchADBC = 1
end
end
if switchADBC == 1 then --displayed o is now in the AD regime
O = O + 1 --skip o = 0 (DNE)
o = O --easiest solution: start another iterator for these AD o's displayed on a BC year parent
end
elseif o <= 0 then --parentAD looking at BC side
BC = ' '..BCe
o = math.abs(o - 1) --skip o = 0 (DNE)
end
if BC ~= '' and nord <= 5 then --only show 'BC' for parent ords <= 5: saves room, easier to read,
BCdisp = ' '..BCe --and 6 is the first/last nav ord that doesn't need a disambiguator;
end --the center/parent ord will always show BC, so no need to show it another 10x
--populate left/right navo
local oth = p.addord(o)
local osign = o --use o for display & osign for logic
if BC ~= '' then osign = -osign end
local hidden = '<span style="visibility:hidden">'..oth..'</span>'
if temporal then --e.g. "3rd-century BC"
local lastpart = lastpartNoBC --lest we recursively add multiple "BC"s
if BC ~= '' then
lastpart = string.gsub(lastpart, temporal, temporal..BC) --replace BC if needed
end
local catlink = catlinkfollowr( frame, firstpart..' '..oth..tspace..lastpart, oth..BCdisp )
if (minord <= osign) and (osign <= maxord) then
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(23, 'Category series navigation nordinal redirected')
end
table.insert(navlist, navcenter(i, catlink))
else
table.insert(navlist, hidden)
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
elseif BC == '' and minord <= osign and osign <= maxord then --e.g. >= "1st parliament"
local catlink = catlinkfollowr( frame, firstpart..' '..oth..tspace..lastpart, oth )
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(23, 'Category series navigation nordinal redirected')
end
table.insert(navlist, navcenter(i, catlink))
else --either out-of-range (hide), or non-temporal + BC = something might be wrong (2nd X parliament BC?); handle exceptions if/as they arise
table.insert(navlist, hidden)
end
i = i + 1
end
navo = navo..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navo..'</div>'
end
end
--[[========================={{ nav_wordinal }}=============================]]
local function nav_wordinal( frame, firstpart, word, lastpart, minimumword, maximumword, ordinal, frame )
--Module:ConvertNumeric.spell_number2() args:
-- ordinal == true : 'second' is output instead of 'two'
-- ordinal == false: 'two' is output instead of 'second'
local ord2eng = require('Module:ConvertNumeric').spell_number2
local eng2ord = require('Module:ConvertNumeric').english_to_ordinal
local th = 'th'
if not ordinal then
th = ''
eng2ord = require('Module:ConvertNumeric').english_to_numeral
end
local capitalize = nil ~= string.match(word, '^%u') --determine capitalization
local nord = eng2ord(string.lower(word)) --operate on/with lowercase, and restore any capitalization later
local lspace = ' ' --assume a leading space (most common)
local tspace = ' ' --assume a trailing space (most common)
if string.match(firstpart, '[%-%(]$') then lspace = '' end --DNE for "Straight-eight engines"-type cats
if string.match(lastpart, '^[%-%)]' ) then tspace = '' end --DNE for "Nine-cylinder engines"-type cats
--sterilize min/max
local minword = 1
local maxword = 99
if minimumword then
local num = tonumber(minimumword)
if num and 0 < num and num < maxword then
minword = num
else
local ord = eng2ord(minimumword)
if 0 < ord and ord < maxword then
minword = ord
end
end
end
if maximumword then
local num = tonumber(maximumword)
if num and 0 < num and num < maxword then
maxword = num
else
local ord = eng2ord(maximumword)
if 0 < ord and ord < maxword then
maxword = ord
end
end
end
if minword > nord then minword = nord end
if maxword < nord then maxword = nord end
--begin navwordinal
local navw = '<div class="toccolours categorySeriesNavigation-range">\n'
local navlist = {}
local i = -5 --nav position
while i <= 5 do
local n = nord + i
if n >= 1 then
local nth = p.addord(n)
if not ordinal then nth = n end
if i ~= 0 then --left/right navw
local w = ord2eng{ num = n, ordinal = ordinal, capitalize = capitalize }
local catlink = catlinkfollowr( frame, firstpart..lspace..w..tspace..lastpart, nth )
if minword <= n and n <= maxword then
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(24, 'Category series navigation wordinal redirected')
end
table.insert(navlist, catlink.navelement)
else
local hidden = '<span style="visibility:hidden">'..nth..'</span>'
table.insert(navlist, hidden)
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
else --center navw
table.insert(navlist, '<b>'..nth..'</b>')
end
else
table.insert(navlist, '<span style="visibility:hidden">'..'0'..th..'</span>')
end
i = i + 1
end
-- Add the list
navw = navw..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navw..'</div>'
end
end
--[[==========================={{ find_var }}===============================]]
local function find_var( pn )
--Extracts the variable text (e.g. 2015, 2015–16, 2000s, 3rd, III, etc.) from a string,
--and returns { ['vtype'] = <'year'|'season'|etc.>, <v> = <2015|2015–16|etc.> }
local pagename = currtitle.text
if pn and pn ~= '' then
pagename = pn
end
local cpagename = 'Акатегориа:'..pagename --limited-Lua-regex workaround
local d_season = mw.ustring.match(cpagename, ':(%d+-тәи ашықәсқәа).+%(%d+[–-]%d+%)') --i.e. "1760s in the Province of Quebec (1763–1791)"
local y_season = mw.ustring.match(cpagename, ':(%d+) .+%(%d+[–-]%d+%)') --i.e. "1763 establishments in the Province of Quebec (1763–1791)"
local e_season = mw.ustring.match(cpagename, '%s(%d+[–-])$') or --irreg; ending unknown, e.g. "Members of the Scottish Parliament 2021–"
mw.ustring.match(cpagename, '%s(%d+[–-]абранӡа)$') --e.g. "UK MPs 2019–present"
local season = mw.ustring.match(cpagename, '[:%s%(](%d+[–-]%d+)[%)%s]') or --split in 2 b/c you can't frontier '$'/eos?
mw.ustring.match(cpagename, '[:%s](%d+[–-]%d+)$')
local tvseason = mw.ustring.match(cpagename, 'season (%d+)') or
mw.ustring.match(cpagename, 'series (%d+)')
local nordinal = mw.ustring.match(cpagename, '[:%s](%d+%-тәи)[-%s]') or
mw.ustring.match(cpagename, '[:%s](%d+%-тәи)$')
local decade = mw.ustring.match(cpagename, '[:%s](%d+-тәи ашықәсқәа)[%s-]') or
mw.ustring.match(cpagename, '[:%s](%d+-тәи ашықәсқәа)$')
local year = mw.ustring.match(cpagename, '[:%s](%d%d%d%d)%s') or --prioritize 4-digit years
mw.ustring.match(cpagename, '[:%s](%d%d%d%d)$') or
mw.ustring.match(cpagename, '[:%s](%d+)%s') or
mw.ustring.match(cpagename, '[:%s](%d+)$') or
--expand/combine exceptions below as needed
mw.ustring.match(cpagename, '[:%s](%d+)-related') or
mw.ustring.match(cpagename, '[:%s](%d+)-cylinder') or
mw.ustring.match(cpagename, '[:%-VW](%d+)%s') --e.g. "Straight-8 engines"
local roman = mw.ustring.match(cpagename, '%s([IVXLCDM]+)%s')
local found = d_season or y_season or e_season or season or tvseason or
nordinal or decade or year or roman
if found then
if string.match(found, '%d%d%d%d%d') == nil then
--return in order of decreasing complexity/least chance for duplication
if nordinal and season --i.e. "18th-century establishments in the Province of Quebec (1763–1791)"
then return { ['vtype'] = 'nordinal', ['v'] = nordinal } end
if d_season then return { ['vtype'] = 'decade', ['v'] = d_season } end
if y_season then return { ['vtype'] = 'year', ['v'] = y_season } end
if e_season then return { ['vtype'] = 'ending', ['v'] = e_season } end
if season then return { ['vtype'] = 'season', ['v'] = season } end
if tvseason then return { ['vtype'] = 'tvseason', ['v'] = tvseason } end
if nordinal then return { ['vtype'] = 'nordinal', ['v'] = nordinal } end
if decade then return { ['vtype'] = 'decade', ['v'] = decade } end
if year then return { ['vtype'] = 'year', ['v'] = year } end
if roman then return { ['vtype'] = 'roman', ['v'] = roman } end
end
else
--try wordinals ('zeroth' to 'ninety-ninth' only)
local eng2ord = require('Module:ConvertNumeric').english_to_ordinal
local split = mw.text.split(pagename, ' ')
for i=1, #split do
if eng2ord(split[i]) > -1 then
return { ['vtype'] = 'wordinal', ['v'] = split[i] }
end
end
--try English numerics ('one'/'single' to 'ninety-nine' only)
local eng2num = require('Module:ConvertNumeric').english_to_numeral
local split = mw.text.split(pagename, '[%s%-]') --e.g. "Nine-cylinder engines"
for i=1, #split do
if eng2num(split[i]) > -1 then
return { ['vtype'] = 'enumeric', ['v'] = split[i] }
end
end
end
errors = p.errorclass('Function find_var can\'t find the variable text in category "'..pagename..'".')
return { ['vtype'] = 'error', ['v'] = p.failedcat(errors, 'V') }
end
--[[==========================================================================]]
--[[ Main ]]
--[[==========================================================================]]
function p.csn( frame )
--arg checks & handling
local args = frame:getParent().args
checkforunknownparams(args) --for template args
checkforunknownparams(frame.args) --for #invoke'd args
local cat = args['cat'] --'testcase' alias for catspace
local list = args['list-all-links'] --debugging utility to output all links & followed #Rs
local follow = args['follow-redirects'] --default 'yes'
local testcase = args['testcase']
local testcasegap = args['testcasegap']
local minimum = args['min']
local maximum = args['max']
local skip_gaps = args['skip-gaps']
local show = args['show']
if show and show ~= '' then
if show == 'skip-gaps' then return skipgaps_limit
elseif show == 'term-limit' then return term_limit
elseif show == 'hgap-limit' then return hgap_limit
elseif show == 'ygap-limit' then return ygap_limit end
end
--apply args
local pagename = testcase or cat or currtitle.text
local testcaseindent = ''
if testcasecolon == ':' then testcaseindent = '\n::' end
if follow and follow == 'no' then followRs = false end
if list and list == 'yes' then listall = true end
if skip_gaps and skip_gaps == 'yes' then
skipgaps = true
trackcat(26, 'Category series navigation using skip-gaps parameter')
end
--ns checks
if currtitle.nsText == 'Акатегориа' then
if cat and cat ~= '' then
trackcat(1, 'Category series navigation using cat parameter')
end
if testcase and testcase ~= '' then
trackcat(2, 'Category series navigation using testcase parameter')
end
elseif currtitle.nsText == '' then
trackcat(30, 'Category series navigation in mainspace')
end
--find the variable parts of pagename
local findvar = find_var(pagename)
if findvar.vtype == 'error' then --basic format error checking in find_var()
return findvar.v..table.concat(ttrackingcats)
end
local start = string.match(findvar.v, '^%d+')
--the rest is static
local findvar_escaped = string.gsub( findvar.v, '%-', '%%%-')
local firstpart, lastpart = string.match(pagename, '^(.-)'..findvar_escaped..'(.*)$')
if findvar.vtype == 'tvseason' then --double check for cases like "30 Rock (season 3) episodes"
firstpart, lastpart = string.match(pagename, '^(.-season )'..findvar_escaped..'(.*)$')
if firstpart == nil then
firstpart, lastpart = string.match(pagename, '^(.-series )'..findvar_escaped..'(.*)$')
end
end
firstpart = mw.text.trim(firstpart or '')
lastpart = mw.text.trim(lastpart or '')
--call the appropriate nav function, in order of decreasing popularity
if findvar.vtype == 'year' then --e.g. "500", "2001"; nav_year..nav_decade; ~75% of cats
local nav1 = nav_year( frame, firstpart, start, lastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats)
local dec = math.floor(findvar.v/10)
local decadecat = nil
local firstpart_dec = firstpart
if firstpart_dec ~= '' then
firstpart_dec = firstpart_dec..' the'
elseif firstpart_dec == 'AD' and dec <= 1 then
firstpart_dec = ''
if dec == 0 then dec = '' end
end
local decade = dec..'0-тәи ашықәсқәа '
decadecat = mw.text.trim( firstpart_dec..' '..decade..lastpart )
local exists = catexists(decadecat)
if exists then
navborder = false
trackcat(28, 'Category series navigation year and decade')
local nav2 = nav_decade( frame, firstpart_dec, decade, lastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats)
return wrap( nav1, nav2 )
elseif ttrackingcats[16] ~= '' then --nav_year isolated; check nav_hyphen (e.g. UK MPs 1974, Moldovan MPs 2009, etc.)
local hyphen = '–'
local finish = start
local nav2 = nav_hyphen( frame, start, hyphen, finish, firstpart, lastpart, minimum, maximum, testcasegap )..testcaseindent..table.concat(ttrackingcats)
if ttrackingcats[16] ~= '' then return wrap( nav1 ) --still isolated; rv to nav_year
else return wrap( nav2 ) end
else --regular nav_year
return wrap( nav1 )
end
elseif findvar.vtype == 'decade' then --e.g. "0s", "2010s"; nav_decade..nav_nordinal; ~12% of cats
local nav1 = nav_decade( frame, firstpart, start, lastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats)
local decade = tonumber(string.match(findvar.v, '^(%d+)-тәи ашықәсқәа'))
local century = math.floor( ((decade-1)/100) + 1 ) --from {{CENTURY}}
if century == 0 then century = 1 end --no 0th century
if string.match(decade, '00$') then
century = century + 1 --'2000' is in the 20th, but the rest of the 2000s is in the 21st
end
local clastpart = '-тәи ашәышықәса '..lastpart
local centurycat = mw.text.trim( firstpart..' '..p.addord(century)..clastpart )
local exists = catexists(centurycat)
if not exists then --check for hyphenated century
clastpart = '-тәи ашәышықәсазтәи '..lastpart
centurycat = mw.text.trim( firstpart..' '..p.addord(century)..clastpart )
exists = catexists(centurycat)
end
if exists then
navborder = false
trackcat(29, 'Category series navigation decade and century')
local nav2 = nav_nordinal( frame, firstpart, century, clastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats)
return wrap( nav1, nav2 )
else
return wrap( nav1 )
end
elseif findvar.vtype == 'nordinal' then --e.g. "1st", "99th"; ~7.5% of cats
return wrap( nav_nordinal( frame, firstpart, start, lastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats) )
elseif findvar.vtype == 'season' then --e.g. "1–4", "1999–2000", "2001–02", "2001–2002", "2005–2010", etc.; ~5.25%
local hyphen, finish = mw.ustring.match(findvar.v, '%d([–-])(%d+)') --ascii 150 & 45 (ndash & keyboard hyphen); mw req'd
return wrap( nav_hyphen( frame, start, hyphen, finish, firstpart, lastpart, minimum, maximum, testcasegap )..testcaseindent..table.concat(ttrackingcats) )
elseif findvar.vtype == 'tvseason' then --e.g. "1", "15" but preceded with "season" or "series"; <1% of cats
return wrap( nav_tvseason( frame, firstpart, start, lastpart, maximum )..testcaseindent..table.concat(ttrackingcats) ) --"minimum" defaults to 1
elseif findvar.vtype == 'wordinal' then --e.g. "first", "ninety-ninth"; <<1% of cats
local ordinal = true
return wrap( nav_wordinal( frame, firstpart, findvar.v, lastpart, minimum, maximum, ordinal, frame )..testcaseindent..table.concat(ttrackingcats) )
elseif findvar.vtype == 'enumeric' then --e.g. "one", "ninety-nine"; <<1% of cats
local ordinal = false
return wrap( nav_wordinal( frame, firstpart, findvar.v, lastpart, minimum, maximum, ordinal, frame )..testcaseindent..table.concat(ttrackingcats) )
elseif findvar.vtype == 'roman' then --e.g. "I", "XXVIII"; <<1% of cats
return wrap( nav_roman( frame, firstpart, findvar.v, lastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats) )
elseif findvar.vtype == 'ending' then --e.g. "2021–" (irregular; ending unknown); <<<1% of cats
local hyphen, finish = mw.ustring.match(findvar.v, '%d([–-])present$'), -1 --ascii 150 & 45 (ndash & keyboard hyphen); mw req'd
if hyphen == nil then
hyphen, finish = mw.ustring.match(findvar.v, '%d([–-])$'), 0 --0/-1 are hardcoded switches for nav_hyphen()
end
return wrap( nav_hyphen( frame, start, hyphen, finish, firstpart, lastpart, minimum, maximum, testcasegap )..testcaseindent..table.concat(ttrackingcats) )
else --malformed
errors = p.errorclass('Failed to determine the appropriate nav function from malformed season "'..findvar.v..'". ')
return p.failedcat(errors, 'N')..table.concat(ttrackingcats)
end
end
return p
7wo2iblachecibweetxibfzuh69a5cm
163529
163518
2026-04-10T23:28:32Z
Fraxinus.cs
8381
163529
Scribunto
text/plain
require('strict')
local p = {}
local horizontal = require('Module:List').horizontal
--[[==========================================================================]]
--[[ Globals ]]
--[[==========================================================================]]
local currtitle = mw.title.getCurrentTitle()
local nexistingcats = 0
local errors = ''
local testcasecolon = ''
local testcases = string.match(currtitle.subpageText, '^testcases')
if testcases then testcasecolon = ':' end
local navborder = true
local followRs = true
local skipgaps = false
local skipgaps_limit = 30
local term_limit = 10
local hgap_limit = 6
local ygap_limit = 5
local listall = false
local tlistall = {}
local tlistallbwd = {}
local tlistallfwd = {}
local ttrackingcats = { --when reindexing, Ctrl+H 'trackcat(13,' & 'ttrackingcats[16]'
'', -- [1] placeholder for [[Акатегориа:Category series navigation using cat parameter]]
'', -- [2] placeholder for [[Акатегориа:Category series navigation using testcase parameter]]
'', -- [3] placeholder for [[Акатегориа:Category series navigation using unknown parameter]]
'', -- [4] placeholder for [[Акатегориа:Category series navigation range not using en dash]]
'', -- [5] placeholder for [[Акатегориа:Category series navigation range abbreviated (MOS)]]
'', -- [6] placeholder for [[Акатегориа:Category series navigation range redirected (base change)]]
'', -- [7] placeholder for [[Акатегориа:Category series navigation range redirected (var change)]]
'', -- [8] placeholder for [[Акатегориа:Category series navigation range redirected (end)]]
'', -- [9] placeholder for [[Акатегориа:Category series navigation range redirected (MOS)]]
'', --[10] placeholder for [[Акатегориа:Category series navigation range redirected (other)]]
'', --[11] placeholder for [[Акатегориа:Category series navigation range gaps]]
'', --[12] placeholder for [[Акатегориа:Category series navigation range irregular]]
'', --[13] placeholder for [[Акатегориа:Category series navigation range irregular, 0-length]]
'', --[14] placeholder for [[Акатегориа:Category series navigation range ends (present)]]
'', --[15] placeholder for [[Акатегориа:Category series navigation range ends (blank, MOS)]]
'', --[16] placeholder for [[Акатегориа:Category series navigation isolated]]
'', --[17] placeholder for [[Акатегориа:Category series navigation default season gap size]]
'', --[18] placeholder for [[Акатегориа:Category series navigation decade redirected]]
'', --[19] placeholder for [[Акатегориа:Category series navigation year redirected (base change)]]
'', --[20] placeholder for [[Акатегориа:Category series navigation year redirected (var change)]]
'', --[21] placeholder for [[Акатегориа:Category series navigation year redirected (other)]]
'', --[22] placeholder for [[Акатегориа:Category series navigation roman numeral redirected]]
'', --[23] placeholder for [[Акатегориа:Category series navigation nordinal redirected]]
'', --[24] placeholder for [[Акатегориа:Category series navigation wordinal redirected]]
'', --[25] placeholder for [[Акатегориа:Category series navigation TV season redirected]]
'', --[26] placeholder for [[Акатегориа:Category series navigation ашаблон skip-gaps апараметр зхы иазырхәо]]
'', --[27] placeholder for [[Акатегориа:Category series navigation year and range]]
'', --[28] placeholder for [[Акатегориа:Category series navigation year and decade]]
'', --[29] placeholder for [[Акатегориа:Category series navigation decade and century]]
'', --[30] placeholder for [[Акатегориа:Category series navigation in mainspace]]
'', --[31] placeholder for [[Акатегориа:Category series navigation redirection error]]
}
local avoidself = (not string.match(currtitle.text, 'Category series navigation with') and
not string.match(currtitle.text, 'Category series navigation.*/doc') and
not string.match(currtitle.text, 'Category series navigation.*/sandbox') and
currtitle.text ~= 'Category series navigation' and
currtitle.nsText ~= 'User_talk' and
currtitle.nsText ~= 'Template_talk' and
(currtitle.nsText ~= 'Template' or testcases)) --avoid nested transclusion errors (i.e. {{Infilmdecade}})
--[[==========================================================================]]
--[[ Utility & category functions ]]
--[[==========================================================================]]
--Determine if a category exists (in a function for easier localization).
local function catexists( title )
return mw.title.new( title, 'Акатегориа' ).exists
end
--Error message handling.
function p.errorclass( msg )
return mw.text.tag( 'span', {class='error mw-ext-cite-error'}, '<b>Агха!</b> '..string.gsub(msg, '&#', '&#') )
end
--Failure handling.
function p.failedcat( errors, sortkey )
if avoidself then
return (errors or '')..'***Category series navigation failed to generate navbox***'..
'[['..testcasecolon..'Акатегориа:Category series navigation failed to generate navbox|'..(sortkey or 'O')..']]\n'
end
return ''
end
--Tracking cat handling.
-- key: 15 (when reindexing ttrackingcats{}, Ctrl+H 'trackcat(13,' & 'ttrackingcats[16]')
-- cat: 'Category series navigation isolated'; '' to remove
--Used by main, all nav_*(), & several utility functions.
local function trackcat( key, cat )
if avoidself and key and cat then
if cat ~= '' then
ttrackingcats[key] = '[['..testcasecolon..'Акатегориа:'..cat..']]'
else
ttrackingcats[key] = ''
end
end
return
end
--Check for unknown parameters.
--Used by main only.
local function checkforunknownparams( tbl )
local knownparams = { --parameter whitelist
['min'] = 'min',
['max'] = 'max',
['cat'] = 'cat',
['show'] = 'show',
['testcase'] = 'testcase',
['testcasegap'] = 'testcasegap',
['skip-gaps'] = 'skip-gaps',
['list-all-links'] = 'list-all-links',
['follow-redirects'] = 'follow-redirects',
}
for k, _ in pairs (tbl) do
if knownparams[k] == nil then
trackcat(3, 'Category series navigation using unknown parameter')
break
end
end
end
--Check for nav_*() navigational isolation (not necessarily an error).
--Used by all nav_*().
local function isolatedcat()
if nexistingcats == 0 then
trackcat(16, 'Category series navigation isolated')
end
end
--Returns the target of {{Category redirect}}, if it exists, else returns the original cat.
--{{Title year}}, etc., if found, are evaluated.
--Used by catlinkfollowr(), and so indirectly by all nav_*().
local function rtarget( frame, cat )
local catcontent = mw.title.new( cat or '', 'Акатегориа' ):getContent()
if string.match( catcontent or '', '{{ *[Cc]at' ) then --prelim test
local getRegex = require('Module:Template redirect regex').main
local tregex = getRegex('Category redirect')
for _, v in pairs (tregex) do
local rtarget = mw.ustring.match( catcontent, v..'%s*|%s*([^|}]+)' )
if rtarget then
if string.match(rtarget, '{{') then --{{Title year}}, etc., exists; evaluate
local regex_ty = '%s*|%s*([^{}]*{{([^{|}]+)}}[^{}]-)%s*}}' --eval null-param templates only; expanded if/as needed
local rtarget_orig, ty = mw.ustring.match( catcontent, v..regex_ty )
if rtarget_orig then
local ty_eval = frame:expandTemplate{ title = ty, args = { page = cat } } --frame:newChild doesn't work, use 'page' param instead
local rtarget_eval = mw.ustring.gsub(rtarget_orig, '{{%s*'..ty..'%s*}}', ty_eval )
return rtarget_eval
else --sub-parameters present; track & return default
trackcat(31, 'Category series navigation redirection error')
end
end
rtarget = mw.ustring.gsub(rtarget, '^1%s*=%s*', '')
rtarget = string.gsub(rtarget, '^[Cc]ategory:', '')
return rtarget
end
end --for
end --if
return cat
end
--Similar to {{LinkCatIfExists2}}: make a piped link to a category, if it exists;
--if it doesn't exist, just display the greyed link title without linking.
--Follows {{Category redirect}}s.
--Returns {
-- ['cat'] = cat,
-- ['catexists'] = true,
-- ['rtarget'] = <#R target>,
-- ['navelement'] = <#R target navelement>,
-- ['displaytext'] = displaytext,
-- }
-- if #R followed;
--returns {
-- ['cat'] = cat,
-- ['catexists'] = <true|false>,
-- ['rtarget'] = nil,
-- ['navelement'] = <cat navelement>,
-- ['displaytext'] = displaytext,
-- }
-- otherwise.
--Used by all nav_*().
local function catlinkfollowr( frame, cat, displaytext, displayend )
cat = mw.text.trim(cat or '')
displaytext = mw.text.trim(displaytext or '')
displayend = displayend or false --bool flag to override displaytext IIF the cat/target is terminal (e.g. "2021–present" or "2021–")
local disp = cat
if displaytext ~= '' then --use 'displaytext' parameter if present
disp = mw.ustring.gsub(displaytext, '%s+%(.+$', ''); --strip any trailing disambiguator
end
local link, nilorR
local exists = catexists(cat)
if exists then
nexistingcats = nexistingcats + 1
if followRs then
local R = rtarget(frame, cat) --find & follow #R
if R ~= cat then --#R followed
nilorR = R
end
if displayend then
local y, hyph, ending = mw.ustring.match(R, '^.-(%d+)([–-])(.*)$')
if ending == 'present' then
disp = y..hyph..ending
elseif ending == '' then
disp = y..hyph..'<span style="visibility:hidden">'..y..'</span>' --hidden y to match spacing
end
end
link = '[[:Акатегориа:'..R..'|'..disp..']]'
else
link = '[[:Акатегориа:'..cat..'|'..disp..']]'
end
else
link = '<span class="categorySeriesNavigation-item-inactive">'..disp..'</span>'
end
if listall then
if nilorR then --#R followed
table.insert( tlistall, '[[:Category:'..cat..']] → '..'[[:Category:'..nilorR..']] ('..link..')' )
else --no #R
table.insert( tlistall, '[[:Category:'..cat..']] ('..link..')' )
end
end
return {
['cat'] = cat,
['catexists'] = exists,
['rtarget'] = nilorR,
['navelement'] = link,
['displaytext'] = disp,
}
end
--Returns a numbered list of all {{Category redirect}}s followed by catlinkfollowr() -> rtarget().
--For a nav_hyphen() cat, also returns a formatted list of all cats searched for & found, & all loop indices.
--Used by all nav_*().
local function listalllinks()
local nl = '\n# '
local out = ''
if currtitle.nsText == 'Category' then
errors = p.errorclass('The <b><code>|list-all-links=yes</code></b> parameter/utility '..
'should not be saved in category space, only previewed.')
out = p.failedcat(errors, 'Z')
end
local bwd, fwd = '', ''
if tlistallbwd[1] then
bwd = '\n\nbackward search:'..nl..table.concat(tlistallbwd, nl)
end
if tlistallfwd[1] then
fwd = '\n\nforward search:'..nl..table.concat(tlistallfwd, nl)
end
if tlistall[1] then
return out..nl..table.concat(tlistall, nl)..bwd..fwd
else
return out..nl..'No links found!?'..bwd..fwd
end
end
--Returns the difference b/w 2 ints separated by endash|hyphen, nil if error.
--Used by nav_hyphen() only.
local function find_duration( cat )
local from, to = mw.ustring.match(cat, '(%d+)[–-](%d+)')
if from and to then
if to == '00' then return nil end --doesn't follow MOS:DATERANGE
if (#from == 4) and (#to == 2) then --1900-01
to = string.match(from, '(%d%d)%d%d')..to --1900-1901
elseif (#from == 2) and (#to == 4) then -- 01-1902
from = string.match(to, '(%d%d)%d%d')..from --1901-1902
end
return (tonumber(to) - tonumber(from))
end
return 0
end
--Returns the ending of a terminal cat, and sets the appropriate tracking cat, else nil.
--Used by nav_hyphen() only.
local function find_terminaltxt( cat )
local terminaltxt = nil
if mw.ustring.match(cat, '%d+[–-]present$') then
terminaltxt = 'present'
trackcat(14, 'Category series navigation range ends (present)')
elseif mw.ustring.match(cat, '%d+[–-]$') then
terminaltxt = ''
trackcat(15, 'Category series navigation range ends (blank, MOS)')
end
return terminaltxt
end
--Returns an unsigned string of the 1-4 digit decade ending in "0", else nil.
--Used by nav_decade() only.
local function sterilizedec( decade )
if decade == nil or decade == '' then
return nil
end
local dec = string.match(decade, '^[-%+]?(%d?%d?%d?0)$') or
string.match(decade, '^[-%+]?(%d?%d?%d?0)%D')
if dec then
return dec
else
--fix 2-4 digit decade
local decade_fixed234 = string.match(decade, '^[-%+]?(%d%d?%d?)%d$') or
string.match(decade, '^[-%+]?(%d%d?%d?)%d%D')
if decade_fixed234 then
return decade_fixed234..'0'
end
--fix 1-digit decade
local decade_fixed1 = string.match(decade, '^[-%+]?(%d)$') or
string.match(decade, '^[-%+]?(%d)%D')
if decade_fixed1 then
return '0'
end
--unfixable
return nil
end
end
--Check for nav_hyphen default gap size + isolatedcat() (not necessarily an error).
--Used by nav_hyphen() only.
local function defaultgapcat( bool )
if bool and nexistingcats == 0 then
--using "nexistingcats > 0" isn't as useful, since the default gap size obviously worked
trackcat(17, 'Category series navigation default season gap size')
end
end
--12 -> 12th, etc.
--Used by nav_nordinal() & nav_wordinal().
function p.addord( i )
if tonumber(i) then
local s = tostring(i)
local tens = string.match(s, '1%d$')
if tens then return s..'-тәи' end
local ones = string.match(s, '%d$')
if ones == '1' then return s..'-тәи'
elseif ones == '2' then return s..'-тәи'
elseif ones == '3' then return s..'-тәи' end
return s..'-тәи'
end
return i
end
--Returns the properly formatted central nav element.
--Expects an integer i, and a catlinkfollowr() table.
--Used by nav_decade() & nav_ordinal() only.
local function navcenter( i, catlink )
if i == 0 then --center nav element
if navborder == true then
return '<b>'..catlink.displaytext..'</b>'
else
return '<b>'..catlink.navelement..'</b>'
end
else
return catlink.navelement
end
end
--Wrap one or two navs in a <div> with ARIA attributes; add TemplateStyles
--before it. This also aligns the navs in case some floating element (like a
--portal box) breaks their alignment.
--Used by main only.
local function wrap( nav1, nav2 )
local templatestyles = require("Module:TemplateStyles")(
"Module:Category series navigation/styles.css"
)
local prepare = function (nav)
if nav then
nav = '\n'..nav
else
nav = ''
end
return nav
end
return templatestyles..
'<div class="categorySeriesNavigation" role="navigation" aria-label="Range">'..
prepare(nav1)..prepare(nav2)..
'\n</div>'
end
--[[==========================================================================]]
--[[ Formerly separated templates/modules ]]
--[[==========================================================================]]
--[[==========================={{ nav_hyphen }}=============================]]
local function nav_hyphen( frame, start, hyph, finish, firstpart, lastpart, minseas, maxseas, testgap )
--Expects a PAGENAME of the form "Some sequential 2015–16 example cat", where
-- start = 2015
-- hyph = –
-- finish = 16 (sequential years can be abbreviated, but others should be full year, e.g. "2001–2005")
-- firstpart = Some sequential
-- lastpart = example cat
-- minseas = 1800 ('min' starting season shown; optional; defaults to -9999)
-- maxseas = 2000 ('max' starting season shown; optional; defaults to 9999; 2000 will show 2000-01)
-- testgap = 0 (testcasegap parameter for easier testing; optional)
--sterilize start
if string.match(start or '', '^%d%d?%d?%d?$') == nil then --1-4 digits, AD only
local start_fixed = mw.ustring.match(start or '', '^%s*(%d%d?%d?%d?)%D')
if start_fixed then
start = start_fixed
else
errors = p.errorclass('Function nav_hyphen can\'t recognize the number "'..(start or '')..'" '..
'in the first part of the "season" that was passed to it. '..
'For e.g. "2015–16", "2015" is expected via "|2015|–|16|".')
return p.failedcat(errors, 'H')
end
end
local nstart = tonumber(start)
--en dash check
if hyph ~= '–' then
trackcat(4, 'Category series navigation range not using en dash') --nav still processable, but track
end
--sterilize finish & check for weird parents
local tgaps = {} --table of gap sizes found b/w terms { [<gap size found>] = 1 }
local ttlens = {} --table of term lengths found w/i terms { [<term length found>] = 1 }
local tirregs = {} --table of ir/regular-term-length cats' "from"s & "to"s found
local regularparent = true
if (finish == -1) or --"Members of the Scottish Parliament 2021–present"
(finish == 0) --"Members of the Scottish Parliament 2021–"
then
regularparent = false
if maxseas == nil or maxseas == '' then
maxseas = start --hide subsequent ranges
end
if finish == -1 then trackcat(14, 'Category series navigation range ends (present)')
else trackcat(15, 'Category series navigation range ends (blank, MOS)') end
elseif (start == finish) and
(ttrackingcats[16] ~= '') --nav_year found isolated; check for surrounding hyphenated terms (e.g. UK MPs 1974)
then
trackcat(16, '') --reset for another check later
trackcat(13, 'Category series navigation range irregular, 0-length')
ttlens[0] = 1 --calc ttlens for std cases below
regularparent = 'isolated'
end
if (string.match(finish or '', '^%d+$') == nil) and
(string.match(finish or '', '^%-%d+$') == nil)
then
local finish_fixed = mw.ustring.match(finish or '', '^%s*(%d%d?%d?%d?)%D')
if finish_fixed then
finish = finish_fixed
else
errors = p.errorclass('Function nav_hyphen can\'t recognize "'..(finish or '')..'" '..
'in the second part of the "season" that was passed to it. '..
'For e.g. "2015–16", "16" is expected via "|2015|–|16|".')
return p.failedcat(errors, 'I')
end
else
if string.len(finish) >= 5 then
errors = p.errorclass('The second part of the season passed to function nav_hyphen should only be four or fewer digits, not "'..(finish or '')..'". '..
'See [[MOS:DATERANGE]] for details.')
return p.failedcat(errors, 'J')
end
end
local nfinish = tonumber(finish)
--save sterilized parent range for easier lookup later
tirregs['from0'] = nstart
tirregs['to0'] = nfinish
--sterilize min/max
local nminseas_default = -9999
local nmaxseas_default = 9999
local nminseas = tonumber(minseas) or nminseas_default --same behavior as nav_year
local nmaxseas = tonumber(maxseas) or nmaxseas_default --same behavior as nav_year
if nminseas > nstart then nminseas = nstart end
if nmaxseas < nstart then nmaxseas = nstart end
local lspace = ' ' --assume a leading space (most common)
local tspace = ' ' --assume a trailing space (most common)
if string.match(firstpart, '%($') then lspace = '' end --DNE for "Madrid city councillors (2007–2011)"-type cats
if string.match(lastpart, '^%)') then tspace = '' end --DNE for "Madrid city councillors (2007–2011)"-type cats
--calculate term length/intRAseason size & finishing year
local t = 1
while t <= term_limit and regularparent == true do
local nish = nstart + t --use switchADBC to flip this sign to work for years BC, if/when the time comes
if (nish == nfinish) or (string.match(nish, '%d?%d$') == finish) then
ttlens[t] = 1
break
end
if t == term_limit then
errors = p.errorclass('Function nav_hyphen can\'t determine a reasonable term length for "'..start..hyph..finish..'".')
return p.failedcat(errors, 'K')
end
t = t + 1
end
--apply MOS:DATERANGE to parent
local lenstart = string.len(start)
local lenfinish = string.len(finish)
if lenstart == 4 and regularparent == true then --"2001–..."
if t == 1 then --"2001–02" & "2001–2002" both allowed
if lenfinish ~= 2 and lenfinish ~= 4 then
errors = p.errorclass('The second part of the season passed to function nav_hyphen should be two or four digits, not "'..finish..'".')
return p.failedcat(errors, 'L')
end
else --"2001–2005" is required for t > 1; track "2001–05"; anything else = error
if lenfinish == 2 then
trackcat(5, 'Category series navigation range abbreviated (MOS)')
elseif lenfinish ~= 4 then
errors = p.errorclass('The second part of the season passed to function nav_hyphen should be four digits, not "'..finish..'".')
return p.failedcat(errors, 'M')
end
end
if finish == '00' then --full year required regardless of term length
trackcat(5, 'Category series navigation range abbreviated (MOS)')
end
end
--calculate intERseason gap size
local hgap_default = 0 --assume & start at the most common case: 2001–02 -> 2002–03, etc.
local hgap_limit_reg = hgap_limit --less expensive per-increment (inc x 4)
local hgap_limit_irreg = hgap_limit --more expensive per-increment (inc x 23 = inc x (k_bwd + k_fwd) = inc x (12 + 11))
local hgap_success = false
local hgap = hgap_default
while hgap <= hgap_limit_reg and regularparent == true do --verify
local prevseason2 = firstpart..lspace..(nstart-t-hgap)..hyph..string.match(nstart-hgap, '%d?%d$') ..tspace..lastpart
local nextseason2 = firstpart..lspace..(nstart+t+hgap)..hyph..string.match(nstart+2*t+hgap, '%d?%d$')..tspace..lastpart
local prevseason4 = firstpart..lspace..(nstart-t-hgap)..hyph..(nstart-hgap) ..tspace..lastpart
local nextseason4 = firstpart..lspace..(nstart+t+hgap)..hyph..(nstart+2*t+hgap)..tspace..lastpart
if t == 1 then --test abbreviated range first, then full range, to be frugal with expensive functions
if catexists(prevseason2) or --use 'or', in case we're at the edge of the cat structure,
catexists(nextseason2) or --or we hit a "–00"/"–2000" situation on one side
catexists(prevseason4) or
catexists(nextseason4)
then
hgap_success = true
break
end
elseif t > 1 then --test full range first, then abbreviated range, to be frugal with expensive functions
if catexists(prevseason4) or --use 'or', in case we're at the edge of the cat structure,
catexists(nextseason4) or --or we hit a "–00"/"–2000" situation on one side
catexists(prevseason2) or
catexists(nextseason2)
then
hgap_success = true
break
end
end
hgap = hgap + 1
end
if hgap_success == false then
hgap = tonumber(testgap) or hgap_default --tracked via defaultgapcat()
end
--preliminary scan to determine ir/regular spacing of nearby cats;
--to limit expensive function calls, MOS:DATERANGE-violating cats are ignored;
--an irregular-term-length series should follow "YYYY..hyph..YYYY" throughout
if hgap <= hgap_limit_reg then --also to isolate temp vars
--find # of nav-visible ir/regular-term-length cats
local bwanchor = nstart --backward anchor/common year
local fwanchor = bwanchor + t --forward anchor/common year
if regularparent == 'isolated' then
fwanchor = bwanchor
end
local spangreen = '[<span style="color:green">j, g, k = ' --used for/when debugging via list-all-links=yes
local spanblue = '<span style="color:blue">'
local spanred = ' (<span style="color:red">'
local span = '</span>'
local lastg = nil --to check for run-on searches
local lastk = nil --to check for run-on searches
local endfound = false --switch used to stop searching forward
local iirregs = 0 --index of tirregs[] for j < 0, since search starts from parent
local j = -3 --index of tirregs[] for j > 0 & pseudo nav position
while j <= 3 do
if j < 0 then --search backward from parent
local gbreak = false --switch used to break out of g-loop
local g = 0 --gap size
while g <= hgap_limit_irreg do
local k = 0 --term length: 0 = "0-length", 1+ = normal
while k <= term_limit do
local from = bwanchor - k - g
local to = bwanchor - g
local full = mw.text.trim( firstpart..lspace..from..hyph..to..tspace..lastpart )
if k == 0 then
if regularparent ~= 'isolated' then --+restrict to g == 0 if repeating year problems arise
to = '0-length'
full = mw.text.trim( firstpart..lspace..from..tspace..lastpart )
if catlinkfollowr( frame, full ).rtarget ~= nil then --#R followed
table.insert( tlistallbwd, spangreen..j..', '..g..', '..k..span..'] '..full..spanred..'#R ignored'..span..')' )
full, to = '', '' --don't use/follow 0-length cat #Rs from nav_hyphen(); otherwise gets messy
end
end
end
if (k >= 1) or --the normal case; only continue k = 0 if 0-length found
(to == '0-length') --ghetto "continue" (thx Lua) to avoid expensive searches for "UK MPs 1974-1974", etc.
then
table.insert( tlistallbwd, spangreen..j..', '..g..', '..k..span..'] '..full )
if (k == 1) and
-- (g == 0 or g == 1) and --commented to match j>0 case ("1995–96 in Federal Republic of Yugoslavia basketball")
(catexists(full) == false)
then --allow bare-bones MOS:DATERANGE alternation, in case we're on a 0|1-gap, 1-year term series
local to2 = string.match(to, '%d%d$')
if to2 and to2 ~= '00' then --and not at a century transition (i.e. 1999–2000)
to = to2
full = mw.text.trim( firstpart..lspace..from..hyph..to..tspace..lastpart )
table.insert( tlistallbwd, spangreen..j..', '..g..', '..k..span..'] '..full )
end
end
if catexists(full) then
if to == '0-length' then
trackcat(13, 'Category series navigation range irregular, 0-length')
end
tlistallbwd[#tlistallbwd] = spanblue..tlistallbwd[#tlistallbwd]..span..' (found)'
ttlens[ find_duration(full) ] = 1
tgaps[g] = 1
iirregs = iirregs + 1
tirregs['from-'..iirregs] = from
tirregs['to-'..iirregs] = to
bwanchor = from --ratchet down
if to ~= '0-length' then
gbreak = true
break
else
g = 0 --soft-reset g, to keep stepping thru k
j = j + 1 --save, but keep searching thru k
if j > 0 then --(restore "> 3" if acts up) lest we keep searching bwd & finding 0-length cats ("MEPs for the Republic of Ireland 1973" & down)
j = -1 --allow a normal, full search fwd after break
gbreak = true
break
end
end
elseif (j >= 0) and
(lastg and lastk) and
((lastg >= hgap_limit_irreg) or
(lastk >= term_limit))
then --bwd search exhausted and/or done (runaway bwd search on "2018–19 FIA World Endurance Championship season")
j = -1 --allow a normal, full search fwd after break
gbreak = true
break
end
end --ghetto "continue"
k = k + 1
lastk = k
end --while k
if gbreak == true then break end
g = g + 1
lastg = g
end --while g
end --if j < 0
if j > 0 and endfound == false then --search forward from parent
local gbreak = false --switch used to break out of g-loop
local g = 0 --gap size
while g <= hgap_limit_irreg do
local k = -2 --term length: -2 = "0-length", -1 = "2020–present", 0 = "2020–", 1+ = normal
while k <= term_limit do
local from = fwanchor + g
local to4 = fwanchor + k + g --override carefully
local to2 = nil --last 2 digits of to4, IIF exists
if k == -1 then to4 = 'present' --see if end-cat exists (present)
elseif k == 0 then to4 = '' end --see if end-cat exists (blank)
local full = mw.text.trim( firstpart..lspace..from..hyph..to4..tspace..lastpart )
if k == -2 then
if regularparent ~= 'isolated' then --+restrict to g == 0 if repeating year problems arise
to4 = '0-length' --see if 0-length cat exists
full = mw.text.trim( firstpart..lspace..from..tspace..lastpart )
if catlinkfollowr( frame, full ).rtarget ~= nil then --#R followed
table.insert( tlistallfwd, spangreen..j..', '..g..', '..k..span..'] '..full..spanred..'#R ignored'..span..')' )
full, to4 = '', '' --don't use/follow 0-length cat #Rs from nav_hyphen(); otherwise gets messy
end
end
end
if (k >= -1) or --only continue k = -2 if 0-length found
(to4 == '0-length') --ghetto "continue" (thx Lua) to avoid expensive searches for "UK MPs 1974-1974", etc.
then
table.insert( tlistallfwd, spangreen..j..', '..g..', '..k..span..'] '..full )
if (k == 1) and
-- (g == 0 or g == 1) and --commented to let "2002–03 in Scottish women's football" find "2008–09 in Scottish women's football"
(catexists(full) == false)
then --allow bare-bones MOS:DATERANGE alternation, in case we're on a 0|1-gap, 1-year term series
to2 = string.match(to4, '%d%d$')
if to2 and to2 ~= '00' then --and not at a century transition (i.e. 1999–2000)
full = mw.text.trim( firstpart..lspace..from..hyph..to2..tspace..lastpart )
table.insert( tlistallfwd, spangreen..j..', '..g..', '..k..span..'] '..full )
end
end
if catexists(full) then
if to4 == '0-length' then
if rtarget(frame, full) == full then --only use 0-length cats that don't #R
trackcat(13, 'Category series navigation range irregular, 0-length')
end
end
tirregs['from'..j] = from
tirregs['to'..j] = (to2 or to4)
if (k == -1) or (k == 0) then
endfound = true --tentative
else --k == { -2, > 0 }
tlistallfwd[#tlistallfwd] = spanblue..tlistallfwd[#tlistallfwd]..span..' (found)'
ttlens[ find_duration(full) ] = 1
tgaps[g] = 1
endfound = false
if to4 ~= '0-length' then --k > 0
fwanchor = to4 --ratchet up
gbreak = true
break --only break on k > 0 b/c old end-cat #Rs still exist like "Members of the Scottish Parliament 2011–"
else --k == -2
j = j + 1 --save, but keep searching k's, in case "1974" → "1974-1979"
if j > 3 then --lest we keep searching & finding 0-length cats ("2018 CONCACAF Champions League" & up)
gbreak = true
break
end
end
end
end
end --ghetto "continue"
k = k + 1
lastk = k
end --while k
if gbreak == true then break end
g = g + 1
lastg = g
end --while g
end --if j > 0
if (lastg and lastk) and
(lastg > hgap_limit_irreg) and
(lastk > term_limit)
then --search exhausted
if j < 0 then j = 0 --bwd search exhausted; continue fwd
elseif j > 0 then break end --fwd search exhausted
end
j = j + 1
end --while j <= 3
end --if hgap <= hgap_limit_reg
--begin navhyphen
local navh = '<div class="toccolours categorySeriesNavigation-range">\n'
local navlist = {}
local terminalcat = false --switch used to hide future cats
local terminaltxt = nil
local i = -3 --nav position
while i <= 3 do
local from = nstart + i*(t+hgap) --the logical, but not necessarily correct, 'from'
if tirregs['from'..i] then --prefer the irregular term table
from = tonumber(tirregs['from'..i])
else --fallback to lazy/naive 'from'
if i > 0 and
tirregs['from'..(i-1)] and
tirregs['from'..(i-1)] >= from
then --end of the line: avoid dups/past, and create reasonable grey'd ranges
local greyto = tonumber(tirregs['to' .. (i-1)]) or -9999
local greyfrom = tonumber(tirregs['from'..(i-1)]) or -9999
local grey = greyto --prefer 'to'
if greyfrom > greyto then grey = greyfrom end --'from' fallback, in case "1995–96", "1995-present", etc.
if grey > -9999 then
if grey ~= greyto then
from = grey + t + hgap --account for missing/incomplete 'to'
else
from = grey + hgap
end
tirregs['from'..i] = from --remember
tirregs['to' .. i] = from + t
end
elseif i < 0 then
local greyfrom
local ii = 0
while ii < 3 do
ii = ii + 1
greyfrom = tonumber(tirregs['from'..(i+ii)])
if greyfrom then break end
end
from = greyfrom - ii*(t+hgap)
tirregs['from'..i] = from --remember
tirregs['to' .. i] = from + t
end
end
local from2 = string.match(from, '%d?%d$')
local to = tostring(from+t) --the logical, naive range, but
if tirregs['to'..i] then --prefer irregular term table
to = tirregs['to'..i]
elseif regularparent == false and tirregs and i > 0 then
to = tirregs['to-1'] --special treatment for parent terminal cats, since they have no natural 'to'
end
local to2 = string.match(to, '%d?%d$')
local tofinal = (to2 or '') --assume t=1 and abbreviated 'to' (the most common case)
if t > 1 or --per MOS:DATERANGE (e.g. 1999-2004)
(from2 - (to2 or from2)) > 0 --century transition exception (e.g. 1999–2000)
then
tofinal = (to or '') --default to the MOS-correct format, in case no fallbacks found
end
if to == '0-length' then
tofinal = to
end
--check existance of 4-digit, MOS-correct range, with abbreviation fallback
if tofinal ~= '0-length' then
if t > 1 and string.len(from) == 4 then --e.g. 1999-2004
--determine which link exists (full or abbr)
local full = firstpart..lspace..from..hyph..tofinal..tspace..lastpart
if not catexists(full) then
local abbr = firstpart..lspace..from..hyph..to2..tspace..lastpart
if catexists(abbr) then
tofinal = (to2 or '') --rv to MOS-incorrect format; if full AND abbr DNE, then tofinal is still in its MOS-correct format
end
end
elseif t == 1 then --full-year consecutive ranges are also allowed
local abbr = firstpart..lspace..from..hyph..tofinal..tspace..lastpart --assume tofinal is in abbr format
if not catexists(abbr) and tofinal ~= to then
local full = firstpart..lspace..from..hyph..to..tspace..lastpart
if catexists(full) then
tofinal = (to or '') --if abbr AND full DNE, then tofinal is still in its abbr format (unless it's a century transition)
end end end end
--populate navh
if i ~= 0 then --left/right navh
local orig = firstpart..lspace..from..hyph..tofinal..tspace..lastpart
local disp = from..hyph..tofinal
if tofinal == '0-length' then
orig = firstpart..lspace..from..tspace..lastpart
disp = from
end
local catlink = catlinkfollowr(frame, orig, disp, true) --force terminal cat display
if terminalcat == false then
terminaltxt = find_terminaltxt( disp ) --also sets tracking cats
terminalcat = (terminaltxt ~= nil)
end
if catlink.rtarget and avoidself then --a {{Category redirect}} was followed, figure out why
--determine new term length & gap size
ttlens[ find_duration( catlink.rtarget ) ] = 1
if i > -3 then
local lastto = tirregs['to'..(i-1)]
if lastto == nil then
local lastfrom = nstart + (i-1)*(t+hgap)
lastto = lastfrom+t --use last logical 'from' to calc lastto
end
if lastto then
local gapcat = lastto..'-'..from --dummy cat to calc with
local gap = find_duration(gapcat) or -1 --in case of nil,
tgaps[ gap ] = 1 --tgaps[-1] is ignored
end
end
--display/tracking handling
local base_regex = '%d+[–-]%d+'
local origbase = mw.ustring.gsub(orig, base_regex, '')
local rtarbase, rtarbase_success = mw.ustring.gsub(catlink.rtarget, base_regex, '')
if rtarbase_success == 0 then
local base_regex_lax = '%d%d%d%d' --in case rtarget is a year cat
rtarbase, rtarbase_success = mw.ustring.gsub(catlink.rtarget, base_regex_lax, '')
end
local terminal_regex = '%d+[–-]'..(terminaltxt or '')..'$' --more manual ORs bc Lua regex sux
if mw.ustring.match(orig, terminal_regex) then
origbase = mw.ustring.gsub(orig, terminal_regex, '')
end
if mw.ustring.match(catlink.rtarget, terminal_regex) then
--finagle/overload terminalcat type to set nmaxseas on 1st occurence only
if terminalcat == false then terminalcat = 1 end
local dummy = find_terminaltxt( catlink.rtarget ) --also sets tracking cats
rtarbase = mw.ustring.gsub(catlink.rtarget, terminal_regex, '')
end
origbase = mw.text.trim(origbase)
rtarbase = mw.text.trim(rtarbase)
if origbase ~= rtarbase then
trackcat(6, 'Category series navigation range redirected (base change)')
elseif terminalcat == 1 then
trackcat(8, 'Category series navigation range redirected (end)')
else --origbase == rtarbase
local all4s_regex = '%d%d%d%d[–-]%d%d%d%d'
local orig_all4s = mw.ustring.match(orig, all4s_regex)
local rtar_all4s = mw.ustring.match(catlink.rtarget, all4s_regex)
if orig_all4s and rtar_all4s then
trackcat(10, 'Category series navigation range redirected (other)')
else
local year_regex1 = '%d%d%d%d$'
local year_regex2 = '%d%d%d%d[%s%)]'
local year_rtar = mw.ustring.match(catlink.rtarget, year_regex1) or
mw.ustring.match(catlink.rtarget, year_regex2)
if orig_all4s and year_rtar then
trackcat(7, 'Category series navigation range redirected (var change)')
else
trackcat(9, 'Category series navigation range redirected (MOS)')
end
end
end
end
if terminalcat then --true or 1
if type(terminalcat) ~= 'boolean' then nmaxseas = from end --only want to do this once
terminalcat = true --done finagling/overloading
end
if (from >= 0) and (nminseas <= from) and (from <= nmaxseas) then
table.insert(navlist, catlink.navelement)
if terminalcat then nmaxseas = nminseas_default end --prevent display of future ranges
else
local hidden = '<span style="visibility:hidden">'..disp..'</span>'
table.insert(navlist, hidden)
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
else --center navh
if finish == -1 then finish = 'present'
elseif finish == 0 then finish = '<span style="visibility:hidden">'..start..'</span>' end
local disp = start..hyph..finish
if regularparent == 'isolated' then disp = start end
table.insert(navlist, '<b>'..disp..'</b>')
end
i = i + 1
end
-- add the list
navh = navh..horizontal(navlist)..'\n'
--tracking cats & finalize
if avoidself then
local igaps = 0 --# of diff gap sizes > 0 found
local itlens = 0 --# of diff term lengths found
for s = 1, hgap_limit_reg do --must loop; #tgaps, #ttlens unreliable
igaps = igaps + (tgaps[s] or 0)
end
for s = 0, term_limit do
itlens = itlens + (ttlens[s] or 0)
end
if igaps > 0 then trackcat(11, 'Category series navigation range gaps') end
if itlens > 1 and ttrackingcats[13] == '' then --avoid duplication in "Category series navigation range irregular, 0-length"
trackcat(12, 'Category series navigation range irregular')
end
end
isolatedcat()
defaultgapcat(not hgap_success)
if listall then
return listalllinks()
else
return navh..'</div>'
end
end
--[[=========================={{ nav_tvseason }}============================]]
local function nav_tvseason( frame, firstpart, tv, lastpart, maximumtv )
--Expects a PAGENAME of the form "Futurama (season 1) episodes", where
-- firstpart = Futurama (season
-- tv = 1
-- lastpart = ) episodes
-- maximumtv = 7 ('max' tv season parameter; optional; defaults to 9999)
tv = tonumber(tv)
if tv == nil then
errors = p.errorclass('Function nav_tvseason can\'t recognize the TV season number sent to its 2nd parameter.')
return p.failedcat(errors, 'T')
end
local maxtv = tonumber(maximumtv) or 9999 --allow +/- qualifier
if maxtv < tv then maxtv = tv end --input error; maxtv should be >= parent
--begin navtvseason
local navt = '<div class="toccolours categorySeriesNavigation-range">\n'
local navlist = {}
local i = -5 --nav position
while i <= 5 do
local t = tv + i
if i ~= 0 then --left/right navt
local catlink = catlinkfollowr( frame, firstpart..' '..t..lastpart, t )
if (t >= 1 and t <= maxtv) then --hardcode mintv
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(25, 'Category series navigation TV season redirected')
end
table.insert(navlist, catlink.navelement)
else
local hidden = '<span style="visibility:hidden">'..'0'..'</span>' --'0' to maintain dot spacing
table.insert(navlist, hidden)
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
else --center navt
table.insert(navlist, '<b>'..tv..'</b>')
end
i = i + 1
end
-- add the list
navt = navt..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navt..'</div>'
end
end
--[[==========================={{ nav_decade }}=============================]]
local function nav_decade( frame, firstpart, decade, lastpart, mindecade, maxdecade )
--Expects a PAGENAME of the form "Some sequential 2000 example cat", where
-- firstpart = Some sequential
-- decade = 2000
-- lastpart = example cat
-- mindecade = 1800 ('min' decade parameter; optional; defaults to -9999)
-- maxdecade = 2020 ('max' decade parameter; optional; defaults to 9999)
--sterilize dec
local dec = sterilizedec(decade)
if dec == nil then
errors = p.errorclass('Function nav_decade was sent "'..(decade or '')..'" as its 2nd parameter, '..
'but expects a 1 to 4-digit year ending in "0".')
return p.failedcat(errors, 'D')
end
local ndec = tonumber(dec)
--sterilize mindecade & determine AD/BC
local mindefault = '-9999'
local mindec = sterilizedec(mindecade) --returns a tostring(unsigned int), or nil
if mindec then
if string.match(mindecade, '-%d') or
string.match(mindecade, 'Ҳ. ҟ.')
then
mindec = '-'..mindec --better +/-0 behavior with strings (0-initialized int == "-0" string...)
end
elseif mindec == nil and mindecade and mindecade ~= '' then
errors = p.errorclass('Function nav_decade was sent "'..(mindecade or '')..'" as its 4th parameter, '..
'but expects a 1 to 4-digit year ending in "0", the earliest decade to be shown.')
return p.failedcat(errors, 'E')
else --mindec == nil
mindec = mindefault --tonumber() later, after error checks
end
--sterilize maxdecade & determine AD/BC
local maxdefault = '9999'
local maxdec = sterilizedec(maxdecade) --returns a tostring(unsigned int), or nil + error
if maxdec then
if string.match(maxdecade, '-%d') or
string.match(maxdecade, 'Ҳ. ҟ.')
then --better +/-0 behavior with strings (0-initialized int == "-0" string...),
maxdec = '-'..maxdec --but a "-0" string -> tonumber() -> tostring() = "-0",
end --and a "0" string -> tonumber() -> tostring() = "0"
elseif maxdec == nil and maxdecade and maxdecade ~= '' then
errors = p.errorclass('Function nav_decade was sent "'..(maxdecade or '')..'" as its 5th parameter, '..
'but expects a 1 to 4-digit year ending in "0", the highest decade to be shown.')
return p.failedcat(errors, 'F')
else --maxdec == nil
maxdec = maxdefault
end
local tspace = ' ' --assume trailing space for "1950s in X"-type cats
if string.match(lastpart, '^-') then tspace = '' end --DNE for "1970s-related"-type cats
--AD/BC switches & vars
local parentBC = string.match(lastpart, '^Ҳ. ҟ.') --following the "0s BC" convention for all years BC
lastpart = mw.ustring.gsub(lastpart, '^Ҳ. ҟ.%s*', '') --handle BC separately; AD never used
--TODO?: handle BCE, but only if it exists in the wild
local dec0to40AD = (ndec >= 0 and ndec <= 40 and not parentBC) --special behavior in this range
local switchADBC = 1 -- 1=AD parent
if parentBC then switchADBC = -1 end -- -1=BC parent; possibly adjusted later
local BCdisp = ''
local D = -math.huge --secondary switch & iterator for AD/BC transition
--check non-default min/max more carefully
if mindec ~= mindefault then
if tonumber(mindec) > ndec*switchADBC then
mindec = tostring(ndec*switchADBC) --input error; mindec should be <= parent
end
end
if maxdec ~= maxdefault then
if tonumber(maxdec) < ndec*switchADBC then
maxdec = tostring(ndec*switchADBC) --input error; maxdec should be >= parent
end
end
local nmindec = tonumber(mindec) --similar behavior to nav_year & nav_nordinal
local nmaxdec = tonumber(maxdec) --similar behavior to nav_nordinal
--begin navdecade
local bnb = '' --border/no border
if navborder == false then --for Category series navigation year and decade
bnb = 'categorySeriesNavigation-range-transparent'
end
local navd = '<div class="toccolours categorySeriesNavigation-range '..bnb..'">\n'
local navlist = {}
local i = -50 --nav position x 10
while i <= 50 do
local d = ndec + i*switchADBC
local BC = ''
BCdisp = ''
if dec0to40AD then
if D < -10 then
d = math.abs(d + 10) --b/c 2 "0s" decades exist: "0s BC" & "0s" (AD)
BC = 'Ҳ. ҟ. '
if d == 0 then
D = -10 --track 1st d = 0 use (BC)
end
elseif D >= -10 then
D = D + 10 --now iterate from 0s AD
d = D --2nd d = 0 use
end
elseif parentBC then
if switchADBC == -1 then --parentBC looking at the BC side (the common case)
BC = 'Ҳ. ҟ. '
if d == 0 then --prepare to switch to the AD side on the next iteration
switchADBC = 1 --1st d = 0 use (BC)
D = -10 --prep
end
elseif switchADBC == 1 then --switched to the AD side
D = D + 10 --now iterate from 0s AD
d = D --2nd d = 0 use (on first use)
end
end
if BC ~= '' and ndec <= 50 then
BCdisp = 'Ҳ. ҟ. ' --show BC for all BC decades whenever a "0s" is displayed on the nav
end
--determine target cat
local disp = d..'s'..BCdisp
local catlink = catlinkfollowr( frame, firstpart..' '..d..'s'..tspace..BC..lastpart, disp )
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(18, 'Category series navigation decade redirected')
end
--populate left/right navd
local shown = navcenter(i, catlink)
local hidden = '<span style="visibility:hidden">'..disp..'</span>'
local dsign = d --use d for display & dsign for logic
if BC ~= '' then dsign = -dsign end
if (nmindec <= dsign) and (dsign <= nmaxdec) then
if dsign == 0 and (nmindec == 0 or nmaxdec == 0) then --distinguish b/w -0 (BC) & 0 (AD)
--"zoom in" on +/- 0 and turn dsign/min/max temporarily into +/- 1 for easier processing
local zsign, zmin, zmax = 1, nmindec, nmaxdec
if BC ~= '' then zsign = -1 end
if mindec == '-0' then zmin = -1
elseif mindec == '0' then zmin = 1 end
if maxdec == '-0' then zmax = -1
elseif maxdec == '0' then zmax = 1 end
if (zmin <= zsign) and (zsign <= zmax) then
table.insert(navlist, shown)
hidden = nil
else
table.insert(navlist, hidden)
end
else
table.insert(navlist, shown)--the common case
hidden = nil
end
else
table.insert(navlist, hidden)
end
if listall and hidden then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
i = i + 10
end
-- add the list
navd = navd..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navd..'</div>'
end
end
--[[============================{{ nav_year }}==============================]]
local function nav_year( frame, firstpart, year, lastpart, minimumyear, maximumyear )
--Expects a PAGENAME of the form "Some sequential 1760 example cat", where
-- firstpart = Some sequential
-- year = 1760
-- lastpart = example cat
-- minimumyear = 1758 ('min' year parameter; optional)
-- maximumyear = 1800 ('max' year parameter; optional)
local minyear_default = -9999
local maxyear_default = 9999
year = tonumber(year) or tonumber(mw.ustring.match(year or '', '^%s*(%d*)'))
local minyear = tonumber(string.match(minimumyear or '', '-?%d+')) or minyear_default --allow +/- qualifier
local maxyear = tonumber(string.match(maximumyear or '', '-?%d+')) or maxyear_default --allow +/- qualifier
if string.match(minimumyear or '', 'Ҳ. ҟ.') then minyear = -math.abs(minyear) end --allow BC qualifier (AD otherwise assumed)
if string.match(maximumyear or '', 'Ҳ. ҟ.') then maxyear = -math.abs(maxyear) end --allow BC qualifier (AD otherwise assumed)
if year == nil then
errors = p.errorclass('Function nav_year can\'t recognize the year sent to its 2nd parameter.')
return p.failedcat(errors, 'Y')
end
--AD/BC switches & vars
local yearBCElastparts = { --needed for parent = AD 1-5, when the BC/E format is unknown
--"BCE" removed to match both AD & BCE cats; easier & faster than multiple string.match()s
['example_Hebrew people_example'] = 'BCE', --example entry format; add to & adjust as needed
}
local parentAD = string.match(firstpart, 'Ҳ. ҳ.$') --following the "AD 1" convention from AD 1 to AD 10
local parentBC = string.match(lastpart, '^Ҳ. ҟ.?') --following the "1 BC" convention for all years BC
firstpart = mw.ustring.gsub(firstpart, '%s*Ҳ. ҳ.$', '') --handle AD/BC separately for easier & faster accounting
lastpart = mw.ustring.gsub(lastpart, '^Ҳ. ҟ.?%s*', '')
local BCe = parentBC or yearBCElastparts[lastpart] or 'BC' --"BC" default
local year1to10 = (year >= 1 and year <= 10)
local year1to10ADBC = year1to10 and (parentBC or parentAD) --special behavior 1-10 for low-# non-year series
local year1to15AD = (year >= 1 and year <= 15 and not parentBC) --special behavior 1-15 for AD/BC display
local switchADBC = 1 -- 1=AD parent
if parentBC then switchADBC = -1 end -- -1=BC parent; possibly adjusted later
local Y = 0 --secondary iterator for AD-on-a-BC-parent
if minyear > year*switchADBC then minyear = year*switchADBC end --input error; minyear should be <= parent
if maxyear < year*switchADBC then maxyear = year*switchADBC end --input error; maxyear should be >= parent
local lspace = ' ' --leading space before year, after firstpart
if string.match(firstpart, '[%-VW]$') then
lspace = '' --e.g. "Straight-8 engines"
end
local tspace = ' ' --trailing space after year, before lastpart
if string.match(lastpart, '^-') then
tspace = '' --e.g. "2018-related timelines"
end
--determine interyear gap size to condense special category types, if possible
local ygapdefault = 1 --assume/start at the most common case: 2001, 2002, etc.
local ygap = ygapdefault
if string.match(lastpart, 'presidential') then
local ygap1, ygap2 = ygapdefault, ygapdefault --need to determine previous & next year gaps indepedently
local ygap1_success, ygap2_success = false, false
local prevseason = nil
while ygap1 <= ygap_limit do --Czech Republic, Poland, Sri Lanka, etc. have 5-year terms
prevseason = firstpart..lspace..(year-ygap1)..tspace..lastpart
if catexists(prevseason) then
ygap1_success = true
break
end
ygap1 = ygap1 + 1
end
local nextseason = nil
while ygap2 <= ygap_limit do --Czech Republic, Poland, Sri Lanka, etc. have 5-year terms
nextseason = firstpart..lspace..(year+ygap2)..tspace..lastpart
if catexists(nextseason) then
ygap2_success = true
break
end
ygap2 = ygap2 + 1
end
if ygap1_success and ygap2_success then
if ygap1 == ygap2 then ygap = ygap1 end
elseif ygap1_success then ygap = ygap1
elseif ygap2_success then ygap = ygap2
end
end
--skip non-existing years, if requested
local ynogaps = {} --populate with existing years in the range, at most, [year - (skipgaps_limit * 5), year + (skipgaps_limit * 5)]
if skipgaps then
if minyear == minyear_default then
minyear = 0 --automatically set minyear to 0, as AD/BC not supported anyway
end
if (year > 70) or --add support for AD/BC (<= AD 10) if/when needed
(minyear >= 0 and --must be a non-year series like "AC with 0 elements"
not parentAD and not parentBC)
then
local yskipped = {} --track skipped y's to avoid double-checking
local cat, found, Yeary
--populate nav element queue outwards positively from the parent
local Year = year --to save/ratchet progression
local i = 1
while i <= 5 do
local y = 1
while y <= skipgaps_limit do
found = false
Yeary = Year + y
if yskipped[Yeary] == nil then
yskipped[Yeary] = Yeary
cat = firstpart..lspace..Yeary..tspace..lastpart
found = catexists(cat)
if found then break end
end
y = y + 1
end
if found then Year = Yeary
else Year = Year + 1 end
ynogaps[i] = Year
i = i + 1
end
ynogaps[0] = year --the parent
--populate nav element queue outwards negatively from the parent
Year = year --reset ratchet
i = -1
while i >= -5 do
local y = -1
while y >= -skipgaps_limit do
found = false
Yeary = Year + y
if yskipped[Yeary] == nil then
yskipped[Yeary] = Yeary
cat = firstpart..lspace..Yeary..tspace..lastpart
found = catexists(cat)
if found then break end
end
y = y - 1
end
if found then Year = Yeary
else Year = Year - 1 end
ynogaps[i] = Year
i = i - 1
end
else
skipgaps = false --TODO: AD/BC support, then lift BC restrictions @ [[Template:Establishment category BC]] & [[Template:Year category header/core]]
end
end
--begin navyears
local navy = '<div class="toccolours categorySeriesNavigation-range">\n'
local navlist = {}
local y
local j = 0 --decrementor for special cases "2021 World Rugby Sevens Series" -> "2021–2022"
local i = -5 --nav position
while i <= 5 do
if skipgaps then
y = ynogaps[i]
else
y = year + i*ygap*switchADBC - j
end
local BCdisp = ''
if i ~= 0 then --left/right navy
local AD = ''
local BC = ''
if year1to15AD and not
(year1to10 and not year1to10ADBC) --don't AD/BC 1-10's if parents don't contain AD/BC
then
if year >= 11 then --parent = AD 11-15
if y <= 10 then --prepend AD on y = 1-10 cats only, per existing cats
AD = 'Ҳ. ҳ. '
end
elseif year >= 1 then --parent = AD 1-10
if y <= 0 then
BC = BCe..' '
y = math.abs(y - 1) --skip y = 0 (DNE)
elseif y >= 1 and y <= 10 then --prepend AD on y = 1-10 cats only, per existing cats
AD = 'Ҳ. ҳ. '
end
end
elseif parentBC then
if switchADBC == -1 then --displayed y is in the BC regime
if y >= 1 then --the common case
BC = BCe..' '
elseif y == 0 then --switch from BC to AD regime
switchADBC = 1
end
end
if switchADBC == 1 then --displayed y is now in the AD regime
Y = Y + 1 --skip y = 0 (DNE)
y = Y --easiest solution: start another iterator for these AD y's displayed on a BC year parent
AD = 'Ҳ. ҳ. '
end
end
if BC ~= '' and year <= 5 then --only show 'BC' for parent years <= 5: saves room, easier to read,
BCdisp = ' '..BCe --and 6 is the first/last nav year that doesn't need a disambiguator;
end --the center/parent year will always show BC, so no need to show it another 10x
--populate left/right navy
local ysign = y --use y for display & ysign for logic
local disp = y..BCdisp
if BC ~= '' then ysign = -ysign end
local firsttry = firstpart..lspace..AD..y..tspace..BC..lastpart
if (minyear <= ysign) and (ysign <= maxyear) then
local catlinkAD = catlinkfollowr( frame, firsttry, disp ) --try AD
local catlink = catlinkAD --tentative winner
if AD ~= '' then --for "ACArt with 5 suppressed elements"-type cats
local catlinkNoAD = catlinkfollowr( frame, firstpart..lspace..y..tspace..BC..lastpart, disp ) --try !AD
if catlinkNoAD.catexists == true then
catlink = catlinkNoAD --usurp
elseif listall then
tlistall[#tlistall] = tlistall[#tlistall]..' (tried; not displayed)<sup>1</sup>'
end
end
if (AD..BC == '') and (catlink.catexists == false) and (y >= 1000) then --!ADBC & DNE; 4-digit only, to be frugal
--try basic hyphenated cats: 1-year, endash, MOS-correct only, no #Rs
local yHyph_4 = y..'–'..(y+1) --try 2010–2011 type cats
local catlinkHyph_4 = catlinkfollowr( frame, firstpart..lspace..yHyph_4..tspace..BC..lastpart, yHyph_4 )
if catlinkHyph_4.catexists and catlinkHyph_4.rtarget == nil then --exists & no #Rs
catlink = catlinkHyph_4 --usurp
trackcat(27, 'Category series navigation year and range')
else
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' (tried; not displayed)<sup>2</sup>'
end
local yHyph_2 = y..'–'..string.match(y+1, '%d%d$') --try 2010–11 type cats
if i == 1 then
local yHyph_2_special = (y-1)..'–'..string.match(y, '%d%d$') --try special case 2021 -> 2021–22
local catlinkHyph_2_special = catlinkfollowr( frame, firstpart..lspace..yHyph_2_special..tspace..BC..lastpart, yHyph_2_special )
if catlinkHyph_2_special.catexists and catlinkHyph_2_special.rtarget == nil then --exists & no #Rs
catlink = catlinkHyph_2_special --usurp
trackcat(27, 'Category series navigation year and range')
j = 1
elseif listall then
tlistall[#tlistall] = tlistall[#tlistall]..' (tried; not displayed)<sup>3</sup>'
end
end
if not (i == 1 and j == 1) then
local catlinkHyph_2 = catlinkfollowr( frame, firstpart..lspace..yHyph_2..tspace..BC..lastpart, yHyph_2 )
if catlinkHyph_2.catexists and catlinkHyph_2.rtarget == nil then --exists & no #Rs
catlink = catlinkHyph_2 --usurp
trackcat(27, 'Category series navigation year and range')
elseif listall then
tlistall[#tlistall] = tlistall[#tlistall]..' (tried; not displayed)<sup>4</sup>'
end
end
end
end
if catlink.rtarget then --#R followed; determine why
local r = catlink.rtarget
local c = catlink.cat
local year_regex = '%d%d%d%d[–-]?%d?%d?%d?%d?' --prioritize year/range stripping, e.g. for "2006 Super 14 season"
local hyph_regex = '%d%d%d%d[–-]%d+' --stricter
local num_regex = '%d+' --strip any number otherwise
local final_regex = nil --best choice goes here
if mw.ustring.match(r, year_regex) and mw.ustring.match(c, year_regex) then
final_regex = year_regex
elseif mw.ustring.match(r, num_regex) and mw.ustring.match(c, num_regex) then
final_regex = num_regex
end
if final_regex then
local r_base = mw.ustring.gsub(r, final_regex, '')
local c_base = mw.ustring.gsub(c, final_regex, '')
if r_base ~= c_base then
trackcat(19, 'Category series navigation year redirected (base change)') --acceptable #R target
elseif mw.ustring.match(r, hyph_regex) then
trackcat(20, 'Category series navigation year redirected (var change)') --e.g. "2008 in Scottish women's football" to "2008–09"
else
trackcat(21, 'Category series navigation year redirected (other)') --exceptions go here
end
else
trackcat(20, 'Category series navigation year redirected (var change)') --e.g. "V2 engines" to "V-twin engines"
end
end
table.insert(navlist, catlink.navelement)
else --OOB vs min/max
local hidden = '<span style="visibility:hidden">'..disp..'</span>'
table.insert(navlist, hidden)
if listall then
local dummy = catlinkfollowr( frame, firsttry, disp )
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
else --center navy
if parentBC then BCdisp = ' '..BCe end
table.insert(navlist, '<b>'..year..BCdisp..'</b>')
end
i = i + 1
end
--add the list
navy = navy..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navy..'</div>'
end
end
--[[==========================={{ nav_roman }}==============================]]
local function nav_roman( frame, firstpart, roman, lastpart, minimumrom, maximumrom )
local toarabic = require('Module:ConvertNumeric').roman_to_numeral
local toroman = require('Module:Roman').main
--sterilize/convert rom/num
local num = tonumber(toarabic(roman))
local rom = toroman({ [1] = num })
if num == nil or rom == nil then --out of range or some other error
errors = p.errorclass('Function nav_roman can\'t recognize one or more of "'..(num or 'nil')..'" & "'..
(rom or 'nil')..'" in category "'..firstpart..' '..roman..' '..lastpart..'".')
return p.failedcat(errors, 'R')
end
--sterilize min/max
local minrom = tonumber(minimumrom or '') or tonumber(toarabic(minimumrom or ''))
local maxrom = tonumber(maximumrom or '') or tonumber(toarabic(maximumrom or ''))
if minrom < 1 then minrom = 1 end --toarabic() returns -1 on error
if maxrom < 1 then maxrom = 9999 end --toarabic() returns -1 on error
if minrom > num then minrom = num end
if maxrom < num then maxrom = num end
--begin navroman
local navr = '<div class="toccolours categorySeriesNavigation-range">\n'
local navlist = {}
local i = -5 --nav position
while i <= 5 do
local n = num + i
if n >= 1 then
local r = toroman({ [1] = n })
if i ~= 0 then --left/right navr
local catlink = catlinkfollowr( frame, firstpart..' '..r..' '..lastpart, r )
if minrom <= n and n <= maxrom then
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(22, 'Category series navigation roman numeral redirected')
end
table.insert(navlist, catlink.navelement)
else
local hidden = '<span style="visibility:hidden">'..r..'</span>'
table.insert(navlist, hidden)
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
else --center navr
table.insert(navlist, '<b>'..r..'</b>')
end
else
table.insert(navlist, '<span style="visibility:hidden">I</span>')
end
i = i + 1
end
-- add the list
navr = navr..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navr..'</div>'
end
end
--[[=========================={{ nav_nordinal }}============================]]
local function nav_nordinal( frame, firstpart, ord, lastpart, minimumord, maximumord )
local nord = tonumber(ord)
local minord = tonumber(string.match(minimumord or '', '(-?%d+)[snrt]?[tdh]?')) or -9999 --allow full ord & +/- qualifier
local maxord = tonumber(string.match(maximumord or '', '(-?%d+)[snrt]?[tdh]?')) or 9999 --allow full ord & +/- qualifier
if string.match(minimumord or '', 'Ҳ. ҟ.') then minord = -math.abs(minord) end --allow BC qualifier (AD otherwise assumed)
if string.match(maximumord or '', 'Ҳ. ҟ.') then maxord = -math.abs(maxord) end --allow BC qualifier (AD otherwise assumed)
local temporal = string.match(lastpart, '-тәи ашәышықәса') or
string.match(lastpart, 'азқьышықәса')
local tspace = ' ' --assume a trailing space after ordinal
if string.match(lastpart, '^-') then tspace = '' end --DNE for "19th-century"-type cats
--AD/BC switches & vars
local ordBCElastparts = { --needed for parent = AD 1-5, when the BC/E format is unknown
--lists the lastpart of valid BCE cats
--"BCE" removed to match both AD & BCE cats; easier & faster than multiple string.match()s
['-century Hebrew people'] = 'Ҳ. ҟ.', --WP:CFD/Log/2016 June 21#Category:11th-century BC Hebrew people
['-century Jews'] = 'Ҳ. ҟ.', --co-nominated
['-century Judaism'] = 'Ҳ. ҟ.', --co-nominated
['-century rabbis'] = 'Ҳ. ҟ.', --co-nominated
['-century High Priests of Israel'] = 'Ҳ. ҟ.',
}
local parentBC = mw.ustring.match(lastpart, '(Ҳ. ҟ.?)%s') --"1st-century BC" format
local lastpartNoBC = mw.ustring.gsub(lastpart, 'Ҳ. ҟ.?%s', '') --easier than splitting lastpart up in 2; AD never used
local BCe = parentBC or ordBCElastparts[lastpartNoBC] or 'Ҳ. ҟ.' --"BC" default
local switchADBC = 1 -- 1=AD parent
if parentBC then switchADBC = -1 end -- -1=BC parent; possibly adjusted later
local O = 0 --secondary iterator for AD-on-a-BC-parent
if not temporal and minord < 1 then minord = 1 end --nothing before "1st parliament", etc.
if minord > nord*switchADBC then minord = nord*switchADBC end --input error; minord should be <= parent
if maxord < nord*switchADBC then maxord = nord*switchADBC end --input error; maxord should be >= parent
--begin navnordinal
local bnb = '' --border/no border
if navborder == false then --for Category series navigation decade and century
bnb = 'categorySeriesNavigation-range-transparent'
end
local navo = '<div class="toccolours categorySeriesNavigation-range '..bnb..'">\n'
local navlist = {}
local i = -5 --nav position
while i <= 5 do
local o = nord + i*switchADBC
local BC = ''
local BCdisp = ''
if parentBC then
if switchADBC == -1 then --parentBC looking at the BC side
if o >= 1 then --the common case
BC = ' '..BCe
elseif o == 0 then --switch to the AD side
BC = ''
switchADBC = 1
end
end
if switchADBC == 1 then --displayed o is now in the AD regime
O = O + 1 --skip o = 0 (DNE)
o = O --easiest solution: start another iterator for these AD o's displayed on a BC year parent
end
elseif o <= 0 then --parentAD looking at BC side
BC = ' '..BCe
o = math.abs(o - 1) --skip o = 0 (DNE)
end
if BC ~= '' and nord <= 5 then --only show 'BC' for parent ords <= 5: saves room, easier to read,
BCdisp = ' '..BCe --and 6 is the first/last nav ord that doesn't need a disambiguator;
end --the center/parent ord will always show BC, so no need to show it another 10x
--populate left/right navo
local oth = p.addord(o)
local osign = o --use o for display & osign for logic
if BC ~= '' then osign = -osign end
local hidden = '<span style="visibility:hidden">'..oth..'</span>'
if temporal then --e.g. "3rd-century BC"
local lastpart = lastpartNoBC --lest we recursively add multiple "BC"s
if BC ~= '' then
lastpart = string.gsub(lastpart, temporal, temporal..BC) --replace BC if needed
end
local catlink = catlinkfollowr( frame, firstpart..' '..oth..tspace..lastpart, oth..BCdisp )
if (minord <= osign) and (osign <= maxord) then
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(23, 'Category series navigation nordinal redirected')
end
table.insert(navlist, navcenter(i, catlink))
else
table.insert(navlist, hidden)
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
elseif BC == '' and minord <= osign and osign <= maxord then --e.g. >= "1st parliament"
local catlink = catlinkfollowr( frame, firstpart..' '..oth..tspace..lastpart, oth )
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(23, 'Category series navigation nordinal redirected')
end
table.insert(navlist, navcenter(i, catlink))
else --either out-of-range (hide), or non-temporal + BC = something might be wrong (2nd X parliament BC?); handle exceptions if/as they arise
table.insert(navlist, hidden)
end
i = i + 1
end
navo = navo..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navo..'</div>'
end
end
--[[========================={{ nav_wordinal }}=============================]]
local function nav_wordinal( frame, firstpart, word, lastpart, minimumword, maximumword, ordinal, frame )
--Module:ConvertNumeric.spell_number2() args:
-- ordinal == true : 'second' is output instead of 'two'
-- ordinal == false: 'two' is output instead of 'second'
local ord2eng = require('Module:ConvertNumeric').spell_number2
local eng2ord = require('Module:ConvertNumeric').english_to_ordinal
local th = 'th'
if not ordinal then
th = ''
eng2ord = require('Module:ConvertNumeric').english_to_numeral
end
local capitalize = nil ~= string.match(word, '^%u') --determine capitalization
local nord = eng2ord(string.lower(word)) --operate on/with lowercase, and restore any capitalization later
local lspace = ' ' --assume a leading space (most common)
local tspace = ' ' --assume a trailing space (most common)
if string.match(firstpart, '[%-%(]$') then lspace = '' end --DNE for "Straight-eight engines"-type cats
if string.match(lastpart, '^[%-%)]' ) then tspace = '' end --DNE for "Nine-cylinder engines"-type cats
--sterilize min/max
local minword = 1
local maxword = 99
if minimumword then
local num = tonumber(minimumword)
if num and 0 < num and num < maxword then
minword = num
else
local ord = eng2ord(minimumword)
if 0 < ord and ord < maxword then
minword = ord
end
end
end
if maximumword then
local num = tonumber(maximumword)
if num and 0 < num and num < maxword then
maxword = num
else
local ord = eng2ord(maximumword)
if 0 < ord and ord < maxword then
maxword = ord
end
end
end
if minword > nord then minword = nord end
if maxword < nord then maxword = nord end
--begin navwordinal
local navw = '<div class="toccolours categorySeriesNavigation-range">\n'
local navlist = {}
local i = -5 --nav position
while i <= 5 do
local n = nord + i
if n >= 1 then
local nth = p.addord(n)
if not ordinal then nth = n end
if i ~= 0 then --left/right navw
local w = ord2eng{ num = n, ordinal = ordinal, capitalize = capitalize }
local catlink = catlinkfollowr( frame, firstpart..lspace..w..tspace..lastpart, nth )
if minword <= n and n <= maxword then
if catlink.rtarget then --a {{Category redirect}} was followed
trackcat(24, 'Category series navigation wordinal redirected')
end
table.insert(navlist, catlink.navelement)
else
local hidden = '<span style="visibility:hidden">'..nth..'</span>'
table.insert(navlist, hidden)
if listall then
tlistall[#tlistall] = tlistall[#tlistall]..' ('..hidden..')'
end
end
else --center navw
table.insert(navlist, '<b>'..nth..'</b>')
end
else
table.insert(navlist, '<span style="visibility:hidden">'..'0'..th..'</span>')
end
i = i + 1
end
-- Add the list
navw = navw..horizontal(navlist)..'\n'
isolatedcat()
if listall then
return listalllinks()
else
return navw..'</div>'
end
end
--[[==========================={{ find_var }}===============================]]
local function find_var( pn )
--Extracts the variable text (e.g. 2015, 2015–16, 2000s, 3rd, III, etc.) from a string,
--and returns { ['vtype'] = <'year'|'season'|etc.>, <v> = <2015|2015–16|etc.> }
local pagename = currtitle.text
if pn and pn ~= '' then
pagename = pn
end
local cpagename = 'Акатегориа:'..pagename --limited-Lua-regex workaround
local d_season = mw.ustring.match(cpagename, ':(%d+-тәи ашықәсқәа).+%(%d+[–-]%d+%)') --i.e. "1760s in the Province of Quebec (1763–1791)"
local y_season = mw.ustring.match(cpagename, ':(%d+) .+%(%d+[–-]%d+%)') --i.e. "1763 establishments in the Province of Quebec (1763–1791)"
local e_season = mw.ustring.match(cpagename, '%s(%d+[–-])$') or --irreg; ending unknown, e.g. "Members of the Scottish Parliament 2021–"
mw.ustring.match(cpagename, '%s(%d+[–-]абранӡа)$') --e.g. "UK MPs 2019–present"
local season = mw.ustring.match(cpagename, '[:%s%(](%d+[–-]%d+)[%)%s]') or --split in 2 b/c you can't frontier '$'/eos?
mw.ustring.match(cpagename, '[:%s](%d+[–-]%d+)$')
local tvseason = mw.ustring.match(cpagename, 'season (%d+)') or
mw.ustring.match(cpagename, 'series (%d+)')
local nordinal = mw.ustring.match(cpagename, '[:%s](%d+%-тәи)[-%s]') or
mw.ustring.match(cpagename, '[:%s](%d+%-тәи)$')
local decade = mw.ustring.match(cpagename, '[:%s](%d+-тәи ашықәсқәа)[%s-]') or
mw.ustring.match(cpagename, '[:%s](%d+-тәи ашықәсқәа)$')
local year = mw.ustring.match(cpagename, '[:%s](%d%d%d%d)%s') or --prioritize 4-digit years
mw.ustring.match(cpagename, '[:%s](%d%d%d%d)$') or
mw.ustring.match(cpagename, '[:%s](%d+)%s') or
mw.ustring.match(cpagename, '[:%s](%d+)$') or
--expand/combine exceptions below as needed
mw.ustring.match(cpagename, '[:%s](%d+)-related') or
mw.ustring.match(cpagename, '[:%s](%d+)-cylinder') or
mw.ustring.match(cpagename, '[:%-VW](%d+)%s') --e.g. "Straight-8 engines"
local roman = mw.ustring.match(cpagename, '%s([IVXLCDM]+)%s')
local found = d_season or y_season or e_season or season or tvseason or
nordinal or decade or year or roman
if found then
if string.match(found, '%d%d%d%d%d') == nil then
--return in order of decreasing complexity/least chance for duplication
if nordinal and season --i.e. "18th-century establishments in the Province of Quebec (1763–1791)"
then return { ['vtype'] = 'nordinal', ['v'] = nordinal } end
if d_season then return { ['vtype'] = 'decade', ['v'] = d_season } end
if y_season then return { ['vtype'] = 'year', ['v'] = y_season } end
if e_season then return { ['vtype'] = 'ending', ['v'] = e_season } end
if season then return { ['vtype'] = 'season', ['v'] = season } end
if tvseason then return { ['vtype'] = 'tvseason', ['v'] = tvseason } end
if nordinal then return { ['vtype'] = 'nordinal', ['v'] = nordinal } end
if decade then return { ['vtype'] = 'decade', ['v'] = decade } end
if year then return { ['vtype'] = 'year', ['v'] = year } end
if roman then return { ['vtype'] = 'roman', ['v'] = roman } end
end
else
--try wordinals ('zeroth' to 'ninety-ninth' only)
local eng2ord = require('Module:ConvertNumeric').english_to_ordinal
local split = mw.text.split(pagename, ' ')
for i=1, #split do
if eng2ord(split[i]) > -1 then
return { ['vtype'] = 'wordinal', ['v'] = split[i] }
end
end
--try English numerics ('one'/'single' to 'ninety-nine' only)
local eng2num = require('Module:ConvertNumeric').english_to_numeral
local split = mw.text.split(pagename, '[%s%-]') --e.g. "Nine-cylinder engines"
for i=1, #split do
if eng2num(split[i]) > -1 then
return { ['vtype'] = 'enumeric', ['v'] = split[i] }
end
end
end
errors = p.errorclass('Function find_var can\'t find the variable text in category "'..pagename..'".')
return { ['vtype'] = 'error', ['v'] = p.failedcat(errors, 'V') }
end
--[[==========================================================================]]
--[[ Main ]]
--[[==========================================================================]]
function p.csn( frame )
--arg checks & handling
local args = frame:getParent().args
checkforunknownparams(args) --for template args
checkforunknownparams(frame.args) --for #invoke'd args
local cat = args['cat'] --'testcase' alias for catspace
local list = args['list-all-links'] --debugging utility to output all links & followed #Rs
local follow = args['follow-redirects'] --default 'yes'
local testcase = args['testcase']
local testcasegap = args['testcasegap']
local minimum = args['min']
local maximum = args['max']
local skip_gaps = args['skip-gaps']
local show = args['show']
if show and show ~= '' then
if show == 'skip-gaps' then return skipgaps_limit
elseif show == 'term-limit' then return term_limit
elseif show == 'hgap-limit' then return hgap_limit
elseif show == 'ygap-limit' then return ygap_limit end
end
--apply args
local pagename = testcase or cat or currtitle.text
local testcaseindent = ''
if testcasecolon == ':' then testcaseindent = '\n::' end
if follow and follow == 'no' then followRs = false end
if list and list == 'yes' then listall = true end
if skip_gaps and skip_gaps == 'yes' then
skipgaps = true
trackcat(26, 'Category series navigation using skip-gaps parameter')
end
--ns checks
if currtitle.nsText == 'Акатегориа' then
if cat and cat ~= '' then
trackcat(1, 'Category series navigation using cat parameter')
end
if testcase and testcase ~= '' then
trackcat(2, 'Category series navigation using testcase parameter')
end
elseif currtitle.nsText == '' then
trackcat(30, 'Category series navigation in mainspace')
end
--find the variable parts of pagename
local findvar = find_var(pagename)
if findvar.vtype == 'error' then --basic format error checking in find_var()
return findvar.v..table.concat(ttrackingcats)
end
local start = string.match(findvar.v, '^%d+')
--the rest is static
local findvar_escaped = string.gsub( findvar.v, '%-', '%%%-')
local firstpart, lastpart = string.match(pagename, '^(.-)'..findvar_escaped..'(.*)$')
if findvar.vtype == 'tvseason' then --double check for cases like "30 Rock (season 3) episodes"
firstpart, lastpart = string.match(pagename, '^(.-season )'..findvar_escaped..'(.*)$')
if firstpart == nil then
firstpart, lastpart = string.match(pagename, '^(.-series )'..findvar_escaped..'(.*)$')
end
end
firstpart = mw.text.trim(firstpart or '')
lastpart = mw.text.trim(lastpart or '')
--call the appropriate nav function, in order of decreasing popularity
if findvar.vtype == 'year' then --e.g. "500", "2001"; nav_year..nav_decade; ~75% of cats
local nav1 = nav_year( frame, firstpart, start, lastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats)
local dec = math.floor(findvar.v/10)
local decadecat = nil
local firstpart_dec = firstpart
if firstpart_dec ~= '' then
firstpart_dec = firstpart_dec..' the'
elseif firstpart_dec == 'AD' and dec <= 1 then
firstpart_dec = ''
if dec == 0 then dec = '' end
end
local decade = dec..'0-тәи ашықәсқәа '
decadecat = mw.text.trim( firstpart_dec..' '..decade..lastpart )
local exists = catexists(decadecat)
if exists then
navborder = false
trackcat(28, 'Category series navigation year and decade')
local nav2 = nav_decade( frame, firstpart_dec, decade, lastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats)
return wrap( nav1, nav2 )
elseif ttrackingcats[16] ~= '' then --nav_year isolated; check nav_hyphen (e.g. UK MPs 1974, Moldovan MPs 2009, etc.)
local hyphen = '–'
local finish = start
local nav2 = nav_hyphen( frame, start, hyphen, finish, firstpart, lastpart, minimum, maximum, testcasegap )..testcaseindent..table.concat(ttrackingcats)
if ttrackingcats[16] ~= '' then return wrap( nav1 ) --still isolated; rv to nav_year
else return wrap( nav2 ) end
else --regular nav_year
return wrap( nav1 )
end
elseif findvar.vtype == 'decade' then --e.g. "0s", "2010s"; nav_decade..nav_nordinal; ~12% of cats
local nav1 = nav_decade( frame, firstpart, start, lastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats)
local decade = tonumber(string.match(findvar.v, '^(%d+)-тәи ашықәсқәа'))
local century = math.floor( ((decade-1)/100) + 1 ) --from {{CENTURY}}
if century == 0 then century = 1 end --no 0th century
if string.match(decade, '00$') then
century = century + 1 --'2000' is in the 20th, but the rest of the 2000s is in the 21st
end
local clastpart = '-тәи ашәышықәса '..lastpart
local centurycat = mw.text.trim( firstpart..' '..p.addord(century)..clastpart )
local exists = catexists(centurycat)
if not exists then --check for hyphenated century
clastpart = '-тәи ашәышықәсазтәи '..lastpart
centurycat = mw.text.trim( firstpart..' '..p.addord(century)..clastpart )
exists = catexists(centurycat)
end
if exists then
navborder = false
trackcat(29, 'Category series navigation decade and century')
local nav2 = nav_nordinal( frame, firstpart, century, clastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats)
return wrap( nav1, nav2 )
else
return wrap( nav1 )
end
elseif findvar.vtype == 'nordinal' then --e.g. "1st", "99th"; ~7.5% of cats
return wrap( nav_nordinal( frame, firstpart, start, lastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats) )
elseif findvar.vtype == 'season' then --e.g. "1–4", "1999–2000", "2001–02", "2001–2002", "2005–2010", etc.; ~5.25%
local hyphen, finish = mw.ustring.match(findvar.v, '%d([–-])(%d+)') --ascii 150 & 45 (ndash & keyboard hyphen); mw req'd
return wrap( nav_hyphen( frame, start, hyphen, finish, firstpart, lastpart, minimum, maximum, testcasegap )..testcaseindent..table.concat(ttrackingcats) )
elseif findvar.vtype == 'tvseason' then --e.g. "1", "15" but preceded with "season" or "series"; <1% of cats
return wrap( nav_tvseason( frame, firstpart, start, lastpart, maximum )..testcaseindent..table.concat(ttrackingcats) ) --"minimum" defaults to 1
elseif findvar.vtype == 'wordinal' then --e.g. "first", "ninety-ninth"; <<1% of cats
local ordinal = true
return wrap( nav_wordinal( frame, firstpart, findvar.v, lastpart, minimum, maximum, ordinal, frame )..testcaseindent..table.concat(ttrackingcats) )
elseif findvar.vtype == 'enumeric' then --e.g. "one", "ninety-nine"; <<1% of cats
local ordinal = false
return wrap( nav_wordinal( frame, firstpart, findvar.v, lastpart, minimum, maximum, ordinal, frame )..testcaseindent..table.concat(ttrackingcats) )
elseif findvar.vtype == 'roman' then --e.g. "I", "XXVIII"; <<1% of cats
return wrap( nav_roman( frame, firstpart, findvar.v, lastpart, minimum, maximum )..testcaseindent..table.concat(ttrackingcats) )
elseif findvar.vtype == 'ending' then --e.g. "2021–" (irregular; ending unknown); <<<1% of cats
local hyphen, finish = mw.ustring.match(findvar.v, '%d([–-])present$'), -1 --ascii 150 & 45 (ndash & keyboard hyphen); mw req'd
if hyphen == nil then
hyphen, finish = mw.ustring.match(findvar.v, '%d([–-])$'), 0 --0/-1 are hardcoded switches for nav_hyphen()
end
return wrap( nav_hyphen( frame, start, hyphen, finish, firstpart, lastpart, minimum, maximum, testcasegap )..testcaseindent..table.concat(ttrackingcats) )
else --malformed
errors = p.errorclass('Failed to determine the appropriate nav function from malformed season "'..findvar.v..'". ')
return p.failedcat(errors, 'N')..table.concat(ttrackingcats)
end
end
return p
qsfdhcbxscylxc2kmnzvwdy0x3a4ety
Акатегориа:1940-тәи ашықәсқәа раан аполитика
14
39151
163526
157416
2026-04-10T23:23:07Z
Fraxinus.cs
8381
163526
wikitext
text/x-wiki
{{Commonscat|Politics in the {{Title year}}s}}
{{PoliticsDecadeCat}}
4ram8hkogwqnqj7dtre44ch6kakf2cv
Акатегориа:Амч ахархәара Европатәи атәылақәа рыла
14
39275
163577
162626
2026-04-11T01:03:25Z
Fraxinus.cs
8381
Удaлeнa [[Акатегориа:Ацәгьаура Европатәи атәылақәа рыла]]; Дoбaвлeнa [[Акатегориа:Ацәгьаура европатәи атәылақәа рыла]] [[ВП:HC|HotCat]] ацхыраарала
163577
wikitext
text/x-wiki
{{аконтеинер акатегориа}}
[[Акатегориа:Ауаажәларра европатәи атәылақәа рыла| мч ахархәара]]
[[Акатегориа:Европа иҟоу амч ахархәара| тәылақәа]]
[[Акатегориа:Ацәгьаура европатәи атәылақәа рыла| мч ахархәара]]
71g2qf4x195nzmtu0nz4utz06sfbli0
Акатегориа:Ацәгьаура европатәи атәылақәа рыла
14
39276
163580
162629
2026-04-11T01:04:16Z
Fraxinus.cs
8381
Fraxinus.cs переименовал страницу [[Акатегориа:Ацәгьаура Европатәи атәылақәа рыла]] в [[Акатегориа:Ацәгьаура европатәи атәылақәа рыла]] без оставления перенаправления
162629
wikitext
text/x-wiki
{{аконтеинер акатегориа}}
{{DEFAULTSORT:цәгьаура Европатәи атәылақәа рыла}}
[[Акатегориа:Европа иҟоу ацәгьаура| тәылақәа]]
[[Акатегориа:Ауаажәларра европатәи атәылақәа рыла| цәгьаура]]
qh4qublqm6tqhuxyjifmw382nz4ncik
Акатегориа:Амч ахархәара Азиатәи атәылақәа рыла
14
39278
163581
162640
2026-04-11T01:04:44Z
Fraxinus.cs
8381
Удaлeнa [[Акатегориа:Ацәгьаура Азиатәи атәылақәа рыла]]; Дoбaвлeнa [[Акатегориа:Ацәгьаура азиатәи атәылақәа рыла]] [[ВП:HC|HotCat]] ацхыраарала
163581
wikitext
text/x-wiki
{{аконтеинер акатегориа}}
[[Акатегориа:Ауаажәларра азиатәи атәылақәа рыла| мч ахархәара]]
[[Акатегориа:Азиа иҟоу амч ахархәара| тәылақәа]]
[[Акатегориа:Ацәгьаура азиатәи атәылақәа рыла| мч ахархәара]]
seccep4n7sqj7ag6m55enu7tj2leat7
Акатегориа:Ацәгьаура азиатәи атәылақәа рыла
14
39282
163582
162643
2026-04-11T01:04:55Z
Fraxinus.cs
8381
Fraxinus.cs переименовал страницу [[Акатегориа:Ацәгьаура Азиатәи атәылақәа рыла]] в [[Акатегориа:Ацәгьаура азиатәи атәылақәа рыла]] без оставления перенаправления
162643
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{CatAutoTOC}}
{{DEFAULTSORT:цәгьаура Азиатәи атәылақәа рыла}}
[[Акатегориа:Азиа иҟоу ацәгьаура| тәылақәа]]
[[Акатегориа:Ауаажәларра азиатәи атәылақәа рыла| цәгьаура]]
lw3o2sie4x6rpy8hg8270qf5va9zifo
Акатегориа:Урыстәылаҿы иҟоу ацәгьаура
14
39311
163578
139787
2026-04-11T01:03:46Z
Fraxinus.cs
8381
163578
wikitext
text/x-wiki
{{Commonscat|Crime in Russia}}
{{Cat main}}
{{CatAutoTOC}}
[[Акатегориа:Урыстәыла ауаажәларра|цәгьаура]]
[[Акатегориа:Урыстәылаҿы иҟоу азинхьчаратә усура|цәгьаура]]
[[Акатегориа:Ацәгьаура атәылақәа рыла]]
[[Акатегориа:Ацәгьаура азиатәи атәылақәа рыла]]
[[Акатегориа:Ацәгьаура европатәи атәылақәа рыла]]
kexlh4aalutcklz541air7a6ycymmof
Акатегориа:Аконфликтқәа ажәашықәсақәа рыла
14
41423
163514
149947
2026-04-10T22:51:04Z
Fraxinus.cs
8381
Fraxinus.cs переименовал страницу [[Акатегориа:Аконфликтқәа ажәашықәсқәа рыла]] в [[Акатегориа:Аконфликтқәа ажәашықәсақәа рыла]] без оставления перенаправления
149947
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:конфликтқәа ажәашықәсқәа рыла}}
[[Акатегориа:Аконфликтқәа аамҭақәа рыла| жәашықәсқәа]]
[[Акатегориа:Акатегориақәа ажәашықәсақәа рыла]]
[[Акатегориа:Ахҭысқәа ажәашықәсқәа рыла]]
3jg5nudrprqypd9o7v5f3jxywg8sznt
Акатегориа:20-тәи ашәышықәсазтәи аконфликтқәа ажәашықәсқәа рыла
14
41436
163515
142854
2026-04-10T22:51:18Z
Fraxinus.cs
8381
Удaлeнa [[Акатегориа:Аконфликтқәа ажәашықәсқәа рыла]]; Дoбaвлeнa [[Акатегориа:Аконфликтқәа ажәашықәсақәа рыла]] [[ВП:HC|HotCat]] ацхыраарала
163515
wikitext
text/x-wiki
{{Category series navigation}}
[[Акатегориа:20-тәи ашәышықәсазтәи аконфликтқәа| жәашықәсқәа]]
[[Акатегориа:Аконфликтқәа ажәашықәсақәа рыла| ]]
6mkoncgx6m7vvzxospt0qysjny3okqo
Ашаблон:Category header political movements in
10
41869
163559
143646
2026-04-11T00:18:40Z
Fraxinus.cs
8381
163559
wikitext
text/x-wiki
<includeonly>{{#ifeq: {{{commons}}} | false || {{Commonscat|Political movements in {{iso2country|{{{1}}}|article=yes}}}}
}}
Ари акатегориа аҵанакуеит '''{{lcfirst:{{PAGENAME}}}}'''.
{{#ifexist:{{PAGENAME}}|{{Cat main}}}}
[[Акатегориа:{{if|eq|{{iso2continent|{{{1}}}}}|Аҩадатәи Америка|Аҩада-америка|{{if|eq|{{iso2continent|{{{1}}}}}|Аладатәи Америка|Алада-америка|{{iso2continent|{{{1}}}}}}}}}тәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа|{{iso2country|{{{1}}}|mode=sort}}]]
[[Акатегориа:{{iso2continent|{{{1}}}|2nd=yes}}тәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа|{{iso2country|{{{1}}}|mode=sort}}]]
[[Акатегориа:Аполитикатә ҵысрақәа атәылақәа рыла]]
[[Акатегориа:{{iso2country|{{{1}}}|article=yes}} аполитика|ҵысрақәа]]
</includeonly><noinclude>
[[Акатегориа:Ашаблонқәа:Аполитикеи аиҳабыреи ркатегориа ахқәа]]
</noinclude>
pp3yq2esf5gzo52pxrlj6zl6ebdulic
163560
163559
2026-04-11T00:40:33Z
Fraxinus.cs
8381
163560
wikitext
text/x-wiki
<includeonly>{{#ifeq: {{{commons}}} | false || {{Commonscat|Political movements in {{iso2country|{{{1}}}|article=yes}}}}
}}
Ари акатегориа аҵанакуеит '''{{lcfirst:{{PAGENAME}}}}'''.
{{#ifexist:{{PAGENAME}}|{{Cat main}}}}
[[Акатегориа:{{#ifeq: {{iso2continent|{{{1}}}}}|Аҩадатәи Америка|Аҩада-америка|{{#ifeq:{{iso2continent|{{{1}}}}}|Аладатәи Америка|Алада-америка|{{iso2continent|{{{1}}}}}}}}}тәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа|{{iso2country|{{{1}}}|mode=sort}}]]
[[Акатегориа:{{iso2continent|{{{1}}}|2nd=yes}}тәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа|{{iso2country|{{{1}}}|mode=sort}}]]
[[Акатегориа:Аполитикатә ҵысрақәа атәылақәа рыла]]
[[Акатегориа:{{iso2country|{{{1}}}|article=yes}} аполитика|ҵысрақәа]]
</includeonly><noinclude>
[[Акатегориа:Ашаблонқәа:Аполитикеи аиҳабыреи ркатегориа ахқәа]]
</noinclude>
apm0o450018qswc9xdjckdn6bgng5ie
163561
163560
2026-04-11T00:41:43Z
Fraxinus.cs
8381
163561
wikitext
text/x-wiki
<includeonly>{{#ifeq: {{{commons}}} | false || {{Commonscat|Political movements in {{iso2country|{{{1}}}|article=yes}}}}
}}
Ари акатегориа аҵанакуеит '''{{lcfirst:{{PAGENAME}}}}'''.
{{#ifexist:{{PAGENAME}}|{{Cat main}}}}
[[Акатегориа:{{#ifeq: {{iso2continent|{{{1}}}}}|Аҩадатәи Америка|Аҩада-америка|{{#ifeq:{{iso2continent|{{{1}}}}}|Аладатәи Америка|Алада-америка|{{iso2continent|{{{1}}}}}}}}}тәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа|{{iso2country|{{{1}}}|mode=sort}}]]
[[Акатегориа:{{#ifeq: {{iso2continent|{{{1}}}|2nd=yes}}|Аҩадатәи Америка|Аҩада-америка|{{#ifeq:{{iso2continent|{{{1}}}|2nd=yes}}|Аладатәи Америка|Алада-америка|{{iso2continent|{{{1}}}|2nd=yes}}}}}}тәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа|{{iso2country|{{{1}}}|mode=sort}}]]
[[Акатегориа:Аполитикатә ҵысрақәа атәылақәа рыла]]
[[Акатегориа:{{iso2country|{{{1}}}|article=yes}} аполитика|ҵысрақәа]]
</includeonly><noinclude>
[[Акатегориа:Ашаблонқәа:Аполитикеи аиҳабыреи ркатегориа ахқәа]]
</noinclude>
e2uvlesj7zmalr69eojhxkhdefuhdbo
Акатегориа:20-тәи ашәышықәсазы Франциа ашықәсқәа рыла
14
48348
163535
156104
2026-04-10T23:33:08Z
Fraxinus.cs
8381
163535
wikitext
text/x-wiki
{{Navseasoncats}}
{{Category TOC custom|1900|1920|1940|1960|1980|2000}}
[[Акатегориа:{{Title country}} {{Title century}}-тәи ашәышықәсазтәи аҭоурых|шықәсқәа]]
[[Акатегориа:{{Title country}} аҭоурых ашықәсқәа рыла]]
[[Акатегориа:{{Title century}}-тәи ашәышықәса ашықәсқәа атәылақәа рыла|{{Title country}}]]
[[Акатегориа:{{Title century}}-тәи ашәышықәсазы {{Country2continent|{{Title country}}}} ашықәсқәа рыла|{{Title country}}]]
m6g9farr6pyzyppgxszs89ccyhghyy3
Акатегориа:20-тәи ашәышықәсазы Еиду Америкатәи Аштатқәа ашықәсқәа рыла
14
48460
163533
156299
2026-04-10T23:32:24Z
Fraxinus.cs
8381
163533
wikitext
text/x-wiki
{{Navseasoncats}}
{{Category TOC custom|1900|1920|1940|1960|1980|2000}}
[[Акатегориа:{{Title country}} {{Title century}}-тәи ашәышықәсазтәи аҭоурых|шықәсқәа]]
[[Акатегориа:{{Title country}} рҭоурых ашықәсқәа рыла]]
[[Акатегориа:{{Title century}}-тәи ашәышықәса ашықәсқәа атәылақәа рыла|{{Title country}}]]
[[Акатегориа:{{Title century}}-тәи ашәышықәсазы {{Country2continent|{{Title country}}}} ашықәсқәа рыла|{{Title country}}]]
idzzg0r9z314u505hbnzstlz5kg9bct
Ашаблон:Decade conflicts category header/core
10
49070
163516
160019
2026-04-10T22:52:01Z
Fraxinus.cs
8381
163516
wikitext
text/x-wiki
<includeonly><!--
##### Header text
-->{{Category explanation|'''[[{{#if:{{{bc}}}|Ҳ. ҟ.}} {{Decade link|{{title decade}}}}]]''' раан аконфликтқәа ауп}}<!--
##### Navigation
-->{{Category series navigation|skip-gaps={{#if:{{{bc}}}|no|yes}}}}<!--
-->{{#ifeq:{{{decade}}}|{{CURRENTDECADE}}|{{see also|Ицо абџьаршьҭыхлатәи аконфликтқәа рсиа}}}}<!--
##### Categories
-->[[Акатегориа:{{#if:{{{bc}}}|Ҳ. ҟ.}} {{Century name from title decade}}зтәи аконфликтқәа{{!}}{{#if:{{{bc}}}|-|0}}]]
{{#ifexist:Акатегориа:{{{decade}}}-тәи ашықәсқәа раан аибашьратә ҭоурых<!--
-->|[[Акатегориа:{{{decade}}}-тәи ашықәсқәа раан аибашьратә ҭоурых{{!}}конфликтқәа]]<!--
-->|[[Акатегориа:{{{decade}}}-тәи ашықәсқәа{{!}}конфликтқәа]]<!--
-->}}
[[Акатегориа:Аконфликтқәа ажәашықәсақәа рыла{{!}}{{#if: {{{bc}}}<!--
-->|{{#expr: 10000 - {{{decade}}}}}<!--
-->|{{{decade}}}<!--
-->}}]]<!--
--></includeonly><!--
--><noinclude><!--
-->{{Documentation|content=Ари [[Ашаблон:Decade conflicts category header]] асубшаблон ауп}}<!--
--></noinclude>
moh31rfe48pqlp4jqj108zhqb7wqisi
Акатегориа:20-тәи ашәышықәсазы Урыстәыла ашықәсқәа рыла
14
49298
163534
157781
2026-04-10T23:32:56Z
Fraxinus.cs
8381
163534
wikitext
text/x-wiki
{{Navseasoncats}}
[[Акатегориа:{{Title country}} {{Title century}}-тәи ашәышықәсазтәи аҭоурых|шықәсқәа]]
[[Акатегориа:{{Title country}} аҭоурых ашықәсқәа рыла]]
[[Акатегориа:{{Title century}}-тәи ашәышықәса ашықәсқәа атәылақәа рыла|{{Title country}}]]
[[Акатегориа:{{Title century}}-тәи ашәышықәсазы {{Country2continent|{{Title country}}}} ашықәсқәа рыла|{{Title country}}]]
[[Акатегориа:{{Title century}}-тәи ашәышықәсазы {{Country2continent|{{Title country}}|2nd=yes}} ашықәсқәа рыла|{{Title country}}]]
fin1rfmttxtl281ehzwtgotcvolipp5
Акатегориа:Куба аибашьрақәа
14
49599
163566
160573
2026-04-11T00:48:49Z
Fraxinus.cs
8381
163566
wikitext
text/x-wiki
{{Commons category|Wars involving Cuba}}
[[Акатегориа:Аибашьрақәа атәылақәа рыла]]
[[Акатегориа:{{Title country}} арратә усмҩаԥгатәқәа|аибашьрақәа]]
[[Акатегориа:{{Title country}} адәныҟатәи аполитика|аибашьрақәа]]
[[Акатегориа:{{Title country}} иҟалаз антропогентә машәырцәгьақәа|аибашьрақәа]]
[[Акатегориа:{{Title country}} арбџьармчқәа|аибашьрақәа]]
[[Акатегориа:{{Country2continental|{{Title country}}}} атәылақәа реибашьрақәа]]
ityalxtz97n4sl2i15lwocl4wk1coqd
Акатегориа:Франциа иҟоу ацәгьаура
14
50415
163579
159826
2026-04-11T01:04:02Z
Fraxinus.cs
8381
Удaлeнa [[Акатегориа:Ацәгьаура Европатәи атәылақәа рыла]]; Дoбaвлeнa [[Акатегориа:Ацәгьаура европатәи атәылақәа рыла]] [[ВП:HC|HotCat]] ацхыраарала
163579
wikitext
text/x-wiki
{{Commons category|Crime in France}}
{{Cat main}}
[[Акатегориа:{{Title country}} ауаажәларра|цәгьаура]]
[[Акатегориа:Ацәгьаура атәылақәа рыла]]
[[Акатегориа:Ацәгьаура европатәи атәылақәа рыла]]
6ybevay52fzsd8grf9beyd9n7lfplgk
Алахәыла:Сариа/Наполеон Бонапарт
2
51426
163494
163115
2026-04-10T13:14:30Z
Сариа
24723
163494
wikitext
text/x-wiki
{{Акарточка аполитик|ахатәы хьӡы=Napulione Buonaparte,
Napoleone di Buonaparte|аира арыцхә=нанҳәамза 15, 1769 ш.|аԥсра арыцхә=лаҵарамза 5, 1821 ш.|аԥсра зыхҟьаз=аца акьыба|атәылауаҩра=Франциа|аԥҳәыс=Жозефина Богарне (1796 ш.–1809 ш.),
Мария-Луиза Австрийская (1810 ш.–1821 ш.)|ацынхаҩы=Мария Валевская,
Полин Фуре,
Emilie Kraus von Wolfsberg,
Elisabeth de Vaudey,
Элеонора Денюэль де ла Плень,
Джузеппина Грассини,
Альбина де Монтолон|ани аби=Летиция Рамолино,
Карло Буонапарте|ахәыҷқәа=Наполеон II,
Шарль Леон,
Александр Жозеф Флориан Колонна-Валевский,
Ойген Мегерле фон Мюльфельд,
Жюль Бартелеми Сен-Илер|ауацәа=Элиза Бонапарт, Людовик I Бонапарт, Каролина Бонапарт, Полина Бонапарт, Жозеф Бонапарт , Люсьен Бонапарт , Жером Бонапарт и безымянная дочь, Бонапарте (ашьцәеи аиаҳәшьцәеи), Камилло Боргезе (брат мужа или жены), Стефания Богарне (приёмная дочь), Евгений Богарне (приёмный сын), Наполеон III (племянник)|анхарҭа=остров Святой Елены (1815 ш.–1821 ш.), Аяччо (1769 ш.–1779 ш.), Париж (1792 ш.–1814 ш.)и Эльба (1814 ш.–1815 ш.)|алма-матер=Военная школа|аусура=аполитик,
аҳәынҭқарратә усзуҩы,
афицар,
арҿиамҭақәа реизгаҩ,
аимператор,
асуверен,
арратә активист,
ар рԥыза,
аҳ,
ар рфицар|адин=акатоликра адеизм|анашьамҭақәа=кавалер ордена Слона
орден Вюртембергской короны
орден Верности
орден Серафимов
орден Людвига|абызшәақәа=Афранцыз бызшәа,
корсиканский язык|аԥсыжра аҭыԥ=Собор Святого Людовика Дома Инвалидови Долина Могилы|ахьӡ=Наполеон Бонапарт|афото=Andrea Appiani, , Kaiserliche Schatzkammer Wien - Napoleon I. Bonaparte (1769-1821) als König von Italien - GG 2346 - Kunsthistorisches Museum.jpg|анаԥынҵамҭа=Napoleon signature.svg}}
'''Наполео́н I Бонапа́рт''' ({{lang-fr|Napoléon Bonaparte}} {{IPA|[napoleˈɔ̃ bɔnɑˈpaʁt]}}, {{lang-co|Napulione Buonaparte}}, {{lang-it|Napoleone Buonaparte}}; [[15 августа]] [[1769 год|1769]], [[Аяччо]], [[Корсика]] — [[5 мая]] [[1821 год|1821]], [[Лонгвуд (остров Святой Елены)|Лонгвуд]], [[остров Святой Елены]]) — [[император французов]] ({{lang-fr|Empereur des Français}}) в 1804—1814 и 1815 годах, [[полководец]] и государственный деятель, заложивший основы современного [[Франция|французского государства]], один из наиболее выдающихся деятелей в истории [[Западный мир|Запада]]<ref name=":0">{{cite web|title=Napoleon I|url=https://www.britannica.com/biography/Napoleon-I|publisher=Britannica|access-date=2017-05-29|lang=en|archive-date=2018-01-12|archive-url=https://web.archive.org/web/20180112122322/https://www.britannica.com/biography/Napoleon-I|url-status=live}}</ref>.
'''Наполеон I Бонапарт''' ({{lang-fr|Napoléon Bonaparte}}. [napoleˈɔ bɔnɑˈpaˈt], {{lang-co|Napulione Buonaparte}}, {{lang-it|Napoleone Buonaparte}}; [[нанҳәамза 15]], [[1769]], [[Аиаччо]], [[Корсика]] — [[лаҵарамза 5]], [[1821]], [[Лонгвуд]], [[Ацқьа Елена лыдгьылбжьаха]]) — [[афранцызцәа римператор]] ([[афр]]. Empereur des Français) 1804-1814, 1815 ашықәсқәа рзы, ҳаамҭазтәи [[афранцыз ҳәынҭқарра]] ашьаҭа зкыз [[ар рԥыза]], аҳәынҭқарратә усзуҩы, [[Мраҭашәара]] <ref name=":0" /> аҭоурых аҿы еиҳа иналукааша аусзуҩцәа дыруаӡәкуп.
Наполеоне Буонапарте (так на корсиканский манер он называл себя до 1796 года){{sfn|Чандлер|2011|с=31}} свою профессиональную военную службу начал в 1785 году в чине младшего лейтенанта артиллерии. В период [[Великая французская революция|Великой французской революции]] достиг чина [[Бригадный генерал|бригадного генерала]] после [[Осада Тулона|взятия Тулона]] 18 декабря 1793 года. При [[Директория (Франция)|Директории]] стал [[Дивизионный генерал|дивизионным генералом]] и командующим военными силами тыла после того, как сыграл ключевую роль в разгроме мятежа [[Вандемьерский мятеж|13 вандемьера]] 1795 года. 2 марта 1796 года был назначен командующим [[Первая Итальянская кампания|Итальянской армией]]. В 1798—1799 годах возглавлял военную [[Египетский поход|экспедицию в Египет]]{{переход|Военная карьера}}.
Наполеон Буонапарте (ус ихы иазиҳәон 1796 шықәсанӡа){{sfn|Чандлер|2011|с=31}} ипрофессионалтә арратә маҵзура хациркит 1785 шықәсазы артиллериа алеитенант еиҵбы ичын иманы. [[Афранцыз револиуциа Ду]] ашықәсқәа рзы, ԥхынҷкәын 18 1793 шықәсазы, Тулон анырга ашьҭахь [[абригадатә еинрал]] ичын иоуит. [[Вандемьер 13]] 1795 шықәсазтәи аҿагылара аилаԥыххаараҿы ихадоу ароль анынаигӡа ашьҭахь, Адиректориаҿы адивизиатә еинралс, иара убас атыл арратә мчрақәа ркомандаҟаҵаҩыс дҟалеит. Хәажәкырамза 2, 1796 шықәсазы [[Италиатәи ар]] ркомандаҟаҵаҩыс дҟаҵан. 1798-1799 ашықәсқәа рзы Египетҟа арратә експедициа напхгара аиҭон.
В ноябре 1799 года (18 [[брюмер]]а) произвёл [[переворот 18 брюмера|государственный переворот]] и стал [[Французский консулат|первым консулом]]. В последующие годы провёл ряд политических и административных реформ и постепенно достиг [[Диктатура|диктаторской власти]]{{переход|Консульство}}.
1799 шықәса абҵарамзазы ([[Бриумер]] 18) [[аҳәынҭқарратә еиҭакра]] ҟаиҵеит, [[раԥхьатәи консулны]] дҟалеит. Анаҩстәи ашықәсқәа рзы аполитикатәи административтәи реформақәа мҩаԥганы, хәыҷы-хәыҷла [[адиктатортә мчра]] аҟынӡа днаӡеит.
18 мая 1804 года был провозглашён [[Первая империя|императором]]. Победоносные [[Наполеоновские войны]], особенно [[Война третьей коалиции|австрийская кампания]] 1805 года, [[Война четвёртой коалиции|прусская и польская кампании]] 1806—1807 годов, [[Война пятой коалиции|австрийская кампания]] 1809 года способствовали превращению Франции в главную державу на континенте. Однако неудачное соперничество Наполеона с «владычицей морей» [[Соединённое королевство Великобритании и Ирландии|Великобританией]] не позволяло этому статусу полностью закрепиться{{переход|Провозглашение империи}}.
Лаҵарамза 18, 1804 шықәсазы [[императорс]] дҟаҵан. Ақәҿирақәа змаз [[Наполеон иеибашьрақәа]], еиҳаракгьы 1805 шықәсазтәи [[Австриатәи акампаниа]], 1806-1807 шықәсқәа рызтәи [[Пруссиатәии Польшатәии акампаниақәа]], 1809 шықәсазтәи [[Австриатәи акампаниа]] Франциа аконтинент аҿы ҳәынҭқарра хаданы аҟаҵара иацхрааит. Аха Наполеони «амшынқәа раҳкәажә» [[Британиаду|Британиа Дуи]] иманшәаламхаз реиндаҭлара ари астатус инагӡаны аҽышьақәнарӷәӷәартә алнаршомызт.
Поражение Наполеона I в [[Отечественная война 1812 года|войне 1812 года]] против [[Российская империя|Российской империи]] привело к формированию антифранцузской коалиции европейских держав. Проиграв [[Битва народов|Битву народов]] под [[Лейпциг]]ом, Наполеон уже не мог противостоять объединённой армии союзников. После вступления войск коалиции в Париж отрёкся от престола 6 апреля 1814 года и отправился в ссылку на [[Эльба (остров)|остров Эльба]]{{переход|Кризис империи}}.
1812 шықәсазы Наполеон I Урыстәылатәи аимпериеи реибашьраҿы данаҵаха, Европатәи аҳәынҭқаррақәа афранцызҿагыларатә коалициа шьақәдыргылеит. Наполеон [[Леипциг]] амҵан [[Ажәларқәа реибашьра]] данаҵаха, адгылаҩцәа еидҵоу рыр шьҭа дзырҿагыломызт. Акоалициа ар Париж ианалала ашьҭахь, мшаԥы 6, 1814 шықәсазы аҳра мап ацәкны [[Ельба адгьылбжьахахь]] дцеит.
Вернулся на французский престол в марте 1815 года (на [[сто дней]]). Поражение [[Битва при Ватерлоо|при Ватерлоо]] вынудило императора [[Второе отречение Наполеона|во второй раз отречься от престола]] 22 июня 1815 года{{переход|Сто дней}}.
Афранцызтә тәарҭахь дхынҳәит 1815 шықәса хәажәкырамзазы ([[шәымш]]). [[Ватерлоо]] аибашьраҿы данаҵаха, аимператор [[аҩынтә раан аҳра мап ацәикыр акәхеит]]. Уи ҟалеит ԥхынгәы 22, 1815 шықәсазы.
Свои последние годы прожил на [[остров Святой Елены|острове Святой Елены]] в плену у англичан, где и скончался от [[Рак желудка|рака желудка]]. Его прах с 1840 года находится в [[Дом инвалидов|Доме инвалидов]] в [[Париж]]е.{{Переход|Остров Святой Елены}}
Аҵыхәтәантәи ашықәсқәа рзы [[Иԥшьоу-Елена лыдгьылбжьахаҿы]] дынхон, уаҟа ауп [[аца акьыбачымазара]] иахҟьаны иԥсҭазаара дахьалҵызгьы. Уи инышәнап 1840 шықәса раахыс [[Париж]] [[Аинвалидцәа рыҩны]] аҿы иҟоуп.
== Заатәи ашықәсқәа ==
=== Ахылҵшьҭра ===
{{main|Семья Наполеона}}
Наполеон диит 1769 шықәсазы нанҳәа 15 рзы, [[Корсика]] адгьылбжьахаҿы иҟоу [[Аиаччо]] ақалақь аҿы, [[Карло Мариа Буонапарти]] [[Мариа Летициа Рамолинои]] рҭаацәараҿы. Корсика акыр аамҭа [[Генуатәи Аҳәынҭқарра]] анапхгара аҵаҟа иҟан. 1755 шықәсазы Корсика Генуатәи аҳратәра аҟынтәи ахақәиҭра аиуит, убри аамҭа инаркны [[ихьыԥшым ҳәынҭқаррак]] аҳасабала аҭыԥантәи адгьыл зтәыз [[Паскуале Паоли]] инапхгара аҵаҟа иҟан, уи ицхырааҩ гәакьа Наполеон иаб иакәын.
[[Файл:Carlo Maria Bonaparte.jpg|thumb|left|129px|[[Карло Буонапарте]]. [[Жироде-Триозон, Анн-Луи|Жироде-Триозон]] (1806)]]
1768 шықәсазы Генуатәи Аҳәынҭқарра Корсика азинқәа Франциатәи аҳ [[Лиудовик XV]] 40 миллион ливр ҳәа инаҭеит. 1769 шықәса лаҵарамзазы [[Понте-Нуово аибашьраҿы]] Франциатәи ар Корсикатәи ақәгылаҩцәа ириааит. Паоли 340-ҩык ицнагаҩцәеи иареи Англиаҟа нхара ицеит. Наполеон иани иаби Корсика иаанхеит; иара ихаҭа диит абарҭ ахҭысқәа рышьҭахь хымз анҵы. Паоли 1790-тәи ашықәсқәа рҟынӡа иара изы дҿырԥшыганы дыҟан{{sfn|Тюлар||с=32—34}}{{sfn|Roberts|2014|p=4}}.
{{часть изображения|изобр=Letizia Bonaparte by Robert Lefèvre.jpg|позиция=|подпись=[[Летиция Рамолино]]. [[Лефевр, Робер|Робер Лефевр]] (1813)|ширина=150|общая=168|верх=9|право=12|низ=9|лево=10}}
Буонапарте аҭаацәара аристократиа маҷ иреиуан; Наполеон иабдуцәа ҭоурыхла [[Флоренциа]] инхон, 1529 шықәса инаркны Корсика инхон. Наполеон иаб, [[Карло Буонапарте]], аӡбаратә еилатәаҩыс аус иуан, насгьы амазаразы игәылацәа аӡбаратә ус рыҭаны, есышықәса 22, 5-нызқь ливр иоуаз ахашәалахәы еизирҳарц иҽазишәон{{sfn|Roberts|2014|p=18}}. Наполеон иан, [[Мариа Летициа Рамолино]], даара дԥшӡан, амчхара лыман; Карлои лареи рҭаацәара аԥҵара еиҿыркааит рҭаацәа. Корсикатәи аҳәаақәеи амҩақәеи рзы зыԥсҭазаара иалҵхьаз аинспектор хада иԥҳа лаҳасабала, Летициа лхаҵа изаалгеит аихраҵага дуи асоциалтә статуси {{sfn|Broers|2014|p=37}}{{sfn|Roberts|2014|p=6}}. Наполеон 13-ҩык ахәыҷқәа рҟынтәи аҩбатәи иакәын, урҭ рахьынтә хәҩык ишыхәыҷқәаз рыԥсҭазаара иалҵит. Наполеон ихаҭа ида, ԥшьҩык иашьцәеи хҩык иаҳәшьцәеи рҭәымҭахь инеит{{sfn|Roberts|2014|p=7}}:
* [[Жозеф Бонапарт|Жозеф]] (1768—1844)
* [[Люсьен Бонапарт|Лиусиен]] (1775—1840)
* [[Элиза Бонапарт|Елиза]] (1777—1820)
* [[Луи Бонапарт|Луи]] (1778—1846)
* [[Полина Бонапарт|Полина]] (1780—1825)
* [[Каролина Бонапарт|Каролина]] (1782—1839)
* [[Жером Бонапарт|Жером]] (1784—1860)
Аиразы аршаҳаҭгаҿы иаб ижәла "Буонапарте" ҳәа ишыҟазгьы, ахәыҷы "Бонапарте" ҳәа дҭаҩын. Иани иаби ирҭаз ахьӡ Наполеоне лассы-лассы иуԥыло иҟамызт: уи 1478 шықәсазы [[Макиавелли, Никколо|Никколо Макиавелли]] иҩымҭа «[[Флоренциа аҭоурых]]» аҿы иуԥылоит; убасҵәҟьа уи иабдуцәа руаӡәк ихьӡын{{sfn|Roberts|2014|p=3}}.
=== Ахәыҷреи аҿареи ===
[[Файл:Ajaccio MN1JPG.jpg|thumb|150px|[[Дом-музей Бонапартов|Casa Buonaparte]] — Наполеон иҩны]]
Наполеон ихәыҷраамҭа иазкны иаҳдыруа маҷуп. Данхәыҷыз иара аимҳәа даргәаҟуан, иҟалап уи [[аимҳәаду]] акәын . Иани иашьа еиҳаби [[Жозеф]] изларҳәо ала, Наполеон ирацәаны даԥхьон, еиҳарак аҭоурыхтә литература. Аҩны ахԥатәи аихагылаҿы уада хәыҷык иԥшааит, уантәи лассы-лассы дылбаауамызт, аҭаацәаратә крыфарақәа бжьаижьуан. Наполеон ԥыҭрак ашьҭахь иҳәеит раԥхьаӡа акәны [[Руссо]] иҩымҭа «[[Елоиза Ҿыц]]» жәашықәса анихыҵуаз дшаԥхьаз. Аха, ас еиԥш иҟоу ихьысҳау [[аинтроверт]] ихаҿсахьа иақәшәом даныхәыҷыз "Troublemaker" ( [[Аиталиа бызшәа|аитал.]] «Rabulione» ){{sfn|Roberts|2014|p=8}} ҳәа ирҭаз ахьӡ ҷыда.
Наполеон ихатәы бызшәа [[Аиталиа бызшәа|Аиталиан бызшәа]] [[корсикатәи адиалект]] акәын. Иара аиталиан бызшәала аԥхьашьеи аҩышьеи иҵеит алагарҭатә школ аҿы, жәашықәса анихыҵуаз ауп [[афранцыз бызшәа]] аҵара даналага. Иԥсы ҭанаҵы аиталиантәи акцент ӷәӷәа иманы дцәажәон{{sfn|Roberts|2014|p=8}}. Карло Буонапартеи афранцызцәеи русеицуреи Корсика агубернатор аграф [[де Марбеф]] идгылареи рыбзоурала, Карло Буонапарте ҩыџьа иԥацәа Жозефи Наполеони рзы аҳратә [[стипендиақәа]] раиура илшеит. 1777 шықәсазы Карло Корсикатәи аамсҭцәа рҟынтәи Парижҟа депутатс далхын{{sfn|Roberts|2014|p=5}}. 1778 шықәсазы [[Версальҟа]] данцоз, ҩыџьа иԥацәеи, [[Екстәи]] асеминариаҿы астипендиа зауз [[иабхәында]] [[Фешгьы]] игеит. Жозефи Наполеони аамҭала [[Отион]] ақалақь аҿы иҟаз [[арратә лицеи]] иҭарҵеит, еиҳарак афранцыз бызшәа рҵарц азы{{sfn|Чандлер|2011|с=34}}{{sfn|Тюлар||с=35}}. Наполеон алицеи аҿы хымз ихигеит, убри аамҭа иалагӡаны иаб Бриенна ақалақь аҿы иҟаз акадеттә школ ахь диаргартә иҟаиҵеит (Аҳратә стипендиа аиуразы аамысҭашәаратә хылҵшьҭра ашьақәырӷәӷәара аҭахын)<ref>{{книга
| автор = [[Кастело, Андре|André Castelot]]
| часть =
| заглавие =
| оригинал = I. Bonaparte & II. Napoléon
| язык = fr
| ссылка =
| издание =
| ответственный =
| место =
| издательство = Librairie Académique Perrin
| год = 1967 & 1968
| том = 1,2
| страницы = 10
| страниц =
| isbn =
}}</ref>.
[[Файл:Napoleon16Jahre.jpg|150px|thumb|left|Наполеон 16 шықәса анихыҵуаз (рисунок [[итальянский карандаш|чёрным мелом]] неизвестного автора)]]
1779 шықәса лаҵарамзазы Наполеон [[Бриенн-ле-Шато]] ақалақь аҿы иҟаз [[акадеттә школ]] (аколлеџь) дҭалеит {{sfn|Тюлар||с=35}}. Наполеон аколлеџь аҿы аҩызцәа имамызт, избан акәзар иара иҭаацәара рацәак ибеиамызт, ихатәрамызт, уи адагьы иара дпатриот дуун, насгьы Корсика атәтәҩцәа раҳасабала афранцызцәа ргәаӷ икын. Италиатәи ихьӡ иахҟьаны, иқәлацәа "Аԥынҵа иҭоу ачаз" ҳәа ихьӡырҵеит ( [[Афранцыз бызшәа|афр.]] La-paille-au-nez ). Иҩызцәа шьоукы аҵәы иахьилырхуаз иахҟьаны, иара иҽыԥхьеикит, аԥхьара еиҳаны аамҭа иазикыр акәхеит. Иара дрыԥхьон [[Корнеил]], [[Расин]], [[Вольтер]], зегь реиҳа бзиа иибоз апоет [[Оссиан]] иакәын{{sfn|Roberts|2014|p=13}}. Наполеон еиҳарак [[аматематикеи]] аҭоурыхи бзиа ибон, [[антикатә аамҭақәеи]], [[Алеқсандр Македонски|Александр Ду]], [[Гаи Иулии Цезар|Иули Цезарь]] реиԥш иҟоу аҭоурыхтә хаҿсахьақәеи дрызҿлымҳан. Наполеон аматематика, [[аҭоурых]], [[агеографиа]] рҿы ҷыдала ақәҿиарақәа иоуит; аха [[Алаҭын бызшәа|алаҭын бызшәеи]] [[Алман бызшәа|агерман бызшәеи]] рҿы дыԥсыҽын . Уи адагьы, аҩраҿы агхақәа рацәаны ҟаиҵон, аха аԥхьара бзиа иахьибоз иабзоураны, истиль акырӡа еиӷьхеит. Рҵаҩцәақәаки иареи рыбжьара аимак-аиҿак иқәлацәа рыбжьара деицырдыруа дҟанаҵеит, насгьы хәыҷы-хәыҷла урҭ рнапхгаҩыс дҟалеит{{sfn|Чандлер|2011|с=34}}{{sfn|Roberts|2014|p=11}}{{sfn|Манфред|1987|с=15}}.
Бриенна даныҟаз Наполеон иӡбеит артиллериа дазҟазахарц. Ари арратә ҟәшаҿы иматематикатә баҩхатәра ихәон, насгьы ара ихылҵшьҭра иахьмырԥшыкәа акариеразы алшара дуқәа иоуан. Аушьҭратә ԥышәарақәа аниҭи ашьҭахь, жьҭаара 1784 шықәсазы Наполеон [[Парижтәи арратә школ]] даанахәеит{{sfn|Чандлер|2011|с=35}}{{sfn|Манфред|1987|с=15}}{{ref+|В тот год на поступление в Парижскую военную школу претендовало 202 выпускника кадетских школ, из которых лишь 136 прошли финальный экзамен и лишь 14 человек поступили по классу артиллерии{{sfn|Roberts|2014|p=16}}.|К}}. Уаҟа иара иҵон аматематика, аԥсабаратә ҭҵаарадыррақәа, аҽықәтәашьа, [[арратә техника]], [[атактика]], иара убас [[Гиберти]] [[Грибовали]] русумҭақәа дрыԥхьеит. Паолии Корсикеи џьашьахәыс иахьыҟаиҵоз, насгьы Франциа иахьицәымӷыз рыла ирҵаҩцәа иршанхон{{sfn|Roberts|2014|p=15—16}}. Иара дзаҵәын, аҩызцәа имамызт, аха аӷацәа иман. Наполеони [[Пиккар де Фелиппои]] рыбжьара итәаз [[Пико де Пикадиу]] иҭыԥ аҟынтәи дыбналеит, избан акәзар имаӡаз реиқәԥарақәа раан иара еснагь иқәшәон{{sfn|Манфред|1987|с=30}}.
Иааидкыланы Наполеон Корсика дыҟамызт аа-шықәса раҟара. [[Франциа]] аҵара ахьиҵоз иахьҟьаны дыфранцызны дҟалеит — дшыхәыҷыз арахь нхара диасит, насгьы акыр шықәса ара ихигеит, усҟантәи аамҭазы Франциатәи [[акультуратә]] нырра Европа иалалеит, насгьы ишьақәгылоз [[афранцызтә хаҭара]] даараӡа иугәаԥхаратәы иҟан {{sfn|Roberts|2014|p=10}}.
== Военная карьера ==
=== Начало карьеры ===
{{также|Осада Тулона|Вандемьерский мятеж}}
[[Файл:Henri Félix Emmanuel Philippoteaux - Portrait of Napoleon Bonaparte.jpg|thumb|200px|Наполеон в 1792 году. Портрет [[Филиппото, Феликс-Эмманюэль-Анри|Феликса-Эмманюэля-Анри Филиппото]] (1834)]]
В 1782 году Карло Мария Буонапарте получил [[Концессия|концессию]] и королевский грант на создание питомника ({{lang-fr|pépinière}}) [[Шелковица|тутовых деревьев]]. Спустя три года парламент Корсики отозвал концессию, якобы из-за невыполнения её условий. При этом на семье Буонапарте остались большие долги и обязательство вернуть грант{{sfn|Roberts|2014|p=18}}{{sfn|Gueniffey|2015|p=72}}. 24 февраля 1785 года отец умер{{sfn|Dictionnaire|1999|loc=t. 1|p=273}}{{sfn|Тюлар||с=36}}, и Наполеон взял на себя роль главы семьи, хотя по правилам это должен был сделать его старший брат [[Жозеф Бонапарт|Жозеф]]. 28 сентября того же года он досрочно окончил образование и 3 ноября начал свою профессиональную карьеру в артиллерийском [[1-й артиллерийский полк (Франция)|полку де Ла Фер]] в [[Валанс]]е в чине младшего лейтенанта артиллерии{{sfn|Чандлер|2011|с=35—36}} (офицерский патент был датирован 1 сентября, чин был окончательно подтверждён 10 января 1786 года после трёхмесячного испытательного срока){{sfn|Itinéraire|2002|p=24—28}}{{sfn|Dictionnaire|1999|loc=t. 2|p=378}}.
Расходы и судебные тяжбы из-за питомника совершенно расстроили финансовые дела семьи. В сентябре 1786 года Наполеон испросил отпуск с сохранением содержания, который затем дважды продлевался по его просьбе{{sfn|Тюлар||с=37}}. Во время отпуска Наполеон пытался уладить дела семьи, в том числе ездил в Париж{{sfn|Roberts|2014|p=18}}{{ref+|К этому времени относится запись Наполеона, описывающая его встречу с проституткой в парке [[Пале-Рояль]], с которой он, видимо, потерял девственность{{sfn|Roberts|2014|p=22}}{{sfn|Dictionnaire|1999|loc=t. 2|p=380}}.|К}}. В июне 1788 года он возвращается на военную службу и едет в [[Осон (Кот-д’Ор)|Осон]], куда был переведён его полк. Чтобы помочь матери, ему приходилось отправлять ей часть своего жалованья. Жил чрезвычайно бедно, питался один раз в день, однако старался не показывать своего удручающего материального положения{{sfn|Чандлер|2011|с=37—39}}. В том же году Наполеон предпринял попытку записаться на хорошо оплачиваемую офицерскую службу в [[Русская императорская армия|Русскую императорскую армию]], набиравшую иностранных добровольцев для [[русско-турецкая война (1787—1791)|войны с Османской империей]]. Однако по поступившему накануне распоряжению набор иностранцев производился лишь с понижением чина, что Наполеона не устроило<ref>{{cite web|url=http://histrf.ru/biblioteka/book/kak-napolieon-chut-nie-stal-russkim-ofitsierom|title=Как Наполеон чуть не стал русским офицером|date=2017-08-28|publisher=Сайт «История России»|access-date=2017-08-28|archive-date=2017-08-28|archive-url=https://web.archive.org/web/20170828232325/http://histrf.ru/biblioteka/book/kak-napolieon-chut-nie-stal-russkim-ofitsierom|url-status=live}}</ref>. Существует свидетельство и об обращении Наполеона в 1789 году с подобной просьбой и отказе ему на сходном же основании. Исследовавший этот вопрос [[Шереметев, Павел Сергеевич|П. Шереметев]] не нашёл прямых данных намерения Наполеона поступить на русскую службу, но на основании имеющихся свидетельств счёл его вполне возможным<ref>{{статья|автор=[[Шереметев, Павел Сергеевич|П. Шереметев]]|заглавие=Бонапарт и русские в 1789 году и о Заборовском|выпуск=4|год=1910|издание=Летопись Историко-родословного общества в Москве|страницы=3, 4, 19|ссылка=http://elib.shpl.ru/ru/nodes/42992-vyp-4-24#mode/inspect/page/5/zoom/4|archive-date=2023-03-25|archive-url=https://web.archive.org/web/20230325142922/http://elib.shpl.ru/ru/nodes/42992-vyp-4-24#mode/inspect/page/5/zoom/4}}</ref>.
В апреле 1789 года Наполеон был отправлен как заместитель командира в [[Сёр]] на подавление голодного бунта{{sfn|Roberts|2014|p=26}}. [[Великая французская революция|Французская революция]], начавшаяся в июле со [[Взятие Бастилии|взятием Бастилии]], заставила Наполеона выбирать между преданностью корсиканской свободе и его французской самоидентичностью. Впрочем, проблемы с питомником занимали его в то время больше, чем разворачивавшиеся политические потрясения{{sfn|Roberts|2014|p=27}}. Хотя Наполеон участвовал в подавлении мятежей, он был одним из ранних сторонников [[Бретонский клуб|Общества друзей конституции]]. В Аяччо его брат [[Люсьен Бонапарт|Люсьен]] примкнул к клубу [[якобинцы|якобинцев]]. В августе 1789 года, вновь получив отпуск по болезни, Буонапарте отправился на родину, где пробыл следующие восемнадцать месяцев и активно участвовал вместе со своими братьями в местной политической борьбе на стороне революционных сил. Наполеон и [[Саличети, Кристоф|Саличетти]], депутат [[Учредительное собрание (1789—1791)|Учредительного собрания]], поддержали превращение Корсики в [[Департаменты Франции|департамент Франции]]. Паоли, рассматривая это как упрочение власти Парижа, протестовал из эмиграции{{sfn|Roberts|2014|p=29—30}}. В июле 1790 года Паоли вернулся на остров и повёл дело к отделению от Франции. Буонапарте, напротив, оставались лояльны к центральным революционным властям, одобряя непопулярную на Корсике [[Национальные имущества|национализацию церковного имущества]]{{sfn|Roberts|2014|p=32—33}}.
[[Файл:Bonaparte in Garrison at Auxonne.jpg|thumb|200px|Наполеон и его брат [[Людовик Бонапарт|Луи]] в [[Осон (Кот-д’Ор)|Осоне]]. Худ. [[Бревиль, Жак Онфруа де|Жак де Бревиль]] (1910)]]
В феврале 1791 года Наполеон вернулся на службу, взяв с собой младшего брата [[Людовик Бонапарт|Луи]] (за учёбу которого он платил из своего жалованья, спать Луи приходилось на полу). 1 июня 1791 года был повышен до лейтенанта (со старшинством с 1 апреля) и переведён обратно в Валанс{{sfn|Itinéraire|2002|p=42}}{{sfn|Roberts|2014|p=34—35}}. В августе того же года он опять получил отпуск на Корсику (на четыре месяца, с условием, что если он не вернётся до 10 января 1792 года, то будет считаться [[Дезертирство|дезертиром]]){{sfn|Roberts|2014|p=36}}. Прибыв на Корсику, Наполеон вновь окунулся в политику и был избран подполковником в формирующуюся [[Национальная гвардия|Национальную гвардию]]{{ref+|Чтобы гарантировать своё избрание, Наполеон организовал травлю оппонентов и похищение одного из трёх наблюдателей в день выборов. Политическая борьба на Корсике и раньше отличалась жёсткостью, но этот приём вызвал недовольство Паоли. Однако Наполеона поддержал Саличетти, так что результаты выборов были подтверждены{{sfn|Roberts|2014|p=37}}.|К}}. В Валанс он так и не вернулся. Вступив в конфликт с Паоли, в мае 1792 года уехал в Париж в распоряжение военного министерства. В июне получил чин капитана (хотя Наполеон настаивал, чтобы ему подтвердили чин подполковника, полученный в Национальной гвардии). С момента поступления на службу в сентябре 1785 года до сентября 1792 года Наполеон провёл в отпуске в общей сложности около четырёх лет{{sfn|Dictionnaire|1999|loc=t. 2|p=378}}. В Париже Наполеон был свидетелем событий [[Демонстрация 20 июня 1792 года|20 июня]], [[Восстание 10 августа 1792 года|10 августа]] и [[Сентябрьские убийства|2 сентября]], поддерживал свержение короля, но высказывался неодобрительно о его слабости и нерешительности его защитников{{sfn|Roberts|2014|p=37ff}}.
В октябре 1792 года Наполеон вернулся на Корсику к своим обязанностям подполковника Национальной гвардии{{sfn|Roberts|2014|p=40}}. Первый боевой опыт Буонапарте — участие в экспедиции на острова [[Ла-Маддалена (архипелаг)|Маддалена]] и [[Санто-Стефано (остров, Сардиния)|Санто-Стефано]], принадлежавшие [[Сардинское королевство|Сардинскому королевству]], в феврале 1793 года. Десант, высаженный с Корсики, был очень быстро разгромлен, при этом командовавший небольшой артиллерийской батареей из двух пушек и [[Мортира|мортиры]] капитан Буонапарте отличился: он приложил максимум усилий для спасения орудий, хотя их всё же пришлось бросить на берегу{{sfn|Тюлар||с=47}}{{sfn|Itinéraire|2002|p=54—55}}.
В том же 1793 году [[Паоли, Паскаль|Паоли]] был обвинён перед [[Национальный конвент|Конвентом]] в стремлении добиться независимости Корсики от республиканской Франции. В обвинениях участвовал брат Наполеона [[Люсьен Бонапарт|Люсьен]]. В результате произошёл окончательный разрыв между семьёй Буонапарте и Паоли. Буонапарте открыто выступили против курса Паоли на полную независимость Корсики и, ввиду угрозы политического преследования, в июне 1793 года переехали всей семьёй во Францию{{sfn|Тюлар||с=47—48}}. В том же месяце Паоли признал [[Георг III (король Великобритании)|Георга III]] королём Корсики{{sfn|Roberts|2014|p=44}}.
Наполеон получил назначение в революционную [[Итальянская армия (Франция)|Итальянскую армию]], затем в [[Южная армия (Франция)|Армию Юга]]. В конце июля он написал выдержанный в якобинском духе памфлет «[[Ужин в Бокере]]» ({{lang-fr|«Le Souper de Beaucaire»}}), который был опубликован с помощью комиссаров Конвента [[Саличети, Кристоф|Саличети]] и [[Робеспьер, Огюстен Бон Жозеф де|младшего Робеспьера]] и создал автору репутацию революционно настроенного солдата{{sfn|Roberts|2014|p=45—46}}{{sfn|Ленц|2003|с=17}}.
[[Файл:Napoleon à Toulon par Edouard Detaille.jpg|thumb|right|200px|Наполеон в Тулоне. Худ. [[Детайль, Жан Батист Эдуард|Э. Детайль]] (XIX век)]]
В сентябре 1793 года Бонапарт прибыл в армию, осаждавшую [[Тулон]], занятый англичанами и роялистами. В октябре получил должность [[батальон]]ного командира (соответствовало чину [[майор]]а). В Тулоне он заразился [[Чесотка|чесоткой]], которая мучила его в последующие годы{{sfn|Gueniffey|2015|p=190}}{{ref+|Чесотка перешла в экзему, от которой спасали только многочасовые горячие ванны. Лишь в 1802 году [[Корвизар, Жан-Никола|Корвизар]] сумел избавить Наполеона от болезни{{sfn|Gueniffey|2015|p=691}}{{sfn|Roberts|2014|p=49}}.|К}}. Назначенный начальником артиллерии, в декабре Бонапарт осуществил блестящую [[осада Тулона|военную операцию]]. Тулон был взят, а сам он в 24 года получил от комиссаров Конвента звание [[Бригадный генерал|бригадного генерала]]. Новый чин был присвоен ему 22 декабря 1793 года, а в феврале 1794 года — утверждён Конвентом{{sfn|Тюлар||с=53—54}}{{sfn|Чандлер|2011|с=46—51}}.
Получив 7 февраля назначение на пост главного артиллериста Итальянской армии, Наполеон участвовал в пятинедельной кампании против [[Сардинское королевство|королевства Пьемонт]], познакомился с командованием Итальянской армии и театром военных действий, направил в военное министерство предложения по организации наступления в Италии{{sfn|Чандлер|2011|с=53—55}}. В начале мая Наполеон вернулся в [[Ницца|Ниццу]] и [[Антиб]] для подготовки военной экспедиции на Корсику. Тогда же стал ухаживать за [[Дезире Клари]], шестнадцатилетней дочерью покойного миллионера, торговца тканью и мылом. В августе 1794 года [[Клари, Жюли|старшая сестра]] Дезире вышла замуж за Жозефа Буонапарте, принеся с собой приданое в 400 тыс. ливров (что, наконец, решило финансовые проблемы семьи Буонапарте){{sfn|Roberts|2014|p=53}}.
После [[Термидорианский переворот|термидорианского переворота]] Бонапарт из-за своих связей с младшим Робеспьером был арестован (9 августа{{ref+|Согласно Тюлару, Ленцу и Робертсу — 9 августа{{sfn|Тюлар||с=56}}{{sfn|Ленц|2003|с=18}}{{sfn|Roberts|2014|p=55}}, согласно Тарле — 10 августа{{sfn|Тарле|1959|с=34}}, согласно Чандлеру — 6 августа. На самом деле 6 августа был датирован приказ об аресте, подписанный среди прочих Саличетти. Формальным предлогом для ареста послужила проверка обстоятельств секретной миссии в Геную, куда Наполеон ездил по приказу [[Рикор, Жан Франсуа|Рикора]]{{sfn|Чандлер|2011|с=56}}{{sfn|Gueniffey|2015|p=160—161}}.|К}} 1794 года, на две недели){{sfn|Itinéraire|2002|p=74}}. После освобождения продолжил подготовку к отвоеванию Корсики у Паоли и британцев. 3 (по другим данным 11) марта 1795 года Наполеон в составе экспедиции из 15 кораблей и 16 900 солдат отплыл из Марселя, однако эта флотилия скоро была рассеяна британской эскадрой{{sfn|Itinéraire|2002|p=77—78}}{{sfn|Roberts|2014|p=57}}.
Весной того же года получил назначение в [[Вандея|Вандею]] на усмирение [[Вандейский мятеж|мятежников]]. Прибыв в Париж 25 мая, Наполеон узнал, что ему назначили командовать пехотой, тогда как он был артиллеристом. Буонапарте отказался принять назначение, сославшись на состояние здоровья{{sfn|Roberts|2014|p=57}}. В июне Дезире прекратила отношения с ним, по мнению Э. Робертса, под влиянием своей матери, которая считала, что одного Буонапарте в семье вполне достаточно{{sfn|Roberts|2014|p=59}}. Находясь на половинном содержании, Наполеон продолжает писать военному министру [[Карно, Лазар|Карно]] письма касательно действий Итальянской армии. В отсутствие каких-либо перспектив он даже рассматривал возможность поступить на службу в [[Британская Ост-Индская компания|Ост-Индскую компанию]]. Имея много свободного времени, посещал «[[Кафе де ля Режанс]]», где с [[Наполеон Бонапарт и шахматы|увлечением играл в шахматы]]<ref>{{книга|автор=Гижицкий, Ежи|заглавие=С шахматами через века|место=Варшава|издательство=Sport i Turystyka|год=1970|страниц=360|страницы=197—198}}</ref>. В августе 1795 года военное министерство потребовало от него пройти медицинскую комиссию, чтобы подтвердить болезнь. Обратившись к своим политическим связям, Наполеон получил должность в топографическом отделении [[Комитет общественного спасения|Комитета общественного спасения]]{{sfn|Тарле|1959|с=34}}{{sfn|Чандлер|2011|с=56}}, игравшем на тот момент роль штаба французской армии. 15 сентября он был исключён из списка действующих генералов за отказ ехать в Вандею, однако практически сразу же восстановлен{{sfn|Itinéraire|2002|p=82}}{{sfn|Roberts|2014|p=61}}.
[[Файл:13Vendémiaire.jpg|thumb|Мятежников расстреливают из пушек на паперти [[Церковь святого Роха (Париж)|церкви св. Роха]]. [[Монне, Шарль|Ш. Монне]] (XIX век)]]
В критический для термидорианцев момент Наполеон был назначен [[Баррас, Поль|Баррасом]] его помощником и отличился при разгоне [[Вандемьерский мятеж|роялистского мятежа]] в Париже 5 октября 1795 года (Наполеон на улицах столицы применил артиллерийскую картечь против толп мятежников), был произведён в чин дивизионного генерала и назначен командующим войсками тыла{{sfn|Тарле|1959|с=38—40}}{{sfn|Чандлер|2011|с=61}}. Выпущенный в 1785 году из Парижской военной школы в армию в чине младшего лейтенанта, Буонапарте за 10 лет прошёл всю иерархию чинопроизводства в армии тогдашней Франции.
В 10 часов вечера 9 марта 1796 года Буонапарте сочетался [[Гражданский брак|гражданским браком]] с вдовой казнённого при якобинском терроре генерала [[Богарне, Александр де|графа Богарне]], [[Жозефина Богарне|Жозефиной]], бывшей любовницей одного из тогдашних правителей Франции — [[Баррас, Поль|Барраса]]. Свидетелями на свадьбе были Баррас, адъютант Наполеона [[Лемаруа, Жан Леонор Франсуа|Лемаруа]], [[Тальен, Жан-Ламбер|муж]] и [[Тальен, Тереза|жена]] Тальен и дети невесты — [[Богарне, Евгений|Евгений]] и [[Богарне, Гортензия|Гортензия]]. Жених опоздал на свадьбу на два часа, будучи очень занят новым назначением{{sfn|Roberts|2014|p=71}}. Свадебным подарком Барраса молодому генералу некоторые считают должность командующего Итальянской армией республики (назначение состоялось 2 марта{{sfn|Чандлер|2011|с=62}}{{sfn|Ленц|2003|с=19}} 1796 года), но предложил Буонапарте на эту должность [[Карно, Лазар|Карно]]{{sfn|Тюлар||с=64—65}}. 11 марта Наполеон выехал к армии. В письме Жозефине, написанном в дороге, он пропустил букву «у» (''u'') в своей фамилии, превратив итальянское «Буонапарте» (''Buonaparte'') во французское «Бонапарт» (''Bonaparte''), офранцузив таким образом свою фамилию, и этим сознательно подчеркнув, что отдаёт французскому в себе предпочтение перед итальянским и корсиканским{{sfn|Roberts|2014|p=72}}.
=== Итальянская кампания ===
{{main|Итальянская кампания (1796—1797)}}
[[Файл:Gros, Antoine-Jean, baron - Napoleon Bonaparte on the Bridge at Arcole.jpg|thumb|150px|left|[[Гро, Антуан Жан|Антуан Жан Гро]]. [[Наполеон Бонапарт на Аркольском мосту]] (1796—1797)]]
Приняв начальство над армией, Бонапарт нашёл её в тяжёлом материальном положении. Жалованье не выплачивалось, амуниция и припасы почти не подвозились. Наполеону удалось частично решить эти проблемы, в том числе ценой настоящей войны с недобросовестными армейскими поставщиками, но он понимал, что нужно перейти на территорию противника и организовать снабжение армии за её счёт{{sfn|Broers|2014|p=118—119}}.
Свой операционный план Бонапарт основал на быстроте действий и на сосредоточении сил против неприятелей, придерживавшихся [[Кордонная система расположения войск|кордонной стратегии]] и несоразмерно растянувших свои войска. Сам он, напротив, придерживался стратегии «центральной позиции», при которой его дивизии находились в пределах суточного марша друг от друга{{sfn|Roberts|2014|p=132}}. Уступая союзникам в численности, он сосредоточил свои войска для решающих сражений и получал в них численный перевес{{sfn|Roberts|2014|p=82}}{{sfn|Левицкий|1938|с=77}}. Быстрым наступлением в ходе {{iw|Кампания Монтенотте|кампании Монтенотте|en|Montenotte Campaign}} в апреле 1796 года ему удалось разобщить войска сардинского генерала [[Колли-Марчи, Микеланджело Алессандро|Колли]] и австрийского генерала [[Больё, Жан-Пьер|Больё]] и нанести им поражение поочерёдно{{sfn|Broers|2014|p=119}}{{sfn|Левицкий|1938|с=76—77}}.
Сардинский король, испуганный успехами французов, заключил с ними 28 апреля перемирие, которое предоставило Бонапарту несколько городов и свободный переход через реку [[По (река)|По]]. 7 мая он переправился через эту реку, и до конца мая очистил от австрийцев почти всю Северную Италию. Герцоги [[Герцогство Парма|Пармский]] и [[Герцогство Модена|Моденский]] принуждены были заключить перемирие, купленное значительной суммой денег; с [[Милан]]а была тоже взята огромная контрибуция в 20 млн франков{{sfn|Broers|2014|p=121—122}}{{sfn|Левицкий|1938|с=78}}. Владения [[Папа Римский|папы римского]] были наводнены французскими войсками; ему пришлось заплатить 21 млн франков контрибуции и предоставить французам значительное число произведений искусства{{sfn|Левицкий|1938|с=82}}.
С момента своего отъезда из Парижа Наполеон забрасывал Жозефину письмами, просил приехать к нему. Однако в это время в Париже Жозефина увлеклась молодым офицером [[Шарль, Ипполит|Ипполитом Шарлем]]. В письмах Жозефина объясняла задержку беременностью, в конце мая она совсем перестала отвечать на мольбы Наполеона, приведя того в отчаяние. Наконец, в июне Жозефина выехала в Италию в сопровождении того же Ипполита Шарля, [[Жозеф Бонапарт|Жозефа]] и [[Жюно, Жан Андош|Жюно]]{{sfn|Roberts|2014|p=107}}. Однако эти события не мешали Наполеону руководить армией, так как одним из его талантов была способность полностью отделять свои личные проблемы от профессиональной сферы деятельности: «Я закрываю один ящик и открываю другой» — говорил он{{sfn|Roberts|2014|p=103}}.
В руках австрийцев оставались лишь крепость [[Мантуя]] и цитадель Милана. Мантуя была осаждена 3 июня. 29 июня пала Миланская цитадель{{sfn|Чандлер|2011|с=98}}. Новая австрийская армия [[Вурмзер, Дагоберт Зигмунд|Вурмзера]], прибывшая из [[Тироль (историческая область)|Тироля]], не могла поправить положения дел; после ряда неудач сам Вурмзер с частью своих сил принуждён был запереться в Мантуе, которую перед тем тщетно пытался освободить от осады. В ноябре в Италию были двинуты новые войска под начальством [[Альвинци, Йозеф|Альвинци]] и [[Давидович, Павле|Давидовича]]. В результате [[Бой при Арколе|боёв при Арколе]] 15—17 ноября Альвинци вынужден был отступить{{sfn|Fremont-Barnes|2010|p=11}}. Наполеон выказал личный героизм, возглавив одну из атак на Аркольский мост со знаменем в руках. Его адъютант [[Мюирон, Жан-Батист|Мюирон]] погиб, прикрывая его своим телом от вражеских пуль{{sfn|Манфред|1987|с=136}}.
[[Файл:Napoleon at the Battle of Rivoli.jpg|thumb|left|Бонапарт в [[Битва при Риволи|битве при Риволи]]. [[Филиппото, Феликс-Эмманюэль-Анри|Филиппото]] (1845)]]
После [[Битва при Риволи|битвы при Риволи]] 14—15 января 1797 года австрийцы были окончательно оттеснены из Италии, понеся огромные потери. Положение Мантуи, где свирепствовали повальные болезни и голод, сделалось отчаянным, 2 февраля Вурмзер капитулировал. 17 февраля Бонапарт двинулся на [[Вена|Вену]]. Ослабленные и расстроенные войска австрийцев уже не могли оказывать ему упорного сопротивления. К началу апреля французы находились лишь в 100 километрах от австрийской столицы, однако силы Итальянской армии также были на исходе. 7 апреля было заключено перемирие, 18 апреля начались [[Леобенский договор|мирные переговоры]] в [[Леобен]]е{{sfn|Fremont-Barnes|2010|p=11}}{{sfn|Тюлар||с=68}}.
В то время, пока шли мирные переговоры, Бонапарт проводил собственную военную и административную линию, не считаясь с инструкциями, которые направляла ему Директория. Использовав как предлог восстание, начавшееся 17 апреля в [[Верона|Вероне]], 2 мая он объявил войну [[Венецианская республика|Венеции]], а 15 мая занял её войсками. 29 июня объявил самостоятельность [[Цизальпинская республика|Цизальпинской республики]], составленной из Ломбардии, Мантуи, [[Модена|Модены]] и некоторых других смежных владений; в это же время была оккупирована Генуя, наименованная [[Лигурийская республика|Лигурийской республикой]]{{sfn|Тюлар||с=70}}. Проявив свой гений в глубоком понимании механизмов пропаганды, Наполеон методично использовал победы армии для создания [[Политический капитал|политического капитала]]. 17 июля начал выходить «Курьер Итальянской армии», за ним последовали «Франция глазами Итальянской армии» и «Журнал Бонапарта и добродетельных людей». Эти газеты широко распространялись не только в армии, но и в самой Франции{{sfn|Тюлар||с=69}}{{sfn|Dictionnaire|1999|loc=t. 2|p=175}}.
В результате своих побед Наполеон получил значительную военную добычу, которую он щедро распределял между своими солдатами, не забыв при этом себя и членов своей семьи. Часть средств была направлена Директории, находившейся в отчаянном финансовом положении. Наполеон оказал Директории прямую военную поддержку накануне и в ходе событий [[Переворот 18 фрюктидора|18 фрюктидора]] (3—4 сентября), раскрыв предательство [[Пишегрю, Шарль|Пишегрю]] и направив в Париж [[Ожеро, Пьер-Франсуа-Шарль|Ожеро]]. 18 октября в [[Кампоформидо|Кампо-Формио]] был заключён [[Кампоформийский мир|мир с Австрией]], закончивший [[Война первой коалиции|Войну первой коалиции]], из которой Франция вышла победительницей. При подписании мира Наполеон полностью проигнорировал позицию Директории, вынудив её ратифицировать договор в нужном ему виде{{sfn|Ленц|2003|с=26—27}}{{sfn|Тюлар||с=70—71}}. 5 декабря Наполеон вернулся во Францию и поселился в Париже в доме по улице Победы ({{lang-fr|Rue de la Victoire}}), переименованной в его честь. Наполеон купил дом за 52,4 тыс. франков, а Жозефина потратила ещё 300 тыс. франков на его украшение{{sfn|Roberts|2014|p=155}}.<!-- [[Квадрига святого Марка]]. Лувр Денона. Строительные программы.-->
=== Египетский поход ===
{{main|Египетский поход}}
[[Файл:Napoleon-Gérome.jpg|thumb|Наполеон в Египте. [[Жером, Жан-Леон|Жером]] (1867)]]
[[Файл:Jean-Léon Gérôme 003.jpg|thumb|left|[[Бонапарт перед Сфинксом]]. [[Жером, Жан-Леон|Жером]] (1868)]]
[[Файл:Louis-François Baron Lejeune 001.jpg|thumb|Битва у пирамид 21 июля 1798. [[Лежен, Луи-Франсуа|Лежен]] (1808)]]
[[Файл:Antoine-Jean Gros - Bonaparte visitant les pestiférés de Jaffa.jpg|thumb|left|Наполеон навещает больных чумой в Яффе. [[Гро, Антуан Жан|Гро]] (1804)]]
[[Файл:Le Parc de la Malmaison sous la neige - panoramio (15).jpg|thumb|[[Мальмезон]]]]
В результате Итальянской кампании Наполеон приобрёл большую популярность во Франции. 25 декабря 1797 года он был избран членом [[Институт Франции|Национального института наук и искусств]] по классу физики и математики, секция механики{{sfn|Dictionnaire|1999|loc=t. 2|p=378}}{{ref+|Наполеон был избран с помощью [[Лаплас, Пьер-Симон|Лапласа]], [[Бертолле, Клод Луи|Бертолле]] и [[Монж, Гаспар|Монжа]] на место эмигрировавшего [[Карно, Лазар|Карно]] 305 голосами из 312, следующие претенденты получили 166 и 123 голоса{{sfn|Roberts|2014|p=156}}. Среди математических заслуг Наполеона: простой способ построения квадрата одной линейкой с двумя засечками (это решение стало существенным шагом к доказательству возможности при помощи только циркуля или только линейки с двумя засечками делать любые [[Построение с помощью циркуля и линейки|построения, выполнимые циркулем и линейкой без засечек]]) и [[Теорема Наполеона|теорема про равносторонние треугольники]], носящая его имя.|К}}. 10 января 1798 года Директория назначила его командующим {{iw|Армия Англии (Французская революция)|Английской армии|fr|Armée d'Angleterre}}{{sfn|Englund|2010|p=124}}. Планировалось, что Наполеон организует экспедиционные силы для высадки на Британские острова. Однако после нескольких недель инспекции сил вторжения и анализа ситуации, Наполеон признал высадку неосуществимой и выдвинул план завоевания [[Египет (эялет)|Египта]], который он рассматривал как важный форпост в наступлении на британские позиции в [[Британская Ост-Индская компания|Индии]]. 5 марта Наполеон получил карт-бланш на организацию экспедиции{{sfn|Roberts|2014|p=158}} и активно принялся за её подготовку{{ref+|В этом же месяце он к своему ужасу узнал от Жозефа о том, что Жозефина участвует в делах армейских поставщиков ещё со времён Итальянской кампании. Вместе с ней в этих же делах участвовал Ипполит Шарль, с которым она продолжала поддерживать отношения. Наполеон и Жозеф устроили ей форменный допрос, но Жозефина всё ожесточённо отрицала{{sfn|Roberts|2014|p=159}}.|К}}. Помня о том, что Александра Великого в его восточных походах сопровождали учёные, Наполеон взял с собой [[Комиссия наук и искусств|167]] географов, ботаников, химиков и представителей других наук (из них 31 были членами Института){{sfn|Roberts|2014|p=164}}{{sfn|Dictionnaire|1999|loc=t. 1|p=468}}.
Существенной проблемой был [[Королевский военно-морской флот Великобритании|Королевский британский флот]], эскадра которого под командованием [[Нельсон, Горацио|Нельсона]] вошла в [[Средиземное море]]. Экспедиционные войска (35 тыс. человек) тайно покинули Тулон 19 мая 1798 года и, избежав встречи с Нельсоном, за шесть недель пересекли Средиземное море{{sfn|Тюлар||с=76}}.
Первой целью Наполеон определил [[Мальта (остров)|Мальту]] — местонахождение [[Мальтийский орден|Мальтийского ордена]]. После захвата Мальты в июне 1798 года Наполеон оставил на острове четырёхтысячный гарнизон и двинулся с флотом дальше в Египет{{sfn|Чандлер|2011|с=195—196}}.
1 июля войска Наполеона начали высадку около [[Александрия|Александрии]], и уже на следующий день город был захвачен. Армия двинулась на [[Каир]]. 21 июля французские войска встретились с собранным предводителями [[мамелюки|мамелюков]] [[Мурад Бей|Мурад-беем]] и [[Ибрагим Бей|Ибрагим-беем]] войском, произошла [[Битва у пирамид]]. Благодаря огромному преимуществу в тактике и военной подготовке, французы с незначительными потерями наголову разгромили войска мамелюков{{sfn|Чандлер|2011|с=196—202}}.
25 июля из случайно обронённых слов своего [[Жюно, Жан Андош|адъютанта]] Бонапарт узнал то, о чём давно сплетничали в парижском обществе — что Жозефина неверна ему. Известие поразило Наполеона. ''«С этого момента из его жизни ушёл идеализм, и в последующие годы его себялюбие, подозрительность и эгоцентрическое честолюбие стали ещё заметнее. Всей Европе суждено было почувствовать на себе разрушение семейного счастья Бонапарта»''{{sfn|Чандлер|2011|с=202—203}}.
1 августа британская эскадра под командованием Нельсона после двухмесячных поисков на просторах Средиземного моря настигла, наконец, французский флот в [[Абукирский залив|Абукирском заливе]]. В результате [[Битва при Абукире (1798)|битвы]] французы потеряли почти все свои корабли (включая флагманский «[[Orient (1791)|Orient]]», нёсший 60 млн франков мальтийской контрибуции), уцелевшим пришлось вернуться во Францию. Наполеон оказался отрезан в Египте, а англичане получили [[Господство на море|контроль]] над Средиземным морем{{sfn|Roberts|2014|p=177}}.
22 августа 1798 года Наполеон подписал постановление об учреждении [[Институт Египта|Института Египта]] в составе 36 человек{{sfn|Dictionnaire|1999|loc=t. 2|p=36}}. Одним из результатов работы Института стало монументальное «[[Описание Египта]]», создавшее предпосылки для современной [[Египтология|египтологии]]{{sfn|Dictionnaire|1999|loc=t. 1|p=642}}. [[Розеттский камень]], обнаруженный в ходе экспедиции, открыл возможность для расшифровки [[Египетское письмо|древнеегипетской письменности]]{{sfn|Dictionnaire|1999|loc=t. 1|p=705}}.
После захвата Каира Наполеон отправил отряд из 3 тыс. человек под руководством [[Дезе, Луи Шарль Антуан|Дезе]] и [[Даву, Луи Никола|Даву]] на завоевание [[Верхний Египет|Верхнего Египта]]{{sfn|Чандлер|2011|с=205}}, а сам тем временем начал активные и много в чём успешные мероприятия по подчинению себе страны и привлечению симпатий влиятельных слоёв местного населения. Наполеон пытался найти взаимопонимание с [[ислам]]ским духовенством, но тем не менее в ночь на 21 октября против французов в Каире [[Восстание в Каире|вспыхнуло восстание]]: погибли около 300 французов, более 2500 мятежников были убиты при подавлении восстания и казнены после его завершения{{sfn|Roberts|2014|p=181}}. К концу ноября в Каире установилось спокойствие; открывая 30 ноября [[увеселительный сад]], Наполеон познакомился с [[Фуре, Полин|Полин Фуре]], двадцатилетней женой офицера, которого Наполеон тут же отправил с поручением во Францию{{sfn|Roberts|2014|p=182}}.
Подстрекаемая англичанами, [[Порта]] стала готовить наступление на позиции французов в Египте. Исходя из своего принципа «нападение — лучшая защита»{{sfn|Чандлер|2011|с=207}}, в феврале 1799 года Наполеон начал поход на [[Сирия|Сирию]]. Он взял штурмом [[Газа|Газу]] и [[Яффа|Яффу]]{{ref+|В Яффе Наполеон предложил губернатору сдать город, но получил отказ, французский [[парламентёр]] был убит. Захватив город после штурма, Наполеон отдал его на разграбление войскам, погибло множество мирных жителей. В последующие дни несколько тысяч захваченных в плен турецких солдат были казнены на морском берегу{{sfn|Roberts|2014|p=189}}. Французы заразились [[Бубонная чума|бубонной чумой]] от своих жертв, что, по мнению Э. Робертса, стало редким историческим примером справедливого возмездия. При смертности от чумы на уровне 92% появление признаков заболевания было, по сути, смертным приговором. Наполеон посетил заболевших в госпитале, эта сцена увековечена на картине Гро{{sfn|Roberts|2014|p=190}}.|К}}, но не смог [[Осада Акры (1799)|овладеть Акрой]], которую с моря снабжал британский флот, а на суше укреплял [[Ле Пикар де Фелиппо, Антуан|Пикар де Фелиппо]]. 20 мая 1799 года началось отступление. Наполеон всё ещё был в состоянии [[Битва при Абукире (1799)|нанести поражение]] туркам, которые расположились около [[Абукир]]а (25 июля), но понимал, что оказался в ловушке. 23 августа{{sfn|Тюлар||с=79}}{{sfn|Ленц|2003|с=31}} он тайно отплыл во Францию на фрегате «[[Мюирон (фрегат)|Мюирон]]» в сопровождении [[Бертье, Луи Александр|Бертье]], [[Ланн, Жан|Ланна]], [[Мюрат, Иоахим|Мюрата]], [[Монж, Гаспар|Монжа]] и [[Бертолле, Клод Луи|Бертолле]], бросив армию на генерала [[Клебер, Жан-Батист|Клебера]]. Счастливо миновав встречи с кораблями англичан, Наполеон возвратился во Францию в ореоле завоевателя Востока{{sfn|Чандлер|2011|с=207—217}}{{sfn|Тюлар||с=79}}.
Приехав 16 октября в Париж, Наполеон обнаружил, что за время его отсутствия Жозефина купила за 325 тыс. (занятых ею) франков имение [[Мальмезон]]. После скандала по поводу неверности Жозефины (как считает Э. Робертс, частично инспирированного Наполеоном), последовало примирение. В дальнейшей семейной жизни Жозефина сохраняла верность супругу, чего нельзя сказать о нём самом{{sfn|Roberts|2014|p=207}}.
== Консульство ==
{{main|Французский консулат}}
=== Переворот 18 брюмера и временное консульство ===
{{main|Переворот 18 брюмера|Временное консульство}}
[[Файл:Matinée du 18 brumaire (Motte).jpg|thumb|left|Встреча Наполеона с генералами утром 18 брюмера. [[Мотте, Шарль|Мотте]] (1826)]]
В то время, когда Бонапарт находился с войсками в [[Египетский поход|Египте]], французское правительство оказалось в кризисной ситуации. Европейские монархии составили [[Война второй коалиции|вторую коалицию]] против республиканской Франции. Директория не могла обеспечить стабильность республики в рамках норм действующей [[Конституция III года|конституции]] и всё больше опиралась на армию. В Италии русско-австрийские войска под командованием [[Суворов, Александр Васильевич|Суворова]] ликвидировали все приобретения Наполеона, и даже возникла угроза их вторжения во Францию. В условиях кризиса были приняты экстренные меры, напомнившие времена [[Эпоха террора (Французская революция)|террора 1793 года]]. Для предотвращения «якобинской» угрозы и придания большей стабильности режиму сложился заговор, в который входили даже сами директора [[Сийес, Эммануэль-Жозеф|Сийес]] и [[Дюко, Роже|Дюко]]. Заговорщики искали «саблю» и обратились к Бонапарту как к человеку, который подходил им по своей популярности и военной репутации. Наполеон, с одной стороны, не желал быть скомпрометированным (против своего обыкновения он в эти дни почти не писал писем); с другой стороны, он активно участвовал в подготовке переворота{{sfn|Roberts|2014|p=206ff}}.
[[Файл:Bouchot - Le general Bonaparte au Conseil des Cinq-Cents.jpg|thumb|Бонапарт в [[Совет пятисот (Франция)|Совете пятисот]] (1799). С картины [[Бушо, Франсуа|Франсуа Бушо]] (1840)]]
Заговорщикам удалось перетянуть на свою сторону большинство генералов. [[Переворот 18 брюмера|18 брюмера]] (9 ноября 1799) [[Совет старейшин]], большинство в котором было у заговорщиков, принял декреты о переносе заседаний двух палат в Сен-Клу и о назначении Бонапарта командующим [[Департамент Сены|департамента Сены]]{{sfn|Roberts|2014|p=218}}. Сийес и Дюко тотчас подали в отставку, то же самое сделал Баррас{{ref+|Согласно одним источникам, Баррас ушёл под нажимом со стороны Талейрана, сопровождаемого генералом Моро с отрядом солдат{{sfn|Roberts|2014|p=219}}. Согласно другим источникам — благодаря взятке{{sfn|Englund|2010|p=151—166}}. Согласно третьим — не желая мешать Бонапарту, чьим «[[Пигмалион]]ом» он некогда был{{sfn|Gueniffey|2015|p=558}}. Независимо от причины, именно отставка Барраса позволила заговорщикам реализовать их планы.|К}}, тем самым прекратив полномочия Директории и создав вакуум исполнительной власти. Однако собравшийся 10 ноября [[Совет пятисот (Франция)|Совет пятисот]], в котором было сильно влияние якобинцев, отказался одобрить требуемый декрет. Его члены набросились с угрозами на Бонапарта, вошедшего в зал заседания с оружием и без приглашения. Тогда по призыву [[Люсьен Бонапарт|Люсьена]], бывшего председателем Совета пятисот, в зал ворвались солдаты под командой [[Мюрат, Иоахим|Мюрата]] и разогнали заседание. В тот же вечер удалось собрать остатки Совета (около 50 человек) и «принять» необходимые декреты об учреждении [[Временное консульство|временного консульства]] и комиссии для разработки [[Конституция VIII года|новой конституции]]{{sfn|Englund|2010|p=151—166}}{{sfn|Чандлер|2011|с=230—232}}{{sfn|Roberts|2014|p=219—224}}.
Были назначены три временных консула (Бонапарт, Сийес и Дюко). Дюко предложил председательство Бонапарту «по праву завоевания», но тот отказался в пользу ежедневной ротации. Задачей временного консульства было разработать и принять новую конституцию. Под давлением Бонапарта её проект был разработан за пять недель. В эти несколько недель он смог привлечь к себе многих из тех, кто ранее поддерживал Сийеса, и внести в его проект конституции принципиальные поправки. Сийес, получив 350 тыс. франков и недвижимость в Версале и Париже, не возражал{{sfn|Roberts|2014|p=231—234}}. Согласно проекту, законодательная власть делилась между [[Государственный совет (Франция)|Государственным Советом]], [[Трибунат]]ом, [[Законодательный корпус (Консулат и Первая Империя)|Законодательным корпусом]] и [[Охранительный сенат|Сенатом]], что делало её беспомощной и неповоротливой. Исполнительная власть, напротив, собиралась в один кулак первого консула, то есть Бонапарта, назначаемого на десять лет. Второй и третий консулы ([[Камбасерес, Жан Жак Режи де|Камбасерес]] и [[Лебрен, Шарль Франсуа|Лебрен]]) имели только совещательные голоса{{sfn|Englund|2010|p=166—168}}{{sfn|Тюлар||с=90—93}}. Формальные выборы трёх консулов состоялись 12 декабря{{sfn|Lentz|2014|p=152—153}}{{sfn|Itinéraire|2002|p=174—175}}.
[[Конституция VIII года|Конституция]] была обнародована 13 декабря 1799 года и одобрена народом на [[Французский конституционный референдум (1800)|плебисците VIII года Республики]] (по официальным данным около 3 миллионов голосов против 1,5 тысяч, в действительности конституцию поддержали около 1,55 млн человек, остальные голоса были фальсифицированы){{sfn|Dictionnaire|1999|loc=t. 2|p=514}}{{sfn|Dictionnaire|1999|loc=t. 1|p=519}}. 19 февраля 1800 года Наполеон покинул [[Люксембургский дворец]] и поселился в [[Тюильри]]{{sfn|Roberts|2014|p=246}}.
=== Десятилетнее консульство ===
{{main|Десятилетнее консульство}}
[[Файл:Debret - Premiere distribution des decorations de la Legion d'honneur.jpg|thumb|Первое вручение ордена Почётного легиона. [[Дебре, Жан-Батист|Дебре]] (1812)]]
[[Файл:The three consuls by Van Gorp.jpg|thumb|150px|Три консула ([[Камбасерес, Жан Жак Режи де|Камбасерес]], Бонапарт, [[Лебрен, Шарль Франсуа|Лебрен]]). [[Ван Горп, Анри-Николя|Ван Горп]] (1803)]]
[[Файл:Gérard - Signature du Concordat entre la France et le Saint-Siège, le 15 juillet 1801.jpg|thumb|left|Наполеон ратифицирует Конкордат. [[Жерар, Франсуа|Жерар]] (1801)]]
[[Файл:David napoleon.jpg|thumb|150px|[[Наполеон на перевале Сен-Бернар]]. [[Давид, Жак-Луи|Давид]] (1803)]]
В момент прихода Наполеона к власти Франция находилась в состоянии войны с [[Королевство Великобритания|Великобританией]] и [[Эрцгерцогство Австрия|Австрией]], которая в 1799 году в результате [[Итальянский поход Суворова|Итальянского похода Суворова]] вернула себе Северную Италию. [[Вторая Итальянская кампания|Новый итальянский поход]] Наполеона напоминал первый. В мае 1800 года, перейдя за десять дней через [[Альпы]], французская армия неожиданно появилась в Северной Италии{{sfn|Чандлер|2011|с=246—248}}. В [[Битва при Маренго|битве при Маренго]] 14 июня 1800 года Наполеон сначала уступил давлению австрийцев под командованием [[Мелас, Михаил Фридрих Бенедикт|Меласа]], но контратака подоспевшего Дезе исправила ситуацию (сам Дезе погиб){{sfn|Чандлер|2011|с=257—259}}. Победа при Маренго позволила начать переговоры о мире в Леобене, но понадобилась ещё победа [[Моро, Жан Виктор|Моро]] [[Битва при Гогенлиндене (1800)|при Гогенлиндене]] 3 декабря 1800 года, чтобы угроза французским границам была, наконец, ликвидирована{{sfn|Чандлер|2011|с=264—265}}.
[[Люневильский мир]], заключённый 9 февраля 1801 года, положил начало господству Франции не только в Италии, но и в Германии. Год спустя (27 марта 1802 года) был заключён и [[Амьенский мир]] с Великобританией, завершивший [[Война второй коалиции|войну Второй коалиции]]. Однако Амьенский мир не устранил глубинных противоречий между Францией и Великобританией и потому был непрочным{{sfn|Тюлар||с=116—119}}. Условия мира предусматривали возвращение Франции её колоний, оккупированных Англией{{sfn|Dictionnaire|1999|loc=t. 1|p=459}}. Стремясь к восстановлению и расширению колониальной империи, по условиям [[Договор в Сан-Ильдефонсо (1800)|договора в Сан-Ильдефонсо]] Наполеон приобрёл у Испании [[Луизиана|Луизиану]]{{sfn|Тюлар||с=118}}. В марте 1802 года он направил экспедицию из 25 тысяч солдат под командованием своего зятя [[Леклерк, Шарль (генерал)|Леклерка]] для отвоевания [[Сан-Доминго]] у [[Гаитянская революция|восставших рабов]], возглавляемых [[Туссен-Лувертюр, Франсуа Доминик|Туссеном-Лувертюром]]{{sfn|Тюлар||с=142}}{{sfn|Манфред|1987|с=385—386}}.
Административные и правовые нововведения Наполеона заложили основу современного государства, многие из них действуют и по сей день. Став первым консулом, Наполеон в корне изменил государственное устройство страны; в 1800 году провёл административную реформу, учредив институт подотчётных правительству [[Префект (Франция)|префектов]] департаментов и [[Супрефектура|супрефектов]] округов. В города и деревни назначались мэры{{sfn|Тюлар||с=96}}. Административная реформа позволила решить те вопросы, за которые отвечали местные органы власти, и которые ранее не смогла решить Директория — сбор налогов и рекрутский набор{{sfn|Исдейл|1997|с=86—87}}.
В 1800 году был учреждён [[Банк Франции]] для хранения золотого запаса и эмиссии денег (эта функция была передана ему в 1803 году){{sfn|Roberts|2014|p=246}}. Первоначально банк управлялся 15 выборными членами правления из числа акционеров, но в 1806 году правительство назначило управляющего ([[Крете, Эммануэль|Крете]]) и двух его заместителей, а в число 15 членов правления вошли три [[Генеральный сборщик налогов|генеральных сборщика налогов]]{{sfn|Dictionnaire|1999|loc=t. 1|p=163}}.
11 флореаля X года (1 мая 1802) была создана система средних школ — [[Лицеи во Франции|лицеев]]{{sfn|Тюлар||с=246}}.
Прекрасно сознавая важность воздействия на общественное мнение, Наполеон закрыл 60 из 73 парижских газет, а остальные поставил под контроль правительства{{sfn|Roberts|2014|p=242}}. Была создана мощная полиция во главе с [[Фуше, Жозеф|Фуше]]{{sfn|Dictionnaire|1999|loc=t. 2|p=316}} и разветвлённая тайная служба, которую возглавил [[Савари, Анн Жан Мари Рене|Савари]]{{sfn|Dictionnaire|1999|loc=t. 2|p=732}}.
В марте 1802 года Наполеон удалил из законодательных органов многих сторонников республиканской оппозиции{{sfn|Ленц|2003|с=43}}. Постепенно происходил возврат к монархическим формам правления. Из обихода пропало обращение на «ты», принятое в годы революции. Наполеон разрешил возвратиться части эмигрантов, при условии принесения клятвы верности конституции. В обиход вернулись [[Ливрея|ливреи]], официальные церемонии, дворцовая охота, мессы в [[Сен-Клу (замок)|Сен-Клу]]. Вместо именного оружия, вручавшегося в годы революции, несмотря на возражения Государственного совета, Наполеон ввёл иерархически организованный [[орден Почётного легиона]] (19 мая 1802). Но, нападая на «левую» оппозицию, Бонапарт, вместе с тем, стремился сохранить завоевания революции{{sfn|Тюлар||с=131—132}}.
В 1801 году Наполеон заключил [[Конкордат Наполеона|конкордат]] с Папой Римским. Рим признавал новую французскую власть, а [[католицизм]] объявлялся религией большинства французов. При этом [[свобода вероисповедания]] сохранялась. Назначение епископов и деятельность церкви ставились в зависимость от правительства{{sfn|Тюлар||с=110—112}}.
Эти и другие меры заставили противников Наполеона «слева» объявить его предателем Революции, хотя он считал себя верным продолжателем её идей. Якобинцев Наполеон опасался больше, чем роялистских заговорщиков, из-за их идеологии, знания механизмов власти и отличной организации. Когда 24 декабря 1800 года на улице Сен-Никез, по которой Наполеон ехал в [[Опера|Оперу]], взорвалась «[[Покушение на улице Сен-Никез|адская машина]]», он использовал это покушение как повод для расправы над якобинцами, хотя Фуше предоставил ему улики вины [[Монархизм|роялистов]]{{sfn|Roberts|2014|p=288—289}}.
Наполеон сумел закрепить основные революционные завоевания ([[Право на частную собственность|право на собственность]], [[равенство перед законом]], равенство возможностей), покончив с революционной анархией. В сознании французов благополучие и стабильность всё больше увязывались с его присутствием у государственного руля, что способствовало следующему шагу Бонапарта по укреплению личной власти — переходу к пожизненному консульству{{sfn|Чандлер|2011|с=279—280}}.
=== Пожизненное консульство ===
{{main|Пожизненное консульство}}
[[Файл:Jean Auguste Dominique Ingres 016.jpg|150px|left|thumb|Бонапарт — первый консул. [[Энгр, Жан Огюст Доминик|Энгр]] (1803—1804)]]
[[Файл:France 1803-04-A 20 Francs.jpg|thumb|[[Наполеондор|20 золотых франков]] 1803 года — Наполеон как первый консул]]
В 1802 году Наполеон, опираясь на результаты [[Французский конституционный референдум (1802)|плебисцита]], провёл через Сенат [[Конституция X года|сенатус-консульт]] о пожизненности своих полномочий (2 августа 1802 года). Первый консул получил право представить Сенату своего преемника, что приблизило его к восстановлению наследственного принципа{{sfn|Тюлар||с=127—129}}{{sfn|Dictionnaire|1999|loc=t. 1|p=524}}.
7 апреля 1803 года были отменены бумажные деньги; основной денежной единицей стал серебряный франк, поделённый на 100 сантимов; одновременно вводились золотые монеты в 20 и 40 франков. Учреждённый Наполеоном металлический франк имел хождение до 1928 года{{sfn|Englund|2010|p=187}}{{sfn|Dictionnaire|1999|loc=t. 1|p=827}}.
Приняв государство с плачевным финансовым состоянием, Наполеон и его финансовые советники полностью перестроили систему сбора налогов и расходования средств. Нормальное функционирование финансовой системы было обеспечено созданием двух противостоящих друг другу и в то же время сотрудничающих министерств: финансов и казначейства, их возглавляли соответственно [[Годен, Мартен Мишель Шарль|Годен]] и [[Барбе-Марбуа, Франсуа|Барбе-Марбуа]]{{sfn|Lentz|2014|p=646—647}}. Министр финансов отвечал за поступления в бюджет, министр казначейства — за расходование средств; расходы должны были быть одобрены законом или министерским распоряжением, за ними осуществлялся тщательный контроль{{sfn|Lentz|2014|p=305}}{{sfn|Dictionnaire|1999|loc=t. 1|p=800}}.
Внешняя политика Наполеона состояла в обеспечении первенства французской промышленной и финансовой буржуазии на европейском рынке. Этому мешал английский капитал, преобладание которого обусловливалось уже происшедшей в Великобритании [[промышленная революция|промышленной революцией]]. Конкуренция между двумя странами выливалась в нарушение ими условий Амьенского договора. Англичане отказались эвакуировать свои войска с Мальты, как это было предусмотрено договором. Наполеон, в свою очередь, оккупировал Эльбу, [[Пьемонт]] и [[Пармское герцогство|Парму]], а также подписал с швейцарскими кантонами [[Акт посредничества]] и договор о военном союзе. Готовясь к неизбежной войне, Наполеон [[Луизианская покупка|продал Луизиану]] Соединённым Штатам. Как и экспедиция Леклерка на Гаити, колониальные проекты Наполеона в целом потерпели фиаско{{sfn|Тюлар||с=140—142}}{{sfn|Манфред|1987|с=385—386}}{{sfn|Lefebvre|2011|p=148—149}}.
К маю 1803 года отношения между Великобританией и Францией обострились настолько, что англичане отозвали своего посла; 16 мая был выпущен приказ о захвате французских судов в британских портах и в открытом море, а 18 мая Великобритания объявила Франции войну{{sfn|Roberts|2014|p=322—323}}{{ref+|Ч. Исдейл указывает, что 18 мая Франция объявила войну Великобритании{{sfn|Исдейл|1997|с=39}}.|К}}. Наполеон двинул французскую армию на принадлежавшее [[Георг III (король Великобритании)|британскому королю]] герцогство [[Брауншвейг-Люнебург|Ганновер]]. 4 июля ганноверская армия [[Артленбургская конвенция|капитулировала]]{{sfn|Lentz|2014|p=694}}. Наполеон приступил к созданию большого военного лагеря на побережье [[Па-де-Кале]] под [[Булонь]]ю. 2 декабря 1803 года эти войска получили название «Английской армии»; к 1804 году в Булони и окрестностях было собрано более 1700 судов для переправки войск в Англию{{sfn|Lefebvre|2011|p=160—162}}.
Внутренняя политика Наполеона состояла в укреплении его личной власти как гарантии сохранения результатов революции: гражданских прав, прав собственности на землю крестьян, а также тех, кто купил во время революции национальные имущества, то есть конфискованные земли эмигрантов и церкви. Обеспечить все эти завоевания должен был Гражданский кодекс (ратифицирован 21 марта 1804 года), вошедший в историю как «[[Кодекс Наполеона]]»{{sfn|Тюлар||с=132—133}}.
После раскрытия заговора [[Кадудаль, Жорж|Кадудаля]] — [[Пишегрю, Шарль|Пишегрю]] (так называемый «[[заговор XII года]]»), в котором, как предполагалось, участвовали находящиеся за пределами Франции принцы королевского дома [[Бурбоны|Бурбонов]], Наполеон приказал захватить одного из них, [[Луи Антуан Анри де Бурбон-Конде, герцог Энгиенский|герцога Энгиенского]] в [[Эттенхайм]]е, неподалёку от французской границы. Герцог был вывезен в Париж и [[Дело герцога Энгиенского|расстрелян]] по приговору военного суда 21 марта 1804 года. Кадудаль был казнён, Пишегрю найден мёртвым в тюремной камере, встречавшийся с ними Моро выслан из Франции. Заговор XII года вызвал негодование во французском обществе и был использован официальной прессой для внушения читателям мысли о необходимости наследственной власти Первого консула{{sfn|Тюлар||с=134—136}}.
== Первая империя ==
{{main|Первая империя|Наполеоновские войны}}
=== Провозглашение империи ===
[[Файл:Andrea Appiani - Napoleon I. Bonaparte (1769-1821), als König von Italien - GG 2348 - Kunsthistorisches Museum.jpg|thumb|left|150px|Наполеон коронован королём Италии 26 мая 1805 в Милане{{sfn|Lentz|2002|p=122}}]]
[[Файл:Jacques-Louis David, The Coronation of Napoleon edit.jpg|thumb|[[Коронация Наполеона]] в соборе [[Собор Парижской Богоматери|Нотр-Дам]] 2 декабря 1804. Наполеон коронует Жозефину. [[Давид, Жак-Луи|Давид]] (1805—1807)]]
28 [[Флореаль|флореаля]] (18 мая 1804 года) постановлением Сената (так называемым [[сенатус-консульт]]ом XII года) была принята новая [[Конституция XII года|конституция]], согласно которой Наполеон провозглашался императором французов, вводились должности [[Высшие сановники империи|высших сановников]] и [[Великие офицеры империи|великих офицеров]] Империи, в том числе восстанавливалось маршальское звание, отменённое в годы революции{{sfn|Манфред|1987|с=403}}{{sfn|Dictionnaire|1999|loc=t. 1|p=527}}.
В тот же день были назначены пять из шести высших сановников ([[Жозеф Бонапарт|великий электор (выборщик)]], [[Камбасерес, Жан Жак Режи де|архиканцлер Империи]], [[Лебрен, Шарль Франсуа|архиказначей]], [[Бонапарт, Луи|коннетабль]] и [[Мюрат, Иоахим|великий адмирал]]){{ref+|Шестой высший сановник, [[Богарне, Евгений|государственный архиканцлер]], был назначен 1 февраля 1805 года{{sfn|Lentz|2002|p=119}}.|К}}. Высшие сановники образовали большой императорский совет. 19 мая 1804 года восемнадцать популярных генералов были назначены [[Маршалы Наполеона|маршалами Франции]], причём четверо из них считались почётными, а остальные — действительными{{sfn|Lentz|2002|p=37—38}}.
В ноябре сенатус-консульт был ратифицирован по результатам [[Французский конституционный референдум (1804)|плебисцита]]. По итогам плебисцита и несмотря на сопротивление [[Государственный совет (Франция)|Государственного совета]] было решено возродить традицию коронации. Наполеон непременно хотел, чтобы в церемонии участвовал [[Пий VII|римский папа]]. Последний требовал, чтобы Наполеон [[Венчание|обвенчался]] с Жозефиной по [[Церковный брак|церковному обряду]]. В ночь на 2 декабря кардинал [[Феш, Жозеф|Феш]] провёл обряд венчания в присутствии [[Талейран-Перигор, Шарль Морис де|Талейрана]], [[Бертье, Луи Александр|Бертье]] и [[Дюрок, Жерар|Дюрока]]{{sfn|Roberts|2014|p=352}}{{sfn|Тюлар||с=138}}. 2 декабря 1804 года в ходе [[Коронация Наполеона I|пышной церемонии]], проходившей в [[Собор Парижской Богоматери|соборе Парижской Богоматери]] с участием папы, Наполеон короновал самого себя императором французов, а затем возложил корону на Жозефину{{sfn|Тюлар||с=138—139}}. [[Стендаль]] в своём дневнике назвал коронацию «очевидным союзом всех шарлатанов» — «религия, венчающая на царство тиранию, причём всё это во имя блага людей»<ref>{{Книга|часть=Дневники|автор=Стендаль|заглавие=Собрание сочинений в пятнадцати томах|том=14|место=М.|издательство=Правда|год=1959|страницы=78}}</ref>.
Коронация высветила скрытую до тех пор враждебность между семьями Бонапарт (братьями и сёстрами Наполеона) и Богарне (Жозефина и её дети). Сёстры Наполеона не желали нести [[Шлейф (одежда)|шлейф]] Жозефины. [[Рамолино, Летиция|Мадам Мать]] вовсе отказалась прибыть на коронацию. В ссорах Наполеон принимал сторону жены и приёмных детей, однако оставался щедр по отношению к братьям и сёстрам (впрочем, постоянно высказывая недовольство ими и тем, что они не оправдывают его надежд){{sfn|Roberts|2014|p=352}}{{ref+|[[Давид, Жак-Луи|Давид]] по указанию Наполеона подправил факты на [[Коронация Наполеона|своей картине]]. Против своего первоначального плана, он отразил не момент, когда Наполеон короновал самого себя, а момент коронации Жозефины. Сёстры Наполеона стоят в стороне от её шлейфа. Мадам Мать изображена в самом центре композиции{{sfn|Roberts|2014|p=355}}.|К}}.
Ещё одним камнем преткновения между Наполеоном и его братьями стал вопрос о том, кому быть королём Италии и кому наследовать императорскую власть во Франции. Результатом их споров стало решение, согласно которому Наполеон получал обе короны, а в случае его смерти короны делились между его родственниками. 17 марта 1805 года из «[[Дочерние республики|дочерней]]» [[Итальянская республика (1802—1805)|Итальянской республики]], в которой Наполеон был президентом, было создано [[Королевство Италия (наполеоновское)|Королевство Италия]]. Во вновь образованном королевстве Наполеон получил титул короля, а его пасынок [[Богарне, Евгений|Евгений Богарне]] — титул вице-короля{{sfn|Lentz|2002|p=121}}. Решение о коронации Наполеона [[Железная корона|Железной короной]] оказало дурную услугу французской дипломатии, поскольку вызвало враждебность со стороны Австрии и способствовало её присоединению к вновь формирующейся антифранцузской коалиции{{sfn|Lentz|2002|p=119}}{{sfn|Чандлер|2011|с=289—290}}. В мае 1805 года [[Лигурийская республика]] стала одним из департаментов Франции{{sfn|Lentz|2002|p=122}}.
=== Возвышение империи ===
{{main|Война третьей коалиции|Война четвёртой коалиции}}
[[Файл:Charles Thévenin - Reddition de la ville d'Ulm.jpg|thumb|left|Капитуляция Ульма. [[Тевенен, Шарль|Тевенен]] (1815)]]
В апреле 1805 года [[Российская Империя|Россией]] и [[Соединённое королевство Великобритании и Ирландии|Великобританией]] был подписан [[Петербургский союзный договор (1805)|Петербургский союзный договор]], заложивший основу третьей коалиции{{sfn|Чандлер|2011|с=289}}. В том же году [[Соединённое королевство Великобритании и Ирландии|Великобритания]], [[Австрийская империя|Австрия]], [[Российская империя|Россия]], [[Неаполитанское королевство]] и [[Швеция]] сформировали Третью коалицию против [[Первая французская империя|Франции]] и союзной ей [[Испания|Испании]]. Важным фактором в формировании коалиции стали британские субсидии (англичане выделили союзникам 5 млн фунтов стерлингов){{sfn|Исдейл|1997|с=238}}. Французской дипломатии удалось добиться нейтралитета Пруссии в надвигавшейся войне ([[Талейран]] по указанию Наполеона обещал [[Фридрих-Вильгельм III|Фридриху-Вильгельму III]] отобранный у британцев Ганновер){{sfn|Тюлар||с=151}}.
В октябре 1805 года Наполеон создал Управление экстраординарных имуществ ({{lang-fr|domaine extraordinaire}}) — специальный финансовый институт во главе с [[Ла Буйери, Франсуа|Ла Буйери]], предназначенный для сбора платежей и контрибуций с завоёванных стран и территорий. Эти средства расходовались главным образом на финансирование следующих военных кампаний<ref name="Domaine">{{статья|автор=Tulard J.|заглавие=Der "Domaine extraordinaire" als Finanzierungsinstrument napoleonischer Expansion|jstor=i40005617|издательство=Geschichte und Gesellschaft|год=1980|band=4|alleseiten=490—499|archive-date=2021-01-20|archive-url=https://web.archive.org/web/20210120231134/https://www.jstor.org/stable/i40005617}}</ref>.
Наполеон [[План наполеоновского вторжения в Англию|планировал высадку]] на Британские острова, но, получив сведения о действиях коалиции, двинул войска из Булонского лагеря в Германию. Австрийская армия капитулировала в [[Битва под Ульмом|битве под Ульмом]] 20 октября 1805 года{{sfn|Чандлер|2011|с=342}}. 21 октября британский флот под командованием Нельсона [[Трафальгарское сражение|разгромил]] испано-французский флот при [[Трафальгар]]е. В результате этого поражения Наполеон уступил британцам господство на море. Несмотря на огромные усилия и ресурсы, которые Наполеон потратил в последующие годы, ему так и не удалось поколебать британское морское владычество; высадка на Британские острова стала невозможна{{sfn|Roberts|2014|p=374}}{{sfn|Тюлар||с=145—146}}. 13 ноября [[Вена]] была объявлена [[Открытый город|открытым городом]] и французские войска заняли её без серьёзного сопротивления{{sfn|Roberts|2014|p=376}}.
[[Файл:La bataille d'Austerlitz. 2 decembre 1805 (François Gérard).jpg|thumb|Наполеон при Аустерлице. [[Жерар, Франсуа|Жерар]] (1810)]]
Российский император [[Александр I]] и император Священной Римской империи [[Франц II]] прибыли к армии. По настоянию Александра I российская армия прекратила отступление и вместе с австрийцами 2 декабря 1805 года вступила в сражение с французами [[Битва под Аустерлицем|при Аустерлице]]{{sfn|Чандлер|2011|с=353}}, в котором союзники попали в тактическую ловушку, расставленную Наполеоном, потерпели тяжёлое поражение и в беспорядке отступили. 26 декабря Австрия заключила с Францией [[Пресбургский мир]]{{sfn|Тюлар||с=147—148}}. Более 65 млн франков поступили из австрийских земель в Управление экстраординарных имуществ: [[Война кормит войну|война кормила войну]]<ref name="Domaine" />. Известия о военных операциях и победах, которые доносились до французской публики благодаря [[Бюллетень Великой армии|бюллетеням Великой армии]], служили сплочению нации{{sfn|Тюлар||с=146—147}}.
27 декабря 1805 года{{sfn|Roberts|2014|p=394}} Наполеон объявил, что «династия [[Бурбоны|Бурбонов]] в [[Неаполитанское королевство|Неаполе]] перестала царствовать», за то, что Неаполитанское королевство, вопреки прежнему договору, примкнуло к антифранцузской коалиции. [[Неаполитанская война (1806)|Движение французской армии на Неаполь]] заставило короля [[Фердинанд I (король Обеих Сицилий)|Фердинанда I]] бежать на [[Сицилия|Сицилию]], и Наполеон сделал неаполитанским королём своего брата [[Жозеф Бонапарт|Жозефа Бонапарта]]{{sfn|Тюлар||с=148—149}}. Декретом от 30 марта 1806 года Наполеон ввёл княжеские титулы для членов императорской фамилии. [[Бонапарт, Полина|Полина]] и её [[Боргезе, Камилло|супруг]] получили [[герцогство Гвасталла]], Мюрат и его [[Бонапарт, Каролина|супруга]] — [[великое герцогство Берг]]. [[Бертье, Луи Александр|Бертье]] получил [[Невшатель (княжество)|Невшатель]]{{sfn|Тюлар||с=255}}. Княжества [[Княжество Беневенто|Беневенто]] и [[Княжество Понтекорво|Понтекорво]] были отданы [[Талейран]]у и [[Карл XIV Юхан|Бернадотту]]{{sfn|Lentz|2002|p=218}}. Сестра Наполеона [[Элиза Бонапарт|Элиза]] ещё раньше получила [[Княжество Лукка и Пьомбино|Лукку]], а в 1809 году Наполеон сделал Элизу правительницей всей [[Великое герцогство Тосканское|Тосканы]]{{sfn|Dictionnaire|1999|loc=t. 1|p=714}}. В июне 1806 года [[Королевство Голландия]] пришло на смену марионеточной [[Батавская республика|Батавской республике]]. На престол Голландии Наполеон посадил своего младшего брата — [[Людовик Бонапарт|Людовика Бонапарта]]{{sfn|Dictionnaire|1999|loc=t. 2|p=220}}.
[[Файл:Huldigungderfürsten.jpg|thumb|180px|Клятва князей при образовании [[Рейнский союз|Рейнского союза]]. [[Мотте, Шарль|Мотте]] (1820—1830)]]
12 июля 1806 года между Наполеоном и многими правителями германских государств был заключён договор, в силу которого эти правители вступали между собой в союз, получивший название [[Рейнский союз|Рейнского]], под [[протекторат]]ом Наполеона и с обязанностью держать для него шестидесятитысячное войско. Образование союза сопровождалось [[Медиатизация|медиатизацией]] (подчинением мелких непосредственных (immediat) владетелей верховной власти крупных государей). 6 августа 1806 года император [[Франц II]] объявил о сложении с себя титула и полномочий императора [[Священная Римская империя|Священной Римской империи]] и, таким образом, это многовековое образование прекратило своё существование{{sfn|Тюлар||с=149}}{{sfn|Lentz|2002|p=221—223}}.
[[Файл:Тильзит. 1807.jpg|thumb|200px|left|Тильзитское свидание. [[Госс, Николя|Госс]] (XIX век)]]
[[Файл:Charles Meynier - Napoleon in Berlin.png|thumb|Наполеон вступает в Берлин через [[Бранденбургские ворота]] 27 октября 1806 года{{sfn|Lentz|2002|p=266}}. [[Мейнье, Шарль|Мейнье]] (1810)]]
[[Файл:Antoine-Jean Gros - Napoleon on the Battlefield of Eylau - Google Art Project.jpg|thumb|left|Наполеон в [[Битва при Прейсиш-Эйлау|битве при Эйлау]]. [[Гро, Антуан Жан|Гро]] (1807)]]
Встревоженная усилением французских позиций в Германии, так и не получив обещанный ей Ганновер, против Наполеона выступила [[Пруссия (королевство)|Пруссия]]. 26 августа она выдвинула ультиматум с требованием отвода Великой армии за Рейн{{sfn|Тюлар||с=151—152}}. Наполеон отверг этот ультиматум и напал на прусские войска. В первой же крупной [[Битва при Заальфельде|битве при Заальфельде]], 10 октября 1806 года пруссаки были разбиты{{sfn|Чандлер|2011|с=392}}. После этого 14 октября последовало полное поражение их [[Битва при Йене и Ауэрштедте|под Йеной и Ауэрштедтом]]{{sfn|Тюлар||с=152}}. Через две недели после йенской победы Наполеон вступил в [[Берлин]], вскоре после того сдались [[Штетин]], [[Пренцлау]], [[Магдебург]]{{sfn|Чандлер|2011|с=416—417}}. На Пруссию была наложена контрибуция в 159 млн франков{{sfn|Тюлар||с=154}}.
Из [[Кёнигсберг]]а, куда бежал прусский король [[Фридрих-Вильгельм III]], он умолял Наполеона прекратить войну, соглашаясь присоединиться к Рейнскому Союзу. Однако Наполеон делался всё требовательнее, и прусский король вынужден был продолжать боевые действия{{sfn|Roberts|2014|p=425}}. На помощь к нему пришла Россия, выставившая две армии с целью помешать переправе французов через [[Висла|Вислу]]. Наполеон обратился к [[Поляки|полякам]] с воззванием, приглашавшим их к борьбе за независимость и 19 декабря 1806 года в первый раз вступил в [[Варшава|Варшаву]]{{sfn|Roberts|2014|p=432}}. Ожесточённые сражения [[Сражение при Чарново|под Чарновым]], [[Битва при Пултуске (1806)|Пултуском]] и [[Битва при Голымине|Голымином]] в декабре 1806 года не выявили победителей{{sfn|Чандлер|2011|с=434—435}}.
13 декабря в Париже родился [[Леон, Шарль|Шарль Леон]], сын Наполеона и [[Денюэль, Элеонора|Элеоноры Денюэль]]. Наполеон узнал об этом 31 декабря в Пултуске. Рождение сына означало, что Наполеон сможет основать династию, если разведётся с Жозефиной{{sfn|Itinéraire|2002|p=324—325}}. Возвращаясь в Варшаву из Пултуска, 1 января 1807 года на почтовой станции в [[Блоне (Польша)|Блоне]] Наполеон в первый раз повстречал двадцатиоднолетнюю [[Валевская, Мария|Марию Валевскую]], жену пожилого польского графа, с которой у него сложился длительный роман{{sfn|Roberts|2014|p=435}}{{ref+|Согласно Э. Робертсу, за два десятка лет у Наполеона было 21 или 22 [[Список фавориток французских императоров|любовницы]]. За период с декабря 1804 по август 1813 года он подарил им в общей сложности гигантскую сумму — свыше 480 тыс. франков{{sfn|Roberts|2014|p=iv}}, в том числе Марии Валевской — 50 тыс. франков, передавая ей денежные суммы вплоть до октября 1809 года. 4 мая 1810 года у неё родился сын [[Александр Валевский]]{{sfn|Itinéraire|2002|p=416}}{{sfn|Roberts|2014|p=436}}.|К}}.
Генеральное сражение зимней кампании произошло [[Битва при Прейсиш-Эйлау|при Эйлау]] 8 февраля 1807 года{{sfn|Тюлар||с=155}}. В кровопролитном сражении между главными силами французской и русской армий под командованием генерала [[Беннигсен, Леонтий Леонтьевич|Беннигсена]] победителей не оказалось, впервые за многие годы Наполеон не одержал решительной победы{{sfn|Чандлер|2011|с=456}}.
После занятия французами [[Данциг]]а 27 мая 1807 года{{sfn|Чандлер|2011|с=467}} и поражения русских [[Битва под Фридландом|под Фридландом]] 14 июня, позволившего французам занять Кёнигсберг и угрожать русской границе, 7 июля был заключён [[Тильзитский мир]]. Из польских владений Пруссии было образовано [[Великое герцогство Варшавское]]. У Пруссии были отняты и все её владения между [[Рейн]]ом и [[Эльба (река)|Эльбой]], образовавшие вместе с рядом бывших мелких германских государств [[Вестфальское королевство]], во главе которого был поставлен брат Наполеона [[Жером Бонапарт|Жером]]{{sfn|Тюлар||с=156—157}}.
Победы, одержанные в двух итальянских и других кампаниях, создали Наполеону репутацию непобедимого полководца{{sfn|Тюлар||с=161}}. Внутри империи окончательно установилось его полновластие, он совершенно не считался теперь с мнением своих министров, законодателей, родственников и друзей. 9 августа 1807 года Талейран был отправлен в отставку с поста министра иностранных дел. 19 августа был распущен Трибунат. Недовольство императора вызывали коронованные им родственники и друзья, стремившиеся защищать интересы своих владений вопреки единству империи{{sfn|Тюлар||с=241—243}}{{sfn|Манфред|1987|с=516—524}}. Наполеона отличали презрение к людям и нервозность, подчас приводившая к припадкам ярости, похожим на эпилепсию{{sfn|Тюлар||с=237}}. Стремясь единолично принимать решения и контролировать их исполнение, Наполеон создал систему так называемых административных советов, на которых рассматривались в том числе вопросы, входившие в компетенцию муниципалитетов, а для контроля за расходами на содержание громоздкого административного аппарата в 1807 году он учредил [[Счётная палата (Франция)|Счётную палату]] во главе с [[Барбе-Марбуа, Франсуа|Барбе-Марбуа]]{{sfn|Тюлар||с=245—246}}.
Будучи императором, Наполеон вставал в 7 часов утра и занимался делами. В 10 часов — завтрак, сопровождаемый разбавленным [[шамбертен]]ом (привычка с дореволюционных времён). После завтрака опять работал в кабинете до часу дня, после чего присутствовал на заседаниях советов. Обедал в 5, а иногда в 7 часов пополудни, после обеда общался с императрицей, знакомился с книжными новинками, а затем возвращался в кабинет. В полночь ложился спать, в три часа ночи просыпался, чтобы принять горячую ванну, в пять утра опять ложился спать{{sfn|Тюлар||с=238}}.
=== Континентальная блокада ===
{{main|Континентальная блокада}}
[[Файл:France 1807-A 40 Francs.jpg|thumb|40 золотых франков 1807 года — Наполеон как император]]
18 мая 1806 года британское правительство распорядилось о блокаде французского побережья, разрешив досмотр нейтральных (главным образом американских) судов, направлявшихся во Францию{{sfn|Roberts|2014|p=374}}{{sfn|Тюлар||с=162}}. Одержав победу над Пруссией, 21 ноября 1806 года в Берлине Наполеон подписал декрет о [[Континентальная блокада|континентальной блокаде]]{{sfn|Lentz|2002|p=256}}. С этого момента Франция и её союзники прекращали торговые отношения с Англией. Европа была основным рынком сбыта английских товаров, а также колониальных, ввозимых Англией, — крупнейшей морской державой{{ref+|Континентальная Европа служила рынком сбыта для трети товаров, экспортируемых с Британских островов, и трёх четвертей товаров, реэкспортируемых Британией{{sfn|Roberts|2014|p=427}}.|К}}. Континентальная блокада нанесла ущерб английской экономике: по мере того, как европейские страны присоединялись к блокаде, происходило падение экспорта британского сукна и хлопка на континент, при этом росли цены на сырьё, которое Британия ввозила с континента. Ситуация значительно ухудшилась для Британии после того, как в июле 1807 года к континентальной блокаде примкнула Россия в соответствии с условиями Тильзитского мира. Европейские страны, которые первоначально мирились с британской контрабандой, под давлением Наполеона были вынуждены начать с ней серьёзную борьбу. Во втором полугодии 1807 года в голландских портах были арестованы около 40 британских судов, Дания закрыла для англичан свои воды. К середине 1808 года рост дороговизны и падение доходов вызвало народные волнения в [[Ланкашир]]е, произошло падение фунта стерлингов{{sfn|Тюлар||с=165—166}}.
Блокада ударила и по континенту. Французская промышленность не в состоянии была заменить на европейском рынке английскую. В качестве ответной меры в ноябре 1807 года Лондон объявил о блокаде европейских портов{{sfn|Тюлар||с=164}}. Потеря собственных и нарушение торговых связей с английскими колониями привело в упадок французские портовые города: [[Ла-Рошель]], [[Бордо]], [[Марсель]], [[Тулон]]{{sfn|Тюлар||с=177—178}}. Население (и сам император, как большой любитель кофе) страдало от недостатка привычных колониальных товаров (кофе, сахара, чая) и их дороговизны<ref>{{книга|заглавие=Revisiting Napoleon’s Continental System: Local, Regional and European Experiences|ссылка=https://books.google.ru/books?id=QPvgjwEACAAJ|ответственный=K. B. Aaslestad, J. Joor|место=UK|издательство=[[Palgrave Macmillan]]|год=2015|pages=11|allpages=290|isbn=978-1-137-34556-1}}</ref>{{sfn|Чандлер|2011|с=426}}. В 1811 году [[Делессер, Бенжамен|Делессер]] по примеру немецких изобретателей начал делать качественный сахар из сахарной свёклы, за что получил от приехавшего к нему Наполеона орден Почётного легиона, но новые технологии распространялись очень медленно{{sfn|Dictionnaire|1999|loc=t. 2|p=808}}.
=== От Пиренеев до Ваграма ===
{{main|Пиренейские войны|Война пятой коалиции}}
[[Файл:El Tres de Mayo, by Francisco de Goya, from Prado in Google Earth.jpg|thumb|[[Третье мая 1808 года в Мадриде]]. [[Гойя, Франсиско|Гойя]] (1814)]]
[[Файл:La Rendición de Bailén (Casado del Alisal).jpg|thumb|[[Байленская капитуляция]]. [[Касадо дель Алисаль, Хосе|Хосе Касадо дель Алисаль]] (1864)]]
[[Файл:Antoine-Jean Gros - Capitulation de Madrid, le 4 décembre 1808.jpg|thumb|Капитуляция Мадрида 4 декабря 1808 года. [[Гро, Антуан Жан|Гро]] (1810)]]
В 1807 году, при поддержке [[Испанская империя|Испании]], бывшей в [[Договор в Сан-Ильдефонсо (1796)|союзе]] с Францией с 1796 года, Наполеон потребовал от [[Королевство Португалия|Португалии]], чтобы и она примкнула к континентальной системе. Когда Португалия отказалась выполнить это требование, то 27 октября между Наполеоном и Испанией состоялся тайный [[Договор в Фонтенбло (октябрь 1807)|договор]] о завоевании и разделе Португалии, при этом южная часть страны должна была отойти всевластному первому министру Испании [[Годой, Мануэль|Годою]]. 13 ноября 1807 года правительственная ''[[Le Moniteur universel|Le Moniteur]]'' сардонически возвестила, что «[[Браганса (династия)|Браганцский дом]] перестал править — новое доказательство неизбежной гибели всех, кто связывает себя с Англией»{{sfn|Чандлер|2011|с=495—496}}. Наполеон направил на [[Лиссабон]] 25-тысячный корпус [[Жюно, Жан Андош|Жюно]]. После изнурительного двухмесячного перехода по испанской территории Жюно с 2 тыс. солдат 30 ноября [[Вторжение в Португалию (1807)|прибыл в Лиссабон]]. Португальский принц-регент [[Жуан VI|Жуан]], услышав о приближении французов, бросил свою столицу и [[Переезд португальского двора в Бразилию|бежал]] с родственниками и двором в [[Рио-де-Жанейро]]. Наполеон, взбешённый тем, что королевское семейство и португальские корабли ускользнули от него, 28 декабря приказал наложить на Португалию контрибуцию в 100 млн франков{{sfn|Чандлер|2011|с=497}}{{sfn|Тюлар||с=261}}.
Рассчитывая стать суверенным князем согласно условиям тайного договора, Годой допустил размещение большого количества французских войск на территории Испании. 13 марта 1808 года Мюрат был в [[Бургос]]е со 100 тыс. солдат и двигался в сторону [[Мадрид]]а. Для успокоения испанцев Наполеон приказал распространить слух, что он намерен осадить [[Гибралтар]]. Поняв, что с гибелью династии погибнет и он, Годой стал убеждать испанского короля [[Карл IV (король Испании)|Карла IV]] в необходимости бежать из Испании в Южную Америку. Однако в ночь на 18 марта 1808 года он был свергнут в ходе [[Аранхуэсский мятеж|мятежа]] в [[Аранхуэс]]е так называемыми «фернандистами», которые добились его отставки, отречения Карла IV и передачи власти сыну короля — [[Фердинанд VII|Фердинанду VII]]. 23 марта [[Мюрат]] вошёл в Мадрид{{sfn|Roberts|2014|p=476}}{{sfn|Lentz|2002|p=396—397}}. В мае 1808 года Наполеон вызвал обоих испанских королей — отца и сына — для объяснений в [[Байонна|Байонну]]. Оказавшись в плену у Наполеона, оба монарха [[Байонское отречение|отреклись от короны]], а на испанский престол император посадил своего брата [[Жозеф Бонапарт|Жозефа]], бывшего до того неаполитанским королём. Теперь неаполитанским королём стал Мюрат{{sfn|Тюлар||с=263}}{{sfn|Lentz|2002|p=401—402}}.
В самой Франции декретами от 1 марта 1808 года Наполеон восстановил дворянские титулы и дворянские гербы как знак признания заслуг перед империей. Отличие от старого дворянства состояло в том, что пожалование титула не давало прав на земельные владения и титул не переходил по наследству автоматически. Однако вместе с титулом новые дворяне нередко получали высокие оклады. Если дворянин приобретал [[майорат]] (капитал или постоянный доход), то титул передавался по наследству. 59 процентов [[Дворянство Империи (Франция)|нового дворянства]] составили военные{{sfn|Тюлар||с=255—257}}. 17 марта был издан декрет об учреждении [[Университет Франции|императорского Университета]]. Университет разделялся на академии и был призван давать высшее образование (бакалавр). Созданием Университета Наполеон стремился поставить под свой контроль формирование национальной элиты{{sfn|Тюлар||с=247}}.
Вмешательство Наполеона во внутренние дела Испании вызвало возмущение — 2 мая [[Мадридское восстание|в Мадриде]], а потом по всей стране. Местные власти ([[Хунта (Пиренейские войны)|хунты]]) организовали сопротивление французам, которым пришлось столкнуться с новой для них формой боевых действий — [[Гверильясы|партизанской войной]]. 22 июля [[Дюпон де л’Этан, Пьер-Антуан|Дюпон]] c 18 тыс. солдат [[Байленская капитуляция|сдался]] испанцам в поле возле [[Байлен]]а, нанеся сильный удар по репутации прежде непобедимой [[Великая армия|Великой армии]]. Британцы высадились в Португалии при поддержке местных властей и населения и вынудили Жюно эвакуироваться из страны после поражения [[Битва при Вимейру|при Вимейру]]{{sfn|Тюлар||с=263—266}}{{sfn|Чандлер|2011|с=510—512}}.
Для окончательного завоевания Испании и Португалии Наполеону требовалось перевести сюда основные силы Великой армии из Германии, однако этому препятствовала угроза войны со стороны перевооружившейся Австрии. Единственным противовесом Австрии могла бы быть союзная Наполеону Россия. 27 сентября Наполеон [[Эрфуртский конгресс|встретился]] с Александром I в [[Эрфурт]]е, чтобы заручиться его поддержкой. Наполеон поручил ведение переговоров Талейрану, который к этому времени состоял в тайных отношениях с австрийским и русским дворами. Александр предлагал разделить [[Османская империя|Турцию]] и передать России [[Константинополь]]. Не получив согласия Наполеона, Александр ограничился общими словами по поводу союза против Австрии. Наполеон также просил через Талейрана руки великой княжны [[Екатерина Павловна|Екатерины Павловны]], но и тут ничего не добился{{sfn|Тюлар||с=266—269}}{{sfn|Чандлер|2011|с=515—517}}<ref>{{книга |автор=[[Соколов, Олег Валерьевич|Соколов О. В.]]|заглавие=Битва двух империй. 1805—1812 |место={{М.}}—{{СПб.}} |издательство=[[Астрель]], Астрель-СПб|год=2012 |страниц=730 |страницы=255—267|isbn=978-5-271-42347-5}}</ref>.
Рассчитывая решить испанскую проблему до вступления Австрии в войну, Наполеон 29 октября выступил в поход во главе прибывшей из Германии армии в 160 тыс. человек. 4 декабря французские войска вошли в Мадрид. 16 января англичане, отразив атаку [[Сульт, Никола Жан де Дьё|Сульта]] [[Битва при Ла-Корунье|под Ла-Коруньей]], погрузились на корабли и покинули Испанию. 1 января 1809 года в [[Асторга|Асторге]] Наполеон получил депеши о военных приготовлениях Австрии и об интригах в его правительстве со стороны сблизившихся Талейрана и Фуше (которые договорились в случае смерти Наполеона в Испании заменить его Мюратом){{sfn|Тюлар||с=269—272}}. 17 января он выехал из [[Вальядолид]]а в Париж{{sfn|Itinéraire|2002|p=372—373}}. Несмотря на достигнутые успехи, завоевание Пиренеев не было закончено: испанцы продолжали партизанскую войну, английский контингент прикрывал Лиссабон, через три месяца англичане под командованием [[Веллингтон, Артур Уэлсли|Уэлсли]] снова высадились на полуострове<ref>{{книга|автор=Fremont-Barnes G.|заглавие=The Napoleonic Wars: The Peninsular War 1807—1814|ссылка=https://archive.org/details/napoleonicwars00greg/page/39|год=2002|издательство=Osprey Publishing Limited|allpages=95|pages=39—40|isbn=978-1-84176-370-5}}</ref>. Падение португальской и испанской династий привело к открытию обеих колониальных империй для британской торговли и пробило брешь в континентальной блокаде{{sfn|Ливен|2012|с=124}}. Впервые война не приносила Наполеону доходы, а лишь требовала всё новых и новых расходов и солдат. Для покрытия расходов увеличивались косвенные налоги (на соль, продовольственные товары), что вызывало недовольство населения{{sfn|Тюлар||с=246}}. На Святой Елене Наполеон говорил: «злополучная испанская война стала первопричиной несчастий»{{sfn|Чандлер|2011|с=546—548}}{{sfn|Тюлар||с=270—272}}.
[[Файл:Lannes mortally wounded at Essling (E. Boutigny).jpg|thumb|right|Наполеон возле смертельно раненого [[Ланн, Жан|Ланна]]. [[Бутиньи, Поль-Эмиль|Бутиньи]] (1894)]]
За время, прошедшее после подписания Пресбургского мира, в австрийской армии были проведены глубокие военные реформы под руководством [[Карл Тешенский|эрцгерцога Карла]]. Рассчитывая воспользоваться антифранцузскими настроениями, набиравшими силу в Германии, 3 апреля 1809 года австрийский император [[Франц II|Франц I]] объявил войну Франции. После начала боевых действий Австрия получила от Великобритании более 1 млн фунтов стерлингов в виде субсидии{{ref+|Обменный курс между франком и фунтом стерлингов находился в интервале от 20 до 25 франков за 1 фунт<ref name="Piketty">{{книга|автор=[[Пикетти, Тома|Пикетти Т.]]|заглавие=[[Капитал в XXI веке]]|издательство=[[Ad Marginem]]|место={{М.}}|год=2015|isbn=978-5-91103-252-4|страниц=592|страницы=116}}</ref>.|К}}. Наполеон, увязший в Испании, пытался избежать войны, но без поддержки со стороны России не смог этого сделать. Однако благодаря энергичным усилиям за три месяца с января 1809 года он смог сформировать во Франции новую армию. Эрцгерцог Карл направил одновременно восемь корпусов в союзную Наполеону [[Королевство Бавария|Баварию]], два корпуса в Италию и один в [[Варшавское герцогство]]. Русские войска сосредоточились на восточных границах Австрийской империи, но в боевых действиях участия практически не приняли, позволив Австрии вести войну на один фронт (что вызвало гнев Наполеона){{sfn|Roberts|2014|p=499—501}}{{sfn|Исдейл|1997|с=233}}.
Наполеон, подкреплённый войсками Рейнского союза, силами десяти корпусов отразил нападение на Баварию и 13 мая захватил Вену. Австрийцы переправились на северный берег разлившегося [[Дунай|Дуная]] и разрушили за собой мосты. Наполеон решил форсировать реку с опорой на остров [[Лобау]]. Однако после того, как часть французских войск переправилась на остров, а часть — на северный берег, понтонный мост разорвался, а эрцгерцог Карл напал на переправившихся. В последовавшем 21—22 мая сражении [[Асперн-Эсслингская битва|при Асперне и Эсслинге]] Наполеон потерпел поражение и отступил. Неудача самого императора воодушевила все антинаполеоновские силы в Европе. После шести недель обстоятельной подготовки французские войска переправились через Дунай и одержали 5—6 июля победу в генеральном сражении [[Битва под Ваграмом|при Ваграме]], за которой 12 июля последовало [[Цнаймское перемирие]], а 14 октября был заключён [[Шёнбруннский мир]]. По этому договору Австрия лишилась выхода к [[Адриатическое море|Адриатическому морю]], передав Франции территории, из которых впоследствии Наполеон образовал [[Иллирийские провинции]]. [[Галиция]] была передана Великому герцогству Варшавскому, а [[Тарнопольский округ]] — России. Австрийская кампания показала, что армия Наполеона уже не имела прежнего преимущества перед противником на поле боя{{sfn|Lentz|2002|p=442}}{{sfn|Тюлар||с=273—279}}{{sfn|Чандлер|2011|с=576—606}}.
=== Кризис империи ===
[[Файл:Jacques-Louis David - The Emperor Napoleon in His Study at the Tuileries - Google Art Project 2.jpg|thumb|150px|Император Наполеон в своём кабинете в Тюильри. [[Давид, Жак-Луи|Давид]] (1812)]]
[[Файл:First French Empire 1812.svg|мини|left|alt=Карта Европы 1812 года. Французская империя больше, чем современная Франция, поскольку включает в себя части современных Нидерландов, Италии и ряда других стран|Первая империя, 1812 год{{legend|#002395|Наполеоновская Франция}}{{legend|#9090FF|Зависимые государства}}]]
Политика Наполеона в первые годы его правления пользовалась поддержкой населения — не только собственников, но и малоимущих (рабочих, батраков): оживление экономики вело к росту зарплат, чему способствовали и постоянные наборы в армию. Наполеон выглядел спасителем отечества, войны вызывали национальный подъём, а победы — чувство гордости. Наполеон Бонапарт был человеком революции, а окружающие его маршалы, блестящие военачальники, происходили подчас из самых низов{{sfn|Тюлар||с=197—198}}. Но постепенно народ начал уставать от войны, наборы в армию стали вызывать недовольство. В 1810 году вновь разразился экономический кризис, не прекращавшийся вплоть до 1815 года. Войны на просторах Европы теряли смысл, затраты на них стали раздражать буржуазию. [[Дворянство Империи (Франция)|Новое дворянство]], которое создал Наполеон, так и не стало опорой его трона. Безопасности Франции, казалось, ничто не угрожало, а во внешней политике всё большую роль играло стремление императора укрепить и обеспечить интересы династии, не допустив, в случае своей смерти, как анархии, так и реставрации Бурбонов{{sfn|Тюлар||с=234—236}}{{sfn|Lentz|2004|p=75—76}}.
Во имя династических интересов Наполеон 12 января 1810 года развёлся с Жозефиной, от которой не имел детей, и просил у Александра I руки его младшей сестры, 15-летней великой княжны [[Анна Павловна|Анны Павловны]]. Предвидя отказ, он также обратился к Францу I с предложением о браке с его дочерью, австрийской принцессой [[Мария-Луиза Австрийская|Марией-Луизой]], на которой Наполеон и женился 1 апреля 1810 года. 20 марта 1811 года у них родился сын — [[Наполеон II]]; поскольку Мария-Луиза приходилась внучатой племянницей французской королеве [[Мария-Антуанетта|Марии-Антуанетте]], её сын имел формальное право занять французский престол, но австрийский брак императора был крайне непопулярен во Франции{{sfn|Тюлар||с=279—280}}{{sfn|Lentz|2004|p=11—12}}.
В феврале 1808 года французские войска заняли [[Рим]]. Декретом от 17 мая 1809 года Наполеон объявил [[Папская область|папские владения]] присоединёнными к Французской империи и упразднил власть Папы. В ответ на это папа [[Пий VII]] отлучил «грабителей наследства св. Петра» от церкви. Папская булла была прибита на дверях четырёх главных церквей Рима и выслана всем послам иностранных держав при папском дворе. Наполеон приказал арестовать Папу и держал его в плену до января 1814 года. 5 июля 1809 года французские военные власти вывезли его в [[Савона|Савону]], а затем — в [[Фонтенбло]] под Парижем. Отлучение Наполеона от церкви негативно сказалось на авторитете его власти, в особенности в традиционно католических странах{{sfn|Dictionnaire|1999|loc=t. 2|p=503}}{{sfn|Тюлар||с=277}}.
Континентальная блокада, хотя и нанесла ущерб Великобритании, не смогла привести к победе над ней. 3 июня 1810 года Наполеон отправил в отставку Фуше за тайные переговоры с англичанами о мире, которые он вёл якобы по поручению императора. Союзники и вассалы Первой империи, принявшие континентальную блокаду вопреки своим интересам, не стремились строго её соблюдать, росла напряжённость между ними и Францией. 3 июля того же года Наполеон лишил голландской короны своего брата Луи за несоблюдение континентальной блокады и требований по набору рекрутов, Голландия была присоединена к Франции. Признав, что континентальная система не позволяет достичь поставленных целей, император не отказался от неё, а ввёл так называемую «новую систему», при которой выдавались специальные лицензии на торговлю с Великобританией, причём преимущество при получении лицензий имели французские предприятия. Эта мера вызвала ещё большую враждебность в среде континентальной буржуазии{{sfn|Roberts|2014|p=547—549}}.
Всё более очевидными становились противоречия между Францией и Россией. Патриотические движения ширились в Германии, в Испании не угасала [[Гверильясы|герилья]]{{sfn|Lentz|2004|p=201}}{{sfn|Тарле|1959|с=241—250}}.
=== Поход в Россию и крушение империи ===
{{main|Отечественная война 1812 года|Война шестой коалиции}}
[[Файл:Napoleon in burning Moscow - Adam Albrecht (1841).jpg|thumb|[[Московский пожар (1812)|Московский пожар]]. [[Адам, Альбрехт|Адам]] (1841)]]
[[Файл:Napoleons retreat from Moscow by Adolph Northen.jpg|thumb|Отступление Наполеона из Москвы. [[Нортен, Адольф|Нортен]] (1851)]]
Разорвав отношения с [[Александр I|Александром I]], Наполеон решился на [[Отечественная война 1812 года|войну с Россией]]. 450 тыс. солдат, собранных в [[Великая армия|Великую армию]] из разных стран Европы, в июне 1812 года перешли русскую границу; им противостояли 193 тыс. солдат в двух русских западных армиях{{sfn|Ливен|2012|с=192}}{{sfn|Ливен|2012|с=205—206}}. Наполеон пытался навязать русским войскам генеральное сражение; уклоняясь от превосходящего неприятеля и стремясь соединиться, две русские армии отступали вглубь страны, оставляя за собой разорённую территорию. Великая армия страдала от голода, жары, грязи, скученности и вызванных ими [[Сыпной тиф|болезней]]{{sfn|Dictionnaire|1999|loc=t. 1|p=371}}{{sfn|Roberts|2014|p=588}}; к середине июля из неё дезертировали целыми отрядами{{sfn|Roberts|2014|p=590}}. Соединившись под Смоленском, русские армии пытались отстоять город, но безуспешно; 18 августа им пришлось возобновить отступление в сторону Москвы. Единую русскую армию возглавил [[Кутузов, Михаил Илларионович|М. И. Кутузов]]. [[Бородинское сражение|Генеральное сражение]], данное русскими войсками 7 сентября у деревни [[Бородино (деревня, Можайский район)|Бородино]] перед Москвой, не принесло Наполеону решительной победы{{sfn|Dictionnaire|1999|loc=t. 1|p=284—285}}. Русским войскам вновь пришлось отступить. 14 сентября Великая армия [[Оккупация Москвы французами|вошла]] в Москву{{sfn|Dictionnaire|1999|loc=t. 1|p=372—373}}.
Немедленно распространившийся после этого [[Московский пожар (1812)|пожар]] уничтожил бо́льшую часть города. Рассчитывая на заключение мира с [[Александр I|Александром]], Наполеон неоправданно долго оставался в Москве; наконец, 19 октября он вышел из города в юго-западном направлении. Не сумев [[Сражение под Малоярославцем|преодолеть оборону]] русской армии 24 октября у [[Малоярославец|Малоярославца]], Великая армия вынуждена была отступать по уже разорённой местности в направлении Смоленска{{sfn|Roberts|2014|p=617}}. Русская армия следовала параллельным маршем, нанося противнику урон как в сражениях, так и [[Партизанское движение в Отечественной войне 1812 года|партизанскими действиями]]. Страдая от голода, солдаты Великой армии превращались в грабителей и насильников; разгневанное население отвечало не меньшими жестокостями, закапывая пойманных мародёров заживо{{sfn|Roberts|2014|p=621—622}}. В середине ноября Наполеон вошёл в Смоленск и не нашёл здесь запасов продовольствия. В связи с этим он был вынужден отступать дальше в сторону русской границы. С большим трудом ему удалось избежать полного разгрома при [[Сражение на Березине|переправе через Березину]] 27—28 ноября. Огромная разноплеменная армия Наполеона не несла в себе прежнего революционного духа, вдали от родины на полях России она быстро таяла. Получив сообщение о попытке [[Заговор Мале|переворота]] в Париже и желая собрать новые войска, Наполеон уехал в Париж 5 декабря. В своём последнем [[29-й бюллетень Великой армии|бюллетене]] он признал катастрофу, но списал её исключительно на суровость [[Генерал Мороз|русской зимы]]{{sfn|Roberts|2014|p=629}}{{sfn|Dictionnaire|1999|loc=t. 1|p=373}}, хотя зимняя погода проявилась только в самом конце похода Наполеона. Из России вернулись лишь 25 тыс. солдат из тех 450 тыс., что входили в центральную часть Великой армии. Наполеон потерял в России почти всех лошадей; эту потерю он так и не смог возместить{{sfn|Чандлер|2011|с=700—701}}.
Поражение в русской кампании положило конец легенде о непобедимости Бонапарта. Несмотря на усталость русской армии и нежелание русских военачальников продолжать войну за пределами России, Александр I принял решение перенести боевые действия на территорию Германии. Пруссия [[Калишский союзный договор|присоединилась]] к новой антинаполеоновской коалиции{{sfn|Чандлер|2011|с=700}}{{sfn|Ливен|2012|с=375—380}}. В несколько месяцев Наполеон собрал новую 300-тысячную армию из юношей и стариков и обучил её на марше в Германию. В мае 1813 года в сражениях [[Сражение при Лютцене (1813)|при Лютцене]] и [[Сражение при Бауцене|Бауцене]] Наполеон сумел нанести поражения союзникам, несмотря на нехватку кавалерии. 4 июня было заключено перемирие, Австрия выступила посредником между воюющими сторонами. Министр иностранных дел Австрии [[Меттерних, Клеменс фон|Меттерних]] на встречах с Наполеоном в Дрездене предлагал заключить мир на условиях восстановления Пруссии, раздела Польши между Россией, Пруссией и Австрией и возвращения Иллирии австрийцам; но Наполеон, считая военные завоевания основой своей власти, отказался{{sfn|Тюлар||с=307—309}}{{sfn|Ливен|2012|с=459—464}}.
[[Файл:Meissonier - 1814, Campagne de France.jpg|left|thumb|[[Кампания 1814 года]]. [[Месонье, Жан-Луи-Эрнест|Месонье]] (1864)]]
Испытывая острый финансовый кризис и соблазняемая английскими субсидиями, по окончании перемирия 10 августа Австрия присоединилась к шестой коалиции. Так же поступила Швеция. В соответствии с [[Трахенбергский план|Трахенбергским планом]] союзники сформировали три армии под командованием Бернадотта, [[Блюхер, Гебхард Леберехт|Блюхера]] и [[Шварценберг, Карл Филипп цу|Шварценберга]]. Наполеон также разделил свои силы. В крупном [[Сражение при Дрездене|сражении при Дрездене]] Наполеон взял верх над союзниками; однако его маршалы, действуя самостоятельно, потерпели ряд болезненных поражений [[Сражение под Кульмом|при Кульме]], [[Сражение на реке Кацбах|Кацбахе]], [[Сражение у Гросберена|Гросберене]] и [[Сражение при Денневице|Денневице]]. Перед лицом грозящего окружения Наполеон со 160-тысячной армией дал под [[Лейпциг]]ом генеральное сражение соединённым русским, австрийским, прусским и шведским войскам общей численностью 320 тысяч человек (16 — 19 октября 1813). На третий день этой «[[Битва народов|Битвы народов]]» на сторону союзников перешли саксонцы из корпуса [[Ренье, Жан|Ренье]], а затем и вюртембергская кавалерия{{sfn|Тюлар||с=309—310}}{{sfn|Исдейл|1997|с=238—239, 403—409}}{{sfn|Левицкий|1938|с=217—236}}.
Поражение в Битве народов привело к отпадению Германии и Голландии, распаду Швейцарской конфедерации, Рейнского союза и Итальянского королевства. В Испании, где французы терпели поражение, Наполеону пришлось восстановить власть испанских Бурбонов (ноябрь 1813){{sfn|Тюлар||с=310—315}}{{sfn|Dictionnaire|1999|loc=t. 1|p=486}}<ref>{{статья|ссылка=http://www.hls-dhs-dss.ch/textes/d/D9798.php|автор=Fankhauser A.|заглавие=Mediation|место=Bern|издание=Historisches Lexikon der Schweiz|издательство=HLS|год=2009|archive-date=2017-03-24|archive-url=https://web.archive.org/web/20170324001132/http://www.hls-dhs-dss.ch/textes/d/D9798.php}}</ref>. Чтобы заручиться поддержкой депутатов, в декабре 1813 года Наполеон созвал заседание Законодательного корпуса, однако распустил палату после того, как она приняла нелояльное постановление{{sfn|Тюлар||с=319}}. В конце 1813 года союзные армии форсировали [[Рейн]], вторглись в Бельгию и двинулись на Париж. 23 января 1814 года Наполеон устроил свой последний приём для офицеров в Тюильри. На рассвете 25 января он в последний раз увидел своего сына, после чего направился к войскам. 250-тысячной армии союзников Наполеон мог противопоставить только 80 тысяч рекрутов. В [[Шестидневная война Наполеона|серии сражений]] он одержал победы над отдельными соединениями союзников. Однако 31 марта 1814 года коалиционные войска под предводительством русского царя Александра I и короля Пруссии [[Взятие Парижа (1814)|вступили в Париж]]{{sfn|Тюлар||с=323—325}}.
== Титул ==
''Его Императорское и Королевское Величество Наполеон I, Божиею милостью и Конституцией Республики, Император Французов, Король Италии, Римский Император, Протектор Рейнского Союза и Данцигской республики, Медиатор Швейцарской Конфедерации, Князь и Соправитель Андорры, Великий Магистр Ордена Почетного Легиона, Железной Короны, Академических пальм и Воссоединения'' (18 мая 1804 — 6 апреля 1814; 20 марта — 22 июня 1815).
''Аимператортәи Акралтәи иаҳаракыра Наполеон I, Анцәа илыԥхеи Ареспублика Аконституциеи рыла, Афранцызцәа Римператор, Италиа Акрал, Рим Аимператор, Реинтәи Аидгылеи Данцигтәи ареспубликеи Рпротектор, Швеицариатәи Аконфедерациа Амедиатор, Андорра Аҭауади Ацнапхгаҩи, Аҳаҭыртә Легиони, Аихатә Гәыргьыни, Академиатә пальмақәеи, Аиҭеидылареи Рорден Амагистр Ду'' (лаҵарамза 18, 1804 — мшаԥымза 6, 1814; хәажәкырамза 20 — рашәарамза 22, 1815).
''Князь Эльбы'' (3 мая 1814 года — 25 февраля 1815 года).
''Ельба Аҭауад'' (лаҵарамза 3, 1814 шықәса — жәабранмза 25, 1815 шықәса).
== Остров Эльба и Сто дней ==
=== Первое отречение и первая ссылка ===
=== Раԥхьатәи амчра ааныжьреи ахгареи ===
{{seealso|Договор в Фонтенбло (1814)|Реставрация Бурбонов}}
[[Файл:Montfort - Adieux de Napoleon a la Garde imperiale.jpg|200px|thumb|left|Прощание Наполеона с императорской гвардией 20 апреля 1814. [[Монфор, Антуан-Альфонс|Монфор]] (XIX век)]]
[[Файл:Napoléon à Fontainebleau Delaroche.jpg|thumb|200px|После отречения во [[Дворец Фонтенбло|дворце Фонтенбло]]. [[Поль Деларош|Деларош]] (1845)]]
[[Файл:Elba VillaSanMartino.jpg|200px|thumb|[[Вилла Сан-Мартино|Вилла Наполеона]] в Сан-Мартино ([[Эльба (остров)|Эльба]])]]
Наполеон был готов продолжать борьбу, однако 3 апреля [[Охранительный сенат|Сенат]] провозгласил его отстранение от власти и сформировал временное правительство во главе с Талейраном. Маршалы ([[Ней, Мишель|Ней]], Бертье, [[Лефевр, Франсуа Жозеф|Лефевр]]) убеждали его отречься в пользу сына. 6 апреля 1814 года во [[Дворец Фонтенбло|дворце Фонтенбло]] под Парижем Наполеон отрёкся от престола{{sfn|Тюлар||с=326}}. В ночь с 12 на 13 апреля 1814 года в Фонтенбло, переживая поражение, оставленный своим двором (рядом с ним были только несколько слуг, врач и генерал Коленкур), Наполеон решил [[Самоубийство|покончить с собой]] — он принял яд, который всегда носил при себе после [[сражение под Малоярославцем|битвы под Малоярославцем]], когда только чудом не попал в плен. Но яд разложился от долгого хранения, и Наполеон выжил{{sfn|Roberts|2014|p=714}}{{sfn|Dwyer|2013|p=489—490}}. По [[Договор в Фонтенбло (1814)|Фонтенблоскому договору]], который Наполеон подписал с союзными монархами, он получил во владение небольшой остров [[Эльба (остров)|Эльба]] в Средиземном море. 20 апреля 1814 года Наполеон покинул Фонтенбло и отправился в ссылку{{sfn|Тюлар||с=326}}.
Наполеон ақәԥара дазхиан, аха мшаԥы 3 рзы Асенат амчра иамхра рыланаҳәеит, Талеиран дызхагылаз аамҭалатәи аиҳабыра еиҿнакааит. Амаршалцәа (Неи, Бертие, Лефевр) иабжьыргон иҷкәын изы мап ицәикырц. Мшаԥымза 6, 1814 шықәса рзы Париж азааигәара иҟоу Фонтенбло аҳҭынраҿы Наполеон аҳра аанижьит. Мшаԥымза 12-13, 1814 шықәсазы Фонтенбло дахьаҵахаз, насгьы иара ицнагаҩцәеи имаҵуәеи ????? (уи иааигәара аӡәык — ҩыџьак амаҵуцәа, аҳақьым, аинрал Коленкур ракәын иҟаз) Наполеон иҽишьырц иӡбеит-Малоиарославц амҵан аибашьра ашьҭахь еснагь иныҟәигоз ашҳам ижәит. Аха ашҳам акраамҭа иахьыҵәахыз ????, Наполеон деиқәхеит. Наполеон аидгылатә монархцәеи иареи рнапы зҵарҩыз Фонтенблотәи аиқәшаҳаҭрала Адгьылбжьаратә мшын аҿы иҟоу Адгьылбжьаха хәыҷы Ельба иоуит. Мшаԥымза 20, 1814 шықәсазы Наполеон Фонтенбло ааныжьны дцеит.
[[Сто дней#Наполеон на острове Эльба|На Эльбе]] Наполеон активно занялся развитием экономики острова. В соответствии с условиями договора в Фонтенбло, ему была обещана ежегодная [[Аннуитет|рента]] в размере 2 млн [[Франк (денежная единица)|франков]] из французского казначейства. Однако он так и не получил денег и к началу 1815 года оказался в сложном финансовом положении{{sfn|Roberts|2014|p=729}}. Мария-Луиза с сыном, находясь под влиянием Франца I, отказались приехать к нему. Жозефина умерла в Мальмезоне 29 мая 1814 года, как сказал позднее Наполеону лечивший её доктор, «от горя и тревоги за него». Из родственников Наполеона только его мать и сестра Полина приехали навестить его на Эльбе. Наполеон внимательно следил за происходившим во Франции, принимал гостей и обменивался тайными посланиями со своими сторонниками{{sfn|Манфред|1987|с=669}}{{sfn|Тюлар||с=330—331}}.
Наполеон активла иҽазикит Ельба адгьылбжьаха аекономика аҿиара. Фонтенбло аиқәшаҳаҭра аилаӡарақәа инарықәыршәаны, франциатәи аказначеира аҟынтәи 2 млн франк ҳәа есышықәсатәи арента ихәҭан. Аха иара аԥара имоуит, насгьы 1815 шықәса алагамҭазы афинанстә ҭагылазаашьа уадаҩ дҭагылеит. Мариа-Луиза лыҷкәыни Лареи Франц I иныррала Наполеон иахь имцаӡеит. Жозефина Мальмезон лыԥсҭазаара далҵит лаҵара 29, 1814 шықәсазы, ԥыҭрак ашьҭахь Наполеон дызхәышәтәуаз аҳақьым ишиеиҳәаз ала, «иара изы агәырҩеи агәҭынчымреи ирыхҟьаны». Наполеон иуацәа рахьтә иани иаҳәшьа Полинеи роуп Ельба ибара иааз. Наполеон Франциа имҩаԥысуаз ахҭысқәа дазҿлымҳаны дрышьклаԥшуан, асасцәа идикылон, насгьы идгылаҩцәеи иареи маӡала ашәҟәқәа еимырдон.
24 апреля 1814 года в [[Кале]] высадился прибывший из Англии [[Людовик XVIII]]. Вместе с [[Бурбоны|Бурбонами]] вернулись и [[Эмигранты времён Французской революции|эмигранты]], стремившиеся к возврату имущества и привилегий («они ничему не научились и ничего не забыли»). В июне король [[Октроирование|даровал]] Франции [[Хартия 1814 года|новую конституцию]]. Конституция 1814 года сохраняла многое из имперского наследия, но сосредотачивала власть в руках короля и его приближённых. Роялисты требовали полного возврата [[Старый порядок|старых порядков]]. Новые собственники земель, некогда конфискованных у эмигрантов и церкви, опасались за свою собственность. Военные были недовольны резким сокращением армии{{sfn|Lentz|2004|p=582—589}}{{sfn|Манфред|1987|с=663—667}}. На собравшемся в сентябре 1814 года [[Венский конгресс|Венском конгрессе]] союзные державы раскололись по вопросу о дележе отвоёванных территорий{{sfn|Lentz|2010|p=132—135}}.
Мшаԥымза 24, 1814 шықәсазы Кале дыӡхыҵит Англиантәи иааз Лиудовик XVIII. Бурбонаа ирыцхынҳәит амали ??? рыхынҳәра иашьҭаз ??? («урҭ акгьы рзымҵеит, акгьы рхамышҭӡеит»). Рашәарамзазы аҳ Франциа аконституциа ҿыц аиҭеит. 1814 шықәсазтәи аконституциа аимпериатә ҭынха аҟынтәи ирацәаны еиқәнархон, аха амчра аҳәынҭқар изааигәази иареи рнапаҿы иҟан. Ароиалистцәа ажәытә закәанқәа инагӡаны рыхынҳәра рҭахын. ????Анкьа амҳаџьырцәеи ауахәамеи ирымырхыз адгьылқәа зхатәтәыз ҿыцқәа рхатәтәра иацәшәон????. Аруаа ар иаалырҟьаны армаҷра ргәамԥхеит. 1814 шықәса цәыббрамзазы Венатәи аконгресс аҿы еизаз аидгылатә ҳәынҭқаррақәа рҽеиҩыршеит рнапаҿы иааргаз аҵакырадгьылқәа реихшара азҵаара иахҟьаны.
=== Сто дней и второе отречение ===
=== Шәымши аҩбатәи амчра ааныжьреи ===
{{main|Сто дней|Битва при Ватерлоо|Второе отречение Наполеона}}
[[Файл:Beaume - Napoléon Ier quittant l'île d'Elbe - 1836.jpg|200px|thumb|Наполеон покидает Эльбу. [[Бом, Жозеф|Бом]] (1836)]]
[[Файл:Belgium-6758 - Napoleon (14152068942).jpg|200px|thumb|Наполеон при Ватерлоо (деталь [[Панорама битвы при Ватерлоо|панорамы]] на месте битвы)]]
Воспользовавшись благоприятной политической ситуацией, Наполеон бежал с Эльбы 26 февраля 1815 года. 1 марта он высадился в [[Антиб#Жюан-ле-Пен|заливе Жуан]] недалеко от [[Канны|Канн]] с 1 тыс. солдат и направился в Париж по [[Дорога Наполеона|дороге]] через [[Гренобль]], в обход пророялистски настроенного [[Прованс]]а. 7 марта перед Греноблем {{iw|5-й пехотный полк (Франция)|5-й линейный полк|fr|5e régiment d'infanterie (France)}} перешёл на сторону Наполеона после его страстной речи: «Вы можете застрелить вашего императора, если захотите!» От Гренобля до Парижа Наполеон прошёл, встречаемый восторженными толпами народа. 18 марта у [[Осер]]а к нему примкнул Ней, обещавший Людовику XVIII «привезти Бонапарта в клетке». 20 марта Наполеон въехал в Тюильри{{sfn|Чандлер|2011|с=830—832}}{{sfn|Itinéraire|2002|p=567—569}}.
Аполитикатә ҭагылазаашьа маншәала ихы иархәаны Наполеон Ельба аҟынтәи дыбналеит жәабран 26, 1815 шықәсазы. Хәажәкыра 1 азы Канн иацәыхарамкәа Жуан аӡыбжьахалаҿы 1 нызқьҩык асолдаҭцәеи иареи иӡхыҵын, Гренобль далсны ???? Прованс дакәшаны Парижҟа рҿаархеит. Хәажәәкыра 7 рзы Гренобль иҿаԥхьа Ашаблон:Iw Наполеон иганахь ииасит ??? иқәгылара ашьҭахь: «Шәимператор шәеихсны дышәшьыр шәылшоит ишәҭаххар!" Наполеон Гренобль инаркны Парижынӡа .данцоз, ажәлар игәырӷьаҵәа иԥылон. Хәажәкыра 18 рзы Осер азааигәара иара иахь диасит «Бонапарт ахац дҭакны даазгоит» ҳәа Лиудовик XVIII ажәа изҭаз Неи. Хәажәкыра 20 рзы Наполеон Тиульри далалеит.
На Венском конгрессе державы уладили свои разногласия к моменту посадки Наполеона на корабли{{sfn|Lentz|2010|p=345}}. Получив известие о том, что Наполеон во Франции, 13 марта они объявили его вне закона{{sfn|Lentz|2010|p=352}}. 25 марта державы объединились в новую, седьмую коалицию, и условились выставить 600 тыс. солдат{{sfn|Lentz|2010|p=357}}. Напрасно Наполеон убеждал их в своём миролюбии. Во Франции стали стихийно формироваться революционные [[Федераты (Великая французская революция)|федерации]] для защиты родины и порядка. 15 мая вновь восстала Вандея, крупная буржуазия бойкотировала новую власть. Однако Наполеон не воспользовался революционными настроениями народа для борьбы с внешними и внутренними врагами («Не желаю быть королём [[Жакерия|Жакерии]]»). Стремясь опереться на либеральную буржуазию, он поручил [[Констан, Бенжамен|Констану]] разработать проект новой [[Дополнительный акт|конституции]], которая была одобрена на [[Референдум во Франции (1815)|плебисците]] (при низкой явке) и ратифицирована во время церемонии 1 июня 1815 года на [[Майское поле (1815)|Майском поле]]{{sfn|Тюлар||с=334—337}}{{sfn|Dictionnaire|1999|loc=t. 1|p=34}}. В соответствии с новой конституцией были сформированы [[Палата пэров (Франция)|Палата пэров]] и [[Палата представителей (Франция)|Палата представителей]]{{sfn|Ellis|2014|p=232}}.
Венатәи аконгресс аҿы аҳәынҭқаррақәа реилибамкаарақәа аҭыԥ иқәырҵеит Наполеон аӷбақәа данрықәтәоз аамҭазы. Наполеон Франциа дыҟоуп ҳәа адырра анроу, хәажәкыра 13 рзы ????. Хәажәкыра 25 рзы аҳәынҭқаррақәа абыжьбатәи акоалициа ҿыц ҳәа рҽеидыркылеит, еибырҳәеит 600 нызқьҩык асолдаҭцәа ықәдыргыларц. Франциа ??? ишьақәгыло иалагеит аԥсадгьыл ахьчаразы ареволиуциатә федерациақәа . Лаҵара 15 рзы ҩаԥхьа Вандеиа ???, абуржуазиа ду амчра ҿыц ??? азнауит. Аха Наполеон адәныҟатәии аҩныҵҟатәии аӷацәа рҿагыларазы ажәлар рреволиуциатә гәалаҟазаарақәа ихы иаимырхәеит («Жакериа акралс аҟазаара сҭахӡам»). Алибералтә буржуазиа дақәгәыӷуа, Констан идиҵеит аконституциа ҿыц апроект аԥҵара. Ари аконституациа рыдыркылеит (ааира маҷ аан), насгьы аратификациа азыруит рашәара 1, 1815 шықәсазы Лаҵаратәи адәаҿы. Аконституациа ҿыц инақәыршәаны Аперцәа рпалатеи Ахарҭарнакцәа рпалатеи еиҿкаан.
Война возобновилась, но Франция уже была не в силах нести её бремя. 15 июня Наполеон с армией в 125 тыс. человек выступил в Бельгию навстречу британским (90 тыс. под командованием [[Веллингтон, Артур Уэлсли|Веллингтона]]) и прусским (120 тыс. под командованием [[Блюхер, Гебхард Леберехт|Блюхера]]) войскам, намереваясь разбить союзников по частям до подхода русских и австрийских сил. В битвах [[Битва при Катр-Бра|при Катр-Бра]] и [[Битва при Линьи|Линьи]] он потеснил британцев и пруссаков. Однако в [[Битва при Ватерлоо|генеральном сражении]] около бельгийской деревни [[Ватерлоо (Бельгия)|Ватерлоо]] 18 июня 1815 года он потерпел окончательное поражение. Оставив армию, 21 июня вернулся в Париж{{sfn|Тюлар||с=338—339}}.
Аибашьра еиҭа иалагеит, аха Франциа еибашьыртә уажәшьҭа алшарақәа амамызт. Рашәара 15 рзы Наполеон Бельгиа далалеит. Уа иара аурысцәеи австриицәеи аиаанӡа Абританиатәии (Веллингтон напхгара зиҭоз 90-нызқьҩы асолдаҭцәа) Апруссаитәии (Блиухер напхгара зиҭоз 120-нызқьҩы асолдаҭцәа) ар дыриааирц гәҭакыс иман. Катр-Бреи Линьеи имҩаԥысуаз аибашьрақәа рҿы британцәеи пруссакцәеи инагӡаны дырзымиааит. Рашәара 18, 1815 шықәсазы Бельгиа ақыҭа Ватерлоо азааигәара Наполеон агенералтә еибашьра даҵахеит. Рашәара 21 рзы, ир ааныжьны Парижҟа дхынҳәит.
22 июня Палата представителей сформировала временное правительство во главе с Фуше и потребовала отречения Наполеона. В тот же день Наполеон отрёкся во второй раз. 25 июня он был вынужден уехать из Франции и, понадеявшись на благородство правительства Великобритании, 15 июля возле [[Иль-д’Экс (остров)|острова Экс]] добровольно сел на английский линейный корабль «[[HMS Bellerophon (1786)|Беллерофон]]», рассчитывая получить политическое убежище у своих давних врагов — англичан{{sfn|Тюлар||с=341—342}}.
Рашәара 22 рзы Ахаҭарнакцәа рпалата Фуше напхгара зиҭоз аамҭалатәи еиҳабыра еиҿнакааит. Дара ирҭахын Наполеон амчра аанижьырц. Убри аҽныҵәҟьа Наполеон аҩынтә раан амчра аанижьит. Рашәара 25 рзы Франциа далҵыр акәхеит. Ԥхынгәы 15 рзы, Абританиа Ду аиҳабыра дақәгәыӷны, Екс адгьылбжьаха азааигәара хатәгәаԥхарала «Беллерофон» ҳәа хьӡыс измаз англыз цәаҳәатә ӷба дақәтәеит. Иара иаӷацәа — англызцәа — рҿы аполитикатә ҽыҵәахырҭа иоуеит ҳәа дгәыӷуан.
== Остров Святой Елены ==
=== Ссылка ===
[[Файл:16 Napoleons exole St Helena June1970.jpg|мини|Поместье [[Лонгвуд-Хаус]] на острове Святой Елены, где жил сосланный Наполеон]]
[[Файл:Napoleon sainthelene.jpg|мини|left|Наполеон на острове Св. Елены. [[Зандманн, Франц Жозеф|Зандманн]] (XIX век)]]
[[Файл:Napoleon Las Casas.jpg|thumb|Наполеон диктует мемуары [[Лас Каз, Эммануэль Огюстен де|Лас Казу]]. [[Орчардсон, Уильям Куиллер|Орчардсон]] (XIX век)]]
Аха Британиа аминистрцәа реилазаара даҽакала иаӡбеит: Наполеон дбаандаҩыртәын, Атлантикатәи аокеан аҿы иҟоу [[Иԥшьоу-Елена лыдгьылбжьахахь]] ддәықәырҵеит (абританцәа уи Европа иацәыхараны иахьыҟоу азы иалырхит, избан акәзар Наполеон ҩаԥхьа дрыцәцар ҳәа ишәон). Наполеон ари ақәҵара аниаҳа, абас иҳәеит: «Ари [[Тамерлан]] иеихатә хац аасҭа еицәоуп! Абурбонаа срырҭар еиҳа еиӷьасшьон».
Нанҳәа 9 1815 шықәсазы уаанӡатәи аимператор аӷба [[Нортумберленд|"Нортумберленд"]] дақәтәаны Европа аанижьит{{sfn|Roberts|2014|p=779}}{{sfn|Тюлар||с=342—343}}. Наполеон азин иоуит иццаша афицарцәа ралхра; [[Бертран]], [[Монтолон]], [[Лас Каз]], [[Гурго]] алихит; иааидкыланы Наполеон игәыԥ аҿы 26-ҩык ыҟан, урҭ рхыԥхьаӡараҿы дыҟан акамердинер [[Луи-Жозеф Маршан]] . Иӷба иацын 1000-ҩык аруаа зҭаз жәа-ӷбак. Жьҭаара 17 1815 шықәсазы Наполеон [[Џеимстаун]] днеит.{{sfn|Dictionnaire|1999|loc=t. 2|p=705}}
Наполеони афицарцәеи рынхарҭа ҭыԥны иҟалеит [[Лонгвуд-Хаус]] ([[алеитенант-губернатор]] ԥасатәи ирезиденциа), уи [[Лонгвуд]] ақыҭан, ашьха ахәҵаҿы иҟоуп, уаҟа аҳауа цәаакуп, насгьы аклимат бааԥсуп. Аҩны иакәышаны игылан аҟарулцәа, аԥшыхәцәа асигналтә бираҟқәа рыла Наполеон иҟаиҵоз зегьы иазкны адырра ҟарҵон{{sfn|Roberts|2014|p=782}}. Мшаԥы 14 1816 шықәсазы иааиз агубернатор ҿыц [[Лоу]] иахырҳәаз аимператор ихақәиҭра еиҳагьы иԥикит. Аиашазы, Наполеон абналара игәы иҭаӡамызт. Иԥшьоу Елена лыдгьылбжьахахь даннеи, Балкомба [[Ост-Индтәи еилахәыра]] асуперинтендант иԥҳа, 14-шықәса зхыҵуаз [[Бетсии]] иареи еиҩызцәахеит, хәыҷҵас еицыхәмаруан. Анаҩстәи ашықәсқәа рзы адгьылбжьахаҿы иаанкылоз асасцәа идикылон.
1816 шықәса рашәарамзазы игәалашәарақәа рыҩра далагеит, урҭ [[«Иԥшьоу Елена лмемориал»]] ҳәа хьӡыс аҭаны Лас Каз иҭижьит Наполеон иԥсҭазаара даналҵ ҩышықәса рышьҭах. «Амемуарқәа» ҳәа захьӡу ашәҟәы ХIХ-тәи ашәышықәсазы зегь раасҭа изыԥхьоз шәҟәын{{sfn|Roberts|2014|p=785—792}}{{sfn|Тюлар||с=346}}.
1820 шықәсазы [[америкатәи]] аконтрабандист Џьонсон иҽазикит ихатә системала иргылаз аӡаҵаҟатәи аӷба ихы иархәаны Наполеон I ихы дақәиҭитәырц. Аргыларазы аԥара еизган, аха убри аамҭазы аимператор иԥсҭазаара далҵит.
=== Аԥсра ===
[[Файл:Napoleon sur son lit de mort Horace Vernet 1826.jpg|thumb|150px|left|Наполеон на смертном одре. [[Верне, Орас|Верне]] (1826)]]
Жьҭаарамза 1816 шықәса инаркны Наполеон игәабзиара еицәахо иалагеит — адәылҵра, аныҟәара дахьаҟәыҵыз иахҟьаны (Лоуи иареи аимак анроу ашьҭахь, иара аныҟәара мап ацәикит), насгьы есымша игәы каҳаны дыҟан. Жьҭаарамза 1817 шықәсазы Наполеон иҳақьым [[О'Мира]] [[«агепатит»]] адиагноз изықәиргылеит. Раԥхьаӡа иара дақәгәыӷуан Европатәи аполитикаҿы аԥсахрақәа ҟалоит, насгьы иара иахь агәыблыра змаз апринцесса [[Шарлотта]] Британиа амчра лоуеит ҳәа дақәгәыӷуан, аха апринцесса лдунеи лыԥсахит абҵарамза 1817 шықәсазы. 1818 шықәсазы балкомбаа адгьылбжьаха ааныжьны ицеит, Лоу О’Мир далицеит{{sfn|Roberts|2014|p=791—795}}.
[[Файл:Testament_de_Napoléon_Ier._Page_5_-_Archives_Nationales_-_AE-I-13-21a.jpg|thumb|150px|справа|Завещание Наполеона]]
1818 шықәсазы Наполеон [[адепрессиа]] изцәырҵит, лассы-лассы дычмазаҩхон, сарӷьа ган сыхьуеит ҳәа дашшуан. Ари иаб дызхыԥсааз [[акьыба чымазароуп]] ҳәа игәы иаанагон. 1819 шықәсазы сентиабр мзазы Наполеон иани акардинал Феши иаарышьҭыз аҳақьым [[Антоммарки]] адгьылбжьахахь днеит, аха ачымазаҩ ицхраара илымшеит. 1821 шықәса хәажәкырамзазы Наполеон игәабзиара убриаҟара еицәахеит, иԥсра лассы ишааигәахоз еиликаауан. Мшаԥы 15 1821 шықәсазы иуасиаҭ иҳәеит. Наполеон иԥсҭазаара дылҵит асабшаҽны, лаҵара 5 [[1821 шықәса]], асааҭ 17:49 рзы. Даныԥсуаз "Ар ахы!" ҳәа иҳәеит ( [[Афранцыз бызшәа|афр.]] La tête de l'armée! ).
Лаҵара 6 рзы [[аԥсратә сабрада]] ҟаҵан, аха уи ҟазҵаз аҳақьым дызусҭоу иахьагьы идырым{{ref+|В то время было принято создавать посмертные маски знаменитых людей. Существует по крайней мере четыре подлинных посмертных маски Наполеона: в [[Кабильдо (Новый Орлеан)|Кабильдо]] в [[Новый Орлеан|Новом Орлеане]], в музее Ливерпуля, в Гаване и в библиотеке [[Университет Северной Каролины в Чапел-Хилле|университета Северной Каролины]].|group=К}}{{Sfn|Wilson|1975|p=293–295}}. Еиду Америкатәи аштатқәа рҿы [[Наполеон ицәеижьхәҭа]] иаанханы иҟоуп, аха уи иара ишитәыҵәҟьаз азы аимак ыҟоуп<ref>https://web.archive.org/web/20210116034152/https://www.nytimes.com/1992/07/12/books/exhuming-a-dirty-joke.html</ref>. Наполеон анышә дамардеит Лонгвуд иацәыхарамкәа, Торбет аӡыхь азааигәара{{sfn|Roberts|2014|p=795—801}}{{sfn|Itinéraire|2002|p=640}}.
Наполеон [[ашҳам иҭаны дыршьит]] ҳәа агәаанагара ыҟоуп. 1960 шықәсазы [[Стен Форсхуфвуд]] аус ицызуази иареи Наполеон ихцәы анҭырҵаа, [[аҳәынаԥшьыга]] рыԥшааит. Аха 1990-2000-тәи ашықәсқәа рзы хыԥхьаӡара рацәала имҩаԥгаз анализқәа иаадырԥшуеит Наполеон ихцәаҿы аҳәынаԥшьыга алазаара есыҽны, уимоу зны-зынла мышкы аҩнуҵҟагьы аҽшаԥсахуаз. Иҟалап уи Наполеон ихцәы аҿышразы аҳәынаԥшьыга злаз аххыра ихы иахьаирхәоз иахҟьазар; иара убас Наполеон ибзиабаҩцәа ҳамҭас ириҭоз ихахәы, усҟантәи аамҭазы иҟаз аҵас ала, аҳәынаԥшьыга злаз аххыраҿы ирҵәахуан{{sfn|Hindmarsh|2007|p=84—85}}. Ашҳам ирҭеит ҳәа атеориа иахьатәи аамҭазы ишьақәырӷәӷәам{{sfn|Hindmarsh|2007|p=70—77}}{{sfn|Roberts|2014|p=796}}. 2007 шықәсазы имҩаԥгаз аҭҵаара алҵшәала агастроентерологцәа ишьақәдырӷәӷәеит аимператор иԥсра зыхҟьаз раԥхьаӡатәи аофициалтә версиа – [[аца акьыбачымазара]] ауп (аԥсыбаҩ аҭҵаара ирнаҭаз адыррақәа рыла, аимператор азҩақәа ҩба иман, урҭ руак агәаҵәа аҟынӡа инаӡон)<ref>{{Cite web|url=http://www.membrana.ru/particle/11061|title=Причина смерти Наполеона установлена окончательно|publisher=www.membrana.ru|access-date=2017-12-12|archive-date=2017-12-12|archive-url=https://web.archive.org/web/20171212193137/http://www.membrana.ru/particle/11061|url-status=dead}}</ref><ref name="Lugli et al">{{Статья|автор=Alessandro Lugli, Inti Zlobec, Gad Singer, Andrea Kopp Lugli, Luigi M. Terracciano|заглавие=Napoleon Bonaparte's gastric cancer: a clinicopathologic approach to staging, pathogenesis, and etiology|ссылка=https://www.nature.com/articles/ncpgasthep0684|язык=En|издание=Nature Clinical Practice Gastroenterology & Hepatology|год=2007/01|volume=4|issue=1|pages=52–57|issn=1759-5053|doi=10.1038/ncpgasthep0684|archive-date=2019-09-29|archive-url=https://web.archive.org/web/20190929203845/https://www.nature.com/articles/ncpgasthep0684}}</ref>.
=== Аԥсыбаҩ ахынҳәра ===
[[Файл:Tomb of Napoleon Bonaparte - Crypt of Dôme des Invalides - Paris, France - 25 July 2009.jpg|thumb|150px|Гробница Наполеона в Доме инвалидов]]
[[Файл:Tombeau de Napoleon- detail.JPG|thumb|left|150px|Вход в крипту]]
В 1840 году король [[Луи-Филипп I]] послал на остров Святой Елены делегацию во главе с [[Франсуа Орлеанский, принц де Жуанвиль|принцем Жуанвильским]], с участием [[Бертран, Анри Гасьен|Бертрана]] и [[Гурго, Гаспар|Гурго]], для выполнения последней воли Наполеона — быть похороненным во Франции. Останки Наполеона были перевезены на [[фрегат]]е «[[Бель Пуль (корабль, 1828)|Бель Пуль]]» под командованием капитана [[Шарне, Леонар Виктор Жозеф|Шарне]] во Францию. В морозный день 15 декабря кортеж проехал по улицам Парижа на глазах миллиона французов. Останки были захоронены в [[Дом инвалидов|Доме инвалидов]] в присутствии наполеоновских маршалов{{sfn|Roberts|2014|p=801}}{{sfn|Itinéraire|2002|p=645}}{{sfn|Dictionnaire|1999|loc=t. 2|p=639}}.
1840 шықәсазы аҳ [[Луи-Филипп I]] [[Бертрани]] [[Гургои]] злаз аделегациа Иԥшьоу-Елена лыдгьылбжьахахь идәықәиҵеит Наполеон иуасиаҭ анагӡаразы — Франциа анышә дамардарц. Уи аделегациа дахагылан апринц Жуанвильски. Наполеон иԥсыбаҩ акаԥдан [[Шарне]] напхгара зиҭоз [[афрегат]] [[«Бель Пуль»]] ала Франциаҟа ииаган. Ԥхынҷкәын 15 рзы акортеж Париж амҩадуқәа ирнысит миллионҩык афранцызцәа ишырбоз. Аԥсыбаҩ анышә иамардеит [[Аинвалидцәа рыҩны]] аҿы Наполеон имаршалцәа алархәны.
[[Саркофаг]] из красного кварцито-песчаника («[[Шокша (Карелия)|шокшинского]] [[порфир]]а»<ref>{{Cite web |url=http://igkrc.ru/geomuseum/articles/shoksha |title=Малиновый кварцито-песчаник. Музей геологии докембрия |access-date=2021-01-20 |archive-date=2021-01-27 |archive-url=https://web.archive.org/web/20210127235816/http://igkrc.ru/geomuseum/articles/shoksha |url-status=live }}</ref>) работы [[Висконти, Луи|Висконти]] с останками императора Наполеона располагается в [[Крипта|крипте]] собора<ref>{{ВТ-ВЭС|Дом инвалидов в Париже}}</ref>. Вход в крипту охраняют две бронзовые фигуры, держащие [[скипетр]], императорскую корону и [[Держава (символ)|державу]]. Гробницу окружают 10 мраморных барельефов о государственных деяниях Наполеона и 12 статуй работы [[Прадье, Жан Жак|Прадье]], посвящённых его военным кампаниям{{sfn|Dictionnaire|1999|loc=t. 2|p=43}}.
Аимператор Наполеон иԥсыбаҩқәа зҭоу акварцит-ԥслымӡхаҳә ҟаԥшь ([[«шокшинтәи апорфир»]][1]) иалху [[аҭоубыҭ]], Висконти иҟаҵамҭа, аныхабаа [[акрипт]] аҿы иҟоуп[2]. Акрипт аҭаларҭа рыхьчоит алабашьа, аимператортә гәыргьын, [[адержава]] зку аџьазтә фигурақәа ҩба. Аҳаҭгәын иакәыршоуп Наполеон иҳәынҭқарратә усқәа ирызку амармалташьтә барелиефқәа 10, ирратә кампаниақәа ирызку [[Прадье]] иҟаиҵаз абаҟақәа 12 [177].
== Наследие ==
=== Государственное управление ===
[[Файл:Bust Napoleon I of France.jpg|thumb|150px|left|Бюст Наполеона. [[Канова, Антонио|Канова]] (после 1802)]]
Именно достижения Наполеона в сфере [[Государственное управление|государственного управления]], а не военные победы и завоевания французской армии, являются важнейшей частью наполеоновского наследия. Причём основные из этих достижений приходятся на относительно мирные годы Консульства. По мнению исследователя Дж. Эллиса, это подтверждается простым их перечислением: основание [[Банк Франции|Банка Франции]] (6 января 1800), [[Префект (Франция)|префекты]] (17 февраля 1800), [[Конкордат Наполеона|Конкордат]] (подписан 16 июля 1801), [[Лицеи во Франции|лицеи]] (1 мая 1802), [[орден Почётного легиона]] (19 мая 1802), [[Биметаллизм|биметаллический стандарт]] франка жерминаль (28 марта 1803), и, наконец, [[Кодекс Наполеона|Гражданский кодекс]] (21 марта 1804){{sfn|Ellis|2014|p=233}}. Эти достижения в значительной степени характеризуют и современный для нас мир; Наполеон часто рассматривается как отец современной Европы{{sfn|Wars|2006|p=163}}. Как говорит Э. Робертс:
<blockquote>
Идеи, которые лежат в основании нашего современного мира — [[меритократия]], равенство перед законом, права собственности, [[Терпимость|религиозная терпимость]], современное [[Секуляризм|секулярное]] образование, здоровые финансы, и так далее — были взяты под защиту, консолидированы, кодифицированы и географически распространены [Бонапартом] Наполеоном. К ним он добавил рациональную и эффективную местную администрацию, конец деревенского бандитизма, поощрение наук и искусств, отмену феодализма и крупнейшую кодификацию законов со времён падения Римской империи.
{{oq|en|The ideas that underpin our modern world — meritocracy, equality before the law, property rights, religious toleration, modern secular education, sound finances, and so on — were championed, consolidated, codified and geographically extended by Napoleon. To them he added a rational and efficient local administration, an end to rural banditry, the encouragement of science and the arts, the abolition of feudalism and the greatest codification of laws since the fall of the Roman Empire{{sfn|Roberts|2014|loc=Introduction}}.}}
</blockquote>
Ещё одним элементом наследия, пережившим падение Наполеона, стала созданная и отлаженная им система управления [[Политическая структура Франции|французским государством]] — централизованное [[Авторитаризм|авторитарное правление]] через унифицированную чиновничью лестницу. Некоторые элементы этой системы существуют и по сей день, даже в [[Парламентская демократия|парламентской демократии]] [[Пятая французская республика|Пятой республики]]{{sfn|Ellis|2014|p=234}}.
=== Политические течения ===
{{также|Бонапартисты}}
[[Файл:StatueEquestreNapoleonLaffrey.jpg|thumb|150px|Статуя Наполеона в [[Лаффре]] около [[Гренобль|Гренобля]] на «лужайке встречи» с 5-м линейным полком]]
В политике Наполеон I оставил после себя бонапартизм. Впервые это слово было использовано его противниками в 1814 году в уничижительном смысле, но к 1848 году сторонники [[Наполеон III|Наполеона III]] наполнили его нынешним значением<ref>{{книга|автор=Bluche F.|заглавие=Le bonapartisme: aux origines de la droite autoritaire (1800—1850)|ссылка=https://books.google.ru/books?id=vNN4Xx2i7RUC|место={{P.}}|издательство=Nouvelles Editions Latines|год=1980|allpages=366|pages=12}}</ref>. В отличие от [[республиканизм]]а, основанного на безличном избираемом правительстве, и в отличие от [[монархизм]]а, отрицающего власть нации, [[Бонапартизм (диктатура)|бонапартизм]] фокусирует нацию на одном лице (военном диктаторе) как её единственном представителе{{sfn|Englund|2010|p=248}}. Как политическое течение [[Бонапартисты|бонапартизм]] имеет свои корни («[[легитимность]]») больше в широкой поддержке, которую Наполеон получил от так называемых ''[[Федераты (Великая французская революция)|федераций]]'' ({{lang-fr|fédérés}}) во время Ста дней, нежели в наполеоновских плебисцитах{{sfn|Englund|2010|p=434}}{{sfn|Ellis|2014|p=218}}. «[[Мемориал Святой Елены]]» стал библией бонапартизма; его политической кульминацией явилось избрание [[Наполеон III|Наполеона III]], сына [[Людовик I Бонапарт|Людовика]] и [[Богарне, Гортензия|Гортензии]], президентом [[Вторая французская республика|второй французской республики]] в 1848 году. К началу XX века бонапартизм сошёл с политической сцены{{sfn|Englund|2010|p=458—459}}.
Завоевание Европы всегда рассматривалось как центральная часть наполеоновского наследия, что неудивительно, если взглянуть на те необратимые изменения, которые он вызвал в политической географии континента<ref>{{книга|автор=Woolf S.|заглавие=Napoleon's Integration of Europe|ссылка=https://books.google.ru/books?id=EeuIAgAAQBAJ|издательство=[[Routledge]]|год=2002|allpages=319|pages=20}}</ref>. Накануне французской революции Германия была не более чем конгломератом из 300 государств. Деяния Наполеона, такие как образование Рейнского союза и Вестфальского королевства, медиатизация, секуляризация, введение Гражданского кодекса, принесённая «на штыках» французская культура, вызвали в Германии политические изменения, которые со временем привели к [[Объединение Германии (1871)|образованию]] единого немецкого государства{{sfn|Europe|2006|p=957—958}}. Таким же образом в Италии ликвидация Наполеоном внутренних границ, введение единого законодательства и [[Воинская обязанность|всеобщей воинской повинности]] проложили дорогу для [[рисорджименто]]{{sfn|Europe|2006|p=1193}}.
=== Военное искусство ===
[[Файл:Napoleon in 1806.PNG|thumb|150px|left|Наполеон в 1806 году. Детайль (XIX век)]]
Наполеон более всего известен своими выдающимися военными успехами{{sfn|Wars|2006|p=28}}. Получив боеспособную армию в наследство от Французской революции, он ввёл немногие принципиальные усовершенствования, которые позволили этой армии выигрывать кампании. Изучение обширной военной литературы помогло ему выработать собственный подход, основанный на манёвренности и гибкости{{sfn|Wars|2006|p=374—375}}. Он с успехом применял [[Рассыпной строй|смешанный боевой порядок]] (комбинация [[Колонна (построение)|колонны]] и [[Линия (построение)|линии]], впервые предложенный [[Гибер, Жак-Антуан-Ипполит|Гибером]], и [[Система Грибоваля|мобильную артиллерию]], созданную [[Грибоваль, Жан Батист Вакет де|Грибовалем]]{{sfn|Dictionnaire|1999|loc=t. 2|p=826}}<ref>{{книга|автор=Соколов О. В.|заглавие=Армия Наполеона|ссылка=https://archive.org/details/isbn_5939140017|место=СПб. |издательство=Империя |год=1999 |страницы= [https://archive.org/details/isbn_5939140017/page/129 129]|страниц=592|isbn=5-93914-001-7}}</ref>. Основываясь на идеях [[Карно, Лазар|Карно]], [[Моро, Жан Виктор|Моро]] и [[Брюн, Гильом Мари Анн|Брюна]], Наполеон реорганизовал французскую армию как систему армейских корпусов, каждый из которых включал в себя пехоту, кавалерию и артиллерию и был способен действовать самостоятельно{{sfn|Wars|2006|p=269}}. Главная императорская квартира, руководимая [[Бертье, Луи Александр|Бертье]] и [[Дюрок, Жерар|Дюроком]], обеспечивала единое управление армией, собирала и систематизировала разведывательные данные, помогала Наполеону готовить планы и рассылала приказы войскам{{sfn|Wars|2006|p=329ff}}{{sfn|Wars|2006|p=600—601}}. Отдавая предпочтение наступлению перед обороной, Наполеон сокрушал противника за счёт быстрого сосредоточения своих сил на направлении главного удара{{sfn|Wars|2006|p=375}}{{sfn|Левицкий|1938|с=260}}{{sfn|Dictionnaire|1999|loc=t. 2|p=804}}.
При анализе наполеоновской стратегии «Словарь Наполеона» приводит его собственные слова: «Если кажется, что я всегда ко всему подготовлен, то это объясняется тем, что раньше, чем что-либо предпринять, я долго размышлял уже прежде; я предвидел то, что может произойти. Вовсе не гений внезапно и таинственно открывает мне, что именно мне должно говорить и делать при обстоятельствах, кажущихся неожиданными для других, — но мне открывает это моё рассуждение и размышление»{{sfn|Тарле|1959|с=27—28}}{{sfn|Dictionnaire|1999|loc=t. 2|p=804}}.<!--Излишняя самоуверенность. Ученики побили учителя.-->
Военные достижения Наполеона наложили отпечаток на военную и общественную мысль последующего столетия. Как показывает Ч. Исдейл, в [[Австро-прусско-итальянская война|1866]], [[Франко-прусская война|1870]], [[Первая мировая война|1914]] годах народы отправлялись в бой с памятью о Наполеоне и мыслью о том, что исход войны будет определён победой в одном генеральном сражении. [[План Шлиффена]] был лишь помпезной реализацией наполеоновского обходного манёвра ({{lang-fr|manoeuvre sur les derrières}}). За парадной стороной войны, которую стали ассоциировать с блестящими мундирами и бравурными маршами, постепенно забылись связанные с ней страдания. Между тем, с учётом тогдашнего состояния медицины вызванные боевыми действиями ранения и болезни причиняли огромные бедствия. Жертвами наполеоновских войн стали по самой меньшей мере 5 млн человек — военных и гражданских лиц{{sfn|Wars|2006|p=xvii—xviii}}.
=== Потомство ===
Как отмечает Э. Робертс, ирония судьбы состоит в том, что хотя Наполеон развёлся с Жозефиной, чтобы дать жизнь законному наследнику своего трона, впоследствии именно её [[Наполеон III|внук]] стал императором Франции. Потомки Жозефины царствуют в [[Список королей Бельгии|Бельгии]], [[Список королей Дании|Дании]], [[Список королей Швеции|Швеции]], [[Список королей Норвегии|Норвегии]] и [[Список правителей Люксембурга|Люксембурге]]. Прямые потомки Наполеона не царствуют нигде{{sfn|Roberts|2014|p=537}}. Единственный законный сын Наполеона, также [[Наполеон II|Наполеон]], умер молодым, не оставив детей. Из внебрачных отпрысков Бонапарта «Словарь Наполеона» упоминает только двоих — [[Колонна-Валевский, Александр|Александра Валевского]] и [[Леон, Шарль|Шарля Леона]]{{sfn|Dictionnaire|1999|loc=t. 2|p=380}}, но есть свидетельства и о других<ref>{{cite web|author=Sabitzer W.|title=Der „Napoléonide“|url=http://www.bmi.gv.at/cms/BMI_OeffentlicheSicherheit/2010/11_12/files/RECHTSGESCHICHTE.pdf|publisher=Öffentliche Sicherheit. Das Magazin des Innenministeriums (Österreich)|lang=de|access-date=2017-03-24|archive-date=2015-09-23|archive-url=https://web.archive.org/web/20150923193017/http://www.bmi.gv.at/cms/BMI_OeffentlicheSicherheit/2010/11_12/files/RECHTSGESCHICHTE.pdf|url-status=live}}</ref>. Род Колонна-Валевских продолжается по сей день<ref>{{cite web|title=La Famille Colonna Walewski (branche française)|url=http://www.walewski.org/accueil.htm|lang=fr|access-date=2017-03-24|archive-url=https://web.archive.org/web/20170507104804/http://www.walewski.org/accueil.htm|archive-date=2017-05-07|url-status=dead}}</ref>.
=== Сочинения ===
Перу Наполеона принадлежат несколько ранних работ различных жанров, проникнутых юношеским максимализмом и революционными настроениями («Письмо к Маттео Буттафуоко», «История Корсики»{{sfn|Roberts|2014|p=34}}, «Диалог о любви»{{sfn|Roberts|2014|p=35}}, «Ужин в Бокере», «[[Клиссон и Евгения]]» и другие){{sfn|Манфред|1987|с=28}}. Им написано и продиктовано также огромное количество писем (из которых сохранилось более 40 тысяч){{sfn|Édition de la correspondance}}.
В поздние годы в ссылке на Святой Елене, стремясь создать положительную легенду о своих намерениях и их выполнении, Наполеон продиктовал воспоминания об осаде Тулона, Вандемьерском мятеже, Итальянской кампании и Египетском походе, битве при Маренго, ссылке на остров Эльба, периоде Ста дней, а также описания кампаний [[Гай Юлий Цезарь|Цезаря]], [[Тюренн, Анри де Ла Тур д’Овернь|Тюренна]] и [[Фридрих II (король Пруссии)|Фридриха]]<ref>{{книга|заглавие=Correspondance de Napoléon I<sup>er</sup>: publiée par ordre de l'empereur Napoléon III|издание=32 t|место={{P.}}|издательство=Imprimerie Impériale|год=1858—1869|ref=Correspondance}}, t. XXIX—XXXII</ref>.
Письма и поздние произведения его были изданы в 32 томах в 1858—1869 годах по приказу Наполеона III. Часть писем тогда не была издана, некоторые были по разным причинам отредактированы. Новое полное издание писем Наполеона в 15 томах выполнено «[[Фонд Наполеона|Фондом Наполеона]]» в 2004—2018 годах{{sfn|Édition de la correspondance}}. Публикация полного критического издания писем Наполеона позволила историкам по-новому взглянуть на него и его эпоху{{sfn|Broers|2014|p=23}}.
На русском языке изданы роман «Клиссон и Евгения»<ref>{{cite web|url=http://os.colta.ru/society/projects/193/details/5778/|title=По-русски выходит роман Наполеона|author=|publisher=os.colta.ru|lang=ru|access-date=2017-03-24|archive-date=2017-10-07|archive-url=https://web.archive.org/web/20171007135756/http://os.colta.ru/society/projects/193/details/5778|url-status=live}}</ref>, «Ужин в Бокере»<ref>{{книга|автор=Бонапарт Н.|заглавие=Ужин в Бокере|ссылка=http://www.museum.ru/museum/1812/library/Napoleon/supper.txt|издание=Французский ежегодник. 1986|место={{М.}}|издательство=Наука|год=1988|страниц=|archive-date=2008-06-21|archive-url=https://web.archive.org/web/20080621034757/http://www.museum.ru/museum/1812/Library/Napoleon/supper.txt}}</ref>, часть поздних произведений<ref>{{книга|автор=Бонапарт Н.|заглавие=О военном искусстве. Избранные произведения.|издательство=Эксмо|год=2003|серия=Антология мысли|страниц=800|isbn=5-699-03899-X}}</ref> и некоторые письма<ref>{{книга|автор=Бонапарт Н.|заглавие=Письма к Жозефине|место={{М.}}|издательство=Захаров|год=2011|страниц=304|isbn=978-5-8159-1068-3}}</ref>.
=== Легенда ===
=== Алегенда ===
[[Файл:Tuileries vers 1860 (cropped).jpg|thumb|left|[[Тюильри]] между [[Арка на площади Каррузель|двумя]] [[Триумфальная арка (Париж)|арками]]. Около 1860 года]]
[[Файл:Caricature gillray plumpudding.jpg|thumb|Наполеон и [[Питт, Уильям Младший|Питт]] делят мир. Худ. [[Гилрей, Джеймс|Джеймс Гилрей]] (1805)]]
Наполеоновская легенда родилась не на Святой Елене. Бонапарт последовательно создавал её через газеты (сначала боевые листки Итальянской армии, а затем официальные парижские издания), памятные медали, бюллетени Великой армии, картины [[Давид, Жак-Луи|Давида]] и [[Гро, Антуан Жан|Гро]], [[Арка на площади Каррузель|Триумфальную арку]] и [[Вандомская колонна|колонну Побед]]{{sfn|Wars|2006|p=26}}{{sfn|Тюлар||с=344}}. На протяжении своей карьеры Наполеон показал удивительную способность выдавать плохие новости за хорошие, а хорошие за триумф{{sfn|Roberts|2014|p=92}}. «Если нужно охарактеризовать гений Наполеона одним словом, то это слово — „пропаганда“. В этом отношении Наполеон был человеком XX века. Он сам создал себе образ — [[двууголка]], серый [[сюртук]], рука между пуговицами»{{sfn|Dictionnaire|1999|loc=t. 2|p=380}}. Однако решающую роль в возникновении «золотой легенды» о Наполеоне сыграли его солдаты, оставшиеся без дела после завершения наполеоновских войн и с тоской вспоминавшие о Первой империи и своём «маленьком капрале»{{sfn|Тюлар||с=345}}.
Наполеон илегенда Иԥшьоу Елена лыдгьылбжьахаҿы акәӡам иахьаԥҵахаз. Бонапарт уи шьаҿа-шьаҿала иаԥиҵон агазеҭқәа (раԥхьа Италиатәи ар реибашьратә бӷьыц, анаҩс иофицаилтәу Парижтәи аҭыжьырҭақәа), агәалашәаратә медалқәа, Ар Ду абиуллетеньқәа, Давиди Грои рсахьақәа, Атриумфалтә аркеи Аиааирақәа рколоннеи рыла. Наполеон иусура иалагӡаны иааџьоушьаратәы ибзианы илшеит ажәабжь бааԥсқәа ибзиоушәа, насгьы ибзиоу ажәабжьқәа итриумфушәа раарԥшра. «Наполеон иҟазара ажәак ала ааурԥшырц уҭахызар, уи ажәа — «апропоганда» ауп. Уи аганахьала Наполеон XX ашәышықәсақәа ирыҵанакуаз уаҩын. Иара ихала ихаҿсахьа аԥиҵеит — «ҩ-тәыҩак» змоу ахылԥа, асиуртук цәыш, инапы ҩ-ҳәынҵәрак ирыбжьакын». Аха Наполеон изку «ахьтәы легенда» аԥҵараҿы ихадароу ароль назыгӡаз Наполеон иеибашьрақәа анынҵәа усда иаанхаз, Актәи аимпериеи «ркапрал хәыҷи» игәхьааганы изгәалашәоз Наполеон исолдатцәа ракәын. <!--Практический смысл легенды. Не поддерживал военные инновации.-->
Впрочем, как показал [[Тюлар, Жан|Ж. Тюлар]], не только Наполеон работал на складывание своей легенды, но и его противники. Золотой легенде противостояла чёрная. Для английских карикатуристов ([[Крукшанк, Джордж|Крукшанка]], [[Гилрей, Джеймс|Гилрея]], [[Вудворд, Джордж Моутард|Вудворда]], [[Роулендсон, Томас|Роулендсона]]) Наполеон был излюбленным персонажем — в ранние годы тощим ({{lang-en|Boney}}), а в поздние толстым ({{lang-en|Fleshy}}) коротышкой-выскочкой<ref>{{книга|автор=Tulard J.|заглавие=L'Anti-Napoléon. La Légende noire de l'Empereur|издательство=René Julliard|год=1965|allpages=260|pages=38}}</ref>. В 1813 году французы, у которых стали призывать в армию 16-летних сыновей, прозвали Наполеона людоедом{{sfn|Тюлар||с=321}}. В России и Испании духовенство представляло Наполеона воплощением [[Антихрист]]а{{sfn|Ливен|2012|с=111}}{{sfn|Dwyer|2013|p=441}}.
Ж. Тиулар ишааирԥшыз ала, Наполеон ида алегенда аԥҵара аус адырулон иара иаӷацәагьы. Ахьтәы легенда иаҿагылан алегенда еиқәаҵәа. Англыз акарикатураҭыхыҩцәа (Крукшанк, Гилреи, Вудворд, Роулендсон) уамашжәа бзиа ирбон Наполеон ихаҿсахьа аарԥра — заатәи ашәышықәсақәа рзы ??? (англ. Boney), ихьшәоу ашықәсқәа рзы ??? (англ. Fleshy). 1813 шықәсазы афранцызцәа 16-шықәса зхыҵуа рԥацәа арра ирыԥхьо ианалага, Наполеон ауаҩжьыфаҩ ҳәа изырҳәо иалагеит. Урыстәылеи Испаниеи рҿы адинмаҵзуҩцәа Наполеон Антихрист иеиԥш дырбон.
== Отражение в культуре, науке, технике и искусстве ==
{{Main|Образ Наполеона в культуре}}
=== В историографии ===
=== Аҭоурыхҭҵаараҿы ===
Количество исторических исследований о Наполеоне Бонапарте исчисляется десятками и сотнями тысяч{{ref+|Согласно «Словарю Наполеона», всего три автора предпринимали попытки составить полную наполеоновскую библиографию: Ломброзо (1896), Кирхайзен (1902 и 1912) и Давуа (1910). Уже Кирхайзен писал, что в его библиографии перечислены 70 тысяч книг и статей о Наполеоне{{sfn|Dictionnaire|1999|loc=t. 1|p=222}}.|К}}. При этом, как заметил [[Гейл, Питер|Питер Гейл]], каждое поколение пишет про своего собственного Наполеона. До Второй мировой войны для наполеоновской историографии были характерны три точки зрения, сменявшие друг друга. Наиболее ранние авторы стремились подчеркнуть в Бонапарте его «сверхчеловеческие» способности и необычную энергию, уникальность для человеческой истории, часто занимали крайне апологетическую или очень критическую позицию ([[Лас Каз, Эммануэль Огюстен де|Лас Каз]], [[Биньон, Луи Пьер Эдуард|Биньон]], [[Сталь, Анна де|де Сталь]], [[Арндт, Эрнст Мориц|Арндт]], [[Генц, Фридрих фон|Генц]], [[Хэзлитт, Уильям|Хэзлитт]], [[Скотт, Вальтер|Скотт]] и др.). Представители второй точки зрения пытались приспособить выводы о Наполеоне к текущей ситуации, извлечь «исторические уроки» из его деяний, превращая образ Бонапарта в орудие политической борьбы ([[Оссонвиль, Жозеф д'|д’Оссонвиль]], [[Минье, Франсуа|Минье]], [[Мишле, Жюль|Мишле]], [[Тьер, Адольф|Тьер]], [[Кинэ, Эдгар|Кинэ]], [[Ланфре, Пьер|Ланфре]], [[Тэн, Ипполит|Тэн]], [[Уссе, Анри|Уссе]], [[Вандаль, Альбер|Вандаль]] и др.). Наконец, исследователи «третьей волны» искали «большую идею» в целях и достижениях Наполеона, на основе которой можно было бы понять его самого и его эпоху ([[Сорель, Альбер|Сорель]], [[Массон, Фредерик|Массон]], [[Буржуа, Эмиль|Буржуа]], [[Дрио, Эдуар|Дрио]], [[Дюнан, Марсель|Дюнан]] и др.){{ref+|Выражаясь современными терминами, исследователи «третьей волны» пытались нащупать ключевую «[[Геополитика|геополитическую]] идею», которая стояла за действиями Наполеона. Так, Сорель считал такой идеей стремление закрепить на длительный срок «естественные границы» Франции. Согласно Буржуа, Наполеон преследовал цель по завоеванию Востока. Дрио доказывал, что образцом для Наполеона была Римская империя{{sfn|Ellis|2014|p=224ff}}{{sfn|Dictionnaire|1999|loc=t. 1|p=956}}.|К}}{{sfn|Ellis|2014|p=189}}{{sfn|Roberts|2014|loc=Introduction}}.
Наполеон Бонапарт изку аҭоурыхтә ҭҵаарақәа рхыԥхьаӡара шә-нызқь иреиҳауп: Ref+. [[Питер Геил]] ишазгәеиҭаз ала, абиԥарақәа зегьы рхатәы Наполеон изкны ирыҩуеит. Аҩбатәи адунеизегьтәи аибашьра ҟалаанӡа Наполеон иҭоурыхҭҵаара иазҷыдаран зҽызыԥсахуаз х-гәаанагарак. Еиҳа изаатәиу авторцәа Бонапарт ианихцәажәоз иара илаз зеиԥшыҟамыз илшарақәеи имчхареи, аҭоурых азы иуникалреи инаҵшьны иазгәарҭарц иашьҭан, лассы-лассы даара апологетикатә ма акритикатә позициа ааныркылон ([[Лас Каз]], [[Биньон]], [[де Сталь]], [[Арндт]], [[Генц]], [[Хезлитт]], [[Скотт]] уб. иҵ.). Аҩбатәи агәаанагара ахаҭарнакцәа Наполеон изку алкаақәа усҟантәи аҭагылазаашьа иақәдыршәарц, иара иусура «аҭоурыхтә урокқәа» рылырхырц, Бонапарт ихаҿсахьа аполитикатә қәԥара иамыруганы иҟарҵарц рҽазыршәон ([[д' Оссонвиль]], [[Минье]], [[Мишле]], [[Тьер]], [[Кине]], [[Ланфре]], [[Тен]], [[Уссе]], [[Вандаль]] уб. иҵ.).«Ахԥатәи ацәқәырԥа» аҭҵааҩцәа Наполеон ихықәкқәеи иеихьӡарақәеи рҿы «аидеиа ду» иашьҭан, уи шьаҭас иҟаҵаны иара иахаҭеи иепохеи еилукааратәы иҟаларц азы ([[Сорель]], [[Массон]], [[Буржуа]], [[Дрио]], [[Диунан]] уҳәа егь.).
Послевоенные исследователи уделяют большее внимание не личности Наполеона и его действиям, а исследованию более широкого круга тем, относящихся к его времени, включая особенности режима его власти{{sfn|Ellis|2014|p=190}}.
Аибашьра ашьҭахьтәи аҭҵааҩцәа Наполеон ихаҭареи ирҿиарақәеи ракәӡам еиҳа ахшыҩзышьҭра ззырҭо, дара хықәкыс ирымоу иара иаамҭа иаҵанакуа атемақәа, имчра арежим аҷыдарақәагьы налаҵаны, еиҳа инарҭбааны рыҭҵаара ауп.
=== В других науках ===
В 1804 году в честь Наполеона был назван [[Род (биология)|род]] деревьев {{btname|[[Napoleonaea]]|[[P.Beauv.]]}}, входящий в семейство [[Лецитисовые]]. Особенностью этих [[африка]]нских деревьев является то, что их [[Цветок|цветки]] лишены [[лепесток|лепестков]], но имеют три круга стерильных [[тычинка|тычинок]], образующих [[венчик]]овидную структуру<ref>{{книга|ссылка=https://books.google.com/books?id=kaN-hLL-3qEC|автор=Quattrocchi U.|заглавие=CRC World Dictionary of Plant Names: Common Names, Scientific Names, Eponyms, Synonyms, and Etymology|издательство=CRC Press|год=1999|isbn=978-0-8493-2677-6|allpages=2270|pages=1766}}</ref>.
=== '''Егьырҭ аҭҵаарадыррақәа рҿы''' ===
1804 шықәсазы Наполеон ихьӡ ахҵан [[Лецитис]] аҭаацәара иаҵанакуа аҵлақәа Ашаблон [[рыжәла]]. Арҭ [[африкатәи]] аҵлақәа ирызҷыдароуп [[рышәҭқәа]] [[ашәҭыцқәа]] ахьрымам, аха [[агәыргьын еиԥшу]] аструктура шьақәзыргыло истерилтәу [[х-ҳәрацк]] гьежьқәа ахьрымоу.
=== В искусстве ===
=== Аҟазараҿы ===
[[Файл:Ingres, Napoleon on his Imperial throne.jpg|thumb|150px|left|[[Наполеон на императорском троне|Наполеон аимператор итәарҭаҿы]]. [[Энгр, Жан Огюст Доминик|Енгр]] (1806)]]
[[Файл:Colonne Vendôme (1).jpg|thumb|150px|[[Вандомская колонна|Аиааирақәа рколонна]]]]
Образ Наполеона получил широкое отражение в различных видах искусства — живописи, литературе, музыке, кино, монументальном искусстве. В музыке ему были посвящены произведения [[Бетховен]]а (автор позднее убрал такое посвящение из своей [[Симфония № 3 (Бетховен)|Третьей симфонии]] после случившейся коронации Наполеона), [[Берлиоз, Гектор|Берлиоза]], [[Шёнберг, Арнольд|Шёнберга]], [[Шуман, Роберт|Шумана]]. Многие известные писатели обращались к личности и деяниям Наполеона ([[Достоевский]] и [[Толстой, Лев Николаевич|Толстой]], [[Харди, Томас|Харди]], [[Конан Дойль]], [[Киплинг]], [[Эмерсон, Ральф Уолдо|Эмерсон]] и другие). Кинематографисты самых разных идеологий и направлений отдали дань наполеоновской тематике: «[[Наполеон (фильм, 1927)|Наполеон]]» (Франция, 1927), «[[Майское поле (фильм)|Майское поле]]» ([[Италия]], 1935), «[[Кольберг (фильм)|Кольберг]]» ([[Третий Рейх|Германия]], 1944), «[[Кутузов (фильм)|Кутузов]]» ([[СССР]], 1943), «[[Пепел (фильм)|Пепел]]» ([[ПНР]], 1968), «[[Ватерлоо (фильм)|Ватерлоо]]» (Италия — СССР, 1970){{sfn|Тюлар||с=348—349}}; [[Кубрик, Стэнли#«Наполеон»|проект «Наполеон»]] [[Кубрик, Стэнли|Кубрика]] так и остался не реализованным, но по сей день вызывает живой интерес<ref>{{книга|ссылка=https://www.taschen.com/pages/en/catalogue/film/all/04973/facts.stanley_kubricks_napoleon_the_greatest_movie_never_made.htm|заглавие=Stanley Kubrick's Napoleon. The Greatest Movie Never Made|ответственный=Castle A.|год=2011|издательство=Taschen|allpages=1112|isbn=978-3836523356|archive-date=2017-04-11|archive-url=https://web.archive.org/web/20170411220510/https://www.taschen.com/pages/en/catalogue/film/all/04973/facts.stanley_kubricks_napoleon_the_greatest_movie_never_made.htm}}</ref>. В ноябре 2023 года вышел в прокат [[Наполеон (фильм, 2023)|фильм «Наполеон»]] режиссёра [[Скотт, Ридли|Ридли Скотта]].
Наполеон ихаҿсахьа инарҭбааны иаарԥшуп еиуеиԥшым аҟазара хкқәа — аҿыханҵа, алитература, амузыка, акино, амонументалтә ҟазара рҿы. Амузыкаҿы иара изкын [[Бетховен, Лиудвиг ван|Бетховен]] (Наполеон императорс даныҟала ашьҭахь автор ирҿиамҭа [[«Ахԥатәи асимфониа»]] аҟынтәи Наполеон ихьӡ ықәигеит), [[Берлиоз]], [[Шенберг]], [[Шуман]] рырҿиамҭақәа. Еицырдыруа ашәҟәыҩҩцәа аӡәырҩы Наполеон ихаҭареи иусқәеи ирызкны ирыҩуан ([[Достоевски, Фиодор Михаил-иԥа|Достоевски]], [[Толстои, Лев Николаи-иԥа|Толстои]], [[Харди]], [[Конан Доиль]], [[Киплинг]], [[Емерсон]] уҳәа). Еиуеиԥшым аидеологиақәеи ахырхарҭақәеи ркинематографистцәа Наполеон изку атематика иазааҭгылеит: [[«Наполеон»]] (Франциа, 1927), [[«Лаҵарамзатәи адәы»]] ([[Италиа]], 1935), [[«Кольберг»]] ([[Германиа]], 1944), [[«Кутузов»]] ([[Асоветтә Социалисттә Республикақәа Реидгыла|СССР]], 1943), [[«Аццышә»]] ([[ПНР]], 1968), [[«Ватерлоо»]] (Италиа — СССР, 1970); [[Кубрик]] [[ипроект «Наполеон»]] ус инагӡамкәа иаанхеит, аха иахьа уажәраанӡа аинтерес ду узцәырнагоит. 2023 шықәса абҵарамзазы иҭыҵит арежиссиор [[Ридли Скотт]] [[ифильм «Наполеон»]].
=== В массовой культуре ===
=== Амассатә культураҿы ===
[[Файл:March of the Eagles.jpg|мини|272x272пкс|Обложка игры «[[March of the Eagles]]» с портретом Наполеона]]
Благодаря отличительным особенностям во внешности и манере поведения Наполеон является узнаваемым культурным персонажем. В частности, в [[Массовая культура|массовой культуре]] сложилось представление о малом росте Наполеона<ref>{{книга|автор=[[Нахимова, Елена Анатольевна|Нахимова Е. А.]]|заглавие=Прецедентные имена в массовой коммуникации|ссылка=https://scholar.google.ru/citations?user=XkkTdVsAAAAJ&hl=ru|место=Екатеринбург|год=2007|страниц=207|archive-date=2017-03-21|archive-url=https://web.archive.org/web/20170321081259/https://scholar.google.ru/citations?user=XkkTdVsAAAAJ&hl=ru}}</ref>. Однако по разным источникам его рост составлял от 167 до 169 см{{sfn|Dictionnaire|1999|loc=t. 2|p=380}}{{sfn|Hindmarsh|2007|p=79}}<ref name="Lugli et al" /><ref name="nkj.ru">{{cite web|author=Мухлаева И.|url=https://www.nkj.ru/archive/articles/4212/|title=Наполеон. Несколько сакраментальных вопросов|website=[[Наука и жизнь]]|access-date=2019-05-22|archive-date=2019-02-13|archive-url=https://web.archive.org/web/20190213005645/https://www.nkj.ru/archive/articles/4212/|url-status=live}}</ref><ref name="sg">{{cite web|author=Alisha Cherian|url=http://www.nlb.gov.sg/sure/wp-content/uploads/2014/05/WU110-FOF-1-Napolean-Bonaparte-May-2014.pdf|title=Fact or Fallacy?|lang=en|website=nlb.gov.sg|date=2014-05|access-date=2019-05-22|archive-date=2019-07-14|archive-url=https://web.archive.org/web/20190714020600/http://www.nlb.gov.sg/sure/wp-content/uploads/2014/05/WU110-FOF-1-Napolean-Bonaparte-May-2014.pdf|url-status=live}}</ref>, что для Франции того времени было ростом выше среднего<ref>{{книга|заглавие=Health and Welfare during Industrialization|ссылка=http://www.napoleon-series.org/research/abstract/population/vital/c_heights1.html|ответственный=R. H. Steckel, R. Floud|место=Chicago|издательство=University of Chicago|allpages=466|pages=175—177|год=1997|isbn=0-226-77156-3|archive-date=2017-01-24|archive-url=https://web.archive.org/web/20170124085449/http://www.napoleon-series.org/research/abstract/population/vital/c_heights1.html}}</ref><ref>{{cite web|author=Max Roser (2016).|title=Human Height|url=https://ourworldindata.org/human-height/|lang=en|access-date=2017-03-24|archive-date=2017-01-28|archive-url=https://web.archive.org/web/20170128041452/https://ourworldindata.org/human-height/|url-status=live}}</ref>. Другая точка зрения указывает на 157 см<ref name="nkj.ru" /><ref name="sg" /><ref>{{книга
| заглавие = The Cornhill Magazine
| ссылка = https://books.google.ru/books?id=MH5HAAAAYAAJ&q=Napoleon+height+157&dq=Napoleon+height+157&hl=ru&sa=X&ved=Napoleon+height+157
| ответственный = William Makepeace Thackeray
| издательство = Smith, Elder, 1899
| pages = 472
}}</ref><ref name="cm">{{книга
| автор = Jiří Malý, Jindřich Matiegka, Hynek J Pele, Artur Brožek, Vladislav Růžička, Česká akademie věd a uměmení
| заглавие = Die gleichwertigkeit der europäischen rassen und die wege zu ihrer vervollkommnung
| ссылка = https://books.google.ru/books?hl=ru&id=TI5gAAAAIAAJ&dq=Napoleon+157
| ответственный = {{nobr|Karel Weigner}}
| издательство = Tschechische akademie der wissenschaften und künste, in generalkommission Verlag Orbis a.-g.
| год = 1935
| страницы = 98
| страниц = 163
}}</ref>. Согласно «Словарю Наполеона», представление о его малом росте могло сложиться из-за того, что Наполеон, в отличие от своего окружения, носившего высокие шапки с плюмажем, надевал [[Шляпа Наполеона|небольшую скромную шляпу]]{{sfn|Dictionnaire|1999|loc=t. 2|p=380}}. Отталкиваясь от этого представления, немецкий психолог [[Адлер, Альфред|Альфред Адлер]] ввёл в обиход термин «[[комплекс Наполеона]]», согласно которому невысокие люди стремятся компенсировать ощущение своей неполноценности через излишнюю агрессивность и стремление к власти<ref>{{книга|автор=Whitley B., Kite M.|заглавие=The Psychology of Prejudice and Discrimination|ссылка=https://books.google.ru/books?id=mXSJEjl4uZYC|издательство=Cengage Learning|год=2009|pages=529|allpages=720|isbn=9780495811282}}</ref>.
Иҭеиҭыԥши ихымҩаԥгашьеи рҷыдарақәа ирыбзоураны Наполеон иаразнак еилукаауа культуратә персонажуп. [[Амассатә культураҿы]] Наполеон иоура маҷуп ҳәа агәаанагара шьақәгылеит. Аха еиуеиԥшым ахыҵхырҭақәа ишырҳәо ала иара иоура 167 см инаркны 169 см рҟынӡа инаӡон. Усҟантәи Франциа азы ас еиԥш иҟоу аура абжьаратәи аасҭа еиҳан. Даҽа гәаанагарак ала, 157 см аура акәын имаз. Наполеон икәша-мыкәша иҟаз зегьы аплиумаж змаз ахылԥа дуқәа рхан, аха иара ихаз [[ахылԥа хәыҷы]] акәын. «Наполеон ижәар» излаҳәо ала, иоура маҷын ҳәа агәаанагара ашьақәгылара убри иахҟьазар алшон. Ари агәаанагара шьаҭас иҟаҵаны анемец психолог [[Альфред Адлер]] ахархәара аиҭеит атермин [[«Наполеон икомплекс»]], уи иаанаго иҳаракым ауаа агрессиеи амчреи рыла рыбжамҽамра ахарҭәаара иашьҭоуп ҳәа ауп.
=== В филателии ===
=== Афилателиаҿы ===
Наполеоновская тематика («наполеоника») весьма популярна в филателистическом мире. Многие коллекционеры включают в «наполеонику» не только марки с изображением императора французов и памятников ему, но и знаки почтовой оплаты, а также другие филателистические материалы, прямо или косвенно посвящённые боевой биографии, государственной деятельности и личной жизни Наполеона, членам его семьи, любимым женщинам, соратникам и противникам, связанным с его именем мемориальным местам, ссылке на [[остров Святой Елены]]<ref>{{Cite web |url=http://www.philatelia.ru/bonapart/plots/?id=1 |title=Филателистический каталог ''Наполеон Бонапарт и его эпоха'' |access-date=2015-01-12 |archive-date=2015-01-12 |archive-url=https://web.archive.org/web/20150112205738/http://www.philatelia.ru/bonapart/plots/?id=1 |url-status=live }}</ref>.
Наполеон итематика («анаполеоника») афилателисттә дунеи аҿы акыр ирылаҵәаны иҟоуп. Аколлекционерцәа аӡәырҩы «наполеоника» иахырԥхьаӡалоит афранцызцәа римператор исахьа зну амаркақәеи абаҟақәеи рыдагьы, аԥошьҭатә шәатәы адыргақәагьы, иара убас Наполеон иеибашьратә биографиеи, иҳәынҭқарратә усуреи, ихатә ԥсҭазаареи, иҭаацәеи, бзиа иибоз аҳәсеи, ицнагаҩцәеи, иҿагылаҩцәеи, ихьӡ иадҳәалоу амемориалтә ҭыԥқәаеи, [[Иԥшьоу-Елена лыдгьылбжьахахь]] иахгареи ирызку егьырҭ афилателистикатә материалқәа.
=== В названиях кораблей (каронимика) ===
С 1796 года по 2020 год выявлено не менее 95 кораблей, связанных с именем императора французов<ref>Рычков С. Ю. [https://yandex.ru/search/?text=Бородинский%20музей%20«Invincible%20Napoleon»%3A%20память%20об%20участнике%20Бородинского%20сражения%20императоре%20Наполеоне%20I%20в%20названиях%20кораблей.%20К%20200-летию%20со%20дня%20смерти%20французского%20императора&lr=21646&clid=9582 «Invincible Napoleon»: память об участнике Бородинского сражения императоре Наполеоне I в названиях кораблей. К 200-летию со дня смерти императора французов. Научный доклад.] {{Wayback|url=https://yandex.ru/search/?text=%D0%91%D0%BE%D1%80%D0%BE%D0%B4%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9%20%D0%BC%D1%83%D0%B7%D0%B5%D0%B9%20 |date=20220213161610 }} // Отечественная война 1812 года. Источники, памятники, проблемы. XXIV Международная научная конференция, Бородино, 7—9 сентября 2020 года.</ref>.
1796 шықәса инаркны 2020 шықәсанӡа иазгәаҭан афранцызцәа римператор ихьӡ иадҳәалоу 95-ӷба иреиҵамкәа.
== Примечания ==
'''Комментарии'''
{{примечания|group=К|2}}
'''Источники'''
{{примечания|3}}
== Литература ==
{{main|Наполеоновская библиография}}
{{refbegin|2}}
;На русском языке
* {{книга|автор=Исдейл Ч.|заглавие=Наполеоновские войны|ссылка=|место=Ростов н/Д|издательство=[[Феникс (издательство)|Феникс]]|год=1997|страниц=544|isbn=5-85880-473-X|ref=Исдейл}}
* {{книга|автор=[[Ленц, Тьерри|Ленц Т.]]|заглавие=Наполеон: «Моя цель была великой»|место={{М.}}|издательство=[[Астрель]]|год=2003|страниц=160|isbn=5-271-06827-7|ref=Ленц}}
* {{книга|автор=[[Левицкий, Николай Арсеньевич|Левицкий Н. А.]]|заглавие=Полководческое искусство Наполеона|место={{М.}}|издательство=[[Воениздат]]|год=1938|страниц=280|ref=Левицкий}}
* {{книга|автор=[[Ливен, Доминик|Ливен Д.]]|заглавие=Россия против Наполеона: борьба за Европу, 1807—1814|ссылка=http://ria.ru/1812_liven/20121003/765207105.html|место={{М.}}|издательство=[[РОССПЭН]]|год=2012|страниц=679|isbn=978-5-8243-1583-7|ref=Ливен}}
* {{книга|автор=[[Манфред, Альберт Захарович|Манфред А. З.]]|заглавие=Наполеон Бонапарт|место={{М.}}|издательство=[[Мысль (московское издательство)|Мысль]]|год=1987|страниц=735|ref=Манфред}}
* {{книга|автор=[[Тарле, Евгений Викторович|Тарле Е. В.]]|заглавие=Наполеон // Собрание сочинений: в 12 томах|ссылка=http://www.museum.ru/1812/library/tarle/index.html|место={{М.}}|издательство=Издательство АН СССР|год=1959|том=7|страницы=13—433|ref=Тарле}}
* {{книга|автор=[[Тюлар, Жан|Тюлар Ж.]]|заглавие=Наполеон, или Миф о «спасителе»|место={{М.}}|издательство=[[Молодая гвардия (издательство)|Молодая гвардия]]|страниц=362|isbn=978-5-235-03157-9|ref=Тюлар}} — 1-е изд., 1996, — 2-е изд., 1997, — 3-е изд., 2009., — 4-е изд., 2012.
* {{книга|автор= [[Чандлер, Дэвид|Чандлер Д.]]|заглавие=Военные кампании Наполеона. Триумф и трагедия завоевателя|место={{М.}}|издательство=[[Центрполиграф]]|год=2011|страниц=927|isbn=978-5-227-02457-2|ref=Чандлер}}
* {{БРЭ|автор=[[Черкасов, Пётр Петрович|П. П. Черкасов]]|2=22|3=25|статья=Наполеон I|ссылка=https://old.bigenc.ru/world_history/text/2248440|архив=https://web.archive.org/web/20230206065456/https://old.bigenc.ru/world_history/text/2248440|архив дата=2023-02-06}}
;На английском языке
* {{книга|автор=Broers M.|заглавие=Napoleon. Volume 1. Soldier of Destiny, 1769–1805|ссылка=https://books.google.ru/books?id=v07tAgAAQBAJ|издательство=[[Faber and Faber]]|год=2014|allpages=608|isbn=978-0-571-27344-7|ref=Broers}}
* {{книга|автор=Dwyer Ph.|заглавие=Citizen Emperor: Napoleon in Power|ссылка=https://books.google.ru/books?id=EeuIAgAAQBAJ|издательство=[[Bloomsbury]]|год=2013|allpages=799|ref=Dwyer|isbn=978-0-300-16243-1}}
* {{книга|автор=Ellis G.|заглавие=Napoleon (Profiles In Power)|ссылка=https://books.google.ru/books?id=8lnJAwAAQBAJ|издательство=[[Routledge]]|год=2014|allpages=237|isbn=9781317874706|ref=Ellis}}
* {{книга|заглавие=The encyclopedia of the French revolutionary and Napoleonic Wars: a political, social, and military history|ссылка=https://books.google.ru/books?id=eYIRAQAAMAAJ|ответственный=Gregory Fremont-Barnes|издательство=[[ABC-CLIO]]|год=2006|allpages=1213|isbn=978-18510-96466|ref=Wars}}
* {{книга|автор=Englund S.|заглавие=Napoleon: A Political Life|ссылка=https://books.google.ru/books?id=7_q6b24_hXAC|издательство=[[Simon and Schuster]]|год=2010|allpages=592|isbn=978-1-439-13107-7|ref=Englund}}
* {{книга|заглавие=Europe 1789 to 1914: encyclopedia of the age of industry and empire|ссылка=https://books.google.ru/books?id=SAgZAQAAIAAJ|ответственный=J. M. Merriman, J. M. Winter|издательство=[[Charles Scribner's Sons]]|год=2006|allpages=2803|ref=Europe}}
* {{книга|автор=Fremont-Barnes G.|заглавие=Napoleon Bonaparte.|ссылка=https://books.google.ru/books?id=s6ZzILHp-jEC&hl|место=Oxford|издательство=Osprey Publishing Ltd|год=2010|allpages=64|isbn=978-1-84603-458-9|ref=Fremont-Barnes|archive-url=https://web.archive.org/web/20141020135544/https://books.google.ru/books?id=s6ZzILHp-jEC&hl|archive-date=2014-10-20}}
* {{книга|автор= {{iw|Гениффей, Патрис|Gueniffey P.|fr|Patrice Gueniffey}}|заглавие= Bonaparte: 1769–1802|ссылка= https://books.google.ru/books?id=J9noCAAAQBAJ|место= [[Кембридж (Массачусетс)|Cambridge, Massachusetts]]|издательство= [[The Belknap Press]]|год= 2015|allpages= 1008|isbn= 978-0-674-36835-4|ref=Gueniffey}}
* {{книга|автор=Hindmarsh J. T.|заглавие=The Death of Napoleon: The Last Campaign|ссылка=https://books.google.com/books?id=eVf7VLfYqWwC|место=Bloomington|издательство=Xlibris|allpages=107|год=2007|isbn=978-1-46531-508-3|ref=Hindmarsh}}
* {{книга|автор=[[Лефевр, Жорж|Lefebvre G.]]|заглавие=Napoleon|место={{L.}}, {{N. Y.}}|издательство=[[Routledge]]|год=2011|allpages=597|isbn=978-0-415-61009-4|ref=Lefebvre}}
* {{книга|автор=[[Робертс, Эндрю (историк)|Roberts A.]]|заглавие=Napoleon the Great|ссылка=https://books.google.ru/books?id=KA8-BAAAQBAJ|издательство=Penguin|год=2014|allpages=976|isbn=978-0-241-01919-1|ref=Roberts}} = {{книга|автор=Roberts A.|заглавие=Napoleon: A Life|ссылка=https://books.google.ru/books?id=rjVBAwAAQBAJ|издательство=Penguin|год=2014|allpages=976|isbn=978-0-698-17628-7}}
* {{статья|автор=Wilson, J.|заглавие=Dr. Archibald Arnott: Surgeon to the 20th Foot and Physician to Napoleon|издание=[[British Medical Journal]]|год=1975|месяц=8|число=2|doi=10.1136/bmj.3.5978.293|ref=Wilson|язык=en |issn=0959-8138}}
;На французском языке
* {{книга|заглавие=Dictionnaire Napoléon|ссылка=|ответственный=Jean Tulard|место={{P.}}|издательство=Fayard|год=1999|том=1|allpages=977|isbn=978-2-213-60485-5|ref=Dictionnaire}}; Т. 2. — 1000 p.
* {{книга|автор=Lentz T.|заглавие=Le Grand Consulat: 1799—1804|ссылка=|издательство=Pluriel|год=2014|allpages=909|isbn=978-2-818-50394-2|ref=Lentz}}
* {{книга|автор=Lentz T.|заглавие=Nouvelle histoire du premier empire: Napoléon et la conquête de l'Europe, 1804—1810|ссылка=|издательство=Fayard|год=2002|allpages=607|isbn=978-2-213-61387-1|ref=Lentz}}
* {{книга|автор=Lentz T.|заглавие=Nouvelle histoire du premier empire: L'effondrement du système napoléonien, 1810—1814|ссылка=|место={{P.}}|издательство=Fayard|год=2004|allpages=681|isbn=978-2-213-61944-6|ref=Lentz}}
* {{книга|автор=Lentz T.|заглавие=Nouvelle histoire du Premier Empire: Les Cent-Jours, 1815|издательство=Fayard|год=2010|allpages=599|isbn=978-2-213-63808-9|ref=Lentz}}
* {{книга|автор=Tulard J., Garros L.|заглавие=Itinéraire de Napoléon au jour le jour, 1769-1821; nouvelle édition revue et corrigée par Jean Tulard et Jacques Jourquin|ссылка=https://ahrf.revues.org/1965|место={{P.}}|издательство=[[Tallandier]]|серия=Bibliothèque napoléonienne|год=2002|allpages=666|isbn=2-84734-016-5|ref=Itinéraire}} — Биография Наполеона в датах
{{refend}}
== Ссылки ==
{{Навигация
|Проект = Наполеоновские войны
}}
* {{ВТ-ВЭ|Наполеон I Великий|том=16|страницы=529–538|ref=Военная энциклопедия}}
* {{cite web|url=http://www.napoleon.org/|title=Napoleon.org|publisher=Официальный сайт «Фонда Наполеона»|description=Организация, содействующая исследованиям по наполеоновской тематике|access-date=2017-03-24}}{{ref|en}}{{ref|fr}}
* {{cite web|url=http://fondationnapoleon.org/activites-et-services/histoire/la-correspondance-de-napoleon/|title=Édition de la correspondance de Napoléon I<sup>er</sup>|lang=fr|access-date=2017-03-24|ref=Édition de la correspondance}}
* {{cite web|url=http://bonapartnapoleon.ru/|title=Энциклопедия «Наполеон Бонапарт»|publisher=BonapartNapoleon.Ru|access-date=2017-03-24|archive-url=https://www.webcitation.org/6IvD0iwaw?url=http://bonapartnapoleon.ru/|archive-date=2013-08-16|lang=ru|url-status=live}}
* {{cite web|url=http://www.museum.ru/museum/1812/Library/laskas/laskas.txt|title=Максимы и мысли узника Святой Елены|lang=ru|access-date=2017-03-24}}
* {{cite web|url=http://www.museum.ru/1812/library/Napoleon1/index.html|title=Завещание Наполеона|lang=ru|access-date=2017-30-24}}
* [https://www.napoleonica.org/fr/collections/correspondance/search?page=0&pageSize=20 Письма Наполеона] на napoleonica.org — более 40,5 тысяч писем в открытом доступе, 2024.
{{Внешние ссылки}}
{{Наполеон I}}
{{Великая армия в 1805 году}}
{{Короли и императоры Франции}}
{{Монархи Германии}}
{{Избранная статья|Госдеятели|Военный}}
{{Статья года|2017}}
[[Категория:Свергнутые монархи]]
[[Категория:Монархи, отрёкшиеся от престола]]
[[Категория:Военачальники Франции]]
[[Категория:Императоры Франции]]
[[Категория:Римские короли]]
[[Категория:Короли Италии]]
[[Категория:Наполеоновские войны]]
[[Категория:Люди Великой французской революции по алфавиту]]
[[Категория:История XVIII века]]
[[Категория:История XIX века]]
[[Категория:Наполеон I| ]]
[[Категория:Члены Французской академии наук]]
[[Категория:Умершие от рака желудка]]
[[Категория:Вандалы (преступники)]]
[[Категория:Отлучённые от церкви]]
[[Категория:Монархи Европы XIX века]]
[[Категория:Сосланные в Средиземноморье]]
[[Категория:Исторические персонажи романа «Война и мир»]]
pm20nlzvdg9t7wbx01qio6bftycwjlq
Акатегориа:20-тәи ашәышықәсазы Британиаду ашықәсқәа рыла
14
51834
163532
162926
2026-04-10T23:32:03Z
Fraxinus.cs
8381
163532
wikitext
text/x-wiki
{{Navseasoncats}}
{{Category TOC custom|1900|1920|1940|1960|1980|2000}}
[[Акатегориа:{{Title country}} {{Title century}}-тәи ашәышықәсазтәи аҭоурых|шықәсқәа]]
[[Акатегориа:{{Title country}} аҭоурых ашықәсқәа рыла]]
[[Акатегориа:{{Title century}}-тәи ашәышықәса ашықәсқәа атәылақәа рыла|{{Title country}}]]
[[Акатегориа:{{Title century}}-тәи ашәышықәсазы {{Country2continent|{{Title country}}}} ашықәсқәа рыла|{{Title country}}]]
m6g9farr6pyzyppgxszs89ccyhghyy3
Акатегориа:Куба адәныҟатәи аполитика
14
52091
163567
163476
2026-04-11T00:49:04Z
Fraxinus.cs
8381
Fraxinus.cs переименовал страницу [[Акатегориа:Куба адәныҟатәи аполитика аҭоурых]] в [[Акатегориа:Куба адәныҟатәи аполитика]] без оставления перенаправления
163476
wikitext
text/x-wiki
{{commonscat|International relations of Cuba}}
[[Акатегориа:{{Title country}} аполитика|дәныҟатәи аполитика]]
[[Акатегориа:{{Title country}} аиҳабыра|дәныҟатәи аполитика]]
[[Акатегориа:Адәныҟатәи аполитика атәылақәа рыла]]
h7zi0nnfa6uup9w7sn6vlwsw9rn76u8
Акатегориа:Куба 20-тәи ашәышықәсазтәи аҭоурых
14
52103
163495
2026-04-10T22:13:54Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Cuba in the {{Title century}}th century}} {{Navseasoncats}} [[Акатегориа:{{Title country}} аҭоурых ашәышықәсақәа рыла|{{Title century}}]] [[Акатегориа:{{Title century}}-тәи ашәышықәсазтәи аҭоурых атәылақәа рыла]] [[Акатегориа:Карибтәи амшын {{Title century}}-тәи ашәышықәсазтәи аҭоурых]] Акатегориа:{{T...»
163495
wikitext
text/x-wiki
{{Commons category|Cuba in the {{Title century}}th century}}
{{Navseasoncats}}
[[Акатегориа:{{Title country}} аҭоурых ашәышықәсақәа рыла|{{Title century}}]]
[[Акатегориа:{{Title century}}-тәи ашәышықәсазтәи аҭоурых атәылақәа рыла]]
[[Акатегориа:Карибтәи амшын {{Title century}}-тәи ашәышықәсазтәи аҭоурых]]
[[Акатегориа:{{Title country}} {{MILLENNIUM|{{Title century}}00}}зтәи аҭоурых|{{Title century}}]]
1eg2ynxzmxujj8o407591r3n81ep8iw
Акатегориа:Куба аҭоурых ашәышықәсақәа рыла
14
52104
163496
2026-04-10T22:15:32Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Cuba by century}} {{Аконтеинер акатегориа}} [[Акатегориа:{{Title country}} аҭоурых аамҭақәа рыла|*]] [[Акатегориа:Атәылақәа рҭоурых ашәышықәсақәа рыла]] [[Акатегориа:{{Country2continent|{{Title country}}}} аҭоурых ашәышықәсақәа рыла]] Акатегориа:Карибтәи амшын аҭоурых ашәышық...»
163496
wikitext
text/x-wiki
{{Commons category|Cuba by century}}
{{Аконтеинер акатегориа}}
[[Акатегориа:{{Title country}} аҭоурых аамҭақәа рыла|*]]
[[Акатегориа:Атәылақәа рҭоурых ашәышықәсақәа рыла]]
[[Акатегориа:{{Country2continent|{{Title country}}}} аҭоурых ашәышықәсақәа рыла]]
[[Акатегориа:Карибтәи амшын аҭоурых ашәышықәсақәа рыла]]
ghp5z0a953y2rw3iqqd7fnizmlojfpg
Акатегориа:Куба аҭоурых аамҭақәа рыла
14
52105
163497
2026-04-10T22:16:12Z
Fraxinus.cs
8381
Новая страница: «{{commonscat|History of Cuba by period}} {{Аконтеинер акатегориа}} [[Акатегориа:{{Title country}} аҭоурых| аамҭақәа]] [[Акатегориа:Аҭоурых атәылақәа рылеи аамҭақәа рылеи]] [[Акатегориа:{{Country2continent|{{Title country}}}} аҭоурых аамҭақәа рыла]]»
163497
wikitext
text/x-wiki
{{commonscat|History of Cuba by period}}
{{Аконтеинер акатегориа}}
[[Акатегориа:{{Title country}} аҭоурых| аамҭақәа]]
[[Акатегориа:Аҭоурых атәылақәа рылеи аамҭақәа рылеи]]
[[Акатегориа:{{Country2continent|{{Title country}}}} аҭоурых аамҭақәа рыла]]
9rnvos5f8m2n82ea6ylrypshxo56h7r
Акатегориа:Карибтәи амшын аҭоурых ашәышықәсақәа рыла
14
52106
163498
2026-04-10T22:19:05Z
Fraxinus.cs
8381
Новая страница: «{{commonscat|Caribbean by century}} [[Акатегориа:Карибтәи амшын аҭоурых аамҭақәа рыла| шәышықәсақәа]] [[Акатегориа:Аҩадатәи Америка аҭоурых ашәышықәсақәа рыла| ]] [[Акатегориа:Аладатәи Америка аҭоурых ашәышықәсақәа рыла| ]] [[Акатегориа:Арегионқәа ашәышықәсақәа рыла]]»
163498
wikitext
text/x-wiki
{{commonscat|Caribbean by century}}
[[Акатегориа:Карибтәи амшын аҭоурых аамҭақәа рыла| шәышықәсақәа]]
[[Акатегориа:Аҩадатәи Америка аҭоурых ашәышықәсақәа рыла| ]]
[[Акатегориа:Аладатәи Америка аҭоурых ашәышықәсақәа рыла| ]]
[[Акатегориа:Арегионқәа ашәышықәсақәа рыла]]
ak7ykm9g5mtnx37bm40zjpjxdvhdnzk
163500
163498
2026-04-10T22:21:45Z
Fraxinus.cs
8381
Удaлeнa [[Акатегориа:Арегионқәа ашәышықәсақәа рыла]]; Дoбaвлeнa [[Акатегориа:Ашәышықәсақәа арегионқәа рыла]] [[ВП:HC|HotCat]] ацхыраарала
163500
wikitext
text/x-wiki
{{commonscat|Caribbean by century}}
[[Акатегориа:Карибтәи амшын аҭоурых аамҭақәа рыла| шәышықәсақәа]]
[[Акатегориа:Аҩадатәи Америка аҭоурых ашәышықәсақәа рыла| ]]
[[Акатегориа:Аладатәи Америка аҭоурых ашәышықәсақәа рыла| ]]
[[Акатегориа:Ашәышықәсақәа арегионқәа рыла]]
ddovo311gjd4y0kbc93mhz4v423ku9c
Акатегориа:Карибтәи амшын аҭоурых аамҭақәа рыла
14
52107
163499
2026-04-10T22:20:24Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|History of the Caribbean by period}} [[Акатегориа:Аҩадатәи Америка аҭоурых аамҭақәа рыла|*]] [[Акатегориа:Карибтәи амшын аҭоурых| аамҭақәа]] [[Акатегориа:Аҭоурых арегионқәа рылеи аамҭақәа рылеи]]»
163499
wikitext
text/x-wiki
{{Commons category|History of the Caribbean by period}}
[[Акатегориа:Аҩадатәи Америка аҭоурых аамҭақәа рыла|*]]
[[Акатегориа:Карибтәи амшын аҭоурых| аамҭақәа]]
[[Акатегориа:Аҭоурых арегионқәа рылеи аамҭақәа рылеи]]
h3osgiemvs1r3q9jg7hs00k5d2eb4bd
Акатегориа:Ашәышықәсақәа арегионқәа рыла
14
52108
163501
2026-04-10T22:23:28Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} {{DEFAULTSORT:шәышықәсақәа арегионқәа рыла}} [[Акатегориа:Аҭоурых арегионқәа рылеи аамҭақәа рылеи| 3]] [[Акатегориа:Арегионқәа| шәышықәсақәа]] [[Акатегориа:Ашәышықәсақәа аҭыԥқәа рыла]] [[Акатегориа:Акатегориақәа арегионқәа рыла]] Акат...»
163501
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:шәышықәсақәа арегионқәа рыла}}
[[Акатегориа:Аҭоурых арегионқәа рылеи аамҭақәа рылеи| 3]]
[[Акатегориа:Арегионқәа| шәышықәсақәа]]
[[Акатегориа:Ашәышықәсақәа аҭыԥқәа рыла]]
[[Акатегориа:Акатегориақәа арегионқәа рыла]]
[[Акатегориа:Аҭоурых арегионқәа рыла|+шәышықәсақәа]]
6mfh9hkmyfvxbw2d6pmxflrthbnstsa
163502
163501
2026-04-10T22:24:08Z
Fraxinus.cs
8381
Удaлeнa [[Акатегориа:Арегионқәа]]; Дoбaвлeнa [[Акатегориа:Адунеи арегионқәа]] [[ВП:HC|HotCat]] ацхыраарала
163502
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:шәышықәсақәа арегионқәа рыла}}
[[Акатегориа:Аҭоурых арегионқәа рылеи аамҭақәа рылеи| 3]]
[[Акатегориа:Адунеи арегионқәа| шәышықәсақәа]]
[[Акатегориа:Ашәышықәсақәа аҭыԥқәа рыла]]
[[Акатегориа:Акатегориақәа арегионқәа рыла]]
[[Акатегориа:Аҭоурых арегионқәа рыла|+шәышықәсақәа]]
doiykh3ngebf85vosi2pdoz0t6sj2gs
Акатегориа:Карибтәи амшын 20-тәи ашәышықәсазтәи аҭоурых
14
52109
163503
2026-04-10T22:27:18Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Caribbean in the 20th century}} {{Navseasoncats}} [[Акатегориа:Карибтәи амшын аҭоурых ашәышықәсақәа рыла]] [[Акатегориа:Аҩадатәи Америка {{Title century}}-тәи ашәышықәсазтәи аҭоурых|*]] [[Акатегориа:Аладатәи Америка {{Title century}}-тәи ашәышықәсазтәи аҭоурых|*]] Акатегориа:Кари...»
163503
wikitext
text/x-wiki
{{Commons category|Caribbean in the 20th century}}
{{Navseasoncats}}
[[Акатегориа:Карибтәи амшын аҭоурых ашәышықәсақәа рыла]]
[[Акатегориа:Аҩадатәи Америка {{Title century}}-тәи ашәышықәсазтәи аҭоурых|*]]
[[Акатегориа:Аладатәи Америка {{Title century}}-тәи ашәышықәсазтәи аҭоурых|*]]
[[Акатегориа:Карибтәи амшын II-тәи азқьышықәсазтәи аҭоурых|{{Title century}}]]
jovb3mfge1lewwxcbha6c9ug4fqy571
Акатегориа:Аладатәи Америка 20-тәи ашәышықәсазтәи аҭоурых
14
52110
163504
2026-04-10T22:28:39Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|South America in the {{Title century}}th century}} {{Navseasoncats}} {{DEFAULTSORT:ладатәи Америка 20-тәи ашәышықәсазтәи аҭоурых}} [[Акатегориа:Аладатәи Америка аҭоурых ашәышықәсақәа рыла|{{Title century}}]] [[Акатегориа:{{Title century}}-тәи ашәышықәса аконтинентқәа рыла]] Акатегориа:Аладатәи...»
163504
wikitext
text/x-wiki
{{Commons category|South America in the {{Title century}}th century}}
{{Navseasoncats}}
{{DEFAULTSORT:ладатәи Америка 20-тәи ашәышықәсазтәи аҭоурых}}
[[Акатегориа:Аладатәи Америка аҭоурых ашәышықәсақәа рыла|{{Title century}}]]
[[Акатегориа:{{Title century}}-тәи ашәышықәса аконтинентқәа рыла]]
[[Акатегориа:Аладатәи Америка {{MILLENNIUM|{{Title century}}00}}зтәи аҭоурых|{{Title century}}]]
2fjc2d089rhu44011slvb78xao2512l
Акатегориа:Карибтәи амшын II-тәи азқьышықәсазтәи аҭоурых
14
52111
163505
2026-04-10T22:31:46Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} {{ombox|image=none| text = <div style="text-align:center;"> [[:Акатегориа:Карибтәи амшын Ҳ. ҟ. IV-тәи азқьышықәсазтәи аҭоурых|{{small|ҳ. ҟ.}} IV-тәи азқьышықәса]] {{*}} [[:Акатегориа:Карибтәи амшын Ҳ. ҟ. III-тәи азқьышықәсазтәи аҭоурых|{{small|ҳ. ҟ.}} III-тәи азқьышықәса]] {{*}} :...»
163505
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{ombox|image=none| text = <div style="text-align:center;">
[[:Акатегориа:Карибтәи амшын Ҳ. ҟ. IV-тәи азқьышықәсазтәи аҭоурых|{{small|ҳ. ҟ.}} IV-тәи азқьышықәса]] {{*}} [[:Акатегориа:Карибтәи амшын Ҳ. ҟ. III-тәи азқьышықәсазтәи аҭоурых|{{small|ҳ. ҟ.}} III-тәи азқьышықәса]] {{*}} [[:Акатегориа:Карибтәи амшын Ҳ. ҟ. II-тәи азқьышықәсазтәи аҭоурых|{{small|ҳ. ҟ.}} II-тәи азқьышықәса]] {{*}} [[:Акатегориа:Карибтәи амшын Ҳ. ҟ. I-тәи азқьышықәсазтәи аҭоурых|{{small|ҳ. ҟ.}} I-тәи азқьышықәса]] {{*}} [[:Акатегориа:Карибтәи амшын I-тәи азқьышықәсазтәи аҭоурых|I-тәи азқьышықәса]] {{*}} [[:Акатегориа:Карибтәи амшын II-тәи азқьышықәсазтәи аҭоурых|II-тәи азқьышықәса]] {{*}} [[:Акатегориа:Карибтәи амшын III-тәи азқьышықәсазтәи аҭоурых|III-тәи азқьышықәса]] {{*}} [[:Акатегориа:Карибтәи амшын IV-тәи азқьышықәсазтәи аҭоурых|IV-тәи азқьышықәса]]
}}
[[Акатегориа:Карибтәи амшын аҭоурых азқьышықәсақәа рыла|02]]
[[Акатегориа:Аҩадатәи Америка II-тәи азқьышықәсазтәи аҭоурых| ]]
[[Акатегориа:II-тәи азқьышықәса арегионқәа рыла]]
hlfy6tkifpg3uwvphjgk9tietuheo46
Акатегориа:Карибтәи амшын аҭоурых азқьышықәсақәа рыла
14
52112
163506
2026-04-10T22:33:26Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} [[Акатегориа:Карибтәи амшын аҭоурых аамҭақәа рыла| зқьышықәсақәа]] [[Акатегориа:Аҩадатәи Америка аҭоурых азқьышықәсақәа рыла| ]] [[Акатегориа:Азқьышықәсақәа арегионқәа рыла]]»
163506
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
[[Акатегориа:Карибтәи амшын аҭоурых аамҭақәа рыла| зқьышықәсақәа]]
[[Акатегориа:Аҩадатәи Америка аҭоурых азқьышықәсақәа рыла| ]]
[[Акатегориа:Азқьышықәсақәа арегионқәа рыла]]
164nbnfbfnwdubg7ptz4zfji7drykkw
Акатегориа:Азқьышықәсақәа арегионқәа рыла
14
52113
163507
2026-04-10T22:36:46Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} {{DEFAULTSORT:зқьышықәсақәа арегионқәа рыла}} [[Акатегориа:Аҭоурых арегионқәа рылеи аамҭақәа рылеи| зқьышықәсақәа]] [[Акатегориа:Азқьышықәсақәа| регионқәа]] [[Акатегориа:Аҭоурых арегионқәа рыла|+зқьышықәсақәа]] Акатегориа:Акатегори...»
163507
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:зқьышықәсақәа арегионқәа рыла}}
[[Акатегориа:Аҭоурых арегионқәа рылеи аамҭақәа рылеи| зқьышықәсақәа]]
[[Акатегориа:Азқьышықәсақәа| регионқәа]]
[[Акатегориа:Аҭоурых арегионқәа рыла|+зқьышықәсақәа]]
[[Акатегориа:Акатегориақәа арегионқәа рыла]]
f209dokcarolr8npotjwe9pt6ikzcwk
Акатегориа:II-тәи азқьышықәса арегионқәа рыла
14
52114
163508
2026-04-10T22:40:25Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} {{ombox|image=none| text = <div style="text-align:center;"> [[:Акатегориа:Ҳ. ҟ. IV-тәи азқьышықәса арегионқәа рыла|{{small|ҳ. ҟ.}} IV-тәи азқьышықәса]] {{*}} [[:Акатегориа:Ҳ. ҟ. III-тәи азқьышықәса арегионқәа рыла|{{small|ҳ. ҟ.}} III-тәи азқьышықәса]] {{*}} :Акатегориа:Ҳ. ҟ. II-тәи аз...»
163508
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{ombox|image=none| text = <div style="text-align:center;">
[[:Акатегориа:Ҳ. ҟ. IV-тәи азқьышықәса арегионқәа рыла|{{small|ҳ. ҟ.}} IV-тәи азқьышықәса]] {{*}} [[:Акатегориа:Ҳ. ҟ. III-тәи азқьышықәса арегионқәа рыла|{{small|ҳ. ҟ.}} III-тәи азқьышықәса]] {{*}} [[:Акатегориа:Ҳ. ҟ. II-тәи азқьышықәса арегионқәа рыла|{{small|ҳ. ҟ.}} II-тәи азқьышықәса]] {{*}} [[:Акатегориа:Ҳ. ҟ. I-тәи азқьышықәса арегионқәа рыла|{{small|ҳ. ҟ.}} I-тәи азқьышықәса]] {{*}} [[:Акатегориа:I-тәи азқьышықәса арегионқәа рыла|I-тәи азқьышықәса]] {{*}} [[:Акатегориа:II-тәи азқьышықәса арегионқәа рыла|II-тәи азқьышықәса]] {{*}} [[:Акатегориа:III-тәи азқьышықәса арегионқәа рыла|III-тәи азқьышықәса]] {{*}} [[:Акатегориа:IV-тәи азқьышықәса арегионқәа рыла|IV-тәи азқьышықәса]]
}}
[[Акатегориа:II-тәи азқьышықәса| 01]]
[[Акатегориа:Азқьышықәсақәа арегионқәа рыла|02]]
174hkcdy0n4baz749p7fc4q3f2q95lf
Акатегориа:Куба II-тәи азқьышықәсазтәи аҭоурых
14
52115
163509
2026-04-10T22:41:32Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} [[Акатегориа:II-тәи азқьышықәса атәылақәа рыла]] [[Акатегориа:{{Title country}} аҭоурых азқьышықәсақәа рыла|2]] [[Акатегориа:{{Country2continent|{{Title country}}}} II-тәи азқьышықәсазтәи аҭоурых]]»
163509
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
[[Акатегориа:II-тәи азқьышықәса атәылақәа рыла]]
[[Акатегориа:{{Title country}} аҭоурых азқьышықәсақәа рыла|2]]
[[Акатегориа:{{Country2continent|{{Title country}}}} II-тәи азқьышықәсазтәи аҭоурых]]
hz93j0q1e3k89vje7no1zb2l5v9u0rt
Акатегориа:Куба аҭоурых азқьышықәсақәа рыла
14
52116
163510
2026-04-10T22:42:35Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} [[Акатегориа:Азқьышықәсақәа атәылақәа рыла]] [[Акатегориа:{{Title country}} аҭоурых аамҭақәа рыла|зқьышықәсақәа]] [[Акатегориа:Карибтәи амшын аҭоурых азқьышықәсақәа рыла]]»
163510
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
[[Акатегориа:Азқьышықәсақәа атәылақәа рыла]]
[[Акатегориа:{{Title country}} аҭоурых аамҭақәа рыла|зқьышықәсақәа]]
[[Акатегориа:Карибтәи амшын аҭоурых азқьышықәсақәа рыла]]
i7hemb8hiw6dh2wzzuthv2aznx0d2h5
Акатегориа:Куба аҭоурых ажәашықәсақәа рыла
14
52117
163511
2026-04-10T22:44:48Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Cuba by decade}} {{Аконтеинер акатегориа}} [[Акатегориа:{{Title country}} аҭоурых аамҭақәа рыла|*03]] [[Акатегориа:Атәылақәа рҭоурых ажәашықәсақәа рыла]] [[Акатегориа:{{Country2continent|{{Title country}}}} аҭоурых ажәашықәсақәа рыла]] Акатегориа:Карибтәи амшын аҭоурых ажәашық...»
163511
wikitext
text/x-wiki
{{Commons category|Cuba by decade}}
{{Аконтеинер акатегориа}}
[[Акатегориа:{{Title country}} аҭоурых аамҭақәа рыла|*03]]
[[Акатегориа:Атәылақәа рҭоурых ажәашықәсақәа рыла]]
[[Акатегориа:{{Country2continent|{{Title country}}}} аҭоурых ажәашықәсақәа рыла]]
[[Акатегориа:Карибтәи амшын аҭоурых ажәашықәсақәа рыла]]
c6hq3a8upgaicer5rsgm0ku9hevw0qk
Акатегориа:Карибтәи амшын аҭоурых ажәашықәсақәа рыла
14
52118
163512
2026-04-10T22:46:37Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} [[Акатегориа:Карибтәи амшын аҭоурых аамҭақәа рыла| жәашықәсақәа]] [[Акатегориа:Аҩадатәи Америка аҭоурых ажәашықәсақәа рыла|*]]»
163512
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
[[Акатегориа:Карибтәи амшын аҭоурых аамҭақәа рыла| жәашықәсақәа]]
[[Акатегориа:Аҩадатәи Америка аҭоурых ажәашықәсақәа рыла|*]]
aybgvjzwnir1ikjt3u9u4yhuy2rki85
Акатегориа:Аҩадатәи Америка 1950-тәи ашықәсқәа раан аҭоурых
14
52119
163513
2026-04-10T22:47:51Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|North America in the {{Title year}}s}} {{Аконтеинер акатегориа}} {{Category series navigation}} {{CatAutoTOC}} {{DEFAULTSORT:ҩадатәи Америка {{Title year}}-тәи ашықәсқәа раан аҭоурых}} [[Акатегориа:{{Title year}}-тәи ашықәсқәа раан иҟалаз ахҭысқәа аконтинентқәа рыла]] Акатегориа:Аҩадатәи Америка аҭ...»
163513
wikitext
text/x-wiki
{{Commons category|North America in the {{Title year}}s}}
{{Аконтеинер акатегориа}}
{{Category series navigation}}
{{CatAutoTOC}}
{{DEFAULTSORT:ҩадатәи Америка {{Title year}}-тәи ашықәсқәа раан аҭоурых}}
[[Акатегориа:{{Title year}}-тәи ашықәсқәа раан иҟалаз ахҭысқәа аконтинентқәа рыла]]
[[Акатегориа:Аҩадатәи Америка аҭоурых ажәашықәсақәа рыла|{{title year}}]]
[[Акатегориа:Аҩадатәи Америка {{CENTURY|{{Title year}}}}-тәи ашәышықәсазтәи аҭоурых|{{title year}}]]
t1taz06uyot9l8eftyv7q771heiqsp7
Акатегориа:1950-тәи ашықәсқәа раан аҳәынҭқарратә хҳәарақәа
14
52120
163517
2026-04-10T22:56:29Z
Fraxinus.cs
8381
Новая страница: «{{Category series navigation}} [[Акатегориа:Аҳәынҭқарратә хҳәарақәа ажәашықәсақәа рыла]] [[Акатегориа:{{Title decade}}-тәи ашықәсқәа раан аконфликтқәа|ҳәынҭқарратә хҳәарақәа]] [[Акатегориа:{{Century name from decade or year|{{Title decade}}}}зтәи аҳәынҭқарратә хҳәарақәа]] Акатегориа:{{Title decade}}-тә...»
163517
wikitext
text/x-wiki
{{Category series navigation}}
[[Акатегориа:Аҳәынҭқарратә хҳәарақәа ажәашықәсақәа рыла]]
[[Акатегориа:{{Title decade}}-тәи ашықәсқәа раан аконфликтқәа|ҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:{{Century name from decade or year|{{Title decade}}}}зтәи аҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:{{Title decade}}-тәи ашықәсқәа раан аполитика|ҳәынҭқарратә хҳәарақәа]]
060hjjs27k18sx0s07p8waskovdm1os
Акатегориа:Аҳәынҭқарратә хҳәарақәа ажәашықәсақәа рыла
14
52121
163519
2026-04-10T23:09:26Z
Fraxinus.cs
8381
Новая страница: « {{DEFAULTSORT:ҳәынҭқарратә хҳәарақәа ажәашықәсақәа рыла}} [[Акатегориа:Аҳәынҭқарратә хҳәарақәа| жәашықәсақәа]] [[Акатегориа:Аконфликтқәа ажәашықәсақәа рыла| ҳәынҭқарратә хҳәарақәа]] [[Акатегориа:Ақәгыларақәа ажәашықәсақәа рыла| ҳәынҭқарратә хҳәарақәа]] Ак...»
163519
wikitext
text/x-wiki
{{DEFAULTSORT:ҳәынҭқарратә хҳәарақәа ажәашықәсақәа рыла}}
[[Акатегориа:Аҳәынҭқарратә хҳәарақәа| жәашықәсақәа]]
[[Акатегориа:Аконфликтқәа ажәашықәсақәа рыла| ҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:Ақәгыларақәа ажәашықәсақәа рыла| ҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:Аполитика ажәашықәсақәа рыла]]
ebvdjvg1erq2uydlzc5d10ej1277r6y
163520
163519
2026-04-10T23:09:45Z
Fraxinus.cs
8381
163520
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:ҳәынҭқарратә хҳәарақәа ажәашықәсақәа рыла}}
[[Акатегориа:Аҳәынҭқарратә хҳәарақәа| жәашықәсақәа]]
[[Акатегориа:Аконфликтқәа ажәашықәсақәа рыла| ҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:Ақәгыларақәа ажәашықәсақәа рыла| ҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:Аполитика ажәашықәсақәа рыла]]
hlat7oxax6xm5wlorani5kudbgw8jg4
Акатегориа:Ақәгыларақәа ажәашықәсақәа рыла
14
52122
163521
2026-04-10T23:11:23Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} {{DEFAULTSORT:қәгыларақәа ажәашықәсақәа рыла}} [[Акатегориа:Ақәгыларақәа аамҭақәа рыла| жәашықәсақәа]] [[Акатегориа:Акатегориақәа ажәашықәсақәа рыла]] [[Акатегориа:Аконфликтқәа ажәашықәсақәа рыла| қәгыларақәа]]»
163521
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:қәгыларақәа ажәашықәсақәа рыла}}
[[Акатегориа:Ақәгыларақәа аамҭақәа рыла| жәашықәсақәа]]
[[Акатегориа:Акатегориақәа ажәашықәсақәа рыла]]
[[Акатегориа:Аконфликтқәа ажәашықәсақәа рыла| қәгыларақәа]]
dndfv13hmgy0zy6md1ruambxq7wabub
Акатегориа:20-тәи ашәышықәсазтәи аҳәынҭқарратә хҳәарақәа
14
52123
163522
2026-04-10T23:16:38Z
Fraxinus.cs
8381
Новая страница: «{{Category series navigation}} [[Акатегориа:Аҳәынҭқарратә хҳәарақәа ашәышықәсақәа рыла]] [[Акатегориа:{{Title century}}-тәи ашәышықәсазтәи аконфликтқәа|ҳәынҭқарратә хҳәарақәа]] [[Акатегориа:{{Title century}}-тәи ашәышықәсазы аполитика|ҳәынҭқарратә хҳәарақәа]] Акатегориа:{{MILLENNIUM|{...»
163522
wikitext
text/x-wiki
{{Category series navigation}}
[[Акатегориа:Аҳәынҭқарратә хҳәарақәа ашәышықәсақәа рыла]]
[[Акатегориа:{{Title century}}-тәи ашәышықәсазтәи аконфликтқәа|ҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:{{Title century}}-тәи ашәышықәсазы аполитика|ҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:{{MILLENNIUM|{{Title century}}00}}зтәи аҳәынҭқарратә хҳәарақәа]]
jeivrvuy34y4w1qak5j03vmbywnyfvz
Акатегориа:Аҳәынҭқарратә хҳәарақәа ашәышықәсақәа рыла
14
52124
163523
2026-04-10T23:18:35Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} {{DEFAULTSORT:ҳәынҭқарратә хҳәарақәа ашәышықәсақәа рыла}} [[Акатегориа:Аҳәынҭқарратә хҳәарақәа| шәышықәсақәа]] [[Акатегориа:Аконфликтқәа ашәышықәсақәа рыла| ҳәынҭқарратә хҳәарақәа]] Акатегориа:Ақәгыларақәа ашәышықәсақәа рыла| ҳәы...»
163523
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:ҳәынҭқарратә хҳәарақәа ашәышықәсақәа рыла}}
[[Акатегориа:Аҳәынҭқарратә хҳәарақәа| шәышықәсақәа]]
[[Акатегориа:Аконфликтқәа ашәышықәсақәа рыла| ҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:Ақәгыларақәа ашәышықәсақәа рыла| ҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:Аполитика ашәышықәсақәа рыла]]
bznmg2hcldnsy94kk4goqpwsqgrr545
Акатегориа:II-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа
14
52125
163524
2026-04-10T23:20:56Z
Fraxinus.cs
8381
Новая страница: «{{ombox|image=none| text = <div style="text-align:center;"> [[:Акатегориа:Ҳ. ҟ. IV-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа|{{small|ҳ. ҟ.}} IV-тәи азқьышықәса]] {{*}} [[:Акатегориа:Ҳ. ҟ. III-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа|{{small|ҳ. ҟ.}} III-тәи азқьышықәса]] {{*}} :Акатегориа:Ҳ. ҟ. II-тәи а...»
163524
wikitext
text/x-wiki
{{ombox|image=none| text = <div style="text-align:center;">
[[:Акатегориа:Ҳ. ҟ. IV-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа|{{small|ҳ. ҟ.}} IV-тәи азқьышықәса]] {{*}} [[:Акатегориа:Ҳ. ҟ. III-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа|{{small|ҳ. ҟ.}} III-тәи азқьышықәса]] {{*}} [[:Акатегориа:Ҳ. ҟ. II-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа|{{small|ҳ. ҟ.}} II-тәи азқьышықәса]] {{*}} [[:Акатегориа:Ҳ. ҟ. I-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа|{{small|ҳ. ҟ.}} I-тәи азқьышықәса]] {{*}} [[:Акатегориа:I-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа|I-тәи азқьышықәса]] {{*}} [[:Акатегориа:II-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа|II-тәи азқьышықәса]] {{*}} [[:Акатегориа:III-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа|III-тәи азқьышықәса]] {{*}} [[:Акатегориа:IV-тәи азқьышықәсазтәи аҳәынҭқарратә хҳәарақәа|IV-тәи азқьышықәса]]
}}
[[Акатегориа:II-тәи азқьышықәсазтәи аконфликтқәа|ҳәынҭқарратә хҳәарақәа]]
[[Акатегориа:Аҳәынҭқарратә хҳәарақәа азқьышықәсақәа рыла]]
gf15ajag60b2hbbku7x07jbtrrpfo1x
Акатегориа:Аҳәынҭқарратә хҳәарақәа азқьышықәсақәа рыла
14
52126
163525
2026-04-10T23:22:10Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} {{DEFAULTSORT:ҳәынҭқарратә хҳәарақәа азқьышықәсақәа рыла}} [[Акатегориа:Аҳәынҭқарратә хҳәарақәа| зқьышықәсақәа]] [[Акатегориа:Аконфликтқәа азқьышықәсақәа рыла]]»
163525
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:ҳәынҭқарратә хҳәарақәа азқьышықәсақәа рыла}}
[[Акатегориа:Аҳәынҭқарратә хҳәарақәа| зқьышықәсақәа]]
[[Акатегориа:Аконфликтқәа азқьышықәсақәа рыла]]
87v8k9b3z0hr0iyv18gimquovntmfeh
Акатегориа:1950-тәи ашықәсқәа раан аполитика
14
52127
163527
2026-04-10T23:23:20Z
Fraxinus.cs
8381
Новая страница: «{{Commonscat|Politics in the {{Title year}}s}} {{PoliticsDecadeCat}}»
163527
wikitext
text/x-wiki
{{Commonscat|Politics in the {{Title year}}s}}
{{PoliticsDecadeCat}}
4ram8hkogwqnqj7dtre44ch6kakf2cv
Акатегориа:1959 шықәсазы Куба иҟалаз ахҭысқәа
14
52128
163528
2026-04-10T23:25:12Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|{{title year}} in Cuba}} {{Year in country category|Аҩадатәи Америка}}»
163528
wikitext
text/x-wiki
{{Commons category|{{title year}} in Cuba}}
{{Year in country category|Аҩадатәи Америка}}
6sjf5ni87eyb9irvc42qv856l3ooloh
Акатегориа:1959 шықәсазы иҟалаз ахҭысқәа атәылақәа рыла
14
52129
163530
2026-04-10T23:29:49Z
Fraxinus.cs
8381
Новая страница: «{{Year by country category}}»
163530
wikitext
text/x-wiki
{{Year by country category}}
dbr7g9yldivw092rdzcdrzyp4x8j79g
Акатегориа:20-тәи ашәышықәсазы Куба ашықәсқәа рыла
14
52130
163531
2026-04-10T23:31:15Z
Fraxinus.cs
8381
Новая страница: «{{Navseasoncats}} {{Category TOC custom|1900|1920|1940|1960|1980|2000}} [[Акатегориа:{{Title country}} {{Title century}}-тәи ашәышықәсазтәи аҭоурых|шықәсқәа]] [[Акатегориа:{{Title country}} аҭоурых ашықәсқәа рыла]] [[Акатегориа:{{Title century}}-тәи ашәышықәса ашықәсқәа атәылақәа рыла|{{Title country}}]] Акатегориа:{{Title century...»
163531
wikitext
text/x-wiki
{{Navseasoncats}}
{{Category TOC custom|1900|1920|1940|1960|1980|2000}}
[[Акатегориа:{{Title country}} {{Title century}}-тәи ашәышықәсазтәи аҭоурых|шықәсқәа]]
[[Акатегориа:{{Title country}} аҭоурых ашықәсқәа рыла]]
[[Акатегориа:{{Title century}}-тәи ашәышықәса ашықәсқәа атәылақәа рыла|{{Title country}}]]
[[Акатегориа:{{Title century}}-тәи ашәышықәсазы {{Country2continent|{{Title country}}}} ашықәсқәа рыла|{{Title country}}]]
m6g9farr6pyzyppgxszs89ccyhghyy3
Акатегориа:Куба аҭоурых ашықәсқәа рыла
14
52131
163536
2026-04-10T23:34:41Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Cuba by year}} *'''[[{{Title country}}]]''' аҭоурых '''[[ашықәс]]қәа''' рыла. [[Акатегориа:{{Title country}} аҭоурых аамҭақәа рыла|*04]] [[Акатегориа:{{Country2continent|{{Title country}}}} аҭоурых ашықәсқәа рыла]] [[Акатегориа:Атәылақәа рҭоурых ашықәсқәа рыла]] Акатегориа:Карибтәи амшын аҭоу...»
163536
wikitext
text/x-wiki
{{Commons category|Cuba by year}}
*'''[[{{Title country}}]]''' аҭоурых '''[[ашықәс]]қәа''' рыла.
[[Акатегориа:{{Title country}} аҭоурых аамҭақәа рыла|*04]]
[[Акатегориа:{{Country2continent|{{Title country}}}} аҭоурых ашықәсқәа рыла]]
[[Акатегориа:Атәылақәа рҭоурых ашықәсқәа рыла]]
[[Акатегориа:Карибтәи амшын аҭоурых ашықәсқәа рыла]]
cudadlh6bwj1xa1jrdxonn0gdy9my80
Акатегориа:Карибтәи амшын аҭоурых ашықәсқәа рыла
14
52132
163537
2026-04-10T23:36:47Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} [[Акатегориа:Карибтәи амшын аҭоурых аамҭақәа рыла| шықәсқәа]] [[Акатегориа:Аҩадатәи Америка аҭоурых ашықәсқәа рыла|*]]»
163537
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
[[Акатегориа:Карибтәи амшын аҭоурых аамҭақәа рыла| шықәсқәа]]
[[Акатегориа:Аҩадатәи Америка аҭоурых ашықәсқәа рыла|*]]
g98ha2ch629bj1rodkzcytv6dnmxv25
Акатегориа:1959 шықәсазы Аҩадатәи Америка иҟалаз ахҭысқәа
14
52133
163538
2026-04-10T23:38:20Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|{{Title year}} in North America}} {{Year in continent category}}»
163538
wikitext
text/x-wiki
{{Commons category|{{Title year}} in North America}}
{{Year in continent category}}
06h3vi8o3n2nb6yw5wnaokl4qonfo2b
Акатегориа:1959 шықәсазы иҟалаз ахҭысқәа аконтинентқәа рыла
14
52134
163539
2026-04-10T23:39:13Z
Fraxinus.cs
8381
Новая страница: «{{Year by continent category}}»
163539
wikitext
text/x-wiki
{{Year by continent category}}
ml612n4y7wiuw47l1xgp4k2uebb3wnx
Акатегориа:1959 шықәсазы Асовет Еидгыла иҟалаз ахҭысқәа
14
52135
163542
2026-04-10T23:45:29Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|{{Title year}} in the Soviet Union}} [[Акатегориа:{{Title year}} шықәсазы иҟалаз ахҭысқәа атәылақәа рыла|совет Еидгыла]] [[Акатегориа:Асовет Еидгыла аҭоурых ашықәсқәа рыла]] [[Акатегориа:{{DECADE|{{Title year}}}} раан Асовет Еидгыла иҟалаз ахҭысқәа]] Акатегориа:{{Title year}} шықәса...»
163542
wikitext
text/x-wiki
{{Commons category|{{Title year}} in the Soviet Union}}
[[Акатегориа:{{Title year}} шықәсазы иҟалаз ахҭысқәа атәылақәа рыла|совет Еидгыла]]
[[Акатегориа:Асовет Еидгыла аҭоурых ашықәсқәа рыла]]
[[Акатегориа:{{DECADE|{{Title year}}}} раан Асовет Еидгыла иҟалаз ахҭысқәа]]
[[Акатегориа:{{Title year}} шықәсазы Азиа иҟалаз ахҭысқәа]]
[[Акатегориа:{{Title year}} шықәсазы Европа иҟалаз ахҭысқәа]]
pyuw1zxx1f0dijz753mg8c2ctflsjyu
Акатегориа:Асовет Еидгыла аҭоурых ашықәсқәа рыла
14
52136
163544
2026-04-10T23:48:33Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Soviet Union by year}} {{DEFAULTSORT:совет Еидгыла аҭоурых ашықәсқәа рыла}} [[Акатегориа:Атәылақәа рҭоурых ашықәсқәа рыла]] [[Акатегориа:Асовет Еидгыла аҭоурых аамҭақәа рыла|шықәсқәа]] [[Акатегориа:Азиа аҭоурых ашықәсқәа рыла|+совет Еидгыла]] Акатегориа:Евро...»
163544
wikitext
text/x-wiki
{{Commons category|Soviet Union by year}}
{{DEFAULTSORT:совет Еидгыла аҭоурых ашықәсқәа рыла}}
[[Акатегориа:Атәылақәа рҭоурых ашықәсқәа рыла]]
[[Акатегориа:Асовет Еидгыла аҭоурых аамҭақәа рыла|шықәсқәа]]
[[Акатегориа:Азиа аҭоурых ашықәсқәа рыла|+совет Еидгыла]]
[[Акатегориа:Европа аҭоурых ашықәсқәа рыла|+совет Еидгыла]]
[[Акатегориа:20-тәи ашәышықәсазы Азиа ашықәсқәа рыла]]
[[Акатегориа:20-тәи ашәышықәсазы Европа ашықәсқәа рыла]]
[[Акатегориа:20-тәи ашәышықәса ашықәсқәа атәылақәа рыла]]
dz6siy0n9btmcm28qyb836htmfskjsg
Акатегориа:1950-тәи ашықәсқәа раан Асовет Еидгыла иҟалаз ахҭысқәа
14
52137
163545
2026-04-10T23:50:56Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Soviet Union in the {{Title year}}s}} [[Акатегориа:{{Title year}}-тәи ашықәсқәа раан иҟалаз ахҭысқәа атәылақәа рыла|совет Еидгыла]] [[Акатегориа:Асовет Еидгыла аҭоурых ажәашықәсақәа рыла]] [[Акатегориа:Европа {{Title year}}-тәи ашықәсқәа раан аҭоурых|совет Еидгыла]] Акате...»
163545
wikitext
text/x-wiki
{{Commons category|Soviet Union in the {{Title year}}s}}
[[Акатегориа:{{Title year}}-тәи ашықәсқәа раан иҟалаз ахҭысқәа атәылақәа рыла|совет Еидгыла]]
[[Акатегориа:Асовет Еидгыла аҭоурых ажәашықәсақәа рыла]]
[[Акатегориа:Европа {{Title year}}-тәи ашықәсқәа раан аҭоурых|совет Еидгыла]]
[[Акатегориа:Азиа {{Title year}}-тәи ашықәсқәа раан аҭоурых|совет Еидгыла]]
rpm5fptjnv3b3qjyngiom6vjn8vtbeb
Акатегориа:Азиа 1950-тәи ашықәсқәа раан аҭоурых
14
52138
163546
2026-04-10T23:51:44Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Asia in the {{Title year}}s}} {{Аконтеинер акатегориа}} {{Category series navigation}} {{CatAutoTOC}} [[Акатегориа:{{Title year}}-тәи ашықәсқәа раан иҟалаз ахҭысқәа аконтинентқәа рыла]] [[Акатегориа:Азиа аҭоурых ажәашықәсақәа рыла|{{title year}}]] Акатегориа:Азиа {{CENTURY|{{Title year}}}}-тәи ашәышы...»
163546
wikitext
text/x-wiki
{{Commons category|Asia in the {{Title year}}s}}
{{Аконтеинер акатегориа}}
{{Category series navigation}}
{{CatAutoTOC}}
[[Акатегориа:{{Title year}}-тәи ашықәсқәа раан иҟалаз ахҭысқәа аконтинентқәа рыла]]
[[Акатегориа:Азиа аҭоурых ажәашықәсақәа рыла|{{title year}}]]
[[Акатегориа:Азиа {{CENTURY|{{Title year}}}}-тәи ашәышықәсазтәи аҭоурых|{{title year}}]]
t9a553eqpi80fs7ptqcjw6pyffa0568
Акатегориа:1959 шықәсазы Азиа иҟалаз ахҭысқәа
14
52139
163547
2026-04-10T23:52:44Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|{{Title year}} in Asia}} {{Year in continent category}}»
163547
wikitext
text/x-wiki
{{Commons category|{{Title year}} in Asia}}
{{Year in continent category}}
irxgzbxa99gqvuq6rgh1ajlwnuvfzdw
Акатегориа:1959 шықәсазы Европа иҟалаз ахҭысқәа
14
52140
163548
2026-04-10T23:53:33Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|{{Title year}} in Europe}} {{Year in continent category}}»
163548
wikitext
text/x-wiki
{{Commons category|{{Title year}} in Europe}}
{{Year in continent category}}
bizg2ni5u10eyzhqkjynj8bz286wpgo
Акатегориа:Аҩада-америкатәи атәылақәа рҿы атәылауаҩратә еибашьрақәа
14
52141
163549
2026-04-10T23:56:03Z
Fraxinus.cs
8381
Новая страница: « {{DEFAULTSORT:ҩада-америкатәи атәылақәа рҿы атәылауаҩратә еибашьрақәа}} [[Акатегориа:Атәылауаҩратә еибашьрақәа аконтинентқәа рыла]] [[Акатегориа:Аҩада-америкатәи атәылақәа реибашьрақәа| тәылауаҩратә еибашьрақәа]]»
163549
wikitext
text/x-wiki
{{DEFAULTSORT:ҩада-америкатәи атәылақәа рҿы атәылауаҩратә еибашьрақәа}}
[[Акатегориа:Атәылауаҩратә еибашьрақәа аконтинентқәа рыла]]
[[Акатегориа:Аҩада-америкатәи атәылақәа реибашьрақәа| тәылауаҩратә еибашьрақәа]]
97ep15b2z244tycgm7m6aw0cnxvmjhu
Акатегориа:Аибашьра хьшәашәа аан Куба аҭоурых
14
52142
163550
2026-04-10T23:58:53Z
Fraxinus.cs
8381
Новая страница: «[[Акатегориа:Аибашьра хьшәашәа аҭоурых атәылақәа рыла|{{Title country}}]] [[Акатегориа:{{Title country}} аибашьратә ҭоурых]] [[Акатегориа:Аибашьра хьшәашәа аан Африка|{{Title country}}]] [[Акатегориа:Аибашьра хьшәашәа аан {{Country2continent|{{Title country}}}}]]»
163550
wikitext
text/x-wiki
[[Акатегориа:Аибашьра хьшәашәа аҭоурых атәылақәа рыла|{{Title country}}]]
[[Акатегориа:{{Title country}} аибашьратә ҭоурых]]
[[Акатегориа:Аибашьра хьшәашәа аан Африка|{{Title country}}]]
[[Акатегориа:Аибашьра хьшәашәа аан {{Country2continent|{{Title country}}}}]]
qt2mp9teshrx0yavbiez8616larnszd
Акатегориа:Аибашьра хьшәашәа аан Аҩадатәи Америка
14
52143
163551
2026-04-11T00:00:27Z
Fraxinus.cs
8381
Новая страница: «[[Акатегориа:Аибашьра хьшәашәа аконтинентқәа рыла|ҩадатәи Америка]] [[Акатегориа:Аҩадатәи Америка аибашьратә ҭоурых]] [[Акатегориа:Аҩадатәи Америка аҭоурых]]»
163551
wikitext
text/x-wiki
[[Акатегориа:Аибашьра хьшәашәа аконтинентқәа рыла|ҩадатәи Америка]]
[[Акатегориа:Аҩадатәи Америка аибашьратә ҭоурых]]
[[Акатегориа:Аҩадатәи Америка аҭоурых]]
5fp4yt4kmrflphf8r2nai0un4ocjuwy
Акатегориа:Куба иҟоу акоммунизм
14
52144
163552
2026-04-11T00:01:57Z
Fraxinus.cs
8381
Новая страница: «{{commonscat|Communism in Cuba}} [[Акатегориа:Акоммунизм атәылақәа рыла]] [[Акатегориа:{{Country2continent|{{Title country}}}} иҟоу акоммунизм]] [[Акатегориа:{{Title country}} иҟоу аполитикатә ҵысрақәа|коммунизм]] [[Акатегориа:{{Title country}} иҟоу асоциализм|коммунизм]]»
163552
wikitext
text/x-wiki
{{commonscat|Communism in Cuba}}
[[Акатегориа:Акоммунизм атәылақәа рыла]]
[[Акатегориа:{{Country2continent|{{Title country}}}} иҟоу акоммунизм]]
[[Акатегориа:{{Title country}} иҟоу аполитикатә ҵысрақәа|коммунизм]]
[[Акатегориа:{{Title country}} иҟоу асоциализм|коммунизм]]
9ink1y84t0a59i17qwigxpm8gl96td0
Акатегориа:Аҩадатәи Америка иҟоу акоммунизм
14
52145
163553
2026-04-11T00:02:46Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} [[Акатегориа:Акоммунизм аконтинентқәа рыла]] [[Акатегориа:Аҩадатәи Америка иҟоу асоциализм| коммунизм]]»
163553
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
[[Акатегориа:Акоммунизм аконтинентқәа рыла]]
[[Акатегориа:Аҩадатәи Америка иҟоу асоциализм| коммунизм]]
8nhb11xadsbp2ckudtajq2supssnhpp
163557
163553
2026-04-11T00:08:48Z
Fraxinus.cs
8381
163557
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:ҩадатәи Америка иҟоу акоммунизм}}
[[Акатегориа:Акоммунизм аконтинентқәа рыла]]
[[Акатегориа:Аҩадатәи Америка иҟоу асоциализм| коммунизм]]
cga74e5q65cxeyzh5bj59wycbe8dbqe
Акатегориа:Аҩадатәи Америка иҟоу асоциализм
14
52146
163554
2026-04-11T00:03:50Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} {{DEFAULTSORT:ҩадатәи Америка иҟоу асоциализм}} [[Акатегориа:Асоциализм аконтинентқәа рыла]] [[Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа| социализм]]»
163554
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:ҩадатәи Америка иҟоу асоциализм}}
[[Акатегориа:Асоциализм аконтинентқәа рыла]]
[[Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа| социализм]]
0plb0cqg0ks8tk7irifpkrhp3vnahq0
Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа
14
52147
163555
2026-04-11T00:05:32Z
Fraxinus.cs
8381
Новая страница: «{{Commonscat|Political movements in North America}} {{Аконтеинер акатегориа}} {{DEFAULTSORT:ҩада-америкатәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа}} [[Акатегориа:Аҩада-америкатәи аполитика]] [[Акатегориа:Аполитикатә ҵысрақәа аконтинентқәа рыла]] Акатегориа:Аҩада-америкатәи атәыл...»
163555
wikitext
text/x-wiki
{{Commonscat|Political movements in North America}}
{{Аконтеинер акатегориа}}
{{DEFAULTSORT:ҩада-америкатәи атәылақәа рҿы иҟоу аполитикатә ҵысрақәа}}
[[Акатегориа:Аҩада-америкатәи аполитика]]
[[Акатегориа:Аполитикатә ҵысрақәа аконтинентқәа рыла]]
[[Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу аҵысрақәа| политикатә]]
pgdzt8yuk8xy7l8n4ajsat4p2mxmulz
Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу аҵысрақәа
14
52148
163556
2026-04-11T00:08:06Z
Fraxinus.cs
8381
Новая страница: «{{commonscat|Movements in North America}} {{DEFAULTSORT:ҩада-америкатәи атәылақәа рҿы иҟоу аҵысрақәа}} [[Акатегориа:Аҵысрақәа аконтинентқәа рыла]] [[Акатегориа:Аҩадатәи Америка ауаажәларра|ҵысрақәа]]»
163556
wikitext
text/x-wiki
{{commonscat|Movements in North America}}
{{DEFAULTSORT:ҩада-америкатәи атәылақәа рҿы иҟоу аҵысрақәа}}
[[Акатегориа:Аҵысрақәа аконтинентқәа рыла]]
[[Акатегориа:Аҩадатәи Америка ауаажәларра|ҵысрақәа]]
5k9qi232suggykt1nlsknymcobese7v
Акатегориа:Куба иҟоу аполитикатә ҵысрақәа
14
52149
163558
2026-04-11T00:09:46Z
Fraxinus.cs
8381
Новая страница: «{{Cathead Political movements in|CU|commons=false}} <!-- Please keep this header intact --> [[Акатегориа:Куба аполитикатә ҭоурых|политикатә ҵысрақәа]]»
163558
wikitext
text/x-wiki
{{Cathead Political movements in|CU|commons=false}} <!-- Please keep this header intact -->
[[Акатегориа:Куба аполитикатә ҭоурых|политикатә ҵысрақәа]]
9dflr08zsquip6u1w0lpwwbp63gv3yk
Акатегориа:Куба иҟоу асоциализм
14
52150
163562
2026-04-11T00:43:47Z
Fraxinus.cs
8381
Новая страница: «{{Category header socialism in|cu|commons=false}}<!--Please keep this header intact--> [[Акатегориа:Франциа иҟоу арма политика|социализм]]»
163562
wikitext
text/x-wiki
{{Category header socialism in|cu|commons=false}}<!--Please keep this header intact-->
[[Акатегориа:Франциа иҟоу арма политика|социализм]]
47ieuh46kimwdce9mt5lqiw78r5f94a
163563
163562
2026-04-11T00:44:10Z
Fraxinus.cs
8381
163563
wikitext
text/x-wiki
{{Category header socialism in|cu|commons=false}}<!--Please keep this header intact-->
fb90bpxgdoybsaizaz5oqn4yrtqqvm7
Акатегориа:Еиду Америкатәи Аштатқәеи Кубеи реизыҟазаашьақәа
14
52151
163564
2026-04-11T00:46:18Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Relations of Cuba and the United States}} [[Акатегориа:Еиду Америкатәи Аштатқәа рҩганктәи аизыҟазаашьақәа|Куба]] [[Акатегориа:Куба аҩганктәи аизыҟазаашьақәа|Еиду Америкатәи Аштатқәа]]»
163564
wikitext
text/x-wiki
{{Commons category|Relations of Cuba and the United States}}
[[Акатегориа:Еиду Америкатәи Аштатқәа рҩганктәи аизыҟазаашьақәа|Куба]]
[[Акатегориа:Куба аҩганктәи аизыҟазаашьақәа|Еиду Америкатәи Аштатқәа]]
4q6rh1pn7bz95zr9zdijg0ip5dgjh36
Акатегориа:Куба аҩганктәи аизыҟазаашьақәа
14
52152
163565
2026-04-11T00:47:26Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Bilateral relations of Cuba}} [[Акатегориа:{{Title country}} адәныҟатәи аполитика|ҩганктәи аизыҟазаашьақәа]] [[Акатегориа:Аҩганктәи аизыҟазаашьақәа атәылақәа рыла]]»
163565
wikitext
text/x-wiki
{{Commons category|Bilateral relations of Cuba}}
[[Акатегориа:{{Title country}} адәныҟатәи аполитика|ҩганктәи аизыҟазаашьақәа]]
[[Акатегориа:Аҩганктәи аизыҟазаашьақәа атәылақәа рыла]]
qu6ttnfns5q4o1to34ao3g5h2zy1yy9
Акатегориа:Куба иҟоу ақәгыларақәа
14
52153
163568
2026-04-11T00:51:52Z
Fraxinus.cs
8381
Новая страница: «[[{{Title country}}]] иҟоу ақәгыларақәа [[Акатегориа:{{Title country}} аибашьратә ҭоурых|қәгыларақәа]] [[Акатегориа:Ақәгыларақәа атәылақәа рыла]] [[Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу ақәгыларақәа]] [[Акатегориа:{{Title country}} аполитикатә ҭоурых|қәгыларақәа]] Ака...»
163568
wikitext
text/x-wiki
[[{{Title country}}]] иҟоу ақәгыларақәа
[[Акатегориа:{{Title country}} аибашьратә ҭоурых|қәгыларақәа]]
[[Акатегориа:Ақәгыларақәа атәылақәа рыла]]
[[Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу ақәгыларақәа]]
[[Акатегориа:{{Title country}} аполитикатә ҭоурых|қәгыларақәа]]
[[Акатегориа:{{Title country}} иҟоу аконфликтқәа|қәгыларақәа]]
[[Акатегориа:{{Title country}} иҟоу амч ахархәара|қәгыларақәа]]
n1m393jqiq899ikp8sx22ooucd3x2ny
163569
163568
2026-04-11T00:52:02Z
Fraxinus.cs
8381
163569
wikitext
text/x-wiki
[[{{Title country}}]] иҟоу ақәгыларақәа
[[Акатегориа:{{Title country}} аибашьратә ҭоурых|қәгыларақәа]]
[[Акатегориа:Ақәгыларақәа атәылақәа рыла]]
[[Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу ақәгыларақәа]]
[[Акатегориа:{{Title country}} аполитикатә ҭоурых|қәгыларақәа]]
[[Акатегориа:{{Title country}} иҟоу амч ахархәара|қәгыларақәа]]
2t8rhh4fodqxyfyktpdz1v0lv32hluf
163586
163569
2026-04-11T01:14:32Z
Fraxinus.cs
8381
Удaлeнa [[Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу ақәгыларақәа]]; Дoбaвлeнa [[Акатегориа:Аҩада-америкатәи ақәгыларақәа]] [[ВП:HC|HotCat]] ацхыраарала
163586
wikitext
text/x-wiki
[[{{Title country}}]] иҟоу ақәгыларақәа
[[Акатегориа:{{Title country}} аибашьратә ҭоурых|қәгыларақәа]]
[[Акатегориа:Ақәгыларақәа атәылақәа рыла]]
[[Акатегориа:Аҩада-америкатәи ақәгыларақәа]]
[[Акатегориа:{{Title country}} аполитикатә ҭоурых|қәгыларақәа]]
[[Акатегориа:{{Title country}} иҟоу амч ахархәара|қәгыларақәа]]
ee11d8d1mqs9yht5ead0o640ntt108f
Акатегориа:Куба иҟоу амч ахархәара
14
52154
163570
2026-04-11T00:54:13Z
Fraxinus.cs
8381
Новая страница: «{{commonscat|Violence in Cuba}} [[Акатегориа:Амч ахархәара атәылақәа рыла]] [[Акатегориа:Амч ахархәара {{lc:{{Country2continental|{{Title country}}}}}} атәылақәа рыла]] [[Акатегориа:{{Title country}} ауаажәларра|мч ахархәара]] [[Акатегориа:{{Title country}} иҟоу ацәгьаура ахкқәа рыла|мч ахархәара]]»
163570
wikitext
text/x-wiki
{{commonscat|Violence in Cuba}}
[[Акатегориа:Амч ахархәара атәылақәа рыла]]
[[Акатегориа:Амч ахархәара {{lc:{{Country2continental|{{Title country}}}}}} атәылақәа рыла]]
[[Акатегориа:{{Title country}} ауаажәларра|мч ахархәара]]
[[Акатегориа:{{Title country}} иҟоу ацәгьаура ахкқәа рыла|мч ахархәара]]
rjao99po0o7hmfd3habv7ufdzsy50xd
Акатегориа:Амч ахархәара аҩада-америкатәи атәылақәа рыла
14
52155
163571
2026-04-11T00:56:44Z
Fraxinus.cs
8381
Новая страница: «{{аконтеинер акатегориа}} [[Акатегориа:Ауаажәларра аҩада-америкатәи атәылақәа рыла| мч ахархәара]] [[Акатегориа:Аҩадатәи Америка иҟоу амч ахархәара| тәылақәа]] [[Акатегориа:Ацәгьаура аҩада-америкатәи атәылақәа рыла| мч ахархәара]]»
163571
wikitext
text/x-wiki
{{аконтеинер акатегориа}}
[[Акатегориа:Ауаажәларра аҩада-америкатәи атәылақәа рыла| мч ахархәара]]
[[Акатегориа:Аҩадатәи Америка иҟоу амч ахархәара| тәылақәа]]
[[Акатегориа:Ацәгьаура аҩада-америкатәи атәылақәа рыла| мч ахархәара]]
rod2753327g7oiupg12ufmief9fjtt1
Акатегориа:Аҩадатәи Америка иҟоу амч ахархәара
14
52156
163572
2026-04-11T00:57:53Z
Fraxinus.cs
8381
Новая страница: «[[Акатегориа:Аҩадатәи Америка иҟоу ацәгьаура|мч ахархәара]] [[Акатегориа:Амч ахархәара аконтинентқәа рыла]]»
163572
wikitext
text/x-wiki
[[Акатегориа:Аҩадатәи Америка иҟоу ацәгьаура|мч ахархәара]]
[[Акатегориа:Амч ахархәара аконтинентқәа рыла]]
hawv6hyaorcqumsfwhhwv9u0darhgwm
163573
163572
2026-04-11T00:58:19Z
Fraxinus.cs
8381
163573
wikitext
text/x-wiki
{{DEFAULTSORT:ҩадатәи Америка иҟоу амч ахархәара}}
[[Акатегориа:Аҩадатәи Америка иҟоу ацәгьаура|мч ахархәара]]
[[Акатегориа:Амч ахархәара аконтинентқәа рыла]]
19xhk56rfp34i64ocx09mcsqt34w00q
Акатегориа:Аҩадатәи Америка иҟоу ацәгьаура
14
52157
163574
2026-04-11T00:59:39Z
Fraxinus.cs
8381
Новая страница: « [[Акатегориа:Ацәгьаура аконтинентқәа рыла]] [[Акатегориа:Аҩадатәи Америка ауаажәларра|цәгьаура]] [[Акатегориа:Аҩадатәи Америка иҟоу азинхьчаратә усура| цәгьаура]]»
163574
wikitext
text/x-wiki
[[Акатегориа:Ацәгьаура аконтинентқәа рыла]]
[[Акатегориа:Аҩадатәи Америка ауаажәларра|цәгьаура]]
[[Акатегориа:Аҩадатәи Америка иҟоу азинхьчаратә усура| цәгьаура]]
qbg45apcj1wyn91e3l9jnlw3fd0uheh
Акатегориа:Аҩадатәи Америка иҟоу азинхьчаратә усура
14
52158
163575
2026-04-11T01:00:34Z
Fraxinus.cs
8381
Новая страница: «{{Commonscat|Law enforcement in North America}} [[Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу азин| зинхьчаратә усура]] [[Акатегориа:Азинхьчаратә усура аконтинентқәа рыла]]»
163575
wikitext
text/x-wiki
{{Commonscat|Law enforcement in North America}}
[[Акатегориа:Аҩада-америкатәи атәылақәа рҿы иҟоу азин| зинхьчаратә усура]]
[[Акатегориа:Азинхьчаратә усура аконтинентқәа рыла]]
87g409865mf2c7pxv7jrukqcw2ims4r
Акатегориа:Ацәгьаура аҩада-америкатәи атәылақәа рыла
14
52159
163576
2026-04-11T01:02:34Z
Fraxinus.cs
8381
Новая страница: «{{аконтеинер акатегориа}} {{DEFAULTSORT:цәгьаура аҩада-америкатәи атәылақәа рыла}} [[Акатегориа:Аҩадатәи Америка иҟоу ацәгьаура| тәылақәа]] [[Акатегориа:Ауаажәларра аҩада-америкатәи атәылақәа рыла| цәгьаура]]»
163576
wikitext
text/x-wiki
{{аконтеинер акатегориа}}
{{DEFAULTSORT:цәгьаура аҩада-америкатәи атәылақәа рыла}}
[[Акатегориа:Аҩадатәи Америка иҟоу ацәгьаура| тәылақәа]]
[[Акатегориа:Ауаажәларра аҩада-америкатәи атәылақәа рыла| цәгьаура]]
7643xwmc7b6zvmh5eyoo0xxvruwq5ze
Акатегориа:Куба ауаажәларра
14
52160
163583
2026-04-11T01:07:48Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Society of Cuba}} [[Акатегориа:{{Title country}}|уаажәларра]] [[Акатегориа:Ауаажәларра {{lc:{{Country2continental|{{Title country}}}}}} атәылақәа рыла]] [[Акатегориа:Ауаажәларра атәылақәа рыла]] [[Акатегориа:Карибтәи атәылақәа руаажәларра]]»
163583
wikitext
text/x-wiki
{{Commons category|Society of Cuba}}
[[Акатегориа:{{Title country}}|уаажәларра]]
[[Акатегориа:Ауаажәларра {{lc:{{Country2continental|{{Title country}}}}}} атәылақәа рыла]]
[[Акатегориа:Ауаажәларра атәылақәа рыла]]
[[Акатегориа:Карибтәи атәылақәа руаажәларра]]
nbjgw38p1p02ozzso0w64mxoatu93m0
Акатегориа:Куба иҟоу ацәгьаура ахкқәа рыла
14
52161
163584
2026-04-11T01:10:40Z
Fraxinus.cs
8381
Новая страница: «{{Аконтеинер акатегориа}} [[Акатегориа:Ацәгьаура атәылақәа рылеи ахкқәа рылеи]] [[Акатегориа:{{Title country}} иҟоу ацәгьаура| хкқәа]]»
163584
wikitext
text/x-wiki
{{Аконтеинер акатегориа}}
[[Акатегориа:Ацәгьаура атәылақәа рылеи ахкқәа рылеи]]
[[Акатегориа:{{Title country}} иҟоу ацәгьаура| хкқәа]]
2ojk9loe6r1bco0o2aw3bckwuvc1hwa
Акатегориа:Куба иҟоу ацәгьаура
14
52162
163585
2026-04-11T01:11:31Z
Fraxinus.cs
8381
Новая страница: «{{Commons category|Crime in Cuba}} {{Cat main}} [[Акатегориа:{{Title country}} ауаажәларра|цәгьаура]] [[Акатегориа:Ацәгьаура атәылақәа рыла]] [[Акатегориа:Ацәгьаура европатәи атәылақәа рыла]]»
163585
wikitext
text/x-wiki
{{Commons category|Crime in Cuba}}
{{Cat main}}
[[Акатегориа:{{Title country}} ауаажәларра|цәгьаура]]
[[Акатегориа:Ацәгьаура атәылақәа рыла]]
[[Акатегориа:Ацәгьаура европатәи атәылақәа рыла]]
kzmv5zgaz6s5n1ug9z6qerw2zt5rppn
Акатегориа:Аҩада-америкатәи ақәгыларақәа
14
52163
163587
2026-04-11T01:17:04Z
Fraxinus.cs
8381
Новая страница: « {{DEFAULTSORT:ҩада-америкатәи ақәгыларақәа}} [[Акатегориа:Ақәгыларақәа аконтинентқәа рыла]] [[Акатегориа:Аҩада-америкатәи аполитикатә ҭоурых атәылақәа рыла|қәгыларақәа]] [[Акатегориа:Аҩадатәи Америка аибашьратә ҭоурых|қәгыларақәа]]»
163587
wikitext
text/x-wiki
{{DEFAULTSORT:ҩада-америкатәи ақәгыларақәа}}
[[Акатегориа:Ақәгыларақәа аконтинентқәа рыла]]
[[Акатегориа:Аҩада-америкатәи аполитикатә ҭоурых атәылақәа рыла|қәгыларақәа]]
[[Акатегориа:Аҩадатәи Америка аибашьратә ҭоурых|қәгыларақәа]]
t48p7tzsaxtj6cx22qc0ck9nrhf8fvu
Акатегориа:Кубатәи Ареспублика (1902–1959)
14
52164
163588
2026-04-11T01:19:11Z
Fraxinus.cs
8381
Новая страница: « [[Акатегориа:Куба аҭоурых аамҭақәа рыла| ]] [[Акатегориа:Аҭоурыхтә аҩада-америкатәи ареспубликақәа]]»
163588
wikitext
text/x-wiki
[[Акатегориа:Куба аҭоурых аамҭақәа рыла| ]]
[[Акатегориа:Аҭоурыхтә аҩада-америкатәи ареспубликақәа]]
82a3zhxd82yap3uh1kyartjsb1eos7i
Алахәыла ахцәажәара:Abslakak
3
52165
163590
2026-04-11T01:23:51Z
Fraxinus.cs
8381
Новая страница: «{{Асалам}}— ~~~~»
163590
wikitext
text/x-wiki
{{Асалам}}— [[Алахәыла:Fraxinus.cs|Fraxinus.cs]] ([[Алахәыла ахцәажәара:Fraxinus.cs|ахцәажәара]]) 01:23, 11 мшаԥымза 2026 (UTC)
1qidly5tylak4uf9c6nvrpgdchpolya