Wikipedia
testwiki
https://test.wikipedia.org/wiki/Main_Page
MediaWiki 1.47.0-wmf.3
first-letter
Media
Special
Talk
User
User talk
Wikipedia
Wikipedia talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Thread
Thread talk
Summary
Summary talk
Test namespace 1
Test namespace 1 talk
Test namespace 2
Test namespace 2 talk
Draft
Draft talk
Campaign
Campaign talk
TimedText
TimedText talk
Module
Module talk
SecurePoll
SecurePoll talk
CNBanner
CNBanner talk
Translations
Translations talk
Event
Event talk
Topic
Newsletter
Newsletter talk
David Allen (author)
0
54465
743980
118390
2026-05-23T18:08:45Z
Yelps
67939
/* */ test for all the visual editor features and how they work (and getting a taste of what it feels like to be a vandal. Pretty boring dopamine for the price of an indefinite block in my opinion)
743980
wikitext
text/x-wiki
* <s>[[:commons:category:David Allen (author)]]</s>
[[category:Authority control/not on commons]]
----
* [[:cs:David Allen]]
* [[:de:David Allen]]
* [[:en:David Allen (author)]]
* [[:et:David Allen]]
* [[:pl:David Allen]]
* [[:pt:David Allen]]
* [[:ru:Аллен, Дэвид (консультант)]]
=== debug ===
* |TESTCASE=1
* |TIMESTAMP=20110930164744
* |ABNORMAL-PAR=DATA:lccn-n00-100022
<nowiki>{{Authority control/debug|TESTCASE=1|PND=124059562|LCCN=n/00/100022|VIAF=76646248|TSURL=viaf/76646248|TIMESTAMP=20110930164744|ABNORMAL-PAR=lccn-n00-100022}}</nowiki>
{{Authority control/debug|TESTCASE=1|PND=124059562|LCCN=n/00/100022|VIAF=76646248|TSURL=viaf/76646248|TIMESTAMP=20110930164744|ABNORMAL-PAR=lccn-n00-100022}}
== Test ==
=== Test ===
==== Test ====
{| class="wikitable sortable mw-collapsible mw-collapsed"
|+{{Citation fr|Alrkfndnskfkcndndmfkc}}
!
!
!
!
|-
|
|
|
|
|-
|
|
|
|
|-
|
|
|
|
|}<!-- Hello world test -->
<hiero>
Test
</hiero><ref>{{Citation |title=user group with incoming access |work=SpringerReference |url=https://doi.org/10.1007/springerreference_27986 |access-date=2026-05-23 |place=Berlin/Heidelberg |publisher=Springer-Verlag}}</ref>{{#chart:Tadc|data=Wirndnsoejfcn}}[[Testttttttt|test]] <u><sub>sen'''tence'''</sub>. ''<big>Test</big>''</u> <span lang="Fr" dir="ltr"><sup>gibberish</sup>: <code><s>lorem</s> Ipsum</code> '''''<sub><small><s><code><u>worjfnsowornfncfltpgjcnwlqpstadcsldjfmdslkdsixwkdkfnsax</u></code></s></small></sub>'''''</span>'''''<sub><small><s><code><u>skdkfnsmeksexslekfnfmdlefucksdjcn</u></code></s></small></sub>'''''<mapframe latitude="3t" longitude="0" zoom="2" width="400" height="300">
skfndnskfjf dmdkfjgnc
</mapframe>
<references />
<chem>H2OCO2 + C -> 2 COCrO4^2-Fe^{II}Fe^{III}2041/2H2O^{227}_{90}Th+[\{(X2)3\}2]^3+CO3^2-{}_{(aq)}NO^{(2.)-}[Pt(\eta^2-C2H4)Cl3]-KCr(SO4)2*12H2OA <- BA + BSO4^2- + Ba^2+ -> BaSO4 v</chem><score raw="1" override_midi="https://www.researchgate.net/publication/298158434_New_insights_into_Conus_jourdani_da_Motta_1984_Gastropoda_Conidae_an_endemic_species_from_Saint_Helena_Island" override_audio="https://m.imdb.com/name/nm3849694/bio/">a bee sees deez ef ghee. itching my jay kays element of pee. guess are</score>{{#function:Z22322|1|Hivjv}}<syntaxhighlight lang="pacmanconf">
parser function
function
test
</syntaxhighlight><math display="block" id="Gh vhj" qid="Gjvjcc">, n)\gcd(m\eth\nabla\psi \rVert\lVert z\liminf\exp_a}\ddot{a</math>
----
{{DEFAULTSORT:Allen, David {{PAGENAME}}}}
[[category:Authority control]]<!-- zero edit 1, 2 ... -->
ffk8nugtq9y26k3mfcdi14yj29d7t5s
User:SongVĩ.Bot II
2
124239
743973
743913
2026-05-23T17:00:14Z
SongVĩ.Bot II
52414
[[User:SongVĩ.Bot II|Task 0]]: Đã 1608 ngày...
743973
wikitext
text/x-wiki
Cập nhật lần cuối: 24-05-2026
Đã 1608 ngày...
ng4ltihvkgkd5clnl9qiolmth64zuvn
743982
743973
2026-05-23T21:16:02Z
SongVĩ.Bot II
52414
[[User:SongVĩ.Bot II|Task 0]]: Đã 1609 ngày...
743982
wikitext
text/x-wiki
Cập nhật lần cuối: 24-05-2026
Đã 1609 ngày...
fwh1dhbuc1km3kqv9t5gynbstwaovij
Wikipedia:Village pump/topic list
4
146208
743981
743925
2026-05-23T19:33:21Z
Cewbot
33876
[[User:Cewbot/log/20170915/configuration|Generate topic list: 8 topics]]
743981
wikitext
text/x-wiki
<!-- This page is auto-generated by bot. Please contact the bot operator to improve the tool. -->
{| class="wikitable sortable mw-collapsible" style="float:left;"
|-
! data-sort-type="number" style="font-weight: normal;" | <small>#</small> !! 💭 Title !! <span title="Count of comments">💬</span> !! <span title="Count of peoples in discussion">👥</span> !! 🙋 Last editor !! data-sort-type="isoDate" | <span title="Date/Time">🕒 <small>(UTC)</small></span>
|-
| style="text-align: right;" | 1
| [[Wikipedia:Village pump#Script|Script]]
| style="text-align: right;" | 8
| style="text-align: right;" | 5
| style="background-color: #bbb;" | [[User:LuniZunie|LuniZunie]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2025-11-09T16:47:00.000Z" | 2025-11-09 <span style="color: blue;">16:47</span>
|-
| style="text-align: right;" | 2
| [[Wikipedia:Village pump#Report_concerning_Tanbiruzzammn|Report concerning Tanbiruzzammn]]
| style="text-align: right;" | 2
| style="text-align: right;" | 2
| style="background-color: #bbb;" | [[User:Barras|Barras]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2025-12-09T21:45:00.000Z" | 2025-12-09 <span style="color: blue;">21:45</span>
|-
| style="text-align: right;" | 3
| [[Wikipedia:Village pump#Report_concerning_Bucheon|Report concerning Bucheon]]
| style="text-align: right;background-color: #fcc;" | 1
| style="text-align: right;background-color: #fcc;" | 1
| style="background-color: #bbb;" | [[User:PieWriter|PieWriter]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-02-19T10:25:00.000Z" | 2026-02-19 <span style="color: blue;">10:25</span>
|-
| style="text-align: right;" | 4
| [[Wikipedia:Village pump#Versions_and_dates|Versions and dates]]
| style="text-align: right;" | 2
| style="text-align: right;background-color: #fcc;" | 1
| style="background-color: #bbb;" | [[Special:Contributions/~2026-13668-13|<span style="color: #c20;">~2026-13668-13</span>]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-03-03T06:17:00.000Z" | 2026-03-03 <span style="color: blue;">06:17</span>
|-
| style="text-align: right;" | 5
| style="max-width: 24em" | <small>[[Wikipedia:Village pump#Upcoming_Wikimedia_Café_meetup_regarding_the_the_2026-2027_Wikimedia_Foundation_Annual_Plan|Upcoming Wikimedia Café meetup regarding the the 2026-2027 Wikimedia Foundation Annual Plan]]</small>
| style="text-align: right;background-color: #fcc;" | 1
| style="text-align: right;background-color: #fcc;" | 1
| style="background-color: #bbb;" | [[User:Pine|Pine]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-03-30T03:46:00.000Z" | 2026-03-30 <span style="color: blue;">03:46</span>
|-
| style="text-align: right;" | 6
| [[Wikipedia:Village pump#Changes_to_electionadmin_userright|Changes to electionadmin userright]]
| style="text-align: right;" | 4
| style="text-align: right;" | 4
| style="background-color: #bbb;" | [[User:Chaotic Enby|Chaotic Enby]]
| style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-04-23T15:22:00.000Z" | 2026-04-23 <span style="color: blue;">15:22</span>
|-
| style="text-align: right;" | 7
| style="max-width: 24em" | <small>[[Wikipedia:Village pump#Report_concerning_Princebarackalibarrydaddyobamaiii|Report concerning Princebarackalibarrydaddyobamaiii]]</small>
| style="text-align: right;background-color: #fcc;" | 1
| style="text-align: right;background-color: #fcc;" | 1
| [[User:MathXplore|MathXplore]]
| data-sort-type="isoDate" data-sort-value="2026-05-18T12:23:00.000Z" | 2026-05-18 <span style="color: blue;">12:23</span>
|-
| style="text-align: right;" | 8
| style="max-width: 24em" | <small>[[Wikipedia:Village pump#May_2026_Wikimedia_Café_meetups_regarding_the_Wikimedia_Foundation_Annual_Plan|May 2026 Wikimedia Café meetups regarding the Wikimedia Foundation Annual Plan]]</small>
| style="text-align: right;background-color: #fcc;" | 1
| style="text-align: right;background-color: #fcc;" | 1
| [[User:Pine|Pine]]
| data-sort-type="isoDate" data-sort-value="2026-05-21T19:54:00.000Z" | 2026-05-21 <span style="color: blue;">19:54</span>
|}
{| class="wikitable mw-collapsible mw-collapsed" style="float: left; margin-left: .5em;;{{#if:{{{no_time_legend|}}}|display:none;|}}"
! title="From the latest bot edit" | Legend
|-
| style="background-color: #efe;" |
* In the last hour
|-
| style="background-color: #eef;" |
* In the last day
|-
| |
* In the last week
|-
| style="background-color: #ddd;" |
* In the last month
|-
| style="background-color: #bbb;" |
* More than one month
|-
! Manual settings
|-
| style="max-width: 12em;" | <small>When exceptions occur,<br />please check [[User:Cewbot/log/20170915/configuration|the setting]] first.</small>
|-
|}
{{Clear}}
4qdxd8bgumphcmtshiirue6c123uagy
User talk:JWBTH/CD test page
3
154341
743960
743541
2026-05-23T15:39:05Z
JWBTH
52211
743960
wikitext
text/x-wiki
== Section 1 ==
first section comment [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 02:37, 20 November 2024 (UTC)
unsigned comment
end {{unsigned|user}}
: comment to be edited [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 02:38, 20 November 2024 (UTC)
:: comment to test buttons [[User:Jack who built the house|Jack who built the house]] ([[User talk:Jack who built the house|talk]]) 02:41, 20 November 2024 (UTC)
::: child comment of comment to test buttons [[User:Jack who built the house|Jack who built the house]] ([[User talk:Jack who built the house|talk]]) 06:09, 27 August 2025 (UTC)
::: test [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 19:32, 16 March 2026 (UTC)
: [[#c-Test_account_8-20241120023700-Section_1|Test account 8 @ 02:37, 20 November 2024 (UTC)]] [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 06:43, 28 March 2026 (UTC)
=== test2 ===
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 14:55, 14 September 2025 (UTC)
: [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 20:13, 26 March 2026 (UTC)
=== Comment with complex markup ===
* ̴͍͖̪̭̂ฑεᚹẻ̴̦̜̜͙̰̉̒͠͠иℳἒԊ৩βà̸̩̳̗m̶̧̲̲̬̌̀̈́̀ь β ì̵̛̹̌͛͝«Зᾷу៚ἐฑἒдì̵̛̹̌͛͝ю»ì̵̛̹̌͛͝ ! Ᾰ D̴̞̓̊̀ля чẻ̴̦̜̜͙̰̉̒͠͠рẻ̴̦̜̜͙̰̉̒͠͠счуr̵̢͈͕̺͎̀̅ s̸̢̈́ерьӚz̵͓̫̻͔͠Ԋыᚸ βыΔε௭иm̶̧̲̲̬̌̀̈́̀ь <s>ฑр৩c̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀раԊc̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀β৩</s> ३ᾷβ৩Δь «D̴̞̓̊̀β৩йԊая z̵͓̫̻͔͠à̸̩̳̗௶พь». Ἇ m̶̧̲̲̬̌̀̈́̀৩ иz̵͓̫̻͔͠ Ԋẻ̴̦̜̜͙̰̉̒͠͠k̸̟͔̯̯̖̍̂͐̎͘৩m̶̧̲̲̬̌̀̈́̀৩ᚹыᚸ c̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀ᾷ z̵͓̫̻͔͠а௶พь m̶̧̲̲̬̌̀̈́̀ᾷк ì̵̛̹̌͛͝и ௭ε३εm̶̧̲̲̬̌̀̈́̀ чεᚹعz̵͓̫̻͔͠ k̸̟͔̯̯̖̍̂͐̎͘ᚹᾷй !!! ̴͍͖̪̭̂ <span style="font-family:Calibri; font-size:175%; display: inline-block; letter-spacing: 5px; transform: rotate(10deg); padding: 20px 0px;>[[User:Example|'''<span style="color: Magenta; position: relative; top: -4px;">ঞ</span><span style="color: SpringGreen; position: relative; top: -3px;">ʆ</span><span style="color: red; position: relative; top: -2px;">ἕ</span><span style="color: LimeGreen; position: relative; top: -1px;">ฃ</span><span style="color: DeepPink; position: relative; top: 2px;">r̵̢͈͕̺͎̀̅</span><span style="color: Aqua; position: relative; top: 4px;"> ̴͍͖̪̭̂</span><span style="color: DarkOrange; position: relative; top: 4px;">D̴̞̓̊̀</span><span style="color: DarkOrchid; position: relative; top: 3px;">ἒ</span><span style="color: Chartreuse; position: relative; top: 4px;"> ̴͍͖̪̭̂</span><span style="color: Fuchsia; position: relative; top: 1px;">ໃ</span><span style="color: DarkTurquoise; position: relative; top: 0px;">à̸̩̳̗</span><span style="color: Forestgreen; position: relative; top: -2px;">ʁ</span><span style="color: deeppink; position: relative; top: 2px;">i̵͖̒͆̕͝ͅ</span><span style="color: Turquoise; position: relative; top: -1px;">ń̸̳͑̑͌</span><span style="color: LimeGreen; position: relative; top: -4px;">៩</span><span style="color: Magenta; position: relative; top: 1px;">♥</font>''']]</span> 14:08, 1 April 2026 (UTC)
test
=== Transcluded comments ===
{{User talk:JWBTH/CD test page/comment}}
: test. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 10:36, 20 April 2026 (UTC)
== Test section ==
[[User:Example|Example]] ([[User talk:Example|talk]]) 06:46, 9 May 2026 (UTC)
=== Vote ===
Comment.
# Vote 1. [[User:Example|Example]] ([[User talk:Example|talk]]) 06:46, 9 April 2026 (UTC)
# Vote 2. [[User:Example|Example]] ([[User talk:Example|talk]]) 06:46, 9 April 2026 (UTC)
=== Last subsection ===
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 14:56, 14 September 2025 (UTC)
: Comment [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:24, 31 March 2026 (UTC)
:: Comment [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:25, 31 March 2026 (UTC)
::: Comment beginning<br> Comment ending [[User:Example|Example]] ([[User talk:Example|talk]]) 09:34, 31 March 2026 (UTC)
== Section to add test comments ==
section [[User:Example|Example]] ([[User talk:Example|talk]]) 02:37, 1 March 2026 (UTC)
: Test comment with random number 0.4478961847809999 [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 22:01, 19 April 2026 (UTC)
:: www [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:07, 18 May 2026 (UTC)
::: eee [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::: ttt [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
::::: iii [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
::::::: sss [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::: fff [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::: hhh [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::::: kkk [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::::: lll [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::: aaa [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::: ddd [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::: ggg [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::: jjj [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::::: kkk [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::: xxx [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::::: ccc [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::::: bbb [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::: zzz [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::: vvv [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::::: nnn [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::::: ,,, [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: www [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::: mmm [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::: qqq [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: eee [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: ttt [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::::: uuu [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
:::::::::::::::: ooo [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
:::::::::::::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
::::::::::::::: iii [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
::::::::::::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:24, 18 May 2026 (UTC)
:::::::::::::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
::::::::::::::::: sss [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:47, 18 May 2026 (UTC)
:::::::::::::::::: fff [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:52, 18 May 2026 (UTC)
::::::::::::::: aaa [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
:::::::::::::::: ddd [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:47, 18 May 2026 (UTC)
::::::::::::::::: ggg [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:52, 18 May 2026 (UTC)
: Test comment with random number 0.42841430187725704 [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 22:10, 19 April 2026 (UTC)
:: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:08, 18 May 2026 (UTC)
::: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:: uuu [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:: ooo [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
: qqq [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:07, 18 May 2026 (UTC)
=== test? {123} ===
test. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 10:44, 19 May 2026 (UTC)
== Section with equals sign (=) for moving ==
<div class="cd-moveMark">''Moved to [[User talk:JWBTH/CD test page 2#Section with equals sign ({{=}}) for moving]]. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 13:40, 1 April 2026 (UTC)''</div>
== test ==
<div class="cd-moveMark">''Moved to [[User talk:JWBTH/CD test page 2#test]]. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 14:33, 17 April 2026 (UTC)''</div>
== Section for moving ==
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 19:52, 15 March 2026 (UTC)
ea70dnl34wwzjokmcb328ynb1qzm2a5
743961
743960
2026-05-23T15:39:15Z
JWBTH
52211
743961
wikitext
text/x-wiki
== Section 1 ==
first section comment [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 02:37, 20 November 2024 (UTC)
unsigned comment
end {{unsigned|user}}
: comment to be edited [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 02:38, 20 November 2024 (UTC)
:: comment to test buttons [[User:Jack who built the house|Jack who built the house]] ([[User talk:Jack who built the house|talk]]) 02:41, 20 November 2024 (UTC)
::: child comment of comment to test buttons [[User:Jack who built the house|Jack who built the house]] ([[User talk:Jack who built the house|talk]]) 06:09, 27 August 2025 (UTC)
::: test [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 19:32, 16 March 2026 (UTC)
: [[#c-Test_account_8-20241120023700-Section_1|Test account 8 @ 02:37, 20 November 2024 (UTC)]] [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 06:43, 28 March 2026 (UTC)
=== test2 ===
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 14:55, 14 September 2025 (UTC)
: [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 20:13, 26 March 2026 (UTC)
=== Comment with complex markup ===
* ̴͍͖̪̭̂ฑεᚹẻ̴̦̜̜͙̰̉̒͠͠иℳἒԊ৩βà̸̩̳̗m̶̧̲̲̬̌̀̈́̀ь β ì̵̛̹̌͛͝«Зᾷу៚ἐฑἒдì̵̛̹̌͛͝ю»ì̵̛̹̌͛͝ ! Ᾰ D̴̞̓̊̀ля чẻ̴̦̜̜͙̰̉̒͠͠рẻ̴̦̜̜͙̰̉̒͠͠счуr̵̢͈͕̺͎̀̅ s̸̢̈́ерьӚz̵͓̫̻͔͠Ԋыᚸ βыΔε௭иm̶̧̲̲̬̌̀̈́̀ь <s>ฑр৩c̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀раԊc̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀β৩</s> ३ᾷβ৩Δь «D̴̞̓̊̀β৩йԊая z̵͓̫̻͔͠à̸̩̳̗௶พь». Ἇ m̶̧̲̲̬̌̀̈́̀৩ иz̵͓̫̻͔͠ Ԋẻ̴̦̜̜͙̰̉̒͠͠k̸̟͔̯̯̖̍̂͐̎͘৩m̶̧̲̲̬̌̀̈́̀৩ᚹыᚸ c̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀ᾷ z̵͓̫̻͔͠а௶พь m̶̧̲̲̬̌̀̈́̀ᾷк ì̵̛̹̌͛͝и ௭ε३εm̶̧̲̲̬̌̀̈́̀ чεᚹعz̵͓̫̻͔͠ k̸̟͔̯̯̖̍̂͐̎͘ᚹᾷй !!! ̴͍͖̪̭̂ <span style="font-family:Calibri; font-size:175%; display: inline-block; letter-spacing: 5px; transform: rotate(10deg); padding: 20px 0px;>[[User:Example|'''<span style="color: Magenta; position: relative; top: -4px;">ঞ</span><span style="color: SpringGreen; position: relative; top: -3px;">ʆ</span><span style="color: red; position: relative; top: -2px;">ἕ</span><span style="color: LimeGreen; position: relative; top: -1px;">ฃ</span><span style="color: DeepPink; position: relative; top: 2px;">r̵̢͈͕̺͎̀̅</span><span style="color: Aqua; position: relative; top: 4px;"> ̴͍͖̪̭̂</span><span style="color: DarkOrange; position: relative; top: 4px;">D̴̞̓̊̀</span><span style="color: DarkOrchid; position: relative; top: 3px;">ἒ</span><span style="color: Chartreuse; position: relative; top: 4px;"> ̴͍͖̪̭̂</span><span style="color: Fuchsia; position: relative; top: 1px;">ໃ</span><span style="color: DarkTurquoise; position: relative; top: 0px;">à̸̩̳̗</span><span style="color: Forestgreen; position: relative; top: -2px;">ʁ</span><span style="color: deeppink; position: relative; top: 2px;">i̵͖̒͆̕͝ͅ</span><span style="color: Turquoise; position: relative; top: -1px;">ń̸̳͑̑͌</span><span style="color: LimeGreen; position: relative; top: -4px;">៩</span><span style="color: Magenta; position: relative; top: 1px;">♥</font>''']]</span> 14:08, 1 April 2026 (UTC)
test
=== Transcluded comments ===
{{User talk:JWBTH/CD test page/comment}}
: test. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 10:36, 20 April 2026 (UTC)
=== Vote ===
Comment.
# Vote 1. [[User:Example|Example]] ([[User talk:Example|talk]]) 06:46, 9 April 2026 (UTC)
# Vote 2. [[User:Example|Example]] ([[User talk:Example|talk]]) 06:46, 9 April 2026 (UTC)
=== Last subsection ===
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 14:56, 14 September 2025 (UTC)
: Comment [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:24, 31 March 2026 (UTC)
:: Comment [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:25, 31 March 2026 (UTC)
::: Comment beginning<br> Comment ending [[User:Example|Example]] ([[User talk:Example|talk]]) 09:34, 31 March 2026 (UTC)
== Section to add test comments ==
section [[User:Example|Example]] ([[User talk:Example|talk]]) 02:37, 1 March 2026 (UTC)
: Test comment with random number 0.4478961847809999 [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 22:01, 19 April 2026 (UTC)
:: www [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:07, 18 May 2026 (UTC)
::: eee [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::: ttt [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
::::: iii [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
::::::: sss [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::: fff [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::: hhh [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::::: kkk [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::::: lll [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::: aaa [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::: ddd [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::: ggg [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::: jjj [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::::: kkk [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::: xxx [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::::: ccc [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::::: bbb [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::: zzz [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::: vvv [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::::: nnn [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::::: ,,, [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: www [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::: mmm [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::: qqq [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: eee [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: ttt [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::::: uuu [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
:::::::::::::::: ooo [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
:::::::::::::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
::::::::::::::: iii [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
::::::::::::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:24, 18 May 2026 (UTC)
:::::::::::::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
::::::::::::::::: sss [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:47, 18 May 2026 (UTC)
:::::::::::::::::: fff [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:52, 18 May 2026 (UTC)
::::::::::::::: aaa [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
:::::::::::::::: ddd [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:47, 18 May 2026 (UTC)
::::::::::::::::: ggg [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:52, 18 May 2026 (UTC)
: Test comment with random number 0.42841430187725704 [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 22:10, 19 April 2026 (UTC)
:: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:08, 18 May 2026 (UTC)
::: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:: uuu [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:: ooo [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
: qqq [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:07, 18 May 2026 (UTC)
=== test? {123} ===
test. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 10:44, 19 May 2026 (UTC)
== Section with equals sign (=) for moving ==
<div class="cd-moveMark">''Moved to [[User talk:JWBTH/CD test page 2#Section with equals sign ({{=}}) for moving]]. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 13:40, 1 April 2026 (UTC)''</div>
== test ==
<div class="cd-moveMark">''Moved to [[User talk:JWBTH/CD test page 2#test]]. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 14:33, 17 April 2026 (UTC)''</div>
== Section for moving ==
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 19:52, 15 March 2026 (UTC)
g4dnemate5427hppptl4j50eeeg51j9
743962
743961
2026-05-23T15:39:41Z
JWBTH
52211
743962
wikitext
text/x-wiki
== Section 1 ==
first section comment [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 02:37, 20 November 2024 (UTC)
unsigned comment
end {{unsigned|user}}
: comment to be edited [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 02:38, 20 November 2024 (UTC)
:: comment to test buttons [[User:Jack who built the house|Jack who built the house]] ([[User talk:Jack who built the house|talk]]) 02:41, 20 November 2024 (UTC)
::: child comment of comment to test buttons [[User:Jack who built the house|Jack who built the house]] ([[User talk:Jack who built the house|talk]]) 06:09, 27 August 2025 (UTC)
::: test [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 19:32, 16 March 2026 (UTC)
: [[#c-Test_account_8-20241120023700-Section_1|Test account 8 @ 02:37, 20 November 2024 (UTC)]] [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 06:43, 28 March 2026 (UTC)
=== test2 ===
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 14:55, 14 September 2025 (UTC)
: [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 20:13, 26 March 2026 (UTC)
=== Comment with complex markup ===
* ̴͍͖̪̭̂ฑεᚹẻ̴̦̜̜͙̰̉̒͠͠иℳἒԊ৩βà̸̩̳̗m̶̧̲̲̬̌̀̈́̀ь β ì̵̛̹̌͛͝«Зᾷу៚ἐฑἒдì̵̛̹̌͛͝ю»ì̵̛̹̌͛͝ ! Ᾰ D̴̞̓̊̀ля чẻ̴̦̜̜͙̰̉̒͠͠рẻ̴̦̜̜͙̰̉̒͠͠счуr̵̢͈͕̺͎̀̅ s̸̢̈́ерьӚz̵͓̫̻͔͠Ԋыᚸ βыΔε௭иm̶̧̲̲̬̌̀̈́̀ь <s>ฑр৩c̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀раԊc̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀β৩</s> ३ᾷβ৩Δь «D̴̞̓̊̀β৩йԊая z̵͓̫̻͔͠à̸̩̳̗௶พь». Ἇ m̶̧̲̲̬̌̀̈́̀৩ иz̵͓̫̻͔͠ Ԋẻ̴̦̜̜͙̰̉̒͠͠k̸̟͔̯̯̖̍̂͐̎͘৩m̶̧̲̲̬̌̀̈́̀৩ᚹыᚸ c̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀ᾷ z̵͓̫̻͔͠а௶พь m̶̧̲̲̬̌̀̈́̀ᾷк ì̵̛̹̌͛͝и ௭ε३εm̶̧̲̲̬̌̀̈́̀ чεᚹعz̵͓̫̻͔͠ k̸̟͔̯̯̖̍̂͐̎͘ᚹᾷй !!! ̴͍͖̪̭̂ <span style="font-family:Calibri; font-size:175%; display: inline-block; letter-spacing: 5px; transform: rotate(10deg); padding: 20px 0px;>[[User:Example|'''<span style="color: Magenta; position: relative; top: -4px;">ঞ</span><span style="color: SpringGreen; position: relative; top: -3px;">ʆ</span><span style="color: red; position: relative; top: -2px;">ἕ</span><span style="color: LimeGreen; position: relative; top: -1px;">ฃ</span><span style="color: DeepPink; position: relative; top: 2px;">r̵̢͈͕̺͎̀̅</span><span style="color: Aqua; position: relative; top: 4px;"> ̴͍͖̪̭̂</span><span style="color: DarkOrange; position: relative; top: 4px;">D̴̞̓̊̀</span><span style="color: DarkOrchid; position: relative; top: 3px;">ἒ</span><span style="color: Chartreuse; position: relative; top: 4px;"> ̴͍͖̪̭̂</span><span style="color: Fuchsia; position: relative; top: 1px;">ໃ</span><span style="color: DarkTurquoise; position: relative; top: 0px;">à̸̩̳̗</span><span style="color: Forestgreen; position: relative; top: -2px;">ʁ</span><span style="color: deeppink; position: relative; top: 2px;">i̵͖̒͆̕͝ͅ</span><span style="color: Turquoise; position: relative; top: -1px;">ń̸̳͑̑͌</span><span style="color: LimeGreen; position: relative; top: -4px;">៩</span><span style="color: Magenta; position: relative; top: 1px;">♥</font>''']]</span> 14:08, 1 April 2026 (UTC)
test
== Test section ==
...
=== Transcluded comments ===
{{User talk:JWBTH/CD test page/comment}}
: test. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 10:36, 20 April 2026 (UTC)
=== Vote ===
Comment.
# Vote 1. [[User:Example|Example]] ([[User talk:Example|talk]]) 06:46, 9 April 2026 (UTC)
# Vote 2. [[User:Example|Example]] ([[User talk:Example|talk]]) 06:46, 9 April 2026 (UTC)
=== Last subsection ===
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 14:56, 14 September 2025 (UTC)
: Comment [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:24, 31 March 2026 (UTC)
:: Comment [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:25, 31 March 2026 (UTC)
::: Comment beginning<br> Comment ending [[User:Example|Example]] ([[User talk:Example|talk]]) 09:34, 31 March 2026 (UTC)
== Section to add test comments ==
section [[User:Example|Example]] ([[User talk:Example|talk]]) 02:37, 1 March 2026 (UTC)
: Test comment with random number 0.4478961847809999 [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 22:01, 19 April 2026 (UTC)
:: www [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:07, 18 May 2026 (UTC)
::: eee [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::: ttt [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
::::: iii [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
::::::: sss [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::: fff [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::: hhh [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::::: kkk [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::::: lll [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::: aaa [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::: ddd [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::: ggg [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::: jjj [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::::: kkk [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::: xxx [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::::: ccc [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::::: bbb [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::: zzz [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::: vvv [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::::: nnn [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::::: ,,, [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: www [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::: mmm [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::: qqq [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: eee [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: ttt [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::::: uuu [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
:::::::::::::::: ooo [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
:::::::::::::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
::::::::::::::: iii [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
::::::::::::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:24, 18 May 2026 (UTC)
:::::::::::::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
::::::::::::::::: sss [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:47, 18 May 2026 (UTC)
:::::::::::::::::: fff [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:52, 18 May 2026 (UTC)
::::::::::::::: aaa [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
:::::::::::::::: ddd [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:47, 18 May 2026 (UTC)
::::::::::::::::: ggg [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:52, 18 May 2026 (UTC)
: Test comment with random number 0.42841430187725704 [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 22:10, 19 April 2026 (UTC)
:: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:08, 18 May 2026 (UTC)
::: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:: uuu [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:: ooo [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
: qqq [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:07, 18 May 2026 (UTC)
=== test? {123} ===
test. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 10:44, 19 May 2026 (UTC)
== Section with equals sign (=) for moving ==
<div class="cd-moveMark">''Moved to [[User talk:JWBTH/CD test page 2#Section with equals sign ({{=}}) for moving]]. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 13:40, 1 April 2026 (UTC)''</div>
== test ==
<div class="cd-moveMark">''Moved to [[User talk:JWBTH/CD test page 2#test]]. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 14:33, 17 April 2026 (UTC)''</div>
== Section for moving ==
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 19:52, 15 March 2026 (UTC)
dkod1hhg9whhyzog4nbnmm1xhki15v6
743963
743962
2026-05-23T15:39:50Z
JWBTH
52211
743963
wikitext
text/x-wiki
== Section 1 ==
first section comment [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 02:37, 20 November 2024 (UTC)
unsigned comment
end {{unsigned|user}}
: comment to be edited [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 02:38, 20 November 2024 (UTC)
:: comment to test buttons [[User:Jack who built the house|Jack who built the house]] ([[User talk:Jack who built the house|talk]]) 02:41, 20 November 2024 (UTC)
::: child comment of comment to test buttons [[User:Jack who built the house|Jack who built the house]] ([[User talk:Jack who built the house|talk]]) 06:09, 27 August 2025 (UTC)
::: test [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 19:32, 16 March 2026 (UTC)
: [[#c-Test_account_8-20241120023700-Section_1|Test account 8 @ 02:37, 20 November 2024 (UTC)]] [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 06:43, 28 March 2026 (UTC)
=== test2 ===
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 14:55, 14 September 2025 (UTC)
: [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 20:13, 26 March 2026 (UTC)
=== Comment with complex markup ===
* ̴͍͖̪̭̂ฑεᚹẻ̴̦̜̜͙̰̉̒͠͠иℳἒԊ৩βà̸̩̳̗m̶̧̲̲̬̌̀̈́̀ь β ì̵̛̹̌͛͝«Зᾷу៚ἐฑἒдì̵̛̹̌͛͝ю»ì̵̛̹̌͛͝ ! Ᾰ D̴̞̓̊̀ля чẻ̴̦̜̜͙̰̉̒͠͠рẻ̴̦̜̜͙̰̉̒͠͠счуr̵̢͈͕̺͎̀̅ s̸̢̈́ерьӚz̵͓̫̻͔͠Ԋыᚸ βыΔε௭иm̶̧̲̲̬̌̀̈́̀ь <s>ฑр৩c̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀раԊc̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀β৩</s> ३ᾷβ৩Δь «D̴̞̓̊̀β৩йԊая z̵͓̫̻͔͠à̸̩̳̗௶พь». Ἇ m̶̧̲̲̬̌̀̈́̀৩ иz̵͓̫̻͔͠ Ԋẻ̴̦̜̜͙̰̉̒͠͠k̸̟͔̯̯̖̍̂͐̎͘৩m̶̧̲̲̬̌̀̈́̀৩ᚹыᚸ c̴̨͍͇̪̏̿́̽̕m̶̧̲̲̬̌̀̈́̀ᾷ z̵͓̫̻͔͠а௶พь m̶̧̲̲̬̌̀̈́̀ᾷк ì̵̛̹̌͛͝и ௭ε३εm̶̧̲̲̬̌̀̈́̀ чεᚹعz̵͓̫̻͔͠ k̸̟͔̯̯̖̍̂͐̎͘ᚹᾷй !!! ̴͍͖̪̭̂ <span style="font-family:Calibri; font-size:175%; display: inline-block; letter-spacing: 5px; transform: rotate(10deg); padding: 20px 0px;>[[User:Example|'''<span style="color: Magenta; position: relative; top: -4px;">ঞ</span><span style="color: SpringGreen; position: relative; top: -3px;">ʆ</span><span style="color: red; position: relative; top: -2px;">ἕ</span><span style="color: LimeGreen; position: relative; top: -1px;">ฃ</span><span style="color: DeepPink; position: relative; top: 2px;">r̵̢͈͕̺͎̀̅</span><span style="color: Aqua; position: relative; top: 4px;"> ̴͍͖̪̭̂</span><span style="color: DarkOrange; position: relative; top: 4px;">D̴̞̓̊̀</span><span style="color: DarkOrchid; position: relative; top: 3px;">ἒ</span><span style="color: Chartreuse; position: relative; top: 4px;"> ̴͍͖̪̭̂</span><span style="color: Fuchsia; position: relative; top: 1px;">ໃ</span><span style="color: DarkTurquoise; position: relative; top: 0px;">à̸̩̳̗</span><span style="color: Forestgreen; position: relative; top: -2px;">ʁ</span><span style="color: deeppink; position: relative; top: 2px;">i̵͖̒͆̕͝ͅ</span><span style="color: Turquoise; position: relative; top: -1px;">ń̸̳͑̑͌</span><span style="color: LimeGreen; position: relative; top: -4px;">៩</span><span style="color: Magenta; position: relative; top: 1px;">♥</font>''']]</span> 14:08, 1 April 2026 (UTC)
test
=== Transcluded comments ===
{{User talk:JWBTH/CD test page/comment}}
: test. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 10:36, 20 April 2026 (UTC)
=== Vote ===
Comment.
# Vote 1. [[User:Example|Example]] ([[User talk:Example|talk]]) 06:46, 9 April 2026 (UTC)
# Vote 2. [[User:Example|Example]] ([[User talk:Example|talk]]) 06:46, 9 April 2026 (UTC)
=== Last subsection ===
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 14:56, 14 September 2025 (UTC)
: Comment [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:24, 31 March 2026 (UTC)
:: Comment [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:25, 31 March 2026 (UTC)
::: Comment beginning<br> Comment ending [[User:Example|Example]] ([[User talk:Example|talk]]) 09:34, 31 March 2026 (UTC)
== Section to add test comments ==
section [[User:Example|Example]] ([[User talk:Example|talk]]) 02:37, 1 March 2026 (UTC)
: Test comment with random number 0.4478961847809999 [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 22:01, 19 April 2026 (UTC)
:: www [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:07, 18 May 2026 (UTC)
::: eee [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::: ttt [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
::::: iii [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
::::::: sss [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::: fff [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::: hhh [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::::: kkk [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::::: lll [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::: aaa [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::: ddd [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::: ggg [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
::::::::: jjj [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:20, 18 May 2026 (UTC)
:::::::::: kkk [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::: xxx [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::::: ccc [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::::: bbb [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::: zzz [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::: vvv [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
:::::::::::: nnn [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:21, 18 May 2026 (UTC)
::::::::::::: ,,, [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: www [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::: mmm [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::: qqq [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: eee [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
:::::::::::::: ttt [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:22, 18 May 2026 (UTC)
::::::::::::::: uuu [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
:::::::::::::::: ooo [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
:::::::::::::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
::::::::::::::: iii [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:23, 18 May 2026 (UTC)
::::::::::::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:24, 18 May 2026 (UTC)
:::::::::::::::: ppp [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
::::::::::::::::: sss [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:47, 18 May 2026 (UTC)
:::::::::::::::::: fff [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:52, 18 May 2026 (UTC)
::::::::::::::: aaa [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:46, 18 May 2026 (UTC)
:::::::::::::::: ddd [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:47, 18 May 2026 (UTC)
::::::::::::::::: ggg [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:52, 18 May 2026 (UTC)
: Test comment with random number 0.42841430187725704 [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 22:10, 19 April 2026 (UTC)
:: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:08, 18 May 2026 (UTC)
::: rrr [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:::: yyy [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:: uuu [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
:: ooo [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:19, 18 May 2026 (UTC)
: qqq [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 09:07, 18 May 2026 (UTC)
=== test? {123} ===
test. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 10:44, 19 May 2026 (UTC)
== Section with equals sign (=) for moving ==
<div class="cd-moveMark">''Moved to [[User talk:JWBTH/CD test page 2#Section with equals sign ({{=}}) for moving]]. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 13:40, 1 April 2026 (UTC)''</div>
== test ==
<div class="cd-moveMark">''Moved to [[User talk:JWBTH/CD test page 2#test]]. [[User:JWBTH|JWBTH]] ([[User talk:JWBTH|talk]]) 14:33, 17 April 2026 (UTC)''</div>
== Section for moving ==
test [[User:Test account 8|Test account 8]] ([[User talk:Test account 8|talk]]) 19:52, 15 March 2026 (UTC)
g4dnemate5427hppptl4j50eeeg51j9
Paris
0
166381
743975
739759
2026-05-23T17:34:02Z
Ludo Games-T
73707
743975
wikitext
text/x-wiki
{{Most populous cities of the world}}
{{Departments of France}}
<div lang="{{int:Lang}}" dir="{{#dir:{{int:lang}}}}" class="mw-content-{{#dir:{{int:lang}}}}">
{{Wikidata Infobox|defaultsort=no}}
{|border="0" cellspacing="0" cellpadding="2" style="box-sizing:border-box;margin:2px 0;background:#FAF6ED;border:1px solid #D8D8CB;border-collapse:collapse;padding:0"
|-
| [[File:{{#property:P18|from=Q659058}}|x80px|{{Label|Q659058|link=-|capitalization=ucfirst}}]]
|style="min-width:8em;width:100%;text-align:center"| {{LangSwitch
|default='''Paris''' is the capital of [[France]].
|af='''Parys''' is die hoofstad en grootste stad van [[France|Frankryk]].
|ar=باريس''' هي عاصمة [[فرنسا]] وأكبر مدنها من حيث عدد السكان'''
|ast='''París''' ye la capital de [[France|Francia]].
|ba='''Пари́ж''' — [[France|Францияның]] баш ҡалаһы.
|bg='''Париж''' е столицата на [[France|Франция]].
|br=Kêr-benn Bro-C'hall eo '''Pariz'''. Departamant ha pennlec'h departamant eo ivez, ha pennlec'h rannvro Enez-[[France|Frañs]] ivez.
|bs='''Pariz''' glavni je grad [[France|Francuske]].
|ca='''París''' és la capital i la major ciutat de la [[France|República Francesa]].
|co='''Parighji''' hè a capitale di [[France|Francia]].
|cs='''Paříž''' je hlavní a zároveň největší město [[France|Francie]].
|cy=Prifddinas [[France|Ffrainc]] yw '''Paris'''.
|da='''Paris''' er [[France|Frankrigs]] hovedstad.
|de='''Paris''' ist die Hauptstadt der [[France|Französischen Republik]].
|el=Το '''Παρίσι''' είναι η πρωτεύουσα της [[France|Γαλλίας]].
|eo='''Parizo''' estas la ĉefurbo de [[France|Francio]].
|es='''París''' es la capital de [[France|Francia]].
|et='''Pariis''' on [[France|Prantsusmaa]] pealinn.
|eu='''Paris''' [[France|Frantziako]] hiriburua da.
|fa=پاریس ، پایتخت کشور فرانسه
|fi='''Pariisi''' on [[France|Ranskan]] pääkaupunki.
|fr='''Paris''' est la capitale de la [[France]].
|he=פריז''' היא בירת צרפת'''
|hi='''पेरिस''' [[France|फ्रांस]] की राजधानी है।
|hr='''Pariz''' je glavni [[France|Francuske]].
|hu='''Párizs''' [[France|Franciaország]] fővárosa.
|hy=''Փարիզ''', [[France|Ֆրանսիայի]] մայրաքաղաքը քաղաքն է։.
|id='''Paris''' adalah ibu kota [[France|Perancis]].
|it='''Parigi''' è la capitale e la città più popolata della [[France|Francia]].
|ja='''パリ'''は、[[France|フランス]]北部、[[Île-de-France|イル=ド=フランス地域圏]]にある都市。フランスの首都であり、イル=ド=フランス地域圏の首府である。
|ka='''პარიზი''' — [[France|საფრანგეთის]] დედაქალაქი.
|ko='''파리'''는 [[France|프랑스]]의 수도로.
|ku='''Parîsê''' de li paytexta [[France|Fransa]] ye.
|la='''Lutetia Parisiorum''', tempore mediaevali etiam '''Parisius''', est caput [[France|Franciae]].
|li='''Paries''' ies de hoofsjtad van [[France|Frankriek]].
|lt='''Paryžius''' – [[France|Prancūzijos]] sostinė.
|lv='''Parīze''' ir [[France|Francijas]] galvaspilsēta.
|mk='''Париз''' е главен град на [[France|Франција]].
|mr='''पॅरिस''' ही [[France|फ्रान्स]] देशाची राजधानी.
|nl='''Parijs''' is de hoofdstad en regeringszetel van [[France|Frankrijk]].
|no='''Paris''' er [[France|Frankrikes]] hovedstad.
|oc='''París''' es la capitala de [[France|França]].
|pl='''Paryż''' – stolica [[France|Francji]].
|pt='''Paris''' é a capital da [[France|França]].
|ro='''Paris''' este capitala din [[France|Franța]].
|ru='''Пари́ж''' — столица [[France|Франции]].
|sco='''Paris''' is the caipital o [[France|Fraunce]].
|sk='''Paríž''' je [[France|francúzske]] hlavné mesto
|sl='''Paríz''' je glavno mesto [[France|Francije]].
|sr='''Париз''' је главни [[France|Француске]].
|sv='''Paris''' är huvudstaden i [[France|Frankrike]].
|th='''ปารีส''' เป็นเมืองหลวงของ[[France|ประเทศฝรั่งเศส]]
|tr='''Paris''', [[France|Fransa]]'nın başkenti.
|tt='''Пари́ж''' — [[France|Франциянең]] башкаласы.
|uk='''Пари́ж''' — столиця [[France|Франції]].
|vi='''Paris''' là thành phố thủ đô của nước [[France|Pháp]]
|zh='''巴黎'''是[[France|法國]]的首都
}}
| [[File:Flag maps of Paris.svg|x20px]]
| [[File:Paris map.png|x80px|{{Label|Q6664848|link=-|capitalization=ucfirst}}]]
|}
== {{Label|Q184377|link=-|capitalization=ucfirst}} ==<!--Prononciation-->
* {{Audio|fr-Paris.ogg|{{Label|Q150|link=-|capitalization=ucfirst}}}}
* {{Audio|en-Paris.ogg|{{Label|Q1860|link=-|capitalization=ucfirst}}}}
{{LangSwitch|default=~
|cs=* {{Audio|Cs-Pařiž.ogg|{{Label|Q9056|link=-|capitalization=ucfirst}}}}
|pl=* {{Audio|Pl-Paryż.ogg|{{Label|Q809|link=-|capitalization=ucfirst}}}}
|ru=* {{Audio|Ru-Париж.ogg|{{Label|Q7737|link=-|capitalization=ucfirst}}}}
|th=* {{Audio|Th-paris.ogg|{{Label|Q9217|link=-|capitalization=ucfirst}}}}
}}
== {{Label|Q41363|link=-|capitalization=ucfirst}} ==<!--Panorama-->
{{Maincat|Landscapes of Paris}}
[[File:Paris from the Arc de Triomphe, 17 October 2019.jpg|thumb|500px|left|view from Arc de Triumph]]
[[File:LaDefense pl.jpg|thumb|500px|left|{{LangSwitch
|de=Blick vom Eiffelturm auf den Nordwesten der Stadt
|en=View of the north west of Paris from the Eiffel Tower
|es=Vista del noroeste de París desde la Torre Eiffel
|fr=Vue du nord-ouest de Paris depuis la tour Eiffel
|hi=एफिल टॉवर से पेरिस के उत्तर पश्चिम के दृश्य
|it=Vista del nord-ovest di Parigi della Torre Eiffel
|ja=エッフェル塔からパリ北西部の眺め
|ko=에펠 탑에서 파리의 북쪽 서쪽의 전망
|nl=Zien op de noordwest van Parijs van de Eiffeltoren
|pt=Vista do noroeste de Paris da Torre Eiffel
|ru=Вид на северо-запад от Парижа с Эйфелевой башни
|sco=View o the north wast o Paris frae the Eiffel Touer
|zh=巴黎西北部的视图从艾菲尔铁塔
}}]]
[[File:Paris Night.jpg|thumb|500px|left|{{LangSwitch
|de=Blick von Montparnasse über die Stadt bei Abenddämmerung
|en=View over Paris, at dusk, from the Maine-Montparnasse tower
|es=Vista de París, al atardecer, desde la Torre Montparnasse
|fr=Vue de Paris, au crépuscule, du sommet de la tour Montparnasse
|hi=मेन-मोंटपार्नेस्स टावर से पहाड़ पर, पेरिस के ऊपर देखें
|it=La città al tramonto, vista dal Montparnasse
|ja=メイン・モンパルナス塔から夕暮れ時にパリを見渡す
|ko=메인 - 몽 파르 나스 타워에서 파리를 황혼을 배경으로 볼 수 있습니다.
|nl=Zien boven Parijs, 's avond, van Montparnasse
|pt=Vista sobre Paris, ao entardecer, da torre Maine-Montparnasse
|ru=Вид на Париж, в сумерках, с башни Мейн-Монпарнас
|sco=View ower Paris, at dusk, frae the Maine-Montparnasse touer
|zh=黄昏时分,从缅因 - 蒙帕纳斯大厦俯瞰巴黎
}}]]
[[File:Paris arc.jpg|thumb|500px|left|{{LangSwitch
|de=Blick über die Stadt vom Triumphbogen aus gesehen
|en=View of Paris from the Arc de Triomphe
|es=Vista de París desde el Arc de triomphe
|fr=Vue de Paris depuis l'Arc de triomphe
|hi=आर्क डी ट्रायमफे से पेरिस का दृश्य
|it=Panorama di Parigi dall'Arc de Triomphe
|ja=凱旋門からのパリの眺め
|ko=아크 드 Triomphe에서 파리의 전망
|nl=Zien boven Parijs van de Arc de Triomphe
|pt=Vista de Paris a partir do Arco do Triunfo
|ru=Вид Парижа из Триумфальной арки
|sco=View o Paris frae the Arc de Triomphe
|zh=巴黎从凯旋门的看法
}}]]
{{Clear|left}}
== {{Label|Q80071|link=-|capitalization=ucfirst}} ==<!--symbole-->
{{Maincat|Symbols of Paris}}
<gallery>
Blason paris 75.svg|{{Center|1={{Label|Q1925366|link=commons|capitalization=ucfirst}}}}
Insigne Lutetiae coronatum.svg|Insigne Lutetiae Coronatum (2016)
Grandes Armes de Paris.svg|Grandes armes de Paris
Flag of Paris with shield.svg|{{Center|1={{Label|Q659058|link=commons|capitalization=ucfirst}}}}
Ville de Paris logo.svg|Logo ''Ville de Paris'' (City of Paris)
Paris horizontal logo.svg|Logo
</gallery>
== {{Label|Q4006|link=-|capitalization=ucfirst}} ==<!--carte-->
{{Main gallery|Maps of Paris}}
<gallery>
Paris metropolitan area.gif|{{Center|1={{Label|Q13917|link=commons|capitalization=ucfirst}}}}
Paris and inner ring.svg|{{Center|1={{Label|Q3377343|link=commons|capitalization=ucfirst}}}}
Paris plan jms.png|{{Center|1={{Label|Q679388|link=commons|capitalization=ucfirst}}}}
Paris city canals location.jpg|{{Center|1={{Label|Q12284|link=-|capitalization=ucfirst}}}}
|{{Center|1={{Label|Q50716|link=commons|capitalization=ucfirst}}}}
</gallery>
=== {{Label|Q459798|link=-|capitalization=ucfirst}} ===<!--carte historique-->
{{Maincat|Old maps of Paris}}
<gallery>
Atlas des anciens plans de Paris - Plan de la cité gauloise - David Rumsey.jpg|{{Center|1={{Label|Q270273|link=commons|capitalization=ucfirst}}{{,}}{{LangSwitch|ar=الخريطة الأولى لباريس|de=die erste Karte von Paris|en=the first map of Paris|es=el primer mapa de París|fa=اولین نقشه پاریس|fr=la première carte de Paris|hi=पेरिस का पहला नक्शा|ja=パリの最初の地図|ko=파리의 첫번째지도|ru=первая карта Парижа|zh=巴黎的第一张地图|default=}}}}
Plan de Paris Lutece2 BNF07710745.png|{{Center|1={{Label|Q31027|link=-}}}}
Plan de Paris 1223 BNF07710747.png|{{Center|1={{Label|Q5399|link=-}}}}
1575 Belleforest x.jpg|{{Center|1={{Label|Q6688|link=-}}}}
Matthäus Merian, Le plan de la ville, cité, université fauxbourg de Paris - Paris Musées.jpg|{{Center|1={{Label|Q6784|link=-}}}}
Plan de Paris en 1657.JPG|{{Center|1={{Label|Q6987|link=-}}}}
Paris bird's eye view 17th century.jpg|{{Center|1={{Label|Q7016|link=-}}}}
Turgot map of Paris - Norman B. Leventhal Map Center.jpg|{{Center|1={{Label|Q6989|link=-}}}}
Plan de Paris 1740 BNF07710703.jpg|{{Center|1={{Label|Q7006|link=-}}}}
Exposition_Universelle_de_Paris_1889_-_Universitäts-_und_Landesbibliothek_Darmstadt.jpg|1889 birds eye view
</gallery>
=== {{Label|Q725252|link=-|capitalization=ucfirst}} ===<!--imagerie satellite-->
{{Maincat|Satellite pictures of Paris}}
<gallery>
Paris city.png|{{LangSwitch|fr = Photos satellite, résolution 10m|en = 10m/pixel, city}}
Paris city Landsat.png|{{LangSwitch|fr = Vue satellite en fausses couleurs|en = Landsat view (false colours), city}}
Paris and suburbs.jpg|{{LangSwitch|fr = Photos satellite, résolution 10m|en = 10m/pixel, city}}
Paris suburbs Landsat.jpg|{{LangSwitch|fr = Vue satellite en fausses couleurs|en = Landsat view (false colours), city}}
Paris.landsat.arp.750pix.jpg
File:ISS063-E-21071 - View of France - Paris - river Seine - Eiffel Tower - Champs-Élysées - Tuileries Gardens - Montmartre - Montmartre Cemetery - stations Gare du Nord - Gare de l'Est (cropped).jpg|[[:File:ISS063-E-21071 - View of France - Paris - river Seine - Eiffel Tower - Champs-Élysées - Tuileries Gardens - Montmartre - Montmartre Cemetery - stations Gare du Nord - Gare de l'Est (cropped).jpg|View from the International Space Station]]
</gallery>
== {{Label|Q4989906|link=-|capitalization=ucfirst}} ==<!--monument-->
{{Maincat|Buildings in Paris}}
=== {{Label|Q243|link=-|capitalization=ucfirst}} ===<!--tour Eiffel-->
{{Main gallery|Tour Eiffel}}
<gallery>
Tour eiffel at sunrise from the trocadero.jpg|{{FP star}} {{LangSwitch|en=At sunrise from the Trocadero|fr=Au lever du soleil depuis le Trocadéro}}
Tour Eiffel Wikimedia Commons.jpg|{{FP star}}
TourEiffelLC.JPG|{{LangSwitch|en=From south, Trocadero garden|fr=Depuis le sud, Jardin du Trocadéro}}
Paris - Eiffelturm - frontal vom Marsfeld.jpg|{{QI seal}}
Eiffel Tower from north Avenue de New York, Aug 2010.jpg|{{FP star}} {{LangSwitch|en=From north, Avenue de New York along the Seine River|fr=Depuis le nord, Avenue de New York le long de la Seine}}
La belle de Paris !.JPG|La belle de Paris !
Eiffel tower from Cite Architecture Chaillot.jpg|{{QI seal}} {{LangSwitch|en=From Cité de l’Architecture, in Chaillot Palace|fr=Depuis la Cité de l’architecture au Palais de Chaillot}}
Paris vue d'ensemble tour Eiffel.jpg|{{LangSwitch|en=General view over Paris around Trocadero|fr=Vue d’ensemble sur Paris autour du Trocadéro}}
File:Olympic rings on the Eiffel Tower 2024 (25).jpg|[[2024 Summer Olympics]]
</gallery>
=== {{Label|Q187840|link=-|capitalization=ucfirst}} ===<!--Palais Garnier-->
{{Main gallery|Palais Garnier}}
<gallery>
Paris Opera full frontal architecture, May 2009.jpg|{{Center|1={{Label|Q183061|link=-|capitalization=ucfirst}}}}
Opera2.jpg|{{Center|1={{Label|P3451|link=-|capitalization=ucfirst}}}}
The Opera House, Paris, France ca. 1890-1900.jpg|{{Center|1={{Circa|1900}}}}
Le grand foyer-2.jpg|{{LangSwitch|en = Le Grand foyer|fr = Le Grand foyer}}
Opera Garnier Grand Escalier.jpg|{{LangSwitch|en = Main staircase|fr = Escalier principal}}
Opéra Pavillon empereur.jpg|{{LangSwitch|en = Pavillon de l’Empereur (left side)|fr = Pavillon de l’Empereur (côté gauche)}}
Garnierpoesie1.JPG|{{Center|1={{Detail|{{Label|Q83180|link=-|capitalization=ucfirst}}}}}}
Opera garnier vue de l'avenue.JPG|{{Center|1={{View|{{From}} {{Label|Q2874010|link=-}}}}}}
</gallery>
=== {{Conj|{{Label|Q457318|link=-|capitalization=ucfirst}}|{{Label|Q820892|link=-}}}} ===<!--Grand et Petit Palais-->
{{Main gallery|Grand Palais|Petit Palais}}
<gallery>
GD-FR-Paris-Grand Palais.jpg|{{Center|1={{Label|Q191839|link=-|capitalization=ucfirst}}}}
Le Grand Palais depuis le pont Alexandre III à Paris.jpg|{{Center|1={{Label|Q457318|link=-}}{{And}}<br/>{{Label|Q390418|link=-|capitalization=ucfirst}}}}
PanoramiqueGrandPalais.jpg|
France Paris Grand Palais Interieur 02.jpg|
Grand palais-5.JPG|
Toit-Grand-Palais.jpg|
France Paris Petit Palais renove 02.jpg|
France Paris Petit Palais Jardin interieur 04.JPG|
France Paris Petit Palais renove Entree 02.jpg|
France Paris Petit Palais Interieur 02.jpg|
</gallery>
=== {{Label|Q64436|link=-|capitalization=ucfirst}} ===<!--arc de triomphe de l'Étoile-->
{{Main gallery|Arc de Triomphe de l'Étoile}}
<gallery>
Arc de triomphe Paris.jpg|
Paris-Arc-de-Triomphe001.jpg|{{Center|1={{Label|Q191839|link=-|capitalization=ucfirst}}}}
Arc Triomphe.jpg|
Arc de Triomphe img 2863-a.jpg|
Avenue des Champs-Élysées in 1939.jpg|Arc de triomphe de l'Étoile 1939.
Crowds of French patriots line the Champs Elysees-edit2.jpg|Paris was liberated on August 26, 1944.
Arc de Triomphe - Paris.jpg|
A view down the Champs Elysees, from the top of the Arc de Triomphe, circa 1860.jpg|1860
</gallery>
=== {{Label|Q1075988|link=-|capitalization=ucfirst}} ===<!--palais du Louvre-->
{{Main gallery|Palais du Louvre}}
[[File:Louvre 2007 02 24 c.jpg|thumb|800px|left]]
<gallery>
Louvre Paris from top edit cropped.jpg|{{Center|1={{Label|Q191839|link=-|capitalization=ucfirst}}}}
Louvre Aile Richelieu.jpg|{{Center|1={{Label|Q17309944|link=commons|capitalization=ucfirst}}}}
Pavillon Richelieu Louvre 2007 06 23.jpg
Louvre, vu de la Seine.jpg
Le Louvre - Aile Richelieu.jpg
</gallery>
=== {{Label|Q188977|link=-|capitalization=ucfirst}} ===<!--Hôtel des Invalides-->
{{Main gallery|Hôtel des Invalides}}
<gallery>
Jardin des Invalides.JPG|{{Center|1={{Label|Q1107656|link=-|capitalization=ucfirst}}}}
Invalides2007.jpg|
The Dome Church at Les Invalides - July 2006-3.jpg|
Hotel des Invalides seen from the Tour Montparnasse.JPG|
Parigi, Dôme des Invalides.JPG|
Paris - Plafond du dôme des Invalides.jpg|{{Center|1={{Label|Q152109|link=commons|capitalization=ucfirst}}}}
Paris - Dôme des Invalides - Tombeau de Napoléon - 002.jpg|{{Center|1={{Label|Q48634|link=-|capitalization=ucfirst}} {{Of}}<br/>{{Label|Q517|link=commons}}<br/>({{Label|Q237883|link=commons|capitalization=ucfirst}} {{Of}} {{Label|Q192273|link=commons}})}}
Paris - Cathédrale Saint-Louis des Invalides - L'orgue - 001.jpg|{{Center|1={{Label|Q29210650|link=commons|capitalization=ucfirst}}}}
</gallery>
=== {{Label|P1659|link=-|capitalization=ucfirst}} ===
<gallery>
Pantéon (Francia).jpg|{{Center|1={{Label|Q188856|link=commons}}}}
Assemblée nationale française (Detail).jpg|{{Center|1={{Label|Q936633|link=commons|capitalization=ucfirst}}}}
Palais du Luxembourg - garden facade.jpg|{{Center|1={{Label|Q329852|link=commons|capitalization=ucfirst}}}}
Paris Hotel de Sens dsc04028.jpg|{{Center|1={{Label|Q1374604|link=commons|capitalization=ucfirst}}}}
Sully CorpsLogis.JPG|{{Center|1={{Label|Q1643144|link=commons|capitalization=ucfirst}}}}
Conseil d'Etat Paris WA.jpg|{{Center|1={{Label|Q329948|link=commons|capitalization=ucfirst}}}}
Conciergerie (Paris).JPG|{{Center|1={{Label|Q138101|link=commons|capitalization=ucfirst}}}}
Palais de Justice de Paris DSC 4367.JPG|{{Center|1={{Label|Q143080|link=commons|capitalization=ucfirst}}}}
Institut de France.jpg|{{Center|1={{Label|Q202660|link=commons|capitalization=ucfirst}}}}
Institut de France - Académie française et pont des Arts.jpg|{{Center|1={{Label|Q161806|link=commons|capitalization=ucfirst}}<br/>{{And}}{{Label|Q1329141|link=commons}}}}
Musee de Cluny 1.jpg|{{Center|1={{Label|Q3145813|link=commons|capitalization=ucfirst}}}}
Elysée Palace, Paris 2005.jpg|{{Center|1={{Label|Q188190|link=commons|capitalization=ucfirst}}}}
XDSC 7270-arc-de-triomphe-du-Carrousel.jpg|{{Center|1={{Label|Q631104|link=commons|capitalization=ucfirst}}}}
Porte Saint-Denis 01.jpg|{{Center|1={{Label|Q684594|link=commons|capitalization=ucfirst}}}}
Paris porte st-martin.jpg|{{Center|1={{Label|Q950217|link=commons|capitalization=ucfirst}}}}
Tour Saint-Jacques 2008.jpg|{{Center|1={{Label|Q1431547|link=commons|capitalization=ucfirst}}}}
Val de Grace dsc04631.jpg|{{Center|1={{Label|Q1339583|link=commons|capitalization=ucfirst}}}}
Paris metro3 - Bourse - entrance.jpg|{{Center|1={{Label|Q178513|link=commons|capitalization=ucfirst}}}}
Romanbathparis.jpg|{{Center|1={{Label|Q6581615|link=-|capitalization=ucfirst}}<br/>({{Label|Q192982|link=commons}})}}
Obélisque 3.JPG|{{Center|1={{Label|Q1503331|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Churches}} ==<!--église-->
{{Main gallery|Churches in Paris}}
=== {{Label|Q2981|link=-|capitalization=ucfirst}} ===<!--cathédrale Notre-Dame de Paris-->
{{Main gallery|Cathédrale Notre-Dame de Paris}}
<gallery>
Notre-Dame de Paris au printemps.JPG|Notre-Dame de Paris au printemps
NotreDameDeParis.jpg|{{LangSwitch|en=westside|fr=Aile ouest}}
Detail portail NdP.jpg|{{LangSwitch|en=detail of the westside|fr=détail de l'aile ouest}}
Notre Dame Paris front facade lower.jpg|{{LangSwitch|en=Lower part of the front westside|fr=Partie inférieure de la façade ouest}}
Notre Dame de Paris Est side.jpg|{{LangSwitch|en=view from east|fr=Aile est}}
DSC00733 Notre Dame Paris from east.jpg|{{LangSwitch|en=view from south east|fr=Vue du sud-est}}
Notre Dame de Paris by night time.jpg|{{LangSwitch|en=view from south east by night|fr=vue du sud-est la nuit}}
Paris Notre-Dame west facade - Portail du Jugement Dernier.jpg|{{LangSwitch|en=westside, portal of the last judgement|façade ouest, portail du Jugement Dernier}}
Vista desde Notre Dame.jpg|{{Center|1={{Label|Q215194|link=-|capitalization=ucfirst}}}}
Notre-Dame Intérieur.jpg|{{LangSwitch|en=inside|fr=intérieur}}
Notre-Dame internal window.jpg|{{LangSwitch|en=inside|fr=intérieur}}
Rozeta Paryż notre-dame chalger.jpg|{{LangSwitch|en=North rose|fr=Rosace nord}}
Vitrail Notre-Dame de Paris 191208 04 Fuite en Egypte.jpg|vitrail de la Fuite en Égypte
Notre Dame dalla Senna.jpg
</gallery>
=== {{Label|Q193193|link=-|capitalization=ucfirst}} ===<!--Sainte-Chapelle-->
{{Main gallery|Sainte-Chapelle}}
<gallery>
Sainte chapelle - Upper level.jpg|{{LangSwitch|en=upper level|fr=niveau supérieur}}
Ste Chapelle Basse s.jpg|{{LangSwitch|en=low level|fr=niveau inférieur}}
Saintechapelle8f.jpg|{{LangSwitch|en=detail|fr=détail}}
Sainte Chapelle - Rosace.jpg|{{LangSwitch|en=rose window|fr=rosace}}
SteChapelle von N.JPG|{{LangSwitch|en=view from north|fr=vue du nord}}
</gallery>
=== {{Label|Q28785|link=-|capitalization=ucfirst}} ===<!--basilique du Sacré-Cœur de Montmartre-->
{{Main gallery|Basilique du Sacré-Cœur de Montmartre}}
<gallery>
Sacre-coeur-paris.jpg|{{LangSwitch|en=View from the foot of the hill|fr=Vue du pied de la butte}}
Le sacre Coeur.jpg|{{LangSwitch|en=Outside|fr=Extérieur}}
Sacre Coeur - Choeur, Abside et Mosaique.jpg|{{LangSwitch|en=Inside|fr=Intérieur}}
Basilique Sacre Coeur - Vue de la Tour Eiffel.jpg|{{Center|1={{Label|Q465837|link=-|capitalization=ucfirst}}}}
Sacré coeur parisien.JPG|{{Center|1={{Label|Q2141207|link=-|capitalization=ucfirst}}}}
Toit du Sacré-coeur.JPG|{{LangSwitch|en=Sacré-coeur roof|fr=Vue de Paris depuis les toits du Sacré-coeur}}
</gallery>
=== {{Label|P1659|link=-|capitalization=ucfirst}} ===<!--église-->
<gallery>
Église de la Madeleine.jpg|{{Center|1={{Label|Q330564|link=commons|capitalization=ucfirst}}}}
Église Saint Augustin Paris.jpg|{{Center|1={{Label|Q550157|link=commons|capitalization=ucfirst}}}}
Eglise saint augustin a Paris 2.jpg|{{Center|1={{Label|Q550157|link=commons|capitalization=ucfirst}}}}
Église Saint-Augustin de Paris - organ.JPG|{{Center|1={{Label|Q550157|link=commons|capitalization=ucfirst}}}}
Rue de turenne 68 - eglise Saint-Denis-4.JPG|{{Center|1={{Label|Q1328599|link=commons|capitalization=ucfirst}}}}
Saint-Etienne-du-Mont.JPG|{{Center|1={{Label|Q583251|link=commons|capitalization=ucfirst}}}}
DSC 7095--Saint-Etienne-du-.jpg|{{Center|1={{Label|Q583251|link=commons|capitalization=ucfirst}}}}
Saint-Étienne rood screen.jpg|{{Center|1={{Label|Q583251|link=commons|capitalization=ucfirst}}}}
Eglise Saint Eustache Paris, July 2007.jpg|{{Center|1={{Label|Q1338207|link=commons|capitalization=ucfirst}}}}
St.-Eustache.jpg|{{Center|1={{Label|Q1338207|link=commons|capitalization=ucfirst}}}}
Eglise di Saint Eustache cappella della madonna.JPG|{{Center|1={{Label|Q1338207|link=commons|capitalization=ucfirst}}}}
St Germain des Prés tour2.jpg|{{Center|1={{Label|Q604717|link=commons|capitalization=ucfirst}}}}
Saint-Germain l'Auxerrois.jpg|{{Center|1={{Label|Q1429394|link=commons|capitalization=ucfirst}}}}
StGermainAuxerrois1.jpg|{{Center|1={{Label|Q1429394|link=commons|capitalization=ucfirst}}}}
StGervais Fassade.JPG|{{Center|1={{Label|Q427340|link=commons|capitalization=ucfirst}}}}
Eglise Saint-Laurent (Paris 10e).jpg|{{Center|1={{Label|Q1629067|link=commons|capitalization=ucfirst}}}}
Facade Saint-Nicolas-du-Chardonnet Paris.jpg|{{Center|1={{Label|Q1577630|link=commons|capitalization=ucfirst}}}}
St-Paul-St-Louis-DSC 8039.jpg|{{Center|1={{Label|Q1247969|link=commons|capitalization=ucfirst}}}}
St-Paul-St-Louis-DSC 8006.jpg|{{Center|1={{Label|Q1247969|link=commons|capitalization=ucfirst}}}}
St. Roch Paris.jpg|{{Center|1={{Label|Q1436962|link=commons|capitalization=ucfirst}}}}
Paris-St-Severin.JPG|{{Center|1={{Label|Q1710376|link=commons|capitalization=ucfirst}}}}
Séance de Gospell à Saint-Séverin.jpg|{{Center|1={{Label|Q1710376|link=commons|capitalization=ucfirst}}}}
Bas-relief de l'église Saint-Séverin à Paris.jpg|{{Center|1={{Label|Q1710376|link=commons|capitalization=ucfirst}}}}
StSulpice Fassade.JPG|{{Center|1={{Label|Q295844|link=commons|capitalization=ucfirst}}}}
Saint-Sulpice Paris April 2006 004.jpg|{{Center|1={{Label|Q295844|link=commons|capitalization=ucfirst}}}}
Saint-Vincent-de-Paul-Paris.jpg|{{Center|1={{Label|Q1710383|link=commons|capitalization=ucfirst}}}}
Saint Vincent de Paul (Paris) Choeur.JPG|{{Center|1={{Label|Q1710383|link=commons|capitalization=ucfirst}}}}
Chapelle expiatoire Paris interieur.jpg|{{Center|1={{QI seal}} {{Label|Q1062732|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q33506|link=-|capitalization=ucfirst}} ==<!--Musée-->
{{Maincat|Museums in Paris}}
=== {{Label|Q19675|link=-|capitalization=ucfirst}} ===<!--musée du Louvre-->
{{Main gallery|Louvre}}
<gallery>
Louvre 2007 02 24 c.jpg|{{Center|1={{Label|P3451|link=-|capitalization=ucfirst}}}}
Spiral stairs of the hall Napoléon (460943456).jpg|{{Center|1={{Label|Q1137365|link=-|capitalization=ucfirst}}<br/>({{Label|Q13397|link=commons|capitalization=ucfirst}})}}
Ceiling of Rotunda of Apollo (Louvre).jpg|{{Center|1={{Label|Q29864616|link=commons|capitalization=ucfirst}}<br/>({{Label|Q245624|link=commons}}, 1819)}}
Paris Palais du Louvre Salle des Caryatides 01a.jpg|{{Center|1={{Label|Q19118697|link=commons|capitalization=ucfirst}}}}
School children in Louvre.jpg|Écoliers au Louvre
ArtistPaintingAtLouvre.jpg|Artistes peignant au Louvre
The seated scribe.jpg|{{Center|1={{Label|Q378034|link=commons|capitalization=ucfirst}}<br/>({{Label|Q4233718|link=-}}, {{Era|BC|2600}})}}
Psyche revived Louvre MR1777.jpg|{{Center|1={{Label|Q517408|link=commons|capitalization=ucfirst}}<br/>({{Label|Q5547|link=commons}}, 1793)}}
Louvre-Khorsabad-Human Headed Winged Bulls.jpg
GD-FR-Paris-Louvre-Sculptures034.JPG|{{Center|1={{Label|Q3531160|link=commons|capitalization=ucfirst}}<br/>({{Label|Q4233718|link=-}}, 1477)}}
Mona Lisa, by Leonardo da Vinci, from C2RMF retouched.jpg|{{Center|1={{Label|Q12418|link=commons|capitalization=ucfirst}}<br/>({{Label|Q762|link=commons}}, {{Between|1503|1506}})}}
La Liberté guidant le peuple - Eugène Delacroix - Musée du Louvre Peintures RF 129 - après restauration 2024.jpg|{{Center|1={{Label|Q29530|link=commons|capitalization=ucfirst}}<br/>({{Label|Q33477|link=commons}}, 1830)}}
</gallery>
=== {{Label|Q23402|link=-|capitalization=ucfirst}} ===<!--musée d'Orsay-->
{{Main gallery|Musée d'Orsay}}
<gallery>
Louvre-CourMarly.jpg
MuseeDOrsay.jpg
HorlogeMuseeDOrsay.jpg
Musée d'Orsay interior panoramic.jpg
MuseeOrsay 20070324.jpg
EPO 1034 wiki.jpg|{{LangSwitch|en=Vincent van Gogh's Starry Night Over the Rhone}}
Manet, Edouard - Le Déjeuner sur l'Herbe (The Picnic) (1).jpg|{{LangSwitch|en=Luncheon on the Grass from Edouard Manet}}
Gustave Courbet 006.jpg|{{LangSwitch|en=Gustave Courbet, The painter's atelier, detail}}
Starry Night Over the Rhone.jpg|{{LangSwitch|en=Vincent van Gogh's Starry Night Over the Rhone}}
Pierre-Auguste Renoir, Le Moulin de la Galette.jpg|{{LangSwitch|en=La Moulin de la Galette from Pierre-Auguste Renoir}}
Statue-Orsay-20.jpg|{{LangSwitch|en=Hébé endormie from Albert-Ernest Carrier-Belleuse}}
Louis Welden Hawkins - Masc.jpg|{{LangSwitch|en=Masc from Louis Welden Hawkins}}
</gallery>
=== {{Label|P1659|link=-|capitalization=ucfirst}} ===
<gallery>
Soubise CorpsLogis.JPG|{{Center|1={{Label|Q2655828|link=commons|capitalization=ucfirst}}<br/>({{Label|Q917337|link=commons|capitalization=ucfirst}})}}
Soubise.JPG|{{Center|1={{Label|Q2655828|link=commons|capitalization=ucfirst}}<br/>({{Label|Q917337|link=commons|capitalization=ucfirst}})}}
Carnavalet CorpsLogis.JPG|{{Center|1={{Label|Q640447|link=commons|capitalization=ucfirst}}<br/>({{Label|Q12021221|link=-}})}}
HotelSale hinten.JPG|{{Center|1={{Label|Q743206|link=commons|capitalization=ucfirst}}<br/>({{Label|Q1643089|link=commons|capitalization=ucfirst}})}}
La cite des sciences 1.jpg|{{Center|1={{Label|Q1094338|link=commons|capitalization=ucfirst}}}}
La cite des sciences 2.jpg|{{Center|1={{Label|Q1094338|link=commons|capitalization=ucfirst}}}}
Palais de la decouverte hallentree jnl.jpg|{{Center|1={{Label|Q614450|link=commons|capitalization=ucfirst}}}}
Grande Galerie de l'evolution.jpg|{{Center|1={{Label|Q838691|link=commons|capitalization=ucfirst}}}}
Galerie nationale du Jeu de Paume.jpg|{{Center|1={{Label|Q656296|link=commons|capitalization=ucfirst}}}}
Musee-de-lArmee-IMG 1076.jpg|{{Center|1={{Label|Q1996069|link=commons|capitalization=ucfirst}}}}
Musée Nissim de Camondo - exterior.jpg|{{Center|1={{Label|Q1954498|link=commons|capitalization=ucfirst}}}}
Musée Nissim de Camondo - Salon des Huets.JPG|{{Center|1={{Label|Q1954498|link=commons|capitalization=ucfirst}}}}
Musee Rodin.jpg|{{Center|1={{Label|Q650519|link=commons|capitalization=ucfirst}}}}
File by Alexander Baranov - Нетипичная парижская архитектура (9522783370).jpg|{{Center|1={{Label|Q1535247|link=commons|capitalization=ucfirst}}}}
Musee Guimet P1190515.jpg|{{Center|1={{Label|Q860994|link=commons|capitalization=ucfirst}}}}
Musee guimet rdc.jpg|{{Center|1={{Label|Q860994|link=commons|capitalization=ucfirst}}}}
Musée Jacquemart André 2007 - Recoura.jpg|{{Center|1={{Label|Q1165526|link=commons|capitalization=ucfirst}}}}
Musée Jacquemart André 2007 - Recoura n4.jpg|{{Center|1={{Label|Q1165526|link=commons|capitalization=ucfirst}}}}
Musée Jacquemart André 2007 - Recoura n1.jpg|{{Center|1={{Label|Q1165526|link=commons|capitalization=ucfirst}}}}
HotelCluny Garten.JPG|{{Center|1={{Label|Q1124095|link=commons|capitalization=ucfirst}}<br/>({{Label|Q917337|link=commons|capitalization=ucfirst}})}}
Barque-de-napoleon.jpg|{{Center|1={{Label|Q1286709|link=commons|capitalization=ucfirst}}}}
Cité-Immigration6.JPG|{{Center|1={{Label|Q1094332|link=commons|capitalization=ucfirst}}}}
Musee-des-arts-et-metiers-d.jpg|{{Center|1={{Label|Q1538826|link=commons|capitalization=ucfirst}}}}
Musee Vie romantique.jpg|{{Center|1={{QI seal}} {{Label|Q2714932|link=commons|capitalization=ucfirst}}}}
Grevin musee facade.jpg|{{Center|1={{Label|Q1265070|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Conj|{{Label|Q22698|link=-|capitalization=ucfirst}}|{{Label|Q1107656|link=-|capitalization=ucfirst}}}} ==<!--parc et jardin-->
{{Maincat|Green spaces in Paris}}
<gallery>
Champ de Mars from the Eiffel Tower - July 2006 edit.jpg|{{Center|1={{Label|Q217925|link=commons|capitalization=ucfirst}}}}
View From The Eiffel Tower - panoramio (17).jpg|{{Center|1={{Label|Q1683459|link=commons|capitalization=ucfirst}}}}
Tuileries-Roue.jpg|{{Center|1={{Label|Q818517|link=commons|capitalization=ucfirst}}}}
Jardin du Luxembourg.JPG|{{Center|1={{Label|Q309458|link=commons|capitalization=ucfirst}}}}
Fontaine du Cirque Paris 8e 002.jpg|{{Center|1={{Label|Q677543|link=commons|capitalization=ucfirst}}}}
PalaysRoyal Garten.JPG|{{Center|1={{Label|Q3162586|link=commons|capitalization=ucfirst}}}}
Roseraie parc monceau.jpg|{{Center|1={{Label|Q1414059|link=commons|capitalization=ucfirst}}}}
Les Prairies de Bercy1.jpg|{{Center|1={{Label|Q945251|link=commons|capitalization=ucfirst}}}}
Paris Square du Temple dsc03980.jpg|{{Center|1={{Label|Q3495070|link=commons|capitalization=ucfirst}}}}
Serres Parc-André-Citroën-Paris.jpg|{{Center|1={{Label|Q2051953|link=commons|capitalization=ucfirst}}}}
Parc des Buttes-Chaumont, 22 April 2007.jpg|{{Center|1={{Label|Q532113|link=commons|capitalization=ucfirst}}}}
Jardin Plantes.jpg|{{Center|1={{Label|Q730948|link=commons|capitalization=ucfirst}}}}
15e Parc Georges Brassens.jpg|{{Center|1={{Label|Q1424710|link=commons|capitalization=ucfirst}}}}
Pere Lachaise looking down the hill.jpg|{{Center|1={{Label|Q311|link=commons|capitalization=ucfirst}}}}
Cimetiere Montparnasse Paris Genie Daillion.jpg|{{Center|1={{QI seal}} {{Label|Q272208|link=commons|capitalization=ucfirst}}}}
Ligne Petite Ceinture parc Montsouris Paris.jpg|{{Center|1={{FP star}} {{QI seal}} {{Label|Q1538929|link=commons|capitalization=ucfirst}}}}
Espace vert à Paris.JPG|{{Center|1={{Label|Q3494864|link=commons|capitalization=ucfirst}}}}
Paris Jardin d’Acclimatation 946.jpg|{{Center|1={{Label|Q3090513|link=commons|capitalization=ucfirst}}}}
Do pedalar e da ciência.jpg|{{Center|1={{Label|Q246448|link=commons|capitalization=ucfirst}}}}
Esplanade des Invalides and Grand Palais, Paris 3 June 2015.jpg|{{Center|1={{Label|Q3058455|link=commons|capitalization=ucfirst}}}}
Grande cascade Boulogne (1).jpg|{{Center|1={{Label|Q209626|link=commons|capitalization=ucfirst}}}}
Bois de Vincennes - Paris.jpg|{{Center|1={{Label|Q271639|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q3477927|link=-|capitalization=ucfirst}} ==<!--la Seine à Paris-->
{{Maincat|Seine River in Paris}}{{Main|Seine River in Paris}}
=== {{Label|Q12280|link=-|capitalization=ucfirst}} ===<!--Pont-->
{{Maincat|Bridges in Paris}}
[[File:Pont des Arts, Paris.jpg|thumb|800px|left|{{Label|Q1329141|link=-|capitalization=ucfirst}} ({{Label|P3451|link=-}})]]
<gallery>
Pont Charles De Gaulle.jpg|{{Center|1={{Label|Q1196676|link=commons|capitalization=ucfirst}}}}
Paris Seine ne Austerlitz bridge dsc03833.jpg|{{Center|1={{Label|Q2307722|link=commons|capitalization=ucfirst}}}}
Paris Pont de Sully IMA dsc04039.jpg|{{Center|1={{Label|Q1196688|link=commons|capitalization=ucfirst}}}}
France Paris Pont Notre Dame 01.JPG|{{Center|1={{Label|Q1061959|link=commons|capitalization=ucfirst}}}}
France Paris Pont au Change 01.jpg|{{Center|1={{Label|Q1327827|link=commons|capitalization=ucfirst}}}}
DSC00679 Ile de la Cite.JPG|{{Center|1={{Label|Q335277|link=commons|capitalization=ucfirst}}}}
Paris Pont des Arts.jpg|{{Center|1={{QI seal}} {{Label|Q1329141|link=commons|capitalization=ucfirst}}}}
France Paris Pont Royal 02.JPG|{{Center|1={{Label|Q1758497|link=commons|capitalization=ucfirst}}}}
Pont Alexandre III depuis pont de la Concorde Paris.jpg|{{Center|1={{Label|Q390418|link=commons|capitalization=ucfirst}}}}
Invalides-bridge.jpg|{{Center|1={{Label|Q1073098|link=commons|capitalization=ucfirst}}}}
Paris-zouave-pont-de-l-alma.jpg|{{Center|1={{Label|Q3576150|link=commons|capitalization=ucfirst}}}}
Passerelle Debilly Paris FRA 002.JPG|{{Center|1={{Label|Q2274186|link=commons|capitalization=ucfirst}}}}
Pont d'Iéna (Paris 2011).jpg|{{Center|1={{Label|Q540781|link=commons|capitalization=ucfirst}}}}
Viaduc de Passy - Paris - novembre 2005.jpg|{{Center|1=[[Pont de Bir-Hakeim]]}}
Pont mirabeau injalbert commerce.jpg|{{Center|1={{Label|Q291093|link=commons|capitalization=ucfirst}}}}
Flickr - Whiternoise - Bridge over the River Seine, Paris.jpg|{{Center|1={{c|Pont de la Tournelle}}}}
</gallery>
=== {{Label|P1659|link=-|capitalization=ucfirst}} ===
{{Main gallery|Seine}}
<gallery>
Paris ile Cite ile Saint Louis pont Tournelle.jpg|{{QI seal}} {{LangSwitch|fr=Île de la Cité et île Saint Louis|default=~}}
Seine wide.jpg|{{LangSwitch|fr=Panoramique sur 180° du petit bras de la Seine|default=~}}
Pousseur-a-paris.jpg|{{LangSwitch|fr=Pousseur avec ses barges sous le pont des Invalides|default=~}}
Île Saint-Louis - Quai d'Orléans (Paris).jpg|{{LangSwitch|en=Île Saint Louis from the Pont de la Tournelle.|fr=l'île Saint-Louis vue depuis le pont de la Tournelle}}
Peniches sur la Seine a Boulogne P1000112.JPG|{{LangSwitch|en=|fr=Deux péniches se croisent sur la Seine à hauteur du bois de Boulogne.|default=~}}
Dragage Seine Paris.jpg|{{QI seal}} {{LangSwitch|en=Dredging in the Seine river in Paris|fr=dragage sur la Seine à Paris}}
Street artist in Paris, 20 August 2006.jpg|{{LangSwitch|fr=Peintre sur la rive droite de la Seine|default=~}}
2007 Paris Seine.jpg|View over the Seine in Paris, Pont des Invalides in the foreground, Eiffel tower in the background
</gallery>
== {{Conj|{{Label|Q483453|link=-|capitalization=ucfirst}}|{{Label|Q860861|link=-|capitalization=ucfirst}}}} ==<!--Fontaines et sculptures-->
{{Maincat|Sculptures in Paris|Fountains in Paris}}
<gallery>
Fontaine des Fleuves.jpg|{{Center|1={{Label|Q3076336|link=commons|capitalization=ucfirst}}}}
Fontaine MarieMedicis.jpg|{{Center|1={{Label|Q3076041|link=commons|capitalization=ucfirst}}}}
FontaineDesInnocents02.jpg|{{Center|1={{Label|Q1435791|link=commons|capitalization=ucfirst}}}}
Fontaine Saint-Michel Paris DSC 4355.JPG|{{Center|1={{Label|Q692839|link=commons|capitalization=ucfirst}}}}
Fontaine Saint-Sulpice Paris 2008-03-14.jpg|{{Center|1={{Label|Q1619388|link=commons|capitalization=ucfirst}}}}
FontaineQuatrePartiesDuMonde04.jpg|{{Center|1={{Label|Q3076255|link=commons|capitalization=ucfirst}}}}
Fontaine Wallace St-Sulpice 00.JPG|{{Center|1={{Label|Q829304|link=commons|capitalization=ucfirst}}}}
FontaineCuvier03.jpg|{{Center|1={{Label|Q3076018|link=commons|capitalization=ucfirst}}}}
Fontaine chateau eau.JPG|{{Center|1={{Label|Q3076267|link=commons|capitalization=ucfirst}}}}
3911ParigiFontanaChatelet.JPG|{{Center|1={{Label|Q3076281|link=commons|capitalization=ucfirst}}}}
Fontaine dans les puces de St-ouen.JPG|{{LangSwitch|fr=Fontaine dans les puces de St-Ouen|default=~}}
FountaininParis.jpg|{{Center|1={{Label|Q483453|link=-|capitalization=ucfirst}} {{Of}} {{Label|Q1563864|link=commons}}}}
Bull head Gaulle Paris.jpg|tête de boeuf, 8, rue des Hospitalières-Saint-Gervais
Paris Hôtel de Ville La Science Jules Blanchard.jpg|La Science par [[:fr:Jules Blanchard|Jules Blanchard]] devant l'[[:fr:Hôtel de ville de Paris|Hôtel de ville]]
FontaineParis.JPG|
Garancière01.JPG|
Ange.jpg
Le Bon Samaritain et l'araignée de Louise Bourgeois aux Tuileries.jpg|Le Bon Samaritain, sculpture de François-Léon Sicard (1896) et l'araignée de Louise Bourgeois aux Tuileries.
Paris Arc de Triomphe de l'Étoile Grabmal des Unbekannten Soldaten 2.jpg|{{Center|1={{Label|Q523312|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q174782|link=-|capitalization=ucfirst}} ==<!--Place-->
{{Maincat|Squares in Paris}}
<gallery>
Place de la concorde.jpg|{{Center|1={{Label|Q189503|link=commons|capitalization=ucfirst}}}}
Place Bastille 20040914 A.jpg|{{Center|1={{Label|Q778784|link=commons|capitalization=ucfirst}}}}
Paris Place dItalie dsc04064.jpg|{{Center|1={{Label|Q1966521|link=commons|capitalization=ucfirst}}}}
Place Vendome 1.jpg|{{Center|1={{Label|Q643520|link=commons|capitalization=ucfirst}}}}
050903 Paris 002 Mme la Republique.JPG|{{Center|1={{Label|Q175055|link=commons|capitalization=ucfirst}}}}
FrancoiseDeGandi - Paris - Place de la Nation.jpg|{{Center|1={{Label|Q1573359|link=commons|capitalization=ucfirst}}}}
Place Vosges Paris Mai 2006 007.jpg|{{Center|1={{Label|Q898629|link=commons|capitalization=ucfirst}}}}
Paris Place Dauphine.jpg|{{Center|1={{Label|Q1810430|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q679388|link=-|capitalization=ucfirst}} ==<!--arrondissement de Paris-->
{{LangSwitch
|en='''Paris''' contains 20 districts or ''arrondissements''.
|es='''París''' tiene 20 distritos o ''arrondissements''.
|fr=La ville de Paris est divisée en 20 arrondissements.
|sco='''Paris''' contains 20 destricts or ''arrondissements''.
}}
{{Arrondissements of Paris}}
== {{Conj|{{Label|Q79007|link=-|capitalization=ucfirst}}|{{Label|Q252916|link=-|capitalization=ucfirst}}}} ==<!--Rues et quartier administratif de Paris-->
{{Maincat|Streets in Paris}}
[[File:Leshalles pl.jpg|center|thumb|800px|left|Les Halles]]
<gallery>
01 vue Paris depuis Notre-Dame.jpg|{{LangSwitch|en=[[Île de la Cité]] view from Notre Dame}}
A Brouhot car in Paris, 1910.jpg|A picture taken in Paris in 1910.
Champs Elysees, Paris.jpg|{{LangSwitch|en=[[Avenue des Champs-Élysées]] view from Arc de Triomphe}}
Avenue des Champs-Élysées.jpg|{{LangSwitch|en=[[Avenue des Champs-Élysées]] view from Concorde}}
Avenue de la Grande-Armée from Arc de Triomphe 20020000.jpg|{{LangSwitch|en=[[Avenue de la Grande-Armée]] view from Arc de Triomphe}}
Champs Elysees walking.jpg|{{Center|1={{Label|Q550|link=commons|capitalization=ucfirst}}}}
Paris view from Arc de Triomphe to La Defense DSC03088.JPG|{{Center|1={{Label|Q1028274|link=commons|capitalization=ucfirst}}}}
Ile de la cite.jpg|{{Center|1={{Label|Q190063|link=commons|capitalization=ucfirst}}}}
Rue Rivoli, Paris.JPG|{{Center|1={{Label|Q141747|link=commons|capitalization=ucfirst}}}}
Rue Rollin, Paris.jpg|{{Center|1={{Label|Q3449772|link=commons|capitalization=ucfirst}}}}
Rue St Jacques Louis Le Grand DSC09316.jpg|{{Center|1={{Label|Q1356926|link=commons|capitalization=ucfirst}}{{And}}{{Label|Q1059546|link=commons|capitalization=ucfirst}}}}
Rue du Faubourg St Honore dsc00792.jpg|{{Center|1={{Label|Q1027432|link=commons|capitalization=ucfirst}}}}
Paris rue Abel dsc03762.jpg|{{Center|1={{Label|Q3446828|link=commons|capitalization=ucfirst}}}}
montgallet.jpg|{{Center|1={{Label|Q2188497|link=commons|capitalization=ucfirst}}}}
Avenue-italie-panoramique.jpg|{{Center|1={{Label|Q2873898|link=commons|capitalization=ucfirst}}}}
Paris - Quartier Beaugrenelle - novembre 2005.jpg|{{Center|1={{Label|Q1867640|link=commons|capitalization=ucfirst}}}}
Rue Oberkampf.jpg|{{Center|1={{Label|Q2373366|link=commons|capitalization=ucfirst}}}}
Bassin de la ViletteP1050902.JPG|{{Center|1={{Label|Q810526|link=commons|capitalization=ucfirst}}}}
Hotel-Duret-de-Chevry-8-rue.jpg|{{Center|1={{Label|Q19849306|link=commons|capitalization=ucfirst}}}}
Vista Paris 15.JPG|{{Center|1={{Label|Q3412683|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q391414|link=-|capitalization=ucfirst}} ==<!--élément d'architecture-->
{{Maincat|Architectural elements in Paris}}
<gallery>
Ironworks gate Petit Palais.jpg|{{LangSwitch|en=Entrance [[:en:Petit Palais|Petit Palais]]}}
DSC 7161-toits-de-l'ile-de-.jpg|{{LangSwitch|en=Roofs, "Ile de la Cité" 1st district}}
DSC 7092-14-rue-St-Victor-a.jpg|{{LangSwitch|en=Door (1714), 5th district}}
DSC 7042-17-rue-chapollion-.jpg|{{LangSwitch|en=Door (1657) , 5th district}}
DSC 7080-6-rue-d-Ecosse-por.jpg|{{LangSwitch|en=Door (e.1600), 5th district}}
Door of the Immeuble Les Arums, 33 rue du Champ de Mars, Paris 2008.jpg|{{LangSwitch|en=Door Art Nouveau (1904), rue du Champ de Mars, 7th district}}
XDSC 7288-29-av-Rapp-paris-7.jpg|{{LangSwitch|en=Door Art Nouveau (1900), av. Rapp, 7th district}}
XDSC 7293-29-av-Rapp-paris-7.jpg|{{LangSwitch|en=Building Art Nouveau (1900), av. Rapp, 7th district}}
</gallery>
== {{Conj|{{Label|Q24354|link=-|capitalization=ucfirst}}|{{Label|Q1378975|link=-|capitalization=ucfirst}}}} ==<!-- théâtre et palais des Congrès -->
{{Maincat|Theaters in Paris}}
<gallery>
Comédie Française colonnes.jpg|{{Center|1={{Label|Q836007|link=commons|capitalization=ucfirst}}}}
01 Théâtre de l'Odéon.jpg|{{Center|1={{Label|Q1133501|link=commons|capitalization=ucfirst}}}}
Théâtre du Châtelet, October 2008.jpg|{{Center|1={{Label|Q1469315|link=commons|capitalization=ucfirst}}}}
DSC 7140-theatre-de-la-Vill.jpg|{{LangSwitch|en=Theater : "Théatre de la Ville" from the side and "Tour St Jacques"}}
DSC 7199-Theattre-de-la-vil.jpg|{{LangSwitch|en=Theater : "Théatre de la Ville" from the "Place du Chatelet"}}
Paris theatre de la Renaissance.jpg|{{Center|1={{Label|Q3527713|link=commons|capitalization=ucfirst}}}}
Bataclan2006.jpg|{{Center|1={{Label|Q810700|link=commons|capitalization=ucfirst}}}}
Olympia Paris dsc00803.jpg|{{Center|1={{Label|Q915451|link=commons|capitalization=ucfirst}}}}
Salle Favart auditorium ceiling.jpg|{{Center|1={{Label|Q872222|link=commons|capitalization=ucfirst}}}}
Salle Pleyel 5.jpg|{{Center|1={{Label|Q1649419|link=commons|capitalization=ucfirst}}}}
La Cigale Paris.jpg|{{Center|1={{Label|Q3207410|link=commons|capitalization=ucfirst}}}}
Mk2 Bibliotheque Paris rear.JPG|{{Center|1={{LangSwitch|en=Cinema Bibliothèque F Mitterrand}}}}
DSC 7088-Maison-de-la-Mutau.jpg|{{Center|1={{Label|Q3279717|link=commons|capitalization=ucfirst}}}}
Paris - Moulin Rouge 2008.JPG|{{Center|1={{Label|Q151030|link=commons|capitalization=ucfirst}}}}
Le Palace.JPG|{{Center|1={{Label|Q3225157|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q25550691|link=-|capitalization=ucfirst}} ==<!-- Hôtel de ville -->
{{Main gallery|Hôtel de Ville de Paris}}
<gallery>
HotelVilleParis.JPG
HôtelDeVille.jpg|{{Center|1={{Label|P3451|link=-|capitalization=ucfirst}}}}
Hôtel de Ville-Paris (yard).jpg|{{Center|1={{Label|Q309250|link=-|capitalization=ucfirst}}}}
050903 Paris 011 HotelVille fontana.JPG|{{Center|1={{Label|Q483453|link=-|capitalization=ucfirst}}}}
Mairie de Paris I.jpg|{{Center|1={{Label|Q3278495|link=commons|capitalization=ucfirst}}}}
Paris mairie 3eme arrdt dsc03993.jpg|{{Center|1={{Label|Q3278498|link=commons|capitalization=ucfirst}}}}
Mairie du 10e arrondissement de Paris.jpg|{{Center|1={{Label|Q1885812|link=commons|capitalization=ucfirst}}}}
Paris13 city hall.jpg|{{Center|1={{Label|Q3278484|link=commons|capitalization=ucfirst}}}}
Paris19 city hall dsc00819.jpg|{{Center|1={{Label|Q3278494|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q5152545|link=-|capitalization=ucfirst}} ==<!--zone commerciale-->
{{Maincat|Commerce in Paris}}
=== {{Conj|{{Label|Q30022|link=-|capitalization=ucfirst}}{{,}}{{Label|Q11707|link=-}}|{{Label|Q27686|link=-}}}} ===
{{Maincat|Hospitality buildings in Paris}}
<gallery>
Hôtel de Crillon 25 08 2007.jpg|{{Center|1={{Label|Q692768|link=commons|capitalization=ucfirst}}}}
Lesdeuxmagots.jpg|{{Center|1={{Label|Q1147912|link=commons|capitalization=ucfirst}}}}
Hotel Ritz Paris.jpg|{{Center|1={{Label|Q656054|link=commons|capitalization=ucfirst}}}}
Le Fouquet's (café hotel).JPG|{{Center|1={{Label|Q3079972|link=commons|capitalization=ucfirst}}}}
</gallery>
=== {{Label|Q213441|link=-|capitalization=ucfirst}} ===
{{Maincat|Shops in Paris}}
[[File:Vivienne.jpg|800px|left|{{LangSwitch|en=Shopping arcade Galerie Vivienne}}]]
<gallery>
Galerie Lafayette Haussmann Dome.jpg|{{Center|1={{Label|Q218613|link=commons}}<br/>({{Label|Q12493|link=-}})}}
Galeries Lafayette Paris, 2006.jpg|{{LangSwitch|en=Galeries Lafayette departement store: inside the main building}}
Grands magasins eclairage de Noel.JPG|{{LangSwitch|en=Galeries Lafayette departement store: by night at Christmas}}
BHV vue de l'hotel de ville.JPG|{{Center|1={{Label|Q2892394|link=commons|capitalization=ucfirst}}<br/>({{Label|Q183061|link=-}})}}
Le bon marche a noel.jpg|{{Center|1={{Label|Q1200698|link=commons}}<br/>({{Label|Q183061|link=-}})}}
Bon Marché, Paris - interior view.JPG|{{Center|1={{Label|Q1200698|link=-}}<br/>({{Label|Q2998430|link=-}})}}
Samaritaine.jpg|{{Center|1={{Label|Q1583780|link=commons|capitalization=ucfirst}}<br/>({{Label|Q183061|link=-}})}}
Facade printemps.JPG|{{Center|1={{Label|Q1535260|link=commons|capitalization=ucfirst}}<br/>({{Label|Q183061|link=-}})}}
Havre caumartin haussmann.jpg|{{Center|1={{Label|Q1535260|link=-|capitalization=ucfirst}}<br/>({{Label|P3451|link=-}})}}
Street market rue Mouffetard St Medard dsc00727.jpg|{{Center|1={{Label|Q2112543|link=commons|capitalization=ucfirst}}}}
Bouquiniste Paris.jpg|{{LangSwitch|en=Stand of a bouquiniste (french term for second-hand books resellers)}}
Channel headquarters.jpg|{{Center|1={{Label|Q218115|link=commons|capitalization=ucfirst}}<br/>({{Label|Q643520|link=commons|capitalization=ucfirst}})}}
Paris - Passage Jouffroy 01.jpg|{{Center|1={{Label|Q2055773|link=commons|capitalization=ucfirst}}}}
Galerie Colbert.jpg|{{Center|1={{Label|Q1294677|link=commons|capitalization=ucfirst}}}}
Panorama de Gal.Vivienne, Paris.JPG|{{Center|1={{Label|Q1314020|link=commons|capitalization=ucfirst}}}}
Vivienne.jpg|{{Center|1={{Label|Q1314020|link=-|capitalization=ucfirst}}<br/>({{Label|Q39659461|link=-}})}}
Marche aux Puces 07.jpg|{{Center|1={{Label|Q385870|link=-|capitalization=ucfirst}}<br/>({{Label|Q3399039|link=commons|capitalization=ucfirst}})}}
Devanture églomisée 20050917.jpg|{{Center|1={{Label|Q22922067|link=commons|capitalization=ucfirst}}}}
20051018Épicerie d'Amélie Poulain 2.jpg|{{Center|1={{LangSwitch|en={{Label|Q13584407|link=-|capitalization=ucfirst}}|fr=L'épicerie utilisée pour le film [[:Category:Le Fabuleux Destin d'Amélie Poulain|Amélie Poulain]]}}}}
Louis Vitton.JPG|{{Center|1={{Label|Q191485|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q178512|link=-|capitalization=ucfirst}} ==
{{Maincat|Transport in Paris}}
=== {{Label|Q55488|link=-|capitalization=ucfirst}} ===
{{Maincat|Rail transport in Paris}}
<gallery>
Gare du Nord 0005.jpg|{{Center|1={{Label|Q745942|link=commons|capitalization=ucfirst}}}}
Gare montparnasse exterieur.jpg|{{Center|1={{Label|Q631114|link=commons|capitalization=ucfirst}}}}
Gare de Lyon (nojhan).jpg|{{Center|1={{Label|Q747541|link=commons|capitalization=ucfirst}}}}
Garestlazare.jpg|{{Center|1={{Label|Q747506|link=commons|capitalization=ucfirst}}}}
Gare de l'Est Paris 2007 a6.jpg|{{Center|1={{Label|Q757180|link=commons|capitalization=ucfirst}}}}
Gare d'Austerlitz Paris FRA 001.jpg|{{Center|1={{Label|Q734017|link=commons|capitalization=ucfirst}}}}
</gallery>
=== {{Label|Q50716|link=-|capitalization=ucfirst}} ===
{{Main gallery|Paris Metro}}
<gallery>
2251572276 bf04e47333 b Metro de Parie ligne 8 porte de Charenton.jpg
Saint-Michel-quais-depuis-puits-dacces.jpg
2085017310 eefc1b5ab9 b Metro de Paris ligne 10 station Cluny Sorbonne.jpg
195682656 90b5548f1e b Metro de Paris station Montparnasse Bienvenue.jpg
Metro de Paris ligne 2 station La Chapelle 01.jpg
184017112 cfaa1efbe7 o Metro de Paris tunnel ligne 4 pres d Odeon.jpg
182737952 b95e56415f o Metro de Paris tunnel ligne 5 Place d'Italie.jpg
1139435960 c8695fb116 b Metro de Paris couloirs de correspondance.jpg
Metro de Paris coulor de correspondance.jpg
Ligne-6-Quai-de-la-Gare-1.jpg
Saint-Lazare-9-Salle-echang.jpg
Metro-Paris-Ligne-1-station.jpg
Metro de Paris Couloir de correspondance station Montaparnasse, April 2005.jpg
Metro-Paris-ligne-1-Pont-de.jpg
Ligne-7-Ville-juif-Leo-2-La.jpg
Metro-Paris-ligne-14-statio.jpg
Ligne-14-Chatelet-1.jpg
Ligne-13-invalides-portes-a.jpg
Metro-sur-viaduc-Austerlitz.jpg
Metro-Paris-Rame-MF77-ligne.jpg
Entree-station-pont-de-sevr.jpg
Ligne-6-Glaciere-1.jpg
</gallery>
=== {{LangSwitch
|en=Other transport stations
|es=Otros
|fr=Autres gares
|sco=Ither transport stations
}} ===
* {{Label|Q216125|link=commons|capitalization=ucfirst}} ({{Label|Q389554|link=commons|capitalization=ucfirst}})
<gallery>
Station-rer-la-defense.jpg|{{Center|1={{Label|Q741818|link=commons|capitalization=ucfirst}}<br/>({{Label|Q2661251|link=commons}})}}
Paris - RER B Luxembourg 01.jpg|{{Center|1={{Label|Q1347825|link=commons|capitalization=ucfirst}}<br/>({{Label|Q1772325|link=commons}})}}
Gare du Musée d'Orsay, Paris 9 April 2014 004.jpg|{{Center|1={{Label|Q200906|link=commons|capitalization=ucfirst}}<br/>({{Label|Q15260427|link=commons}})}}
Chatelet-Les-Halles aCRW 1495.jpg|{{Center|1={{Label|Q1425351|link=commons|capitalization=ucfirst}}<br/>({{Label|Q800627|link=commons}})}}
193743650 db943ded1a o Paris RER E Station Haussman.jpg|{{Center|1={{Label|Q668655|link=commons|capitalization=ucfirst}}<br/>({{Label|Q800898|link=commons}})}}
</gallery>
* {{Label|Q1142114|link=commons|capitalization=ucfirst}}
<gallery>
T1 Entre Mairie de Villeneuve et La Noue 5.JPG|{{Center|1={{Label|Q369969|link=commons|capitalization=ucfirst}}}}
Paris T2.jpg|{{Center|1={{Label|Q1771110|link=commons|capitalization=ucfirst}}}}
Paris tramway T3 p1140675.jpg|{{Center|1={{Label|Q1032765|link=commons|capitalization=ucfirst}}}}
Gare de Bondy 03.jpg|{{Center|1={{Label|Q1826681|link=commons|capitalization=ucfirst}}}}
Station Pointe Lac Câble IdF Ligne 1 - Créteil (FR94) - 2025-10-08 - 3.jpg
</gallery>
* {{Label|P1659|link=-|capitalization=ucfirst}}
<gallery>
RATP 163 Porte de Champerret.JPG|{{LangSwitch|en=RATP Bus line 163}}
Paris Montmartre Cable-Car.JPG|{{Center|1={{Label|Q99562|link=commons|capitalization=ucfirst}}}}
Station Velib DSC 3497.JPG|{{Center|1={{Label|Q1120762|link=commons|capitalization=ucfirst}}}}
Terminal 1 of CDG Airport.jpg|{{Center|1={{Label|Q46280|link=commons|capitalization=ucfirst}}}}
OrlyVal Orly.JPG|{{Center|1={{Label|Q223416|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Conj|{{Label|Q3918|link=-|capitalization=ucfirst}}|{{Label|Q16463|link=-|capitalization=ucfirst}}|{{Label|Q7075|link=-|capitalization=ucfirst}}}} ==<!-- Universités, lycées et bibliothèques -->
{{Maincat|Universities and colleges in Paris|Libraries in Paris}}
<gallery>
Universite Paris I Pantheon-Sorbonne.jpg|{{Center|1={{Label|Q999763|link=commons|capitalization=ucfirst}}}}
Maison des provinces de france.jpg|{{Center|1={{Label|Q1094300|link=commons|capitalization=ucfirst}}}}
Paris 75005 Rue Saint-Jacques La Sorbonne facade 01a.jpg|{{Center|1={{Label|Q3491150|link=commons|capitalization=ucfirst}}}}
Sorbonne - Hall 2bis.jpg|{{Center|1={{Label|Q3491150|link=commons|capitalization=ucfirst}}}}
DSC 7111-lycee-louis-le-gra.jpg|{{Center|1={{Label|Q1059546|link=commons|capitalization=ucfirst}}}}
Bibliotèque nationale de France, site Richelieu (salle ovale).JPG|{{Center|1={{Label|Q193563|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q1076486|link=-|capitalization=ucfirst}}==<!-- Installation sportive -->
{{Maincat|Sports venues in Paris}}
<gallery>
Paris masters court.jpg|{{Center|1={{Label|Q537720|link=commons|capitalization=ucfirst}}}}
Internationaux de Roland Garros Paris 2007.jpg|{{Center|1={{Label|Q1613027|link=commons|capitalization=ucfirst}}}}
Court Philippe Chatrier - 1er tour de Roland Garros 2010 - tennis french open.jpg|{{Center|1={{Label|Q3026397|link=commons|capitalization=ucfirst}}}}
Paris-Parc-des-Princes.jpg|{{Center|1={{Label|Q193431|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q188509|link=-|capitalization=ucfirst}} ==<!--banlieue-->
=== {{Label|Q987729|link=-|capitalization=ucfirst}} ===<!--La Défense-->
{{Main gallery|La Défense}}
<gallery>
GrandeArche.jpg|sunset
Paris - Blick vom großen Triumphbogen.jpg|{{LangSwitch|en=View from Arc de Triomphe}}
Global view of La Défense.png|{{Center|1={{Label|Q465837|link=-|capitalization=ucfirst}}}}
Censored-Arche de la Défense-Paris.PNG|{{LangSwitch|en=The Grande Arche}}
Défense-parvis-pano2.jpg|{{LangSwitch|en=view from the Grande Arche}}
Barges in Paris P1000596.JPG|{{LangSwitch|en=view from Saint-Cloud}}
</gallery>
=== {{Label|Q184407|link=-|capitalization=ucfirst}} ===<!--Basilique Saint-Denis-->
{{Maincat|Basilique Saint-Denis}}
<gallery>
St denis nave.jpg|{{Center|1={{Label|Q188714|link=-|capitalization=ucfirst}}}}
St Denis Choir Glass.jpg|{{LangSwitch|en=The northwest nave}}
Louis XVI et Marie-Antoinette.jpg|{{Center|1={{Label|Q7732|link=commons|capitalization=ucfirst}}{{And}}{{Label|Q47365|link=commons|capitalization=ucfirst}}<br/>({{Label|Q381885|link=-|capitalization=ucfirst}})}}
Theuderich and Martell.JPG|{{LangSwitch|en=Tomb of Clovis II (foreground) and Charles Martel}}
</gallery>
=== {{Label|Q621|link=-|capitalization=ucfirst}} ===<!--Versailles-->
{{Main gallery|Versailles}}
<gallery>
Versailles Palace.jpg|
Versailles-Chateau-Jardins.jpg|
Chateau Versailles Galerie des Glaces.jpg|{{Center|1={{FP star}} {{Label|Q1583447|link=commons|capitalization=ucfirst}}}}
179829957 418160cd52 b chapelle de Versailles.jpg|{{Center|1={{Label|Q2095189|link=commons|capitalization=ucfirst}}}}
Bassin Apollon.jpg|{{Center|1={{Label|Q2887454|link=commons|capitalization=ucfirst}}}}
Versailles Cathédrale saint Louis.JPG|{{Center|1={{Label|Q2124804|link=commons|capitalization=ucfirst}}}}
Orangerie.jpg|{{Center|1={{Label|Q2524243|link=commons|capitalization=ucfirst}}}}
Marie Antoinette amusement at Versailles.JPG|{{Center|1={{Label|Q8051|link=commons|capitalization=ucfirst}}}}
Grand Trianon7.JPG|{{Center|1={{Label|Q8049|link=commons|capitalization=ucfirst}}}}
Versailles Queen's Chamber.jpg|{{Center|1={{Label|Q2485326|link=commons|capitalization=ucfirst}}}}
</gallery>
=== {{LangSwitch
|en=Other places in Parisian suburbs
|fr=Autres lieux de la banlieue de Paris
|sco=Ither places in Parisian suburbs
}} ===
[[File:Chateau Champs sur Marne.jpg|thumb|800px|left|{{Center|1={{Label|Q161787|link=commons|capitalization=ucfirst}}}}]]
<gallery>
Val de Seine.jpg|{{Center|1={{Label|Q135265|link=commons|capitalization=ucfirst}}}}
Meudon-Observatoire.jpg|{{Center|1={{Label|Q461340|link=commons|capitalization=ucfirst}}}}
Parc de Sceaux (vue cote Chatenay).jpg|{{Center|1={{Label|Q19799735|link=commons|capitalization=ucfirst}}}}
P1060649 Panorama.JPG|{{Center|1={{Label|Q19799735|link=commons|capitalization=ucfirst}}}}
Chateau de Chantilly garden.jpg|{{Center|1={{Label|Q766938|link=commons|capitalization=ucfirst}}<br/>({{Label|Q1107656|link=-}})}}
Chantilly2 tango7174.jpg|{{Center|1={{Label|Q766938|link=commons|capitalization=ucfirst}}}}
Chateau st germain en laye.JPG|{{Center|1={{Label|Q1520841|link=commons|capitalization=ucfirst}}}}
Moulin Saulnier.jpg|{{Center|1={{Label|Q13402677|link=commons|capitalization=ucfirst}}<br/>({{Label|Q900479|link=-}})}}
VaulxDeCernay.jpg|{{Center|1={{Label|Q752055|link=commons|capitalization=ucfirst}}}}
</gallery>
== {{Label|Q845625|link=-|capitalization=ucfirst}} ==<!-- Histoire de Paris -->
{{Maincat|History of Paris}}
<gallery>
Thomas Girtin 004.jpg|{{Center|1={{Label|Q2174628|link=-}}<br/>({{Label|Q6883|link=-}})}}
Construction tour eiffel4.JPG|{{Center|1={{Label|Q243|link=-}}<br/>({{Label|Q7829|link=-}})}}
Grand entrance, Exposition Universal, 1900, Paris, France.jpg|{{Center|1={{Label|Q753646|link=commons|capitalization=ucfirst}}<br/>({{Label|Q1137365|link=-}})}}
75-Paris-Porte Saint-Denis-1908.JPG|{{Center|1={{Label|Q684594|link=-}}<br/>({{Label|Q2056|link=-}})}}
Paris1890s3.jpg|{{Center|1={{LangSwitch|default=Grand Hôtel at the corner of Place de l'Opéra|fr=Grand Hôtel à l'angle de la place de l'Opéra}}{{Label||link=commons|capitalization=ucfirst}}<br/>({{Label|Q7832|link=-}})}}
Paris1890sView.jpg|{{Center|1={{Label|Q90|link=commons|capitalization=ucfirst}}<br/>({{Label|Q7832|link=-}})}}
ParisGlorieDeLaRepubliqueFrancaise.jpg|{{Center|1={{Label|Q15057808|link=commons|capitalization=ucfirst}}<br/>({{Label|Q7832|link=-}})}}
Paris expo 1937.jpg|Vue sur l'Exposition universelle de 1937 à Paris.
</gallery>
== {{Conj|{{Label|Q3305213|link=-|capitalization=ucfirst}}|{{Label|Q93184|link=-|capitalization=ucfirst}}}} ==<!-- peinture et dessin -->
{{Maincat|Paintings of Paris}}
<gallery>
Les Très Riches Heures du duc de Berry octobre.jpg|{{Center|1=''{{Label|Q211062|link=commons|capitalization=ucfirst}}, {{Label|Q16941171|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q6189|link=-}})}}
Wedding ball of the Duc de Joyeuse, 1581.JPG|{{Center|1=''{{Label|Q19820066|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q6717|link=-}})}}
Episode of the Fronde at the Faubourg Saint-Antoine by the Walls of the Bastille.png|{{Center|1={{Label|Q2890900|link=commons|capitalization=ucfirst}}<br/>({{Label|Q6962|link=-}})}}
Raguenet - Le Pont Neuf, la Samaritaine et la pointe de la Cité.jpg|{{Center|1=''{{Label|Q21006175|link=commons|capitalization=ucfirst}}'', {{Label|Q1986673|link=commons|capitalization=ucfirst}}<br/>({{Label|Q7015|link=-}})}}
Pierre-Denis Martin 003.jpg|{{fr|Louis XV sortant du lit de justice tenu au parlement le 12 septembre 1715 from Pierre-Denis Martin (1673-1742)}}
Charles Thévenin - La prise de la Bastille.jpg|{{fr|Prise de la Bastille (1789) from Charles Thévenin (1793)}}
Charles Thévenin - La Fête de la Fédération.jpg|{{fr|Fête de la Fédération (1790) from Charles Thévenin}}
Démolition de l'église Saint-Barthélemy à Paris.JPG|{{fr|Démolition de l'église Saint-Barthélemy (1791) Pierre-Antoine Demachy}}
Boilly-Point-de-Convention-ca1797.jpg|{{LangSwitch|en="Absolutely no agreement" (ca 1790) from Louis-Leopold Boilly (ca 1797)}}
Passer-payez-Boilly-ca1803.jpg|{{LangSwitch|en="Passer Payez", ca. 1803 from Louis-Leopold Boilly.}}
Louis Léopold Boilly - L'entrée du théâtre.jpg|{{LangSwitch|en=Entrance to a free show at the Ambigu-Comique Theatre from Louis-Léopold Boilly (1819)}}
Vernet - 31 juillet 1830 - Louis-Philippe quitte le Palais-Royal.jpg|{{LangSwitch|en=French Revolution of 1830 from Horace Vernet}}
Révolution de 1830 - Combat de la rue de Rohan - 29.07.1830.jpg|{{LangSwitch|en=French Revolution of 1830 from Hippolyte Lecomte}}
Paris Porte Saint-Denis c1840.jpg|Porte Saint-Denis vers 1840 par Ph. Benoist
Claude Monet Saint-Germain-l'Auxerrois Paris 1867.jpg|{{Center|1=''{{Label|Q18683944|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q296|link=commons}}, 1867)}}
Le Pont Neuf - Claude Monet.jpg|{{Center|1=''{{Label|Q10316714|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q296|link=-}}, 1873)}}
Claude Monet 008.jpg|{{Center|1=''{{Label|Q4949676|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q296|link=-}}, 1873)}}
G. Caillebotte - Le pont de l'Europe.jpg|{{Center|1=''{{Label|Q47466453|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q295144|link=commons}}, 1876)}}
Gustave Caillebotte - Jour de pluie à Paris.jpg|{{Center|1=''{{Label|Q1452762|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q295144|link=-}}, 1877)}}
G. Caillebotte - Vue de toits, effet de neige.jpg|{{Center|1=''{{Label|Q47466359|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q295144|link=-}}, 1878)}}
Camille Pissarro 007.jpg|{{Center|1=''{{Label|Q15873469|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q134741|link=commons}}, 1897)}}
Willem de Zwart - Straat in Montmartre, Parijs, bij winter.jpg|{{Center|1=''{{Label|Q17334251|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q1809999|link=commons}}, {{Between|1885|1931}})}}
Rue Montargueil with Flags.jpg|{{Center|1=''{{Label|Q3212522|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q296|link=-}}, 1886)}}
Douanier Rousseau tour Eiffel.jpg|{{Center|1=''{{Label|Q19018229|link=commons|capitalization=ucfirst}}''<br/>({{Label|Q156386|link=commons}}, 1898)}}
</gallery>
== {{Label|Q1190554|link=-|capitalization=ucfirst}} ==<!-- Évènement -->
{{Maincat|Events in Paris}}
<gallery>
French Republican Guard Bastille Day 2007 n4.jpg|{{Center|1={{Label|Q3043180|link=commons|capitalization=ucfirst}}}}
Runners @ Marathon de Paris @ Seine @ Paris (26182560626).jpg|{{Center|1={{Label|Q1071285|link=commons|capitalization=ucfirst}}}}
Foire de Paris 2011 - Entrée - 001.jpg|{{Center|1={{Label|Q3074859|link=commons|capitalization=ucfirst}}}}
SalonAgriculture.JPG|{{Center|1={{Label|Q3470165|link=commons|capitalization=ucfirst}}}}
Quai du Louvre, 2016 Techno Parade 016.jpg|{{Center|1={{Label|Q3516911|link=commons|capitalization=ucfirst}}}}
Fête place de la République à Paris, le 12 juin 2005.jpeg|{{LangSwitch|default=Libération de<br/>Florence Aubenas<br/>& Hussein Hanoun|fr=Libération de<br/>Florence Aubenas<br/>& Hussein Hanoun}}
</gallery>
=== {{Conj|{{Label|Q1707432|link=-|capitalization=ucfirst}}|{{Label|Q2215841|link=-|capitalization=ucfirst}}}} ===<!-- Roller et Vélo -->
{{Maincat|Roller skating in Paris|Bicycles in Paris}}
<gallery>
Paris rollers dsc03843.jpg|{{LangSwitch|default=rue du Temple, towards République|fr=rue du Temple, près de République}}
Paris rollers dsc03846.jpg|{{LangSwitch|default=rue du Temple, towards République|fr=rue du Temple, près de République}}
Voies sur berge le dimancheDSC 4436.JPG|{{LangSwitch|default=Sunday when quays are car free|fr=Dimanche, lorsqu'il n'y a pas de voitures sur les quais}}
Quai de Seine en piste cyclable DSC 4405.JPG|{{LangSwitch|default=Sunday when quays are car free|fr=Dimanche, lorsqu'il n'y a pas de voitures sur les quais}}
</gallery>
== {{Label|Q34508|link=-|capitalization=ucfirst}} ==<!-- Vidéo -->
{{Maincat|Videos from Paris}}
<gallery>
Un Hiver à Paris - Vimeo.webm|{{LangSwitch|default=Paris en hiver|en=Paris in the winter|fr=Paris en hiver}}
</gallery>
</div>
[[Category:Gallery pages of Paris| ]]
4s7kftrlxy0qokn4em979z94mip6biz
743976
743975
2026-05-23T17:34:40Z
Ludo Games-T
73707
Replaced content with "{{Most populous cities of the world}} {{Departments of France}} [[Category:Gallery pages of Paris| ]]"
743976
wikitext
text/x-wiki
{{Most populous cities of the world}}
{{Departments of France}}
[[Category:Gallery pages of Paris| ]]
pfudd1zyhn58czgrmcd6qxx7t9xlwqx
743978
743976
2026-05-23T17:41:46Z
AutoModeratorTest
61468
Reverted edits by [[Special:Contributions/Ludo Games-T|Ludo Games-T]] ([[User talk:Ludo Games-T|talk]]) to last revision by [[User:UndueMarmot|UndueMarmot]]
739759
wikitext
text/x-wiki
Data from the [[testwikidata:Q610|Wikidata item]]
* [[testwikidata:Property:P17|Country (P17)]]: {{#invoke:WikidataIB|getValue|P17|fwd=ALL|osd=no|noicon=yes}}
* [[testwikidata:Property:P101|ISO 3166-1 alpha-2 (P101)]]: {{#invoke:WikidataIB|getValue|P101|fwd=ALL|osd=no|noicon=yes}}
* [[testwikidata:Property:P125|Coordinate location (P125)]]: {{#invoke:WikidataIB|getValue|P125|fwd=ALL|osd=no|noicon=yes}}
8mq0krkjdob4hu4b8w7r8aduqi955nl
Test112323
0
169287
743983
687066
2026-05-23T21:43:26Z
Enbi
72574
Enbi moved page [[Test11]] to [[Test112323]]
687066
wikitext
text/x-wiki
111
bghj9veatdhte03utuvpyfkibtsbg76
Talk:Test234566781
1
169359
743985
691012
2026-05-23T21:43:26Z
Enbi
72574
Enbi moved page [[Talk:Test11]] to [[Talk:Test112323]]
691012
wikitext
text/x-wiki
{{Old_vfd_multi|1=2025/06|2=ir|page=Test11|multi = 1|date2 = 2025/06|result2 = ir|page2 = Test11|date3 = 2025/06|result3 = k|page3 = Test11}}
p640r6g11joblp8jfoifmxn0obfwahj
743987
743985
2026-05-23T21:44:52Z
Enbi
72574
Enbi moved page [[Talk:Test112323]] to [[Talk:Test112324]]
691012
wikitext
text/x-wiki
{{Old_vfd_multi|1=2025/06|2=ir|page=Test11|multi = 1|date2 = 2025/06|result2 = ir|page2 = Test11|date3 = 2025/06|result3 = k|page3 = Test11}}
p640r6g11joblp8jfoifmxn0obfwahj
743989
743987
2026-05-23T21:51:57Z
Enbi
72574
Enbi moved page [[Talk:Test112324]] to [[Talk:Test112324282828]]
691012
wikitext
text/x-wiki
{{Old_vfd_multi|1=2025/06|2=ir|page=Test11|multi = 1|date2 = 2025/06|result2 = ir|page2 = Test11|date3 = 2025/06|result3 = k|page3 = Test11}}
p640r6g11joblp8jfoifmxn0obfwahj
743991
743989
2026-05-23T21:54:38Z
Enbi
72574
Enbi moved page [[Talk:Test112324282828]] to [[Talk:Test234566781]]
691012
wikitext
text/x-wiki
{{Old_vfd_multi|1=2025/06|2=ir|page=Test11|multi = 1|date2 = 2025/06|result2 = ir|page2 = Test11|date3 = 2025/06|result3 = k|page3 = Test11}}
p640r6g11joblp8jfoifmxn0obfwahj
纯旋量
0
169471
743993
691192
2026-05-24T00:03:17Z
InternetArchiveBot
34092
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
743993
wikitext
text/x-wiki
在[[数学]]中被称为[[表示论]]的领域里,'''纯旋量'''(或称'''简单旋量''')是指这样一些[[旋量]]:在[[Clifford代数|Clifford代数表示]]下,它们被向量空间<math> V </math>的某个[[Quadric (algebraic geometry)#Isotropic Grassmannians and the projective pure spinor variety|极大各向同性子空间]]湮灭,而该向量空间配备了一个标量积<math>Q</math>。它们由[[埃利·卡当|Élie Cartan]]在20世纪30年代引入,<ref name="Car2">{{cite book |last=Cartan |first=Élie |author-link=Élie Cartan |url=https://books.google.com/books?isbn=0486640701 |title=The theory of spinors |publisher=[[Dover Publications]] |year=1981 |isbn=978-0-486-64070-9 |location=New York |mr=631850 |orig-date=1938}}</ref> 随后由[[克洛德·谢瓦莱|Claude Chevalley]]进一步发展。<ref name="Ch2">{{cite book |last=Chevalley |first=Claude |author-link=Claude Chevalley |title=The Algebraic Theory of Spinors and Clifford Algebras |publisher=Columbia University Press (1954); Springer (1996) |year=1996 |isbn=978-3-540-57063-9 |edition=reprint |orig-year=1954}}</ref>
它们是在研究[[旋量结构]]以及[[twistor理论]]的高维推广时的关键成分,<ref name="PenRin2">{{Cite book |last1=Penrose |first1=Roger |author-link=Roger Penrose |title=Spinors and Space-Time |last2=Rindler |first2=Wolfgang |publisher=Cambridge University Press |year=1986 |isbn=9780521252676 |pages=Appendix |language=en |doi=10.1017/cbo9780511524486}}</ref> 后者由[[罗杰·彭罗斯|Roger Penrose]]在20世纪60年代提出。 它们已被应用于10维的[[N = 4 supersymmetric Yang–Mills theory|超对称杨–米尔斯理论]]的研究,<ref name="W22">{{cite journal |last1=Witten |first1=E. |author-link=Witten |year=1986 |title=Twistor-like transform in ten dimensions |journal=Nuclear Physics |volume=B266 |issue=2 |pages=245–264 |bibcode=1986NuPhB.266..245W |doi=10.1016/0550-3213(86)90090-8}}</ref><ref name="HS12">{{cite journal |last1=Harnad |first1=J. |author1-link=John Harnad |last2=Shnider |first2=S. |year=1986 |title=Constraints and Field Equations for Ten Dimensional Super Yang-Mills Theory |url=http://projecteuclid.org/euclid.cmp/1104115696 |journal=Commun. Math. Phys. |volume=106 |issue=2 |pages=183–199 |bibcode=1986CMaPh.106..183H |doi=10.1007/BF01454971 |s2cid=122622189}}</ref> [[超弦理论|超弦]]、<ref name="Berk2" /> [[广义复结构]]<ref name="Hi2">{{cite journal |last=Hitchin |first=Nigel |year=2003 |title=Generalized Calabi-Yau manifolds |journal=[[Quarterly Journal of Mathematics]] |volume=54 |issue=3 |pages=281–308 |doi=10.1093/qmath/hag025 |authorlink=Nigel Hitchin}}</ref> <ref name="Gu2">{{cite journal |last=Gualtieri |first=Marco |year=2011 |title=Generalized complex geometry |journal=[[Annals of Mathematics]] |series=(2) |volume=174 |issue=1 |pages=75–123 |arxiv=0911.0993 |doi=10.4007/annals.2011.174.1.3 |doi-access=free}}</ref> 以及对[[可积系统|可积层级]]解的参数化。<ref name="DJKM32">{{cite journal |last1=Date |first1=Etsuro |last2=Jimbo |first2=Michio |author2-link=Michio Jimbo |last3=Kashiwara |first3=Masaki |author3-link=Masaki Kashiwara |last4=Miwa |first4=Tetsuji |author4-link=Tetsuji Miwa |year=1982 |title=Transformation groups for soliton equations IV. A new hierarchy of soliton equations of KP type |journal=Physica |volume=4D |issue=11 |pages=343–365}}</ref><ref name="DJKM42">{{cite journal |last1=Date |first1=Etsuro |last2=Jimbo |first2=Michio |author2-link=Michio Jimbo |last3=Kashiwara |first3=Masaki |author3-link=Masaki Kashiwara |last4=Miwa |first4=Tetsuji |author4-link=Tetsuji Miwa |year=1983 |title=Transformation groups for soliton equations |journal=In: Nonlinear Integrable Systems - Classical Theory and Quantum Theory |publisher=World Scientific (Singapore) |pages=943–1001 |editor=M. Jimbo and T. Miwa}}</ref><ref name="BHH2">{{cite journal |last1=Balogh |first1=F. |last2=Harnad |first2=J. |author2-link=John Harnad |last3=Hurtubise |first3=J. |author3-link=Jacques Hurtubise (mathematician) |year=2021 |title=Isotropic Grassmannians, Plücker and Cartan maps |journal=Journal of Mathematical Physics |volume=62 |issue=2 |pages=121701 |arxiv=2007.03586 |doi=10.1063/5.0021269 |s2cid=220381007}}</ref>
== 克利福德代数和纯旋量 ==
考虑一个[[复数|复]][[向量空间]]<math> V </math>,其维数要么是偶数<math> 2n </math>,要么是奇数<math> 2n+1 </math>,并在其上给出一个非退化的复[[标量积]]<math> Q </math>,在向量对<math> (u, v) </math>上取值为<math> Q(u,v) </math>。 [[Clifford代数]]<math> Cl(V, Q) </math>是<math> V </math>上全[[张量|张量代数]]按下面关系生成的理想商: ::<math>u\otimes v + v \otimes u = 2 Q(u,v), \quad \forall \ u, v \in V. </math>
:: <math>u\otimes v + v \otimes u = 2 Q(u,v), \quad \forall \ u, v \in V. </math>
[[旋量]]是Clifford代数的[[模 (数学)|模]],因此特别地,<math> V </math>的元素在旋量空间上有作用。湮灭某个给定非零旋量<math> \psi </math>的复子空间<math> V^0_\psi \subset V </math>的维数为<math> m \le n </math>。若<math> m=n </math>,则称<math> \psi </math>为一个'''纯旋量'''。从按自旋群<math>Spin(V,Q)</math>轨道对旋量模进行分层的角度看,纯旋量对应于最小的轨道,这些轨道构成了按自旋表示在不可约旋量(或半旋量)模上的轨道类型进行分层时的[[希洛夫边界]]。
纯旋量在按射影化定义后,被称为'''射影纯旋量'''。当<math>\,V\,</math>的维数为偶数<math>2n</math>时,射影纯旋量的空间是[[齐性空间]]<math> SO(2n)/U(n)</math>;当<math>\,V\,</math>的维数为奇数<math>2n+1</math>时,该空间为<math> SO(2n+1)/U(n)</math>。
== 不可约克利福德模、旋量、纯旋量和卡尔坦映射 ==
=== 不可约克利福德/旋量模块 ===
依照Cartan<ref name="Car3" />和Chevalley<ref name="Ch3" />的处理,我们可以把<math>V</math>看作如下直和
:: <math>V= V_n \oplus V_n^*\ \text{ or }\ V= V_n \oplus V_n^*\oplus\mathbf{C},</math>
: <math> 2^{n-1} - \tfrac{1}{2}\,n(n-1) - 1 </math>
: <math> 2^n - \tfrac{1}{2}\,n(n+1) - 1 </math>
: <math>\psi \; \Gamma_\mu \, \psi = 0~, \quad \mu= 1, \dots, 10, </math>
对于<math>d=10 </math>维、<math> N=1</math>的[[N = 4 supersymmetric Yang–Mills theory|超对称杨–米尔斯理论]],'''超ambitwistor'''对应<ref name="W23" /><ref name="HS13" />给出了[[N = 4 supersymmetric Yang–Mills theory|超对称场方程]]与沿'''超零测地线'''(其维数为<math>(1 | 16) </math>,其中<math>16</math>个Grassmann维度对应一个纯旋量)的超曲率消失之间的等价。维数约化则给出<math>d=6</math>、<math> N=2</math>以及<math>d=4</math>、<math> N=3</math>或<math> 4</math>时的对应结果
在[[佐藤幹夫|Mikio Sato]]<ref name="Sa2">{{cite journal |last=Sato |first=Mikio |author-link=Mikio Sato |year=1981 |title=Soliton equations as dynamical systems on infinite dimensional Grassmann manifolds |journal=Kokyuroku, RIMS, Kyoto Univ. |pages=30–46}}</ref>及其学生<ref name="DJKM12">{{cite journal |last1=Date |first1=Etsuro |last2=Jimbo |first2=Michio |author2-link=Michio Jimbo |last3=Kashiwara |first3=Masaki |author3-link=Masaki Kashiwara |last4=Miwa |first4=Tetsuji |author4-link=Tetsuji Miwa |year=1981 |title=Operator Approach to the Kadomtsev-Petviashvili Equation–Transformation Groups for Soliton Equations III– |journal=Journal of the Physical Society of Japan |publisher=Physical Society of Japan |volume=50 |issue=11 |pages=3806–3812 |bibcode=1981JPSJ...50.3806D |doi=10.1143/jpsj.50.3806 |issn=0031-9015}}</ref><ref name="DJKM22">{{cite journal |last1=Jimbo |first1=Michio |author1-link=Michio Jimbo |last2=Miwa |first2=Tetsuji |author2-link=Tetsuji Miwa |year=1983 |title=Solitons and infinite-dimensional Lie algebras |journal=Publications of the Research Institute for Mathematical Sciences |publisher=European Mathematical Society Publishing House |volume=19 |issue=3 |pages=943–1001 |doi=10.2977/prims/1195182017 |issn=0034-5318 |doi-access=free}}</ref>发展起来的[[Integrable systems#Hirota bilinear equations|可积层级]]理论中,各层级的方程被视为无限维[[Grassmannian]]上的对易流动的相容性条件。在(无限维)'''Cartan映射'''下,射影纯旋量与无限维Grassmann流形中的元素等价,后者由在某个适当定义的复标量积下[[Hilbert空间]]的极大各向同性子空间组成。因此,它们作为BKP可积层级解的模,<ref name="DJKM33" /><ref name="DJKM43" /><ref name="BHH3" /> 参数化了相关的BKP[[Tau function (integrable systems)|<math>\tau</math>函数]],而这些函数是各个流动的生成函数。在'''Cartan映射'''对应下,它们可以表示为无限维Fredholm[[Pfaffian]]。<ref name="BHH3" />
== 参考 ==
{{Reflist}}
== 参考书目 ==
* {{Cite book |author=Cartan |first=Élie |author-link=Élie Cartan |title=The Theory of Spinors |publisher=Hermann (1966) |year=1981 |isbn=978-0-486-64070-9 |edition=reprint |series=Dover Publications |location=Paris, FR |orig-year=1966}}
* {{Cite book |author=Chevalley |first=Claude |author-link=Claude Chevalley |title=The Algebraic Theory of Spinors and Clifford Algebras |publisher=Columbia University Press (1954); Springer (1996) |year=1996 |isbn=978-3-540-57063-9 |edition=reprint |orig-year=1954}}
* Charlton, Philip. [http://csusap.csu.edu.au/~pcharlto/charlton_thesis.pdf The geometry of pure spinors, with applications] {{Webarchive|url=https://web.archive.org/web/20060903191426/http://csusap.csu.edu.au/~pcharlto/charlton_thesis.pdf |date=2006-09-03 }}, PhD thesis (1997).
[[Category:旋量]]
6c52hrrm38qbwfziirboe2kebqeudut
User:Ponor/wAwB-worker.js
2
171632
743996
743878
2026-05-24T05:24:32Z
Ponor
47975
[[:en:User_talk:Ponor/wAwB#c-Andrybak-20260523230600-Tooltips_for_icon-only_buttons]]
743996
javascript
text/javascript
/*
* wAwB – An in-browser application for automated editing of wiki pages.
* Features: customizable regex or JavaScript search-and-replace rules,
* custom JavaScript pre/post-processing functions and function libraries,
* granular protection or targeting of different parts of wikitext,
* a full-fledged CodeMirror editor, and options to move, delete, and protect pages.
* Author: [[User:Ponor]]
* Documentation: [[User:Ponor/wAwB]]
* License: GNU General Public License (GPL)
*/
//<nowiki>
mw.loader.using([
'oojs-ui-core',
'oojs-ui-widgets',
'oojs-ui-windows',
'mediawiki.api',
'mediawiki.diff.styles',
'mediawiki.util',
'mediawiki.page.gallery.styles',
'oojs-ui.styles.icons-content',
'oojs-ui.styles.icons-interactions',
'oojs-ui.styles.icons-movement',
'oojs-ui.styles.icons-moderation',
'oojs-ui.styles.icons-editing-core',
'oojs-ui.styles.icons-editing-advanced'
]).then(function() {
// =====================================================================
// 1. STATE & CONFIGURATION
// =====================================================================
var SCRIPT_TIMEOUT_MS = window.wa_timeout || 5000;
var FETCH_SAFETY_LIMIT = window.wa_fetchLimit || 10000;
var APP_NAME = "wAwB";
var DO_TAG = false;
var SUMMARY_SUFFIX = window.wa_suffix || " [[:en:User:Ponor/wAwB| #wAwB]]";
var APP_VERSION = "0.6";
var DOC_URL = window.wa_docUrl || "https://en.wikipedia.org/wiki/User:Ponor/wAwB";
document.title = window.wa_editIn || "Edit in wAwB";
var PERMS = {
canSave: false,
allowBot: false,
saveDelay: 0
};
var IS_ADMIN = mw.config.get('wgUserGroups').includes('sysop');
var CAN_MOVE = IS_ADMIN || mw.config.get('wgUserGroups').includes('extendedmover') || mw.config.get('wgUserGroups').includes('filemover') || mw.config.get('wgUserGroups').includes('pagemover');
var WIKI = mw.config.get('wgDBname');
var SAVED_RUN = 0;
var SAVED_SESSION = 0;
var currentPageExists = false;
var isRunning = false;
var isFetching = false;
var currentTitle = null;
var currentVars = {};
var currentLibrary = {
name: null,
code: null
};
var originalWikitext = "";
var currentPageSummaryAppend = "";
var currentPageSummaryOverride = null;
var baseRevId = 0;
var currentViewMode = 'diff';
var autoSaveTimer = null;
var propNamesLoaded = false;
var hasNewSources = false;
var currentHeightMode = 1; // 0=25%, 1=45% (default), 2=72%
var heightValues = ['25%', '45%', '72%'];
// EXTERNAL RULES STATE
var wikiTypos = [];
var localTypos = [];
// LOADING FLAG
var isLoadingProject = false;
// NAMESPACE ALIASES
var nsIds = mw.config.get('wgNamespaceIds');
var catAliases = [],
fileAliases = [];
for (var key in nsIds) {
if (nsIds[key] === 14) catAliases.push(key.replace(/_/g, ' '));
if (nsIds[key] === 6) fileAliases.push(key.replace(/_/g, ' '));
}
catAliases.sort((a, b) => b.length - a.length);
fileAliases.sort((a, b) => b.length - a.length);
var REGEX_CAT_PFX = catAliases.map(mw.util.escapeRegExp).join('|');
var REGEX_FILE_PFX = fileAliases.map(mw.util.escapeRegExp).join('|');
// MASTER PROTECTION DEFINITIONS
var PROTECTION_DEFS = [{
id: 'nowiki',
isOn: true,
label: 'Nowiki: <nowiki>',
regex: /<nowiki>[\s\S]*?<\/nowiki>|<nowiki\s*\/>/gi
},
{
id: 'comments',
isOn: true,
label: 'Comments: <!' + '-- -->',
regex: new RegExp('<!' + '--[\\s\\S]*?--' + '>', 'g')
},
{
id: 'headers',
isOn: false,
label: 'Headers: == Title ==',
regex: /^==+[\s\S]+?==+\s*$/gm
},
{
id: 'templates',
isOn: false,
label: 'Templates: {{...}}',
open: '{{',
close: '}}',
species: null,
regex: null
},
{
id: 'tables',
isOn: false,
label: 'Tables: {|...|}',
open: '\n{|',
close: '\n|}',
regex: null
},
{
id: 'images',
isOn: false,
label: 'Images: [[File:...|...|...]]',
open: '[[',
close: ']]',
species: '(?:' + REGEX_FILE_PFX + ')\\s*:',
regex: null
},
{
id: 'refs',
isOn: true,
label: 'Refs: <ref...',
regex: /<ref[^>]*?\/>|<ref[^>]*?(?<!\/)>[\s\S]*?<\/ref>/gi
},
{
id: 'blocks',
isOn: false,
label: 'Blocks: math, gallery...',
regex: null
},
{
id: 'categories',
isOn: true,
label: 'Categories: [[Category:...]]',
regex: new RegExp('\\[\\[\\s*(' + REGEX_CAT_PFX + ')\\s*:[^\\]]+\\]\\]', 'giu')
},
{
id: 'files',
isOn: true,
label: 'File names: File:...',
regex: new RegExp('(?<=\\[\\[\\s*:?(:?' + REGEX_FILE_PFX + ')\\s*:)[^|\\]]+' + '|^\\s*(?:' + REGEX_FILE_PFX + ')\\s*:([^\\][}{|\\n]{1,150}\\.(?:svg|png|jpe?g|gif|tiff|webp|xcf|mp3|midi|ogg|webm|flac|wav|mpe?g|pdf|djv))', 'gmiu')
},
{
id: 'targets',
isOn: false,
label: 'Targets of [[...|',
regex: /(?<=\[\[:?)[^|\]]+?(?=\||\]\])/g
},
{
id: 'extlinks',
isOn: true,
label: 'External links: [...]',
regex: /(?<=\[)(https?:\/\/|ftps?:\/\/|mailto:)[^\]]+(?=\])/gi
},
{
id: 'urls',
isOn: true,
label: 'URLs: http...',
regex: /https?:\/\/[^\s<>[\]"'`()]+/gi
}
];
// =====================================================================
// 2. CSS STYLES
// =====================================================================
var styles = `
* { box-sizing: border-box; }
#wa-root { font-family: sans-serif; height: 100vh; width: 100vw; overflow: hidden; display: flex; font-size: 14px; }
#wa-left-panel { width: 400px; min-width: 400px; max-width: 400px; background: var(--background-color-base, #fff); border-right: 1px solid #c8ccd1; display: flex; flex-direction: column; z-index: 10; overflow-x: hidden; }
#wa-left-panel h3 { color: #3f6fcf; text-align: center; margin: 12px 0 0 0; }
#wa-username { color: #3f6fcf; text-align: center; margin: 2px 0; font-size: 92%; }
#wa-content-area { flex: 1; padding: 10px 10px 100px 10px; overflow-y: auto; overflow-x: hidden; }
#wa-right-panel { flex: 1; display: flex; flex-direction: column; height: 100%; background: var(--background-color-interactive, #eaecf0); overflow: hidden; }
#wa-visual-output { flex: 0 0 45%; min-height: 0; overflow-y: auto; background: var(--background-color-base, #fff); padding: 20px; border-bottom: 1px solid #c8ccd1; }
.wa-editor-header { flex: 0 0 40px; min-height: 40px; padding: 0 10px; background: var(--background-color-interactive-subtle, #f8f9fa); border-bottom: 1px solid #c8ccd1; display: flex; gap: 25px; justify-content: space-between; align-items: center; z-index: 10; }
.wa-editor-header.wa-dirty { background: var(--background-color-warning-subtle, #fdf2d5); border-bottom: 1px solid #e6a700; }
.wa-header-left { flex: 1; display: flex; align-items: center; gap: 5px; min-width: 0; overflow: hidden; }
.wa-header-right { flex: 0 0 auto; display: flex; justify-content: flex-end; align-items: center; gap: 8px; color: var(--color-placeholder, #72777d); font-size: 0.9em; }
.wa-title-link { font-weight: bold; font-size: 1.1em; color: var(--color-progressive--focus, #36c) !important; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-shrink: 0; max-width: 40%; }
.wa-title-link:hover { text-decoration: underline; }
#wa-status-indicator { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; background-color: #00af89; cursor: help; transition: background-color 0.2s; margin-right: 2px; }
#wa-status-indicator.wa-status-working { background-color: #36c; animation: wa-pulse-blue 1.5s infinite; }
#wa-status-indicator.wa-status-error { background-color: #bf3c2c; }
@keyframes wa-pulse-blue { 0% { opacity: 1; } 50% { opacity: 0.4; } 100% { opacity: 1; } }
.wa-header-sep { border-left: 1px solid #ccc; height: 16px; flex-shrink: 0; margin: 0 2px; }
#wa-summary-preview { flex-grow: 1; color: #d00; font-style: italic; white-space: nowrap; text-overflow: ellipsis; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; font-size: 1em; }
#wa-summary-preview::-webkit-scrollbar { display: none; }
.wa-info-container { margin-right: 10px; }
.wa-tools-container { display: flex; align-items: center; gap: 2px; }
.wa-resize-container { display: flex; flex-direction: column; justify-content: center; height: 100%; margin-left: 10px; padding-left: 5px; border-left: 1px solid #ccc; }
.wa-resize-btn { cursor: pointer; color: #72777d; user-select: none; width: 20px; height: 14px; display: flex; align-items: center; justify-content: center; transition: color 0.1s ease-in-out; }
.wa-resize-btn:hover { color: #36c; }
.wa-resize-btn.wa-resize-disabled { color: #ccc; cursor: default; }
#wa-proc-header { margin-top: 15px !important; border-bottom: none !important; cursor: default; }
#wa-proc-title { font-weight: bold; padding: 10px; display: block; }
#wa-proc-content { padding: 0 10px 15px 10px; }
#wa-editor-area { flex: 1; min-height: 0; display: flex; flex-direction: column; background: var(--background-color-base, #fff); position: relative; overflow: hidden; }
#wa-editor-textarea { flex: 1; height: 100%; font-family: monospace; font-size: 13px; border: none; outline: none; padding: 10px; resize: none; width: 100%; }
.cm-editor { height: 100% !important; flex: 1; }
.wa-section-header { margin-top: 12px; border-bottom: 1px solid #eee; width: 100%; display: block; margin-left: 0 !important; }
#wa-content-area .wa-section-header:first-child, #wa-content-area .wa-section-header.oo-ui-buttonElement-frameless:first-child { margin-top: 0; margin-left: 0 !important; }
.wa-section-header > .oo-ui-buttonElement-button { text-align: left; padding: 10px 10px !important; margin: 0 !important; display: block; width: 100%; position: relative; border-left: 3px solid #3f6fcf !important; border-radius: 3px !important; background-color: transparent !important; }
.wa-section-header > .oo-ui-buttonElement-button:focus { outline: none !important; }
.wa-section-header .oo-ui-labelElement-label { font-weight: bold; padding-left: 0 !important; margin-left: 0 !important; color: var(--color-base, #202122); }
.wa-section-header .oo-ui-indicatorElement-indicator { position: absolute; right: 10px !important; top: 50%; margin-top: -10px; left: auto !important; width: 20px; }
.wa-foldable-content { display: none; padding: 10px 0; }
.wa-source-options { background: var(--background-color-interactive-subtle, #f8f9fa); border: 1px solid #c8ccd1; border-top: none; padding: 8px; margin-bottom: 10px; font-size: 0.9em; }
.wa-opt-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 5px; }
.wa-opt-label { font-weight: bold; width: 100%; margin-bottom: 5px; color: var(--color-base, #202122); }
.wa-opt-row > div { margin-top: 8px !important; margin-bottom: 8px !important; }
.wa-rule-row { background: var(--background-color-interactive-subtle, #f8f9fa); border: 1px solid #c8ccd1; padding: 8px; margin-bottom: 8px; border-radius: 4px; display: flex; align-items: stretch; transition: background-color 0.3s; }
.wa-rule-row.wa-highlight { background-color: var(--background-color-interactive, #eaecf0); border-color: #36c; }
.wa-rule-controls { display: flex; flex-direction: column; justify-content: center; gap: 0px; padding-right: 4px; border-right: 1px solid #eee; margin-right: 8px; }
.wa-rule-btn { margin: 0 !important; margin-right: 0 !important; margin-left: 0 !important; }
.wa-rule-btn > .oo-ui-buttonElement-button { margin: 0 !important; }
.wa-rule-content { flex: 1; min-width: 0; }
.wa-rule-opt-row { display: flex; justify-content: space-between; align-items: center; margin-top: 5px; }
#wa-ns-selector { width: 100%; margin-bottom: 10px; font-family: sans-serif; font-size: 0.9em; border: 1px solid #a2a9b1; }
.wa-lib-dialog > .oo-ui-window-frame { width: 80vw !important; max-width: none !important; height: 80vh !important; max-height: none !important; }
.wa-lib-editorwrapper { height: 100%; border: 1px solid #c8ccd1; position: relative; boxSizing: border-box; }
.wa-page-list-raw textarea { font-family: monospace; font-size: 0.9em; white-space: pre; overflow-x: auto; }
.wa-list-running textarea { background-color: var(--background-color-neutral-subtle, #f8f8f8) !important; color: var(--color-base, #202122) !important; }
.wa-grid-container { display: flex; gap: 6px; margin-bottom: 10px; }
.wa-grid-col { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.wa-grid-col .oo-ui-buttonWidget { width: 100%; }
.wa-grid-col .oo-ui-buttonWidget .oo-ui-buttonElement-button { width: 100%; text-align: center; justify-content: center; }
.wa-toolbar { display: flex; justify-content: flex-end; align-items: center; gap: 4px; border-bottom: 1px solid #eee; padding-bottom: 4px; margin-bottom: 4px; }
.wa-list-counter { margin-right: auto; font-weight: bold; color: var(--color-subtle, #54595d); font-size: 0.9em; padding-left: 5px; }
.wa-project-bar { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 10px; margin: 8px 0; justify-content: center; }
.wa-project-bar .oo-ui-buttonElement-button { padding-left: 36px !important; padding-right: 12px !important; font-size: 0.9em; }
.wa-project-bar .oo-ui-iconElement-icon { left: 10px !important; }
.wa-settings-header { font-weight: bold; color: var(--color-subtle, #54595d); margin-bottom: 8px; display: block; text-transform: uppercase; font-size: 0.9em; }
.wa-setting-row { display: flex; align-items: center; margin-bottom: 6px; }
.wa-bot-row { background: var(--background-color-success-subtle, #dff2eb); border: 1px solid #a5d6a7; padding: 8px; margin-bottom: 10px; border-radius: 4px; display: flex; align-items: center; justify-content: flex-start; gap: 15px; }
table.diff { width: 100%; font-family: "Adwaita Mono", "Courier New", monospace }
table.diff td { vertical-align: top; }
table.diff tr:hover td { background-color: var(--background-color-progressive-subtle--hover, #d9e2ff); cursor: pointer; }
@keyframes wa-pulse-red { 0% { box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.4); border-color: #ff0000; } 70% { box-shadow: 0 0 0 6px rgba(255, 0, 0, 0); border-color: #ff0000; } 100% { box-shadow: 0 0 0 0 rgba(255, 0, 0, 0); border-color: #ff0000; } }
.wa-summary-warning input { animation: wa-pulse-red 1s infinite; border-color: #ff0000 !important; }
`;
$('<style>').text(styles).appendTo('head');
$('body').empty();
// =====================================================================
// 3. HELPER FUNCTIONS
// =====================================================================
function checkPermissions() {
return new Promise(function(resolve) {
var api = new mw.Api();
var projectNs = mw.config.get('wgFormattedNamespaces')[4];
var checkTitles = {
'permissions': projectNs + ':AutoWikiBrowser/CheckPageJSON',
'tag': 'MediaWiki:Tag-wAwB'
};
api.get({
action: 'query',
prop: 'revisions',
titles: Object.values(checkTitles).join('|'),
rvprop: 'content',
rvslots: 'main',
formatversion: 2
}).then(function(data) {
var pagePerms = data.query.pages.find(p => p.title === checkTitles['permissions']);
var pageTag = data.query.pages.find(p => p.title === checkTitles['tag']);
DO_TAG = pageTag.missing === undefined;
var userName = mw.config.get('wgUserName');
var userGroups = mw.config.get('wgUserGroups');
var isSysop = userGroups.includes('sysop');
if (!pagePerms.missing) {
try {
var content = pagePerms.revisions[0].slots.main.content;
var json = JSON.parse(content);
var inEnabledUsers = json.enabledusers && json.enabledusers.includes(userName);
var inEnabledBots = json.enabledbots && json.enabledbots.includes(userName);
var isBotGroup = userGroups.includes('bot');
var canSave = inEnabledUsers || inEnabledBots || isSysop;
var allowBot = inEnabledBots && isBotGroup;
resolve({
canSave: canSave,
allowBot: allowBot,
saveDelay: 0
});
} catch (e) {
resolve({
canSave: false,
allowBot: false,
saveDelay: 0
});
}
} else {
var editCount = mw.config.get('wgUserEditCount');
if (editCount > 500) resolve({
canSave: true,
allowBot: false,
saveDelay: 20000
});
else resolve({
canSave: false,
allowBot: false,
saveDelay: 0
});
}
}).catch(function() {
resolve({
canSave: false,
allowBot: false,
saveDelay: 0
});
});
});
}
function getUserCode(widget, globalName) {
var val = widget.getValue().trim();
if (!val || val.startsWith('// Enter')) {
if (window[globalName] && typeof window[globalName] === 'function') {
var s = window[globalName].toString();
return s.substring(s.indexOf('{') + 1, s.lastIndexOf('}'));
}
return "";
}
if (val.startsWith('function')) {
return val.substring(val.indexOf('{') + 1, val.lastIndexOf('}'));
}
return val;
}
function normalizeLine(line) {
if (!line) return null;
// Pass through comments/STOP commands (trimmed)
if (line.trim().startsWith('####')) return line.trim();
// Handle Title|Variables
var parts = line.split('|');
var title = parts[0].trim();
if (!title) return null; // Skip if title is empty
// Reassemble: Clean Title + Original Variables (preserving whitespace)
var rest = parts.length > 1 ? parts.slice(1).join('|') : null;
return title + (rest !== null ? '|' + rest : '');
}
function getNormalizedList(text) {
if (!text) return [];
return text.split('\n')
.map(normalizeLine)
.filter(function(l) {
return l !== null;
});
}
function getDeduplicatedList(text) {
if (!text) return [];
var seen = new Set();
var out = [];
var lines = text.split('\n');
for (var i = 0; i < lines.length; i++) {
var clean = normalizeLine(lines[i]);
if (clean && !seen.has(clean)) {
seen.add(clean);
out.push(clean);
}
}
return out;
}
function parseTypoContent(content) {
if (!content) return [];
try {
var $wrapper = $('<body>').html(content);
var rules = [];
$wrapper.find('Typo:not([disabled])').each(function() {
var $t = $(this);
var find = $t.attr('find');
var replace = $t.attr('replace');
if (find && replace !== undefined) {
rules.push({
find: find,
replace: replace,
regex: true,
flags: 'gmu',
enabled: true,
isFunc: false
});
}
});
return rules;
} catch (e) {
return [];
}
}
function updateSummaryPreview(baseText) {
var base = currentPageSummaryOverride !== null ? currentPageSummaryOverride : (baseText || "");
var finalSum = base + (currentPageSummaryAppend || "");
var previewText = finalSum ? injectVars(finalSum) : '';
$('#wa-summary-preview').text(previewText);
}
function injectVars(text) {
if (!text) return "";
return text.replace(/\$x([A-Z]|x)/g, function(match) {
return currentVars[match] || match; // Swap it, or leave it alone if undefined
});
}
// =====================================================================
// 4. UI CONSTRUCTION
// =====================================================================
checkPermissions().then(function(pState) {
PERMS = pState;
var $main = $('<div>').attr('id', 'wa-root').appendTo('body');
var $left = $('<div>').attr('id', 'wa-left-panel').appendTo($main);
$left.append($('<h3>').append($('<a>').attr('href', DOC_URL).attr('target', '_blank').text(APP_NAME).css({
'text-decoration': 'none',
'color': 'inherit'
})));
$left.append($('<div>').attr('id', 'wa-username').append($('<a>').attr('href', mw.util.getUrl('Special:Contributions/' + mw.config.get('wgUserName'))).attr('target', '_blank').text('User: ' + mw.config.get('wgUserName')).css({
'text-decoration': 'none',
'color': 'inherit'
})));
var btnSaveProj = new OO.ui.ButtonWidget({
icon: 'download',
label: 'Save project',
framed: false,
flags: 'progressive'
});
var btnLoadProj = new OO.ui.ButtonWidget({
icon: 'upload',
label: 'Load project',
framed: false
});
var $projBar = $('<div>').addClass('wa-project-bar').append(btnSaveProj.$element, btnLoadProj.$element);
$left.append($projBar);
var $fileInput = $('<input type="file" accept=".json">').hide().appendTo('body');
var $content = $('<div>').attr('id', 'wa-content-area').appendTo($left);
var $right = $('<div>').attr('id', 'wa-right-panel').appendTo($main);
var $editorHeader = $('<div>').addClass('wa-editor-header').appendTo($right);
var $headerLeft = $('<div>').addClass('wa-header-left').appendTo($editorHeader);
var $statusIndicator = $('<span>').attr('id', 'wa-status-indicator').attr('title', 'Ready').appendTo($headerLeft);
var $titleLink = $('<a>').addClass('wa-title-link').text('Page content').attr('target', '_blank').appendTo($headerLeft);
$('<span>').addClass('wa-header-sep').appendTo($headerLeft);
var $summaryPreview = $('<span>').attr('id', 'wa-summary-preview').appendTo($headerLeft);
var $headerRight = $('<div>').addClass('wa-header-right').appendTo($editorHeader);
var $infoContainer = $('<span>').addClass('wa-info-container').appendTo($headerRight);
var $toolsContainer = $('<div>').addClass('wa-tools-container').appendTo($headerRight);
var $resizeContainer = $('<div>').addClass('wa-resize-container').appendTo($headerRight);
var $adminTools = $('<div>').addClass('wa-admin-tools').hide().appendTo($toolsContainer);
// Wide chevron SVGs
var svgUp = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="8" viewBox="0 0 24 12"><path d="M2 10 L12 2 L22 10" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg>';
var svgDown = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="8" viewBox="0 0 24 12"><path d="M2 2 L12 10 L22 2" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg>';
var $btnSizeUp = $('<div>').addClass('wa-resize-btn').html(svgUp).attr('title', 'Decrease view size');
var $btnSizeDown = $('<div>').addClass('wa-resize-btn').html(svgDown).attr('title', 'Increase view size');
$resizeContainer.append($btnSizeUp, $btnSizeDown);
function setPanelHeight(modeIndex) {
currentHeightMode = modeIndex;
if (currentHeightMode < 0) currentHeightMode = 0;
if (currentHeightMode > 2) currentHeightMode = 2;
$('#wa-visual-output').css('flex-basis', heightValues[currentHeightMode]);
$btnSizeUp.toggleClass('wa-resize-disabled', currentHeightMode === 0);
$btnSizeDown.toggleClass('wa-resize-disabled', currentHeightMode === 2);
}
$btnSizeUp.on('click', function() {
if (!$(this).hasClass('wa-resize-disabled')) setPanelHeight(currentHeightMode - 1);
});
$btnSizeDown.on('click', function() {
if (!$(this).hasClass('wa-resize-disabled')) setPanelHeight(currentHeightMode + 1);
});
setPanelHeight(1);
if (CAN_MOVE) {
var btnAdminMove = new OO.ui.ButtonWidget({
icon: 'move',
title: 'Move page to $xA',
disabled: true,
framed: false
});
$adminTools.append(btnAdminMove.$element).show();
}
if (IS_ADMIN) {
var btnAdminDel = new OO.ui.ButtonWidget({
icon: 'trash',
title: 'Delete page',
disabled: true,
framed: false
});
var btnAdminProt = new OO.ui.ButtonWidget({
icon: 'lock',
title: 'Protect page',
disabled: true,
framed: false
});
$adminTools.append(btnAdminDel.$element, btnAdminProt.$element).show();
}
var btnManualEdit = new OO.ui.ButtonWidget({
icon: 'edit',
title: 'Open in manual editor',
framed: false,
disabled: true
});
var btnWatch = new OO.ui.ButtonWidget({
icon: 'star',
title: 'Watch this page',
framed: false,
disabled: true,
accessKey: 'w'
});
$toolsContainer.append(btnManualEdit.$element, btnWatch.$element);
var $visualOut = $('<div>').attr('id', 'wa-visual-output').html('<div style="color:#aaa; text-align:center; margin-top:50px;">Ready to start...</div>').prependTo($right);
var $editorArea = $('<div>').attr('id', 'wa-editor-area').appendTo($right);
var $textArea = $('<textarea>').attr('id', 'wa-editor-textarea').attr('placeholder', 'Page text will appear here...').appendTo($editorArea);
function setStatus(msg, type) {
if (!msg) msg = "Ready";
$statusIndicator.attr('title', msg).removeClass('wa-status-error wa-status-working');
if (type === 'error') $statusIndicator.addClass('wa-status-error');
if (type === 'working') $statusIndicator.addClass('wa-status-working');
}
// EDITOR OBJECT
var Editor = {
mode: 'textarea',
cmInstance: null,
init: function() {
var self = this;
mw.loader.using(['ext.CodeMirror', 'ext.CodeMirror.mode.mediawiki']).then(function(require) {
try {
self.cmInstance = new(require('ext.CodeMirror'))($textArea[0], (require('ext.CodeMirror.mode.mediawiki')).mediawiki());
self.cmInstance.initialize();
self.mode = 'codemirror';
} catch (e) {
console.error("CM Error", e);
}
}).catch(function(err) {
console.error("CM Load Error:", err);
});
$textArea.on('input', updateDirtyState);
},
getValue: function() {
return (this.mode === 'codemirror' && this.cmInstance) ? this.cmInstance.view.state.doc.toString() : $textArea.val();
},
setValue: function(text) {
$textArea.val(text);
if (this.mode === 'codemirror' && this.cmInstance) {
this.cmInstance.view.dispatch({
changes: {
from: 0,
to: this.cmInstance.view.state.doc.length,
insert: text
}
});
} else {
$textArea[0].dispatchEvent(new Event('input'));
}
},
setDisabled: function(d) {
$textArea.prop('disabled', d);
if (this.mode === 'codemirror' && this.cmInstance) {
this.cmInstance.view.contentDOM.contentEditable = !d;
$($textArea).parent().find('.cm-editor').css('opacity', d ? 0.5 : 1);
}
},
scrollToLine: function(n) {
if (isNaN(n)) return;
if (this.mode === 'codemirror' && this.cmInstance) {
var v = this.cmInstance.view;
var l = v.state.doc.line(n);
v.dispatch({
effects: v.constructor.scrollIntoView(l.from, {
y: 'center'
}),
selection: {
anchor: l.from
}
});
v.focus();
}
}
};
var WorkerEngine = {
activeWorker: null,
workerURL: null,
currentLibCode: null,
timeoutTimer: null,
initWorker: function(libCode) {
this.destroy(); // Clean up existing if any
this.currentLibCode = libCode || "";
var scriptContent = this.currentLibCode + "\n\n" + `
self.onmessage = async function(e) {
try {
var data = e.data;
var inputs = data.texts || [data.text];
var vars = data.vars;
var outputs = [];
// Helper to construct async functions dynamically
var AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;
function inject(str) {
if (!str) return "";
return str.replace(/\\$x([A-Z]|x)/g, function(m) { return vars[m] || ""; });
}
// Returns a Promise and handles 'await' inside user code
async function execUserFunc(code, currentText, currentVars, sharedObj) {
if (!code || code.trim() === "") return currentText;
try {
var func = new AsyncFunction('text', 'vars', 'shared', code);
var res = await func(currentText, currentVars, sharedObj);
if (res && typeof res === 'object' && res.skip) {
return { _skipSignal: true, reason: res.reason || 'Script-requested skip' };
}
return (res !== undefined) ? res : currentText;
} catch (err) {
throw err; // or: return currentText
}
}
var shared = {}; // Shared context for this page
for (var i = 0; i < inputs.length; i++) {
var text = inputs[i];
// 1. Pre-Process
var preRes;
if (data.preCode && data.preCode.trim() !== "") {
preRes = await execUserFunc(data.preCode, text, vars, shared);
} else if (typeof wAwB_Pre === 'function') {
try {
preRes = await wAwB_Pre(text, vars, shared);
if (preRes && typeof preRes === 'object' && preRes.skip) {
preRes = { _skipSignal: true, reason: preRes.reason || 'Script-requested skip' };
}
} catch (err) { preRes = text; }
} else {
preRes = text;
}
if (preRes && preRes._skipSignal) {
self.postMessage({ skipped: true, reason: preRes.reason });
return;
}
text = (preRes !== undefined) ? preRes : text;
// 2. Rules Processing
if (data.rules && data.rules.length > 0) {
data.rules.forEach(function(rule) {
var findStr = inject(rule.find);
if (!findStr) return;
if (rule.isFunc) {
try {
var userFunc = new Function('match', 'groups', 'vars', 'shared', rule.replace);
text = text.replace(new RegExp(findStr, (rule.flags || 'gmu').replace(/[^gimsuvy]/g, '')), function(...args) {
var match = args[0];
var groups = args.slice(1, -2);
try {
var res = userFunc(match, groups, vars, shared);
return res !== undefined ? res : match;
} catch (err) { return match; }
});
} catch (e) {}
} else {
var repStr = inject(rule.replace).replace(/\\\\n/g, "\\n").replace(/\\\\t/g, "\\t").replace(/\\\\r/g, "\\r");
if (rule.regex) {
try {
var flags = (rule.flags || 'gmu').replace(/[^gimsuvy]/g, '');
text = text.replace(new RegExp(findStr, flags), repStr);
} catch (e) {}
} else {
var finalFind = findStr.replace(/\\\\n/g, "\\n").replace(/\\\\t/g, "\\t").replace(/\\\\r/g, "\\r");
text = text.split(finalFind).join(repStr);
}
}
});
}
// 3. Post-Process
var postRes;
if (data.postCode && data.postCode.trim() !== "") {
postRes = await execUserFunc(data.postCode, text, vars, shared);
} else if (typeof wAwB_Post === 'function') {
try {
postRes = await wAwB_Post(text, vars, shared);
if (postRes && typeof postRes === 'object' && postRes.skip) {
postRes = { _skipSignal: true, reason: postRes.reason || 'Script-requested skip' };
}
} catch (err) { postRes = text; }
} else {
postRes = text;
}
if (postRes && postRes._skipSignal) {
self.postMessage({ skipped: true, reason: postRes.reason });
return;
}
text = (postRes !== undefined) ? postRes : text;
outputs.push(text);
}
self.postMessage({ success: true, texts: outputs, summaryAppend: shared.summaryAppend, summaryOverride: shared.summaryOverride });
} catch (err) { self.postMessage({ success: false, error: err.toString() }); }
};
`;
var blob = new Blob([scriptContent], {
type: 'application/javascript'
});
this.workerURL = URL.createObjectURL(blob);
this.activeWorker = new Worker(this.workerURL);
},
run: function(payload) {
var self = this;
return new Promise(function(resolve, reject) {
// Re-init if no worker exists, or if the user changed the library code
if (!self.activeWorker || self.currentLibCode !== (payload.libraryCode || "")) {
self.initWorker(payload.libraryCode);
}
if (self.timeoutTimer) clearTimeout(self.timeoutTimer);
self.timeoutTimer = setTimeout(function() {
self.destroy(); // Assassinate the stuck worker
reject("Script timed out (" + SCRIPT_TIMEOUT_MS + "ms).");
}, SCRIPT_TIMEOUT_MS);
self.activeWorker.onmessage = function(e) {
clearTimeout(self.timeoutTimer);
if (e.data.skipped) resolve({
skipped: true,
reason: e.data.reason
});
else if (e.data.success) resolve({
success: true,
texts: e.data.texts,
summaryAppend: e.data.summaryAppend,
summaryOverride: e.data.summaryOverride
});
else reject(e.data.error);
};
self.activeWorker.postMessage(payload);
});
},
destroy: function() {
if (this.activeWorker) {
this.activeWorker.terminate();
this.activeWorker = null;
}
if (this.workerURL) {
URL.revokeObjectURL(this.workerURL);
this.workerURL = null;
}
if (this.timeoutTimer) {
clearTimeout(this.timeoutTimer);
this.timeoutTimer = null;
}
}
};
var PageProtector = {
store: [],
getKey: function() {
var id = this.store.length.toString();
var p = "";
for (var i = 0; i < id.length; i++) {
p += String.fromCharCode(0xE010 + parseInt(id[i]));
}
return '\uE000' + p + '\uE001';
},
protect: function(text, mode, config, templateSpecies = null) {
this.store = [];
var self = this;
var safeRep = function(t, r) {
return t.replace(r, function(m) {
if (!m) return m;
var key = self.getKey();
self.store.push(m);
return key;
});
};
var shouldProcess = function(id) {
if (mode === 'target') return config === id;
return config[id] === true;
};
var matchedBrackets = function(text, op, cl, species = '') {
var newText = "",
depth = 0,
start = 0,
cursor = 0;
var speciesRegex = species ? new RegExp(species, 'iu') : null;
for (var i = 0; i < text.length; i++) {
if (text[i] === op[0] && text.slice(i, i + op.length) === op) {
if (depth === 0) start = i;
depth++;
i += op.length - 1;
} else if (text[i] === cl[0] && text.slice(i, i + cl.length) === cl) {
if (depth > 0) {
depth--;
if (depth === 0) {
var chunk = text.substring(start, i + cl.length);
if (!speciesRegex || speciesRegex.test(chunk)) {
var key = self.getKey();
self.store.push(chunk);
newText += text.substring(cursor, start) + key;
} else {
newText += text.substring(cursor, i + cl.length);
}
cursor = i + cl.length;
}
i += cl.length - 1;
}
}
}
newText += text.substring(cursor);
return newText;
};
PROTECTION_DEFS.forEach(function(def) {
if (shouldProcess(def.id)) {
if (def.id === 'blocks') {
['math', 'pre', 'source', 'syntaxhighlight', 'code', 'gallery'].forEach(t => text = safeRep(text, new RegExp('<' + t + '[^>]*?>[\\s\\S]*?<\\/' + t + '>|<' + t + '[^>]*?/>', 'gi')));
} else if (['templates', 'tables', 'images'].includes(def.id)) {
var activeSpecies = (def.id === 'templates') ? templateSpecies : def.species;
text = matchedBrackets(text, def.open, def.close, activeSpecies || '');
} else if (def.regex) {
text = safeRep(text, def.regex);
}
}
});
return text;
},
restore: function(text) {
var self = this;
var loop = 100;
while (/(\uE000[\uE010-\uE019]+\uE001)/.test(text) && loop > 0) {
text = text.replace(/\uE000([\uE010-\uE019]+)\uE001/g, function(m, d) {
var id = "";
for (var i = 0; i < d.length; i++) id += (d.charCodeAt(i) - 0xE010).toString();
return self.store[parseInt(id, 10)] || m;
});
loop--;
}
return text;
}
};
var accordionRegistry = [];
function addSection(title, $inner) {
var btn = new OO.ui.ButtonWidget({
label: title,
indicator: 'down',
framed: false,
classes: ['wa-section-header']
});
var box = $('<div>').addClass('wa-foldable-content').append($inner);
var sectionObj = {
btn: btn,
box: box,
label: title
};
accordionRegistry.push(sectionObj);
btn.on('click', function() {
var isOpening = !box.is(':visible');
if (isOpening) {
accordionRegistry.forEach(function(sec) {
if (sec !== sectionObj) {
sec.box.hide();
sec.btn.setIndicator('down');
}
});
}
box.toggle();
btn.setIndicator(box.is(':visible') ? 'up' : 'down');
});
$content.append(btn.$element, box);
return sectionObj;
}
// WIDGETS
var srcSelect = new OO.ui.DropdownInputWidget({
options: [{
data: 'cat',
label: 'Category'
}, {
data: 'linksto',
label: 'Pages linking to...'
}, {
data: 'linkson',
label: 'Links on page...'
}, {
data: 'prefix',
label: 'Pages with prefix...'
}, {
data: 'watchlist',
label: 'Watchlist'
}, {
data: 'search',
label: 'Wiki search'
}, {
data: 'usercontribs',
label: 'User contributions'
}, {
data: 'pageswithprop',
label: 'Pages with property'
}]
});
var srcInput = new OO.ui.TextInputWidget({
placeholder: 'Category...'
});
var now = new Date();
var today = now.toISOString().split('T')[0];
var srcInputUser = new OO.ui.TextInputWidget({
placeholder: 'Username'
});
var srcInputStartDate = new OO.ui.TextInputWidget({
value: today + 'T00:00:00',
placeholder: 'ISO start date'
});
var srcInputEndDate = new OO.ui.TextInputWidget({
value: today + 'T23:59:59',
placeholder: 'ISO end date'
});
var srcDropProp = new OO.ui.DropdownInputWidget({
options: []
});
var $optContainer = $('<div>').addClass('wa-source-options').hide();
var $optCat = $('<div>').hide();
var $optUser = $('<div>').hide();
var $optProp = $('<div>').hide();
var chkCatPages = new OO.ui.CheckboxInputWidget({
selected: true
});
var chkCatSub = new OO.ui.CheckboxInputWidget({
selected: false
});
var chkCatFile = new OO.ui.CheckboxInputWidget({
selected: false
});
$optCat.append($('<div>').addClass('wa-opt-label').text('Include:'), new OO.ui.FieldLayout(chkCatPages, {
label: 'Pages',
align: 'inline'
}).$element, new OO.ui.FieldLayout(chkCatSub, {
label: 'Subcats',
align: 'inline'
}).$element, new OO.ui.FieldLayout(chkCatFile, {
label: 'Files',
align: 'inline'
}).$element);
$optUser.append(new OO.ui.FieldLayout(srcInputUser, {
label: 'User',
align: 'top'
}).$element, new OO.ui.FieldLayout(srcInputStartDate, {
label: 'Start (Older)',
align: 'top'
}).$element, new OO.ui.FieldLayout(srcInputEndDate, {
label: 'End (Newer)',
align: 'top'
}).$element);
$optProp.append(new OO.ui.FieldLayout(srcDropProp, {
label: 'Property',
align: 'top'
}).$element);
var $optLinks = $('<div>').hide();
var chkLinkWiki = new OO.ui.CheckboxInputWidget({
selected: true
});
var chkLinkTrans = new OO.ui.CheckboxInputWidget({
selected: false
});
var chkLinkImg = new OO.ui.CheckboxInputWidget({
selected: false
});
var dropLinkRedir = new OO.ui.DropdownInputWidget({
options: [{
data: 'nonredirects',
label: 'No redirects'
}, {
data: 'all',
label: 'Both'
}, {
data: 'redirects',
label: 'Redirects only'
}]
});
var chkLinkToRedir = new OO.ui.CheckboxInputWidget({
selected: false
});
$optLinks.append($('<div>').addClass('wa-opt-label').text('What to include:'), $('<div>').addClass('wa-opt-row').append(new OO.ui.FieldLayout(chkLinkWiki, {
label: 'Wikilinks',
align: 'inline'
}).$element, new OO.ui.FieldLayout(chkLinkTrans, {
label: 'Transclusions',
align: 'inline'
}).$element, new OO.ui.FieldLayout(chkLinkImg, {
label: 'File usage',
align: 'inline'
}).$element), $('<div>').addClass('wa-opt-label').text('Redirects:'), dropLinkRedir.$element, new OO.ui.FieldLayout(chkLinkToRedir, {
label: 'Include links to redirects',
align: 'inline'
}).$element);
$optContainer.append($optCat, $optLinks, $optUser, $optProp);
var queryCache = {};
var lastMode = 'cat';
srcSelect.on('change', function(newMode) {
if (!isLoadingProject) {
if (lastMode !== 'watchlist' && lastMode !== 'usercontribs' && lastMode !== 'pageswithprop') {
queryCache[lastMode] = srcInput.getValue();
}
}
$optContainer.hide();
$optCat.hide();
$optLinks.hide();
$optUser.hide();
$optProp.hide();
srcInput.setDisabled(false).$element.show();
if (newMode === 'cat') {
$optContainer.show();
$optCat.show();
} else if (newMode === 'linksto') {
$optContainer.show();
$optLinks.show();
} else if (newMode === 'usercontribs') {
$optContainer.show();
$optUser.show();
srcInput.setDisabled(true).$element.hide();
} else if (newMode === 'pageswithprop') {
$optContainer.show();
$optProp.show();
srcInput.setDisabled(true).$element.hide();
if (!propNamesLoaded) {
new mw.Api().get({
action: 'query',
list: 'pagepropnames',
ppnlimit: 'max'
}).then(function(d) {
if (d.query && d.query.pagepropnames) {
srcDropProp.setOptions(d.query.pagepropnames.map(p => ({
data: p.propname,
label: p.propname
})));
propNamesLoaded = true;
}
});
}
}
if (newMode === 'watchlist') {
srcInput.setValue('');
srcInput.setDisabled(true);
srcInput.$input.attr('placeholder', '(No query needed)');
} else if (newMode !== 'usercontribs' && newMode !== 'pageswithprop') {
srcInput.setValue(queryCache[newMode] || '');
var ph = 'Query...';
if (newMode === 'cat') ph = 'Category name';
if (newMode === 'search') ph = 'Search query...';
if (newMode === 'prefix') ph = 'Page prefix...';
if (newMode === 'linksto') ph = 'Pages linking to this title...';
if (newMode === 'linkson') ph = 'Get links from this page...';
srcInput.$input.attr('placeholder', ph);
}
lastMode = newMode;
});
srcSelect.emit('change', srcSelect.getValue());
var $nsSelect = $('<select>').attr('id', 'wa-ns-selector').attr('multiple', 'multiple').attr('size', '8');
var nsMap = mw.config.get('wgFormattedNamespaces');
for (var id in nsMap) {
if (parseInt(id) >= 0) $nsSelect.append($('<option>').val(id).text(id + ': ' + (nsMap[id] || '(Main)')));
}
$nsSelect.val(['0']);
var btnAdd = new OO.ui.ButtonWidget({
label: 'Add to list',
icon: 'add',
flags: ['primary', 'progressive']
});
var $btnRow = $('<div>').css({
'display': 'flex',
'justify-content': 'flex-end',
'margin-top': '10px'
});
var $fetchStatus = $('<span>').css({
'margin-right': '10px',
'color': '#888',
'font-size': '0.9em',
'align-self': 'center'
}).hide();
$btnRow.append($fetchStatus, btnAdd.$element);
addSection('Source', $('<div>').append(new OO.ui.FieldLayout(srcSelect, {
label: 'Mode',
align: 'top'
}).$element, new OO.ui.FieldLayout(srcInput, {
label: 'Query',
align: 'top'
}).$element, $optContainer, $('<div>').text('Namespaces:').css({
'font-weight': 'bold',
'margin-top': '5px'
}), $nsSelect, $btnRow));
var redirMode = new OO.ui.RadioSelectWidget({
items: [new OO.ui.RadioOptionWidget({
data: 'edit',
label: 'Edit the redirect page (Default)'
}), new OO.ui.RadioOptionWidget({
data: 'follow',
label: 'Follow redirect (Edit target)'
}), new OO.ui.RadioOptionWidget({
data: 'skip',
label: 'Skip redirects'
})]
});
redirMode.selectItemByData('edit');
var radSkipExist = new OO.ui.RadioSelectWidget({
items: [new OO.ui.RadioOptionWidget({
data: 'none',
label: 'Process all'
}), new OO.ui.RadioOptionWidget({
data: 'missing',
label: 'Skip if page does not exist'
}), new OO.ui.RadioOptionWidget({
data: 'exists',
label: 'Skip if page exists'
})]
});
radSkipExist.selectItemByData('none');
var chkSkipNoChange = new OO.ui.CheckboxInputWidget({
selected: false
});
var inpSkipContains = new OO.ui.TextInputWidget({
placeholder: 'Text/Regex for Skip if FOUND'
});
var togSkipContainsRegex = new OO.ui.ToggleSwitchWidget({
value: false,
title: 'Use regex'
});
var inpSkipNotContains = new OO.ui.TextInputWidget({
placeholder: 'Text/Regex for Skip if MISSING'
});
var togSkipNotContainsRegex = new OO.ui.ToggleSwitchWidget({
value: false,
title: 'Use regex'
});
var inpSkipCategories = new OO.ui.TextInputWidget({
placeholder: 'Skip if in: Category1|Category2'
});
var inpSkipNotCategories = new OO.ui.TextInputWidget({
placeholder: 'Skip if NOT in: Category1|Category2'
});
var $settingsPanel = $('<div>')
.append($('<span>').addClass('wa-settings-header').text('Redirects'))
.append(redirMode.$element)
.append($('<hr>').css('border-top', '1px solid #eee'))
.append($('<span>').addClass('wa-settings-header').text('Skip logic'))
.append(new OO.ui.FieldLayout(chkSkipNoChange, {
label: 'Skip if no changes made',
align: 'inline'
}).$element.css('margin-bottom', '8px'))
.append(radSkipExist.$element)
.append($('<hr>').css('border-top', '1px solid #eee'))
.append($('<span>').addClass('wa-settings-header').text('Content filters'))
.append($('<div>').addClass('wa-setting-row').append(inpSkipContains.$element.css('flex', 1), togSkipContainsRegex.$element.css('margin-left', '5px')))
.append($('<div>').addClass('wa-setting-row').append(inpSkipNotContains.$element.css('flex', 1), togSkipNotContainsRegex.$element.css('margin-left', '5px')))
.append($('<hr>').css('border-top', '1px solid #eee'))
.append($('<span>').addClass('wa-settings-header').text('Category filters'))
.append(new OO.ui.FieldLayout(inpSkipCategories, {
label: 'Blacklist',
align: 'top'
}).$element)
.append(new OO.ui.FieldLayout(inpSkipNotCategories, {
label: 'Whitelist',
align: 'top'
}).$element);
addSection('Skip', $settingsPanel);
var dropProtMode = new OO.ui.DropdownInputWidget({
options: [{
data: 'protect',
label: 'Protect (Exclude)'
}, {
data: 'target',
label: 'Target (Edit Matches Only)'
}]
});
var inpTemplateFilter = new OO.ui.TextInputWidget({
placeholder: 'Regex: infobox rail line|railway'
});
var $templateFilterLayout = new OO.ui.FieldLayout(inpTemplateFilter, {
label: 'Template filter',
align: 'top'
});
var $protList = $('<div>');
var protCheckboxes = {};
PROTECTION_DEFS.forEach(function(def) {
var chk = new OO.ui.CheckboxInputWidget({
selected: def.isOn
});
protCheckboxes[def.id] = chk;
$protList.append(new OO.ui.FieldLayout(chk, {
label: def.label,
align: 'inline'
}).$element);
});
var targetRadioItems = PROTECTION_DEFS.map(function(def) {
return new OO.ui.RadioOptionWidget({
data: def.id,
label: def.label
});
});
var radTargetSet = new OO.ui.RadioSelectWidget({
items: targetRadioItems
});
var $targetList = $('<div>').hide().append(radTargetSet.$element);
dropProtMode.on('change', function(mode) {
if (mode === 'protect') {
$protList.show();
$targetList.hide();
} else {
$protList.hide();
$targetList.show();
}
});
addSection('Protection', $('<div>').addClass('wa-source-options')
.append(new OO.ui.FieldLayout(dropProtMode, {
label: 'Mode',
align: 'top'
}).$element)
.append($('<hr>').css('border-top', '1px solid #eee'))
.append($protList).append($targetList)
.append($('<div style="margin-top:10px;">').append($templateFilterLayout.$element))
);
var $rulesList = $('<div>');
var btnAddRule = new OO.ui.ButtonWidget({
label: 'Add rule',
icon: 'add'
});
var rulesRegistry = [];
addSection('Rules', $('<div>').append($rulesList, btnAddRule.$element));
var togWikiTypos = new OO.ui.ToggleSwitchWidget({
value: false
});
var lblWikiStatus = $('<div>').css({
'font-size': '0.9em',
'color': '#888',
'margin-top': '2px'
});
var btnLoadLocal = new OO.ui.ButtonWidget({
icon: 'upload',
label: 'Load file',
framed: false
});
var btnClearLocal = new OO.ui.ButtonWidget({
icon: 'trash',
title: 'Clear local',
framed: false,
flags: 'destructive',
disabled: true
});
var lblLocalStatus = $('<div>').text('No local rules').css({
'font-size': '0.9em',
'color': '#888',
'margin-top': '2px'
});
var $typoInput = $('<input type="file">').hide().appendTo('body');
var $extRulesPanel = $('<div>').addClass('wa-source-options');
$extRulesPanel.append(
$('<div>').css({
'display': 'flex',
'align-items': 'center',
'justify-content': 'space-between'
}).append($('<span>').text('Project:AutoWikiBrowser/Typos').css('font-weight', 'bold'), togWikiTypos.$element),
$('<div>').css('margin-bottom', '10px').append(lblWikiStatus),
$('<hr>').css('border-top', '1px solid #eee'),
$('<div>').append($('<div>').css({
'display': 'flex',
'align-items': 'center'
}).append($('<span>').text('Local rules (session only)').css({
'font-weight': 'bold'
}), $('<div>').css('flex', '1'), btnLoadLocal.$element, btnClearLocal.$element), lblLocalStatus)
);
addSection('External rules', $extRulesPanel);
var txtPreScript = new OO.ui.MultilineTextInputWidget({
rows: 6,
value: '',
placeholder: '// Enter JavaScript function body here.\n// Available variables: text, vars, shared\nreturn text;'
});
var txtPostScript = new OO.ui.MultilineTextInputWidget({
rows: 6,
value: '',
placeholder: '// Enter JavaScript function body here.\n// Available variables: text, vars, shared\nreturn text;'
});
var btnLoadLib = new OO.ui.ButtonWidget({
icon: 'upload',
title: 'Load library (.js)',
framed: false
});
var btnRemoveLib = new OO.ui.ButtonWidget({
icon: 'trash',
title: 'Remove library',
framed: false,
flags: 'destructive'
});
var txtLibStatus = new OO.ui.TextInputWidget({
value: '(No library loaded)',
readOnly: true
});
var $libInput = $('<input type="file" accept=".js">').hide().appendTo('body');
var btnEditLib = new OO.ui.ButtonWidget({
icon: 'edit',
label: 'Edit project library',
framed: false
});
var $scriptPanel = $('<div>').append(
$('<div>').css({
'display': 'flex',
'align-items': 'center',
'gap': '5px',
'margin-bottom': '10px'
}).append($('<span>').text('JS library:').css({
'font-weight': 'bold',
'white-space': 'nowrap'
}), txtLibStatus.$element.css('flex', '1'), btnLoadLib.$element, btnRemoveLib.$element),
$('<div>').css({
'display': 'flex',
'justify-content': 'flex-end',
'margin-bottom': '10px'
}).append(btnEditLib.$element),
new OO.ui.FieldLayout(txtPreScript, {
label: 'Pre-Process',
align: 'top'
}).$element,
new OO.ui.FieldLayout(txtPostScript, {
label: 'Post-Process',
align: 'top'
}).$element
);
addSection('Scripts', $scriptPanel);
function updateLibUI() {
if (currentLibrary.code) {
txtLibStatus.setValue(currentLibrary.name);
btnRemoveLib.setDisabled(false);
} else {
txtLibStatus.setValue('(No library loaded)');
btnRemoveLib.setDisabled(true);
}
}
updateLibUI();
function LibraryEditorDialog(config) {
LibraryEditorDialog.super.call(this, config);
}
OO.inheritClass(LibraryEditorDialog, OO.ui.ProcessDialog);
LibraryEditorDialog.static.name = 'libraryEditor';
LibraryEditorDialog.static.title = 'Edit project library';
LibraryEditorDialog.static.actions = [{
action: 'save',
label: 'Save',
flags: ['primary', 'progressive']
},
{
label: 'Cancel',
flags: 'safe'
}
];
LibraryEditorDialog.prototype.initialize = function() {
LibraryEditorDialog.super.prototype.initialize.call(this);
this.$element.addClass('wa-lib-dialog'); // Attach our custom CSS override class
this.panel = new OO.ui.PanelLayout({
padded: true,
expanded: true
});
this.$editorWrapper = $('<div>').addClass('wa-lib-editorwrapper');
this.panel.$element.append(this.$editorWrapper);
this.$body.append(this.panel.$element);
};
LibraryEditorDialog.prototype.getSetupProcess = function(data) {
data = data || {};
return LibraryEditorDialog.super.prototype.getSetupProcess.call(this, data)
.next(function() {
var self = this;
self.$editorWrapper.empty();
// Create a textarea for the MediaWiki CM wrapper to properly bind to
var $libTextArea = $('<textarea>').appendTo(self.$editorWrapper);
var initCode = currentLibrary.code || "// All custom library functions defined here will be passed to the worker.\n// Special functions:\n// function wAwB_Pre(text, vars, shared) { return text; }\n// function wAwB_Post(text, vars, shared) { return text; }\n";
return mw.loader.using(['ext.CodeMirror', 'ext.CodeMirror.modes']).then(function(require) {
var CM = require('ext.CodeMirror');
var modes = require('ext.CodeMirror.modes');
self.cmInstance = new CM($libTextArea[0], modes.javascript());
self.cmInstance.initialize();
self.cmInstance.view.dispatch({
changes: {
from: 0,
insert: initCode
}
});
// Force CodeMirror to fill the wrapper
self.$editorWrapper.find('.cm-editor').css({
height: '100%'
});
}).catch(function(err) {
console.error("wAwB CM Init Error:", err);
});
}, this);
};
LibraryEditorDialog.prototype.getActionProcess = function(action) {
var dialog = this;
if (action === 'save') {
return new OO.ui.Process(function() {
var newCode = "";
if (dialog.cmInstance) {
newCode = dialog.cmInstance.view.state.doc.toString();
}
if (newCode.trim() === "") {
currentLibrary = {
name: null,
code: null
};
} else {
currentLibrary.code = newCode;
currentLibrary.name = "custom code";
}
updateLibUI();
dialog.close({
action: action
});
});
}
if (action === 'cancel' || !action) {
return new OO.ui.Process(function() {
dialog.close({
action: action
});
});
}
return LibraryEditorDialog.super.prototype.getActionProcess.call(this, action);
};
LibraryEditorDialog.prototype.getTeardownProcess = function(data) {
return LibraryEditorDialog.super.prototype.getTeardownProcess.call(this, data)
.next(function() {
if (this.cmInstance) {
try {
this.cmInstance.view.destroy();
} catch (e) {}
this.cmInstance = null;
}
}, this);
};
var windowManager = new OO.ui.WindowManager();
$('body').append(windowManager.$element);
var libDialog = new LibraryEditorDialog();
windowManager.addWindows([libDialog]);
btnEditLib.on('click', function() {
windowManager.openWindow(libDialog);
});
var togAdminEnable = new OO.ui.ToggleSwitchWidget({
value: false
});
var chkMovRedirect = new OO.ui.CheckboxInputWidget({
selected: false
});
var chkMovTalk = new OO.ui.CheckboxInputWidget({
selected: true
});
var chkMovSub = new OO.ui.CheckboxInputWidget({
selected: false
});
var chkDelTalk = new OO.ui.CheckboxInputWidget({
selected: true
});
var dropProtEdit = new OO.ui.DropdownInputWidget({
options: [{
data: '',
label: '(No Change)'
}, {
data: 'all',
label: 'All'
}, {
data: 'autoconfirmed',
label: 'Autoconfirmed'
}, {
data: 'sysop',
label: 'Sysop'
}]
});
var dropProtMove = new OO.ui.DropdownInputWidget({
options: [{
data: '',
label: '(No Change)'
}, {
data: 'all',
label: 'All'
}, {
data: 'autoconfirmed',
label: 'Autoconfirmed'
}, {
data: 'sysop',
label: 'Sysop'
}]
});
var inpProtExpiry = new OO.ui.TextInputWidget({
placeholder: 'infinite / 2 days / 12 hours'
});
if (CAN_MOVE || IS_ADMIN) {
var $adminPanel = $('<div>').append(
$('<div>').css({
'display': 'flex',
'align-items': 'center',
'justify-content': 'flex-start',
'gap': '10px'
}).append($('<span>').text('Enable page actions').css('font-weight', 'bold'), togAdminEnable.$element),
$('<hr>')
);
if (CAN_MOVE) {
$adminPanel.append(
$('<strong>').text('Move options:'), new OO.ui.FieldLayout(chkMovRedirect, {
label: 'Do not create redirect',
align: 'inline'
}).$element, new OO.ui.FieldLayout(chkMovTalk, {
label: 'Move talk page',
align: 'inline'
}).$element, new OO.ui.FieldLayout(chkMovSub, {
label: 'Move subpages',
align: 'inline'
}).$element, $('<br>')
);
}
if (IS_ADMIN) {
$adminPanel.append(
$('<strong>').text('Delete options:'), new OO.ui.FieldLayout(chkDelTalk, {
label: 'Delete talk page',
align: 'inline'
}).$element, $('<br>'),
$('<strong>').text('Protect options:'), new OO.ui.FieldLayout(dropProtEdit, {
label: 'Edit level',
align: 'top'
}).$element, new OO.ui.FieldLayout(dropProtMove, {
label: 'Move level',
align: 'top'
}).$element, new OO.ui.FieldLayout(inpProtExpiry, {
label: 'Expiry',
align: 'top'
}).$element
);
}
addSection('Page actions', $adminPanel);
}
var btnPower = new OO.ui.ButtonWidget({
label: 'Start',
icon: 'power',
flags: ['primary', 'progressive'],
title: 'Start editing',
accessKey: 'a'
});
var btnDiff = new OO.ui.ButtonWidget({
label: 'Diff',
icon: 'update',
title: 'Show diff',
accessKey: 'd'
});
var btnSkip = new OO.ui.ButtonWidget({
label: 'Next',
icon: 'next',
title: 'Skip to next page',
accessKey: 'n',
disabled: true
});
var btnPreview = new OO.ui.ButtonWidget({
label: 'Preview',
icon: 'article',
title: 'Preview page',
accessKey: 'p'
});
var btnSave = new OO.ui.ButtonWidget({
label: 'Save',
icon: 'upload',
flags: 'progressive',
title: 'Save edit',
accessKey: 's',
disabled: true
});
var inputSummary = new OO.ui.TextInputWidget({
placeholder: '',
value: '',
title: 'Enter edit summary',
accessKey: 'b'
});
var $sumLayout = new OO.ui.FieldLayout(inputSummary, {
label: 'Edit summary',
align: 'top'
}).$element;
$sumLayout.css('margin-bottom', '6px');
var listTextarea = new OO.ui.MultilineTextInputWidget({
rows: 15,
classes: ['wa-page-list-raw']
});
var btnSort = new OO.ui.ButtonWidget({
icon: 'sortVertical',
title: 'Sort list',
framed: false
});
var btnDedup = new OO.ui.ButtonWidget({
icon: 'funnel',
title: 'Remove duplicates',
framed: false
});
var btnClear = new OO.ui.ButtonWidget({
icon: 'trash',
title: 'Clear list',
framed: false
});
var btnPreParse = new OO.ui.ButtonWidget({
label: 'Pre-parse',
title: 'Process list in background',
icon: 'robot',
framed: false
});
var $listCounter = $('<span>').addClass('wa-list-counter').text('0 pages');
var togAutoSave = new OO.ui.ToggleSwitchWidget({
value: false
});
var txtAutoDelay = new OO.ui.TextInputWidget({
value: '10'
});
var $botRow = $('<div>').addClass('wa-bot-row').hide();
if (PERMS.allowBot) {
$botRow.show().append($('<span>').css('font-weight', 'bold').text('Bot mode: '), togAutoSave.$element, $('<span>').text('Delay (s):'), txtAutoDelay.$element.css('max-width', '40px'));
togAutoSave.on('change', function(v) {
if (v) txtAutoDelay.setValue('10');
});
}
var sortAsc = true;
var $procHeader = $('<div>').addClass('wa-section-header').attr('id', 'wa-proc-header').css({
'display': 'flex',
'justify-content': 'space-between',
'align-items': 'center'
});
var $procTitle = $('<span>').attr('id', 'wa-proc-title').text('Processing');
var chkMinor = new OO.ui.CheckboxInputWidget({
selected: true,
title: 'Minor edit'
});
var $minorLayout = new OO.ui.FieldLayout(chkMinor, {
label: 'm',
align: 'inline',
title: 'Minor edit'
});
$minorLayout.$element.css({
'margin-right': '15px',
'font-weight': 'normal'
});
$procHeader.append($procTitle, $minorLayout.$element);
var $procContent = $('<div>').attr('id', 'wa-proc-content').append(
$sumLayout, $botRow,
$('<div>').addClass('wa-grid-container').append(
$('<div>').addClass('wa-grid-col').append(btnPower.$element),
$('<div>').addClass('wa-grid-col').append(btnDiff.$element, btnSkip.$element),
$('<div>').addClass('wa-grid-col').append(btnPreview.$element, btnSave.$element)
),
$('<div>').addClass('wa-toolbar').append($listCounter, btnSort.$element, btnDedup.$element, btnClear.$element),
listTextarea.$element,
$('<div>').css({
'margin-top': '5px'
}).append(btnPreParse.$element)
);
$content.append($procHeader, $procContent);
var configWidgets = [
srcSelect, srcInput, srcInputUser, srcInputStartDate, srcInputEndDate, srcDropProp,
chkCatPages, chkCatSub, chkCatFile, chkLinkWiki, chkLinkTrans, chkLinkImg, dropLinkRedir, chkLinkToRedir,
btnAdd, redirMode, chkSkipNoChange, radSkipExist,
inpSkipContains, togSkipContainsRegex, inpSkipNotContains, togSkipNotContainsRegex, inpSkipCategories, inpSkipNotCategories,
dropProtMode, radTargetSet, inpTemplateFilter, btnAddRule,
txtPreScript, txtPostScript, chkMovRedirect, chkMovTalk, chkMovSub, chkDelTalk, dropProtEdit, dropProtMove, inpProtExpiry,
togWikiTypos, btnLoadLocal, btnClearLocal, btnPreParse
];
// =====================================================================
// 5. FUNCTION DEFINITIONS (Core Logic)
// =====================================================================
function checkSummaryWarning() {
var val = inputSummary.getValue();
var isBlank = !val || val.trim() === "";
if (isBlank || hasNewSources) inputSummary.$element.addClass('wa-summary-warning');
else inputSummary.$element.removeClass('wa-summary-warning');
}
function renderCurrentView() {
if (currentViewMode === 'preview') renderPreview();
else renderDiff();
}
function toggleConfig(isLocked) {
configWidgets.forEach(function(w) {
if (w instanceof OO.ui.TextInputWidget || w instanceof OO.ui.MultilineTextInputWidget) {
w.setReadOnly(isLocked);
w.$element.css('opacity', isLocked ? 0.8 : 1);
} else {
w.setDisabled(isLocked);
}
});
$nsSelect.prop('disabled', isLocked);
for (var key in protCheckboxes) protCheckboxes[key].setDisabled(isLocked);
rulesRegistry.forEach(function(r) {
r.find.setReadOnly(isLocked);
r.rep.setReadOnly(isLocked);
r.regex.setDisabled(isLocked);
r.flags.setReadOnly(isLocked);
r.enable.setDisabled(isLocked);
r.del.setDisabled(isLocked);
r.btnFunc.setDisabled(isLocked || !r.regex.getValue());
r.btnUp.setDisabled(isLocked || rulesRegistry.indexOf(r) === 0);
r.btnDown.setDisabled(isLocked || rulesRegistry.indexOf(r) === rulesRegistry.length - 1);
});
if (CAN_MOVE || IS_ADMIN) togAdminEnable.setDisabled(isLocked);
btnLoadLib.setDisabled(isLocked);
btnRemoveLib.setDisabled(isLocked || !currentLibrary.code);
btnEditLib.setDisabled(isLocked);
btnLoadLocal.setDisabled(isLocked);
btnClearLocal.setDisabled(isLocked || localTypos.length === 0);
}
function updateListCount() {
var val = listTextarea.getValue();
var count = val.trim() ? val.split('\n').filter(function(l) {
var line = l.trim();
return line !== "" && !line.startsWith("####");
}).length : 0;
$listCounter.text(count + ' pages');
}
listTextarea.on('change', updateListCount);
function updateDirtyState() {
if (isRunning && currentTitle && Editor.getValue() !== originalWikitext) $editorHeader.addClass('wa-dirty');
else $editorHeader.removeClass('wa-dirty');
}
function removeTopLine() {
var l = listTextarea.getValue().split('\n');
l.shift();
listTextarea.setValue(l.join('\n'));
updateListCount();
}
function updateInterfaceMode() {
var isAdminMode = togAdminEnable.getValue();
var pageLoaded = !!currentTitle;
btnSave.setDisabled(isAdminMode || !pageLoaded || !PERMS.canSave);
btnSkip.setDisabled(!pageLoaded);
btnPreview.setDisabled(!pageLoaded);
btnDiff.setDisabled(isAdminMode || !pageLoaded);
Editor.setDisabled(isAdminMode || !pageLoaded);
if (CAN_MOVE) {
var allowAdmin = isAdminMode && currentPageExists;
btnAdminMove.setDisabled(!(allowAdmin && currentVars['$xA']));
if (currentVars['$xA']) btnAdminMove.setTitle('Move page to ' + currentVars['$xA']);
else btnAdminMove.setTitle('Move page to $xA (Variable not set)');
}
if (IS_ADMIN) {
var allowAdmin = isAdminMode && currentPageExists;
btnAdminDel.setDisabled(!allowAdmin);
btnAdminProt.setDisabled(!allowAdmin);
}
}
function renderDiff() {
$visualOut.html('<div style="color:#888; text-align:center;">Generating Diff...</div>');
var currentText = Editor.getValue();
new mw.Api().post({
'action': 'compare',
fromtitle: currentTitle,
toslots: 'main',
'totext-main': currentText,
slots: 'main',
prop: 'diff',
formatversion: 2
}).then(function(data) {
var diffBody = data.compare && data.compare.bodies && data.compare.bodies.main;
if (diffBody) {
$visualOut.html('<h4>Diff: ' + currentTitle + '</h4><table class="diff"><colgroup><col class="diff-marker"><col class="diff-content"><col class="diff-marker"><col class="diff-content"></colgroup><tbody>' + diffBody + '</tbody></table>');
processDiffTable();
} else {
$visualOut.html('<div style="color:green; text-align:center; padding-top:20px;">No Changes detected</div>');
}
});
}
function processDiffTable() {
var rightLineNum = 0;
$visualOut.find('table.diff tr').each(function() {
var $tr = $(this);
var $linenos = $tr.find('td.diff-lineno');
if ($linenos.length > 0) {
var txt = $linenos.last().text();
var m = txt.match(/(\d+)/);
if (m) rightLineNum = parseInt(m[1]);
return;
}
if ($tr.find('.diff-addedline').length > 0 || $tr.find('.diff-context').length > 0) {
$tr.attr('data-line', rightLineNum);
$tr.css('cursor', 'pointer').attr('title', 'Jump to line ' + rightLineNum);
rightLineNum++;
}
});
// Attach a single delegated click listener to the table instead of every row
$visualOut.find('table.diff').on('click', 'tr[data-line]', function() {
Editor.scrollToLine(parseInt($(this).attr('data-line')));
});
}
function renderPreview() {
$visualOut.html('<div style="color:#888; text-align:center;">Generating Preview...</div>');
new mw.Api().post({
action: 'parse',
title: currentTitle,
text: Editor.getValue(),
prop: 'text|categorieshtml|modules|jsconfigvars',
useskin: mw.config.get('skin'),
disablelimitreport: true,
pst: true,
contentmodel: 'wikitext'
}).then(function(data) {
if (data.parse && data.parse.text) {
var $prev = $('<div>').html(data.parse.text['*']);
if (data.parse.categorieshtml) $prev.append(data.parse.categorieshtml['*']);
$prev.find('a').attr('target', '_blank');
$visualOut.empty().append($prev);
mw.loader.using(data.parse.modules.concat(data.parse.modulestyles, data.parse.modulescripts), function() {
mw.hook('wikipage.content').fire($('.wa-visual-output .mw-parser-output'));
});
}
}).catch(function(err) {
$visualOut.html('Error generating preview.');
alert("Preview failed: " + err);
});
}
async function transformPageText(rawText, title, config) {
var filters = config.filters;
if (filters) {
var check = function(text, rule) {
if (!rule || !rule.val) return false;
if (rule.regex) {
try {
return new RegExp(rule.val, 'mu').test(text);
} catch (e) {
return false;
}
}
return text.indexOf(rule.val) !== -1;
};
if (filters.skipContains && filters.skipContains.val && check(rawText, filters.skipContains)) {
return {
skipped: true,
reason: 'Contains: ' + filters.skipContains.val
};
}
if (filters.skipNotContains && filters.skipNotContains.val && !check(rawText, filters.skipNotContains)) {
return {
skipped: true,
reason: 'Missing: ' + filters.skipNotContains.val
};
}
}
var mode = config.mode;
var inputs = [];
var compiledSpecies = null;
if (config.templateFilter) {
var tFilter = config.templateFilter;
if (tFilter[0] === "^") tFilter = "^\\{\\{\\s*" + tFilter.slice(1);
else tFilter = "\\{\\{\\s*" + tFilter;
compiledSpecies = tFilter + "(?=\\s*[|}\\n])";
}
var skeleton = PageProtector.protect(rawText, mode, config.excludes, compiledSpecies);
if (mode === 'target') inputs = PageProtector.store;
else inputs = [skeleton];
var combinedRules = rulesRegistry.filter(r => r.isActive()).map(r => ({
find: r.find.getValue(),
replace: r.rep.getValue(),
regex: r.regex.getValue(),
flags: r.flags.getValue(),
enabled: r.isActive(),
isFunc: r.isFunc()
}));
if (togWikiTypos.getValue()) combinedRules = combinedRules.concat(wikiTypos);
if (localTypos.length > 0) combinedRules = combinedRules.concat(localTypos);
var payload = {
texts: inputs,
vars: config.vars,
preCode: getUserCode(txtPreScript, 'wAwB_Pre'),
libraryCode: currentLibrary.code,
rules: combinedRules,
postCode: getUserCode(txtPostScript, 'wAwB_Post')
};
var result = await WorkerEngine.run(payload);
if (result.skipped) return {
skipped: true,
reason: result.reason
};
var finalText = "";
if (mode === 'target') {
PageProtector.store = result.texts;
finalText = PageProtector.restore(skeleton);
} else {
finalText = PageProtector.restore(result.texts[0]);
}
return {
skipped: false,
text: finalText,
summaryAppend: result.summaryAppend,
summaryOverride: result.summaryOverride
};
}
async function processPageContent() {
try {
setStatus('Processing...', 'working');
var mode = dropProtMode.getValue();
var activeConfig = {
mode: mode,
excludes: {},
templateFilter: inpTemplateFilter.getValue().trim(),
vars: currentVars,
filters: {
skipContains: {
val: inpSkipContains.getValue(),
regex: togSkipContainsRegex.getValue()
},
skipNotContains: {
val: inpSkipNotContains.getValue(),
regex: togSkipNotContainsRegex.getValue()
}
}
};
if (mode === 'protect') {
for (var k in protCheckboxes) activeConfig.excludes[k] = protCheckboxes[k].isSelected();
} else {
var sel = radTargetSet.findSelectedItem();
activeConfig.excludes = sel ? sel.getData() : null;
}
var res = await transformPageText(originalWikitext, currentTitle, activeConfig);
if (res.skipped) {
removeTopLine();
loadNextPage();
return;
}
currentPageSummaryAppend = res.summaryAppend || "";
currentPageSummaryOverride = res.summaryOverride || null;
updateSummaryPreview(inputSummary.getValue());
if (chkSkipNoChange.isSelected() && res.text === originalWikitext) {
removeTopLine();
loadNextPage();
return;
}
setStatus('Ready');
Editor.setValue(res.text);
if (CAN_MOVE || IS_ADMIN) updateInterfaceMode();
else {
Editor.setDisabled(false);
btnSave.setDisabled(!PERMS.canSave);
btnSkip.setDisabled(false);
btnPreview.setDisabled(false);
btnDiff.setDisabled(false);
}
updateDirtyState();
renderCurrentView();
if (PERMS.allowBot && togAutoSave.getValue()) {
var delay = Math.max(0, parseInt(txtAutoDelay.getValue(), 10) || 0) * 1000;
setStatus('Auto-save in ' + (delay / 1000) + 's...', 'working');
if (autoSaveTimer) clearTimeout(autoSaveTimer);
autoSaveTimer = setTimeout(function() {
if (isRunning && PERMS.canSave) {
btnSave.emit('click');
}
}, delay);
}
} catch (e) {
setStatus('Error', 'error');
alert(e);
btnPower.emit('click');
}
}
async function runPreParseBatch() {
// 1. Toggle / Stop Logic
if (isRunning) {
isRunning = false;
setStatus('Stopping...', 'working');
btnPreParse.setLabel('Pre-parse');
return;
}
// 2. Start & Deduplicate
var currentVal = listTextarea.getValue();
var cleanVal = getDeduplicatedList(currentVal).join('\n');
listTextarea.setValue(cleanVal);
updateListCount();
isRunning = true;
toggleUI(true);
// 3. Lock UI
toggleUI(true);
btnSkip.setDisabled(true);
btnDiff.setDisabled(true);
btnPreview.setDisabled(true);
btnSave.setDisabled(true);
Editor.setDisabled(true);
btnPreParse.setLabel('Stop pre-parse');
// Inject STOP marker if not present
var currentList = listTextarea.getValue().split('\n');
if (!currentList.includes('####STOP')) {
currentList.push('####STOP');
listTextarea.setValue(currentList.join('\n'));
}
// Gather Config
var activeConfig = {
mode: dropProtMode.getValue(),
excludes: {},
templateFilter: inpTemplateFilter.getValue().trim(),
vars: {},
filters: {
skipContains: {
val: inpSkipContains.getValue(),
regex: togSkipContainsRegex.getValue()
},
skipNotContains: {
val: inpSkipNotContains.getValue(),
regex: togSkipNotContainsRegex.getValue()
}
}
};
if (activeConfig.mode === 'protect') {
for (var k in protCheckboxes) activeConfig.excludes[k] = protCheckboxes[k].isSelected();
} else {
var sel = radTargetSet.findSelectedItem();
activeConfig.excludes = sel ? sel.getData() : null;
}
setStatus('Pre-parsing...', 'working');
while (isRunning) {
var lines = listTextarea.getValue().split('\n');
var batchTitles = [];
var stopFound = false;
for (var i = 0; i < lines.length; i++) {
var line = lines[i];
if (line === '####STOP') {
stopFound = true;
break;
}
if (line && !line.startsWith('####')) {
var parts = line.split('|');
batchTitles.push({
fullLine: line,
title: parts[0],
vars: parts.slice(1)
});
}
if (batchTitles.length >= 50) break;
}
if (batchTitles.length === 0) {
if (stopFound) setStatus('Pre-parse complete');
else setStatus('List empty');
break;
}
$listCounter.text('Fetching ' + batchTitles.length + '...');
var badCats = inpSkipCategories.getValue().split('|').map(s => s.trim()).filter(s => s);
var reqCats = inpSkipNotCategories.getValue().split('|').map(s => s.trim()).filter(s => s);
var api = new mw.Api();
try {
var data = await api.get({
action: 'query',
prop: 'revisions' + (badCats.length + reqCats.length > 0 ? '|categories' : ''),
titles: batchTitles.map(t => t.title).join('|'),
rvprop: 'content',
rvslots: 'main',
redirects: 1,
cllimit: 'max'
});
var pageMap = {};
if (data.query && data.query.pages) Object.values(data.query.pages).forEach(p => pageMap[p.title] = p);
var redirMap = {};
if (data.query && data.query.redirects) data.query.redirects.forEach(r => redirMap[r.from] = r.to);
var keptLines = [];
for (var k = 0; k < batchTitles.length; k++) {
var item = batchTitles[k];
var lookupTitle = redirMap[item.title] || item.title;
var page = pageMap[lookupTitle];
if (!page || page.missing || page.invalid || !page.revisions || !page.revisions[0]) {
console.warn("Skipping invalid/missing page:", item.title);
continue;
}
var pageCats = new Set((page.categories || []).map(c => c.title.replace(/^[^:]+:/, '').trim()));
if (badCats.some(c => pageCats.has(c))) continue; // Skip
if (reqCats.length > 0 && !reqCats.some(c => pageCats.has(c))) continue; // Skip
var rawText = page.revisions[0].slots.main['*'];
activeConfig.vars = {
'$xx': item.title
};
item.vars.forEach((v, idx) => activeConfig.vars['$x' + String.fromCharCode(65 + idx)] = v);
var res = await transformPageText(rawText, item.title, activeConfig);
// UPDATED LOGIC: Respect "Skip if no change" checkbox
if (!res.skipped && (!chkSkipNoChange.isSelected() || res.text !== rawText)) {
keptLines.push(item.fullLine);
}
}
var freshLines = listTextarea.getValue().split('\n');
var stopIndex = -1;
for (var x = 0; x < freshLines.length; x++) {
if (freshLines[x] === '####STOP') {
stopIndex = x;
break;
}
}
if (stopIndex > -1) {
var topChunk = freshLines.slice(0, stopIndex);
var botChunk = freshLines.slice(stopIndex + 1);
var processedSet = new Set(batchTitles.map(t => t.fullLine));
var newTop = topChunk.filter(l => !processedSet.has(l));
var newList = newTop.concat(['####STOP']).concat(botChunk).concat(keptLines);
listTextarea.setValue(newList.join('\n'));
updateListCount();
}
} catch (e) {
console.error(e);
setStatus('Batch error: ' + e, 'error');
break;
}
}
isRunning = false;
toggleUI(false);
WorkerEngine.destroy();
btnPreParse.setLabel('Pre-parse');
if (listTextarea.getValue().startsWith('####STOP')) setStatus('Pre-parse done!');
else setStatus('Stopped');
}
btnPreParse.on('click', runPreParseBatch);
function loadNextPage() {
if (!isRunning) return;
var allLines = listTextarea.getValue().split('\n');
var listChanged = false;
var stopCommand = false;
while (allLines.length > 0) {
var line = allLines[0];
if (line === '####STOP') {
stopCommand = true;
break;
}
if (line.startsWith('####') || line === "") {
allLines.shift();
listChanged = true;
} else {
break;
}
}
if (listChanged) {
listTextarea.setValue(allLines.join('\n'));
updateListCount();
}
if (stopCommand) {
btnPower.emit('click');
setStatus("Stopped by ####STOP");
return;
}
if (allLines.length === 0) {
btnPower.emit('click');
setStatus("Done!");
return;
}
var raw = allLines[0];
var parts = raw.split('|');
currentTitle = parts[0].trim();
baseRevId = 0;
originalWikitext = "";
if (!currentTitle) {
removeTopLine();
loadNextPage();
return;
}
currentVars = {};
currentVars['$xx'] = currentTitle;
for (var i = 1; i < parts.length; i++) currentVars['$x' + String.fromCharCode(64 + i)] = parts[i];
currentPageSummaryAppend = "";
currentPageSummaryOverride = null;
updateSummaryPreview(inputSummary.getValue());
setStatus('Loading...', 'working');
btnSave.setDisabled(true);
btnPreview.setDisabled(true);
btnDiff.setDisabled(true);
btnSkip.setDisabled(true);
Editor.setDisabled(true);
$titleLink.attr('href', mw.util.getUrl(currentTitle)).text(currentTitle);
$editorHeader.removeClass('wa-dirty');
$visualOut.empty();
Editor.setValue('Loading...');
$infoContainer.empty();
currentPageExists = false;
btnWatch.setDisabled(true);
btnManualEdit.setDisabled(true);
if (CAN_MOVE || IS_ADMIN) updateInterfaceMode();
var badCats = inpSkipCategories.getValue().split('|').map(s => s.trim()).filter(s => s);
var reqCats = inpSkipNotCategories.getValue().split('|').map(s => s.trim()).filter(s => s);
var api = new mw.Api();
var params = {
action: 'query',
prop: 'revisions|info' + (badCats.length + reqCats.length > 0 ? '|categories' : ''),
titles: currentTitle,
rvprop: 'content|timestamp|ids',
rvslots: 'main',
inprop: 'watched',
cllimit: 'max'
};
var rMode = redirMode.findSelectedItem().getData();
if (rMode === 'follow') params.redirects = 1;
return api.get(params).then(async function(data) {
var pid = Object.keys(data.query.pages)[0];
var page = data.query.pages[pid];
currentPageExists = !page.missing && !page.invalid;
var pageCats = new Set((page.categories || []).map(c => c.title.replace(/^[^:]+:/, '').trim()));
if (badCats.some(c => pageCats.has(c))) {
setStatus('Skip: cat blacklist');
removeTopLine();
loadNextPage();
return;
}
if (reqCats.length > 0 && !reqCats.some(c => pageCats.has(c))) {
setStatus('Skip: cat whitelist');
removeTopLine();
loadNextPage();
return;
}
if (rMode === 'follow' && data.query.redirects) {
currentTitle = page.title;
$titleLink.attr('href', mw.util.getUrl(currentTitle)).text(currentTitle);
mw.notify('Redirect followed to: ' + currentTitle);
}
if (rMode === 'skip' && page.redirect !== undefined) {
removeTopLine();
loadNextPage();
return;
}
var skipMode = radSkipExist.findSelectedItem().getData();
if (pid === "-1") {
if (skipMode === 'missing') {
removeTopLine();
loadNextPage();
return;
}
originalWikitext = "";
baseRevId = 0;
} else {
if (skipMode === 'exists') {
removeTopLine();
loadNextPage();
return;
}
originalWikitext = page.revisions[0].slots.main['*'];
baseRevId = page.revisions[0].revid;
}
if (page.revisions && page.revisions.length > 0) {
var rev = page.revisions[0];
var ts = new Date(rev.timestamp).toISOString().replace('T', ' ').substring(0, 16);
$infoContainer.empty().append('Last edit: ' + ts + ' | ', $('<a>').attr('href', mw.util.getUrl(currentTitle, {
action: 'history'
})).attr('target', '_blank').text('history'));
}
btnWatch.setDisabled(!currentPageExists);
btnManualEdit.setDisabled(!currentPageExists);
if (page.watched !== undefined) btnWatch.setIcon('unStar');
else btnWatch.setIcon('star');
if (CAN_MOVE || IS_ADMIN) {
updateInterfaceMode();
if (togAdminEnable.getValue()) {
Editor.setValue(originalWikitext);
renderCurrentView();
setStatus('Ready (Page actions)');
return;
}
}
processPageContent();
}).catch(function(e) {
setStatus('API error', 'error');
alert('Load error: ' + e);
btnPower.emit('click');
});
}
async function fetchWithContinue(api, params) {
var allTitles = new Set();
var continueToken = {};
var safetyLimit = FETCH_SAFETY_LIMIT;
var count = 0;
isFetching = true;
btnAdd.setLabel('Cancel fetch');
$fetchStatus.text('Fetching...').show();
try {
while (isFetching && count < safetyLimit) {
var merged = Object.assign({}, params, continueToken);
var data = await api.get(merged);
var batch = [];
if (data.watchlistraw) batch = data.watchlistraw;
else if (data.query) {
if (data.query.pages) batch = Object.values(data.query.pages);
else if (data.query.categorymembers) batch = data.query.categorymembers;
else if (data.query.backlinks) batch = data.query.backlinks;
else if (data.query.embeddedin) batch = data.query.embeddedin;
else if (data.query.imageusage) batch = data.query.imageusage;
else if (data.query.search) batch = data.query.search;
else if (data.query.allpages) batch = data.query.allpages;
else if (data.query.usercontribs) batch = data.query.usercontribs;
else if (data.query.pageswithprop) batch = data.query.pageswithprop;
}
if (batch.length > 0) {
batch.forEach(item => {
if (item.title) allTitles.add(item.title);
});
count = allTitles.size;
$fetchStatus.text('Fetched ' + count + '...');
}
if (data.continue) continueToken = data.continue;
else break;
}
} catch (e) {
alert("Fetch interrupted: " + e);
}
isFetching = false;
btnAdd.setLabel('Add to list').setDisabled(false);
$fetchStatus.text('Added ' + allTitles.size + ' pages').delay(3000).fadeOut();
if (allTitles.size > 0) {
hasNewSources = true;
checkSummaryWarning();
}
return Array.from(allTitles);
}
function toggleUI(d) {
if (d) {
btnPower.setLabel('Stop').setIcon('power').setFlags(['destructive']);
} else {
btnPower.setLabel('Start').setIcon('power').clearFlags().setFlags(['primary', 'progressive']);
if (PERMS.allowBot) togAutoSave.setValue(false);
}
toggleConfig(d);
btnSort.setDisabled(d);
btnDedup.setDisabled(d);
btnClear.setDisabled(d);
btnSaveProj.setDisabled(d);
btnLoadProj.setDisabled(d);
btnSkip.setDisabled(!d);
btnSave.setDisabled(true);
listTextarea.setReadOnly(d);
if (d) listTextarea.$element.addClass('wa-list-running');
else listTextarea.$element.removeClass('wa-list-running');
}
function resetPanels() {
Editor.setValue('');
$titleLink.text('Page content').removeAttr('href');
$editorHeader.removeClass('wa-dirty');
setStatus('Ready');
$('#wa-summary-preview').text('');
currentTitle = null;
$visualOut.html('<div style="color:#aaa; text-align:center; margin-top:50px;">Ready...</div>');
$infoContainer.empty();
btnWatch.setDisabled(true);
btnManualEdit.setDisabled(true);
Editor.setDisabled(true);
currentPageExists = false;
if (CAN_MOVE || IS_ADMIN) updateInterfaceMode();
toggleUI(false);
updateListCount();
if (autoSaveTimer) clearTimeout(autoSaveTimer);
}
function arrayMove(arr, old_index, new_index) {
if (new_index >= arr.length) {
var k = new_index - arr.length + 1;
while (k--) arr.push(undefined);
}
arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);
}
function updateRuleButtons() {
rulesRegistry.forEach(function(item, idx) {
item.btnUp.setDisabled(idx === 0);
item.btnDown.setDisabled(idx === rulesRegistry.length - 1);
});
}
function addRule() {
var row = $('<div>').addClass('wa-rule-row');
var controls = $('<div>').addClass('wa-rule-controls');
var btnUp = new OO.ui.ButtonWidget({
icon: 'collapse',
framed: false,
title: 'Move up',
classes: ['wa-rule-btn']
});
var btnDown = new OO.ui.ButtonWidget({
icon: 'expand',
framed: false,
title: 'Move down',
classes: ['wa-rule-btn']
});
controls.append(btnUp.$element, btnDown.$element);
var contentDiv = $('<div>').addClass('wa-rule-content');
var f = new OO.ui.TextInputWidget({
placeholder: 'Find'
});
var r = new OO.ui.TextInputWidget({
placeholder: 'Replace'
});
var reg = new OO.ui.ToggleSwitchWidget();
var fl = new OO.ui.TextInputWidget({
value: 'gmu',
disabled: true
}).toggle(false);
var btnEnable = new OO.ui.ButtonWidget({
icon: 'power',
framed: false,
title: 'Toggle rule',
flags: ['progressive']
});
var isRuleActive = true;
var btnFunc = new OO.ui.ButtonWidget({
icon: 'code',
framed: false,
title: 'Toggle JS mode',
disabled: true
});
var isRuleFunc = false;
var toggleRule = function(forceVal) {
var val = (forceVal !== undefined) ? forceVal : !isRuleActive;
isRuleActive = val;
row.css('opacity', isRuleActive ? 1 : 0.5);
if (isRuleActive) btnEnable.setFlags(['progressive']);
else btnEnable.clearFlags();
};
btnEnable.on('click', function() {
toggleRule();
});
var toggleFunc = function(forceVal) {
var val = (forceVal !== undefined) ? forceVal : !isRuleFunc;
isRuleFunc = val;
if (isRuleFunc) {
btnFunc.setFlags(['progressive']);
r.$input.attr('placeholder', 'return match.toUpperCase();');
} else {
btnFunc.clearFlags();
r.$input.attr('placeholder', 'Replace');
}
};
btnFunc.on('click', function() {
toggleFunc();
});
btnFunc.toggle(false);
reg.on('change', function(v) {
fl.setDisabled(!v);
fl.toggle(v);
btnFunc.setDisabled(!v);
if (!v) {
btnFunc.toggle(false);
if (isRuleFunc) toggleFunc(false);
} else btnFunc.toggle(true);
});
var del = new OO.ui.ButtonWidget({
icon: 'trash',
flags: 'destructive',
framed: false,
title: 'Delete rule',
});
del.on('click', function() {
row.fadeOut(200, function() {
row.remove();
rulesRegistry = rulesRegistry.filter(x => x.row !== row);
updateRuleButtons();
});
});
contentDiv.append(f.$element, $('<div>').css('margin-top', '3px').append(r.$element), $('<div>').addClass('wa-rule-opt-row').append($('<div>').css({
'display': 'flex',
'align-items': 'center'
}).append($('<div>').css({
'display': 'flex',
'align-items': 'center'
}).append($('<span>').text('Regex: ').css({
'font-size': '0.8em',
'margin-right': '4px'
}), reg.$element, fl.$element.css({
'width': '50px',
'margin-left': '5px'
})), btnFunc.$element.css('margin-left', '10px')), $('<div>').css('display', 'flex').append(btnEnable.$element, del.$element)));
row.append(controls, contentDiv);
$rulesList.append(row);
var ruleItem = {
row: row,
find: f,
rep: r,
regex: reg,
flags: fl,
btnUp: btnUp,
btnDown: btnDown,
enable: btnEnable,
del: del,
btnFunc: btnFunc,
isActive: function() {
return isRuleActive;
},
setActive: toggleRule,
isFunc: function() {
return isRuleFunc;
},
setFunc: toggleFunc
};
rulesRegistry.push(ruleItem);
btnUp.on('click', function() {
var idx = rulesRegistry.indexOf(ruleItem);
if (idx > 0) {
var prevRow = rulesRegistry[idx - 1].row;
row.fadeOut(150, function() {
row.insertBefore(prevRow).fadeIn(150).addClass('wa-highlight');
setTimeout(function() {
row.removeClass('wa-highlight');
}, 500);
});
arrayMove(rulesRegistry, idx, idx - 1);
updateRuleButtons();
}
});
btnDown.on('click', function() {
var idx = rulesRegistry.indexOf(ruleItem);
if (idx < rulesRegistry.length - 1) {
var nextRow = rulesRegistry[idx + 1].row;
row.fadeOut(150, function() {
row.insertAfter(nextRow).fadeIn(150).addClass('wa-highlight');
setTimeout(function() {
row.removeClass('wa-highlight');
}, 500);
});
arrayMove(rulesRegistry, idx, idx + 1);
updateRuleButtons();
}
});
updateRuleButtons();
}
btnAddRule.on('click', addRule);
addRule();
togWikiTypos.on('change', function(v) {
if (v) {
if (wikiTypos.length > 0) lblWikiStatus.text(wikiTypos.length + ' rules loaded (Cached)');
else {
lblWikiStatus.text('Fetching...');
togWikiTypos.setDisabled(true);
new mw.Api().get({
action: 'query',
prop: 'revisions',
titles: mw.config.get('wgFormattedNamespaces')[4] + ':AutoWikiBrowser/Typos',
rvprop: 'content',
rvslots: 'main',
formatversion: 2
}).then(function(d) {
var page = d.query.pages[0];
if (!page.missing) {
wikiTypos = parseTypoContent(page.revisions[0].slots.main.content);
lblWikiStatus.text(wikiTypos.length + ' rules loaded');
} else {
lblWikiStatus.text('Page not found');
togWikiTypos.setValue(false);
}
}).catch(function() {
lblWikiStatus.text('Error');
togWikiTypos.setValue(false);
}).always(function() {
togWikiTypos.setDisabled(false);
});
}
} else lblWikiStatus.text('Rules inactive');
});
btnLoadLocal.on('click', function() {
$typoInput.click();
});
$typoInput.on('change', function(e) {
var file = e.target.files[0];
if (!file) return;
var reader = new FileReader();
reader.onload = function(evt) {
localTypos = parseTypoContent(evt.target.result);
lblLocalStatus.text(localTypos.length + ' local rules loaded');
btnClearLocal.setDisabled(false);
};
reader.readAsText(file);
$typoInput.val('');
});
btnClearLocal.on('click', function() {
localTypos = [];
lblLocalStatus.text('No local rules');
btnClearLocal.setDisabled(true);
});
btnLoadLib.on('click', function() {
$libInput.click();
});
btnRemoveLib.on('click', function() {
currentLibrary = {
name: null,
code: null
};
updateLibUI();
});
$libInput.on('change', function(e) {
var file = e.target.files[0];
if (!file) return;
var reader = new FileReader();
reader.onload = function(evt) {
currentLibrary = {
name: file.name,
code: evt.target.result
};
updateLibUI();
};
reader.readAsText(file);
$libInput.val('');
});
btnPower.on('click', function() {
hasNewSources = false;
checkSummaryWarning();
if (!isRunning) {
if (SAVED_SESSION === 0) mw.track('stats.mediawiki_gadget_wAwB_total');
isRunning = true;
toggleUI(true);
loadNextPage();
} else {
if (SAVED_RUN > 0) {
mw.track('stats.mediawiki_gadget_wAwB_saved_total', SAVED_RUN, {
wiki: WIKI
});
SAVED_SESSION += SAVED_RUN;
SAVED_RUN = 0;
}
isRunning = false;
toggleUI(false);
WorkerEngine.destroy();
resetPanels();
}
});
inputSummary.on('change', function() {
checkSummaryWarning();
if (currentTitle) {
updateSummaryPreview(inputSummary.getValue());
}
});
btnSkip.on('click', function() {
if (Editor.getValue() === 'Loading...') return;
removeTopLine();
loadNextPage();
});
btnDiff.on('click', function() {
currentViewMode = 'diff';
updateDirtyState();
if (currentTitle) renderDiff();
});
btnPreview.on('click', function() {
currentViewMode = 'preview';
updateDirtyState();
if (currentTitle) renderPreview();
});
btnSave.on('click', function() {
if (Editor.getValue() === 'Loading...' || !currentTitle) return;
if (autoSaveTimer) clearTimeout(autoSaveTimer);
btnSave.setDisabled(true);
setStatus('Saving...', 'working');
var effectiveDelay = PERMS.saveDelay || 0;
if (effectiveDelay > 0) setStatus('Throttling (' + (effectiveDelay / 1000) + 's)...', 'working');
setTimeout(function() {
if (effectiveDelay > 0) setStatus('Saving...', 'working');
var base = currentPageSummaryOverride !== null ? currentPageSummaryOverride : inputSummary.getValue();
var finalSum = base + (currentPageSummaryAppend || "");
var translatedSummary = injectVars(finalSum);
var summary = translatedSummary + SUMMARY_SUFFIX;
new mw.Api().postWithToken('csrf', {
action: 'edit',
title: currentTitle,
text: Editor.getValue(),
summary: summary,
minor: chkMinor.isSelected(),
baserevid: baseRevId,
bot: PERMS.allowBot,
watchlist: 'nochange',
tags: DO_TAG ? APP_NAME : undefined
}).then(function() {
SAVED_RUN += 1;
removeTopLine();
loadNextPage();
}).catch(function(c) {
btnSave.setDisabled(false);
setStatus('Save error', 'error');
alert('Save failed: ' + c);
});
}, effectiveDelay);
});
btnManualEdit.on('click', function() {
if (Editor.getValue() === 'Loading...' || !currentTitle) return;
// Calculate the final injected summary
var base = currentPageSummaryOverride !== null ? currentPageSummaryOverride : inputSummary.getValue();
var finalSum = base + (currentPageSummaryAppend || "");
var translatedSummary = injectVars(finalSum);
var summary = translatedSummary; // no SUMMARY_SUFFIX
// Create an invisible form targeting a new tab
var $form = $('<form>').attr({
method: 'POST',
action: mw.util.getUrl(currentTitle, { action: 'edit' }),
target: '_blank'
}).hide();
// Populate it with MediaWiki's native input names
$('<textarea>').attr('name', 'wpTextbox1').val(Editor.getValue()).appendTo($form);
$('<input>').attr('name', 'wpSummary').val(summary).appendTo($form);
if (chkMinor.isSelected()) {
$('<input>').attr('name', 'wpMinoredit').val('1').appendTo($form);
}
// Append, fire, and destroy
$form.appendTo('body').submit().remove();
});
btnWatch.on('click', function() {
var isWatched = btnWatch.getIcon() === 'unStar';
new mw.Api()[isWatched ? 'unwatch' : 'watch'](currentTitle).then(function() {
btnWatch.setIcon(isWatched ? 'star' : 'unStar');
mw.notify(isWatched ? 'Unwatched' : 'Watched');
});
});
btnAdd.on('click', function() {
if (isFetching) {
isFetching = false;
btnAdd.setDisabled(true).setLabel('Cancelling...');
return;
}
try {
var mode = srcSelect.getValue(),
q = srcInput.getValue().trim();
if (mode !== 'watchlist' && mode !== 'usercontribs' && mode !== 'pageswithprop' && !q) {
alert('Query empty');
return;
}
var nsIds = ($nsSelect.val() || []).map(v => parseInt(v));
var nsStr = nsIds.join('|');
var api = new mw.Api(),
promises = [];
if (mode === 'cat') promises.push(fetchWithContinue(api, {
action: 'query',
list: 'categorymembers',
cmtitle: mw.Title.newFromText(q, 14) ? mw.Title.newFromText(q, 14).getPrefixedText() : 'Category:' + q,
cmnamespace: nsStr,
cmtype: (chkCatPages.isSelected() ? 'page|' : '') + (chkCatSub.isSelected() ? 'subcat|' : '') + (chkCatFile.isSelected() ? 'file' : ''),
cmlimit: 'max'
}));
else if (mode === 'linksto') {
if (chkLinkWiki.isSelected()) promises.push(fetchWithContinue(api, {
action: 'query',
list: 'backlinks',
bltitle: q,
blnamespace: nsStr,
bllimit: 'max',
blfilterredir: dropLinkRedir.getValue(),
blredirect: chkLinkToRedir.isSelected()
}));
if (chkLinkTrans.isSelected()) promises.push(fetchWithContinue(api, {
action: 'query',
list: 'embeddedin',
eititle: q,
einamespace: nsStr,
eilimit: 'max',
eifilterredir: dropLinkRedir.getValue()
}));
if (chkLinkImg.isSelected()) promises.push(fetchWithContinue(api, {
action: 'query',
list: 'imageusage',
iutitle: q,
iunamespace: nsStr,
iulimit: 'max',
iufilterredir: dropLinkRedir.getValue()
}));
} else if (mode === 'linkson') promises.push(fetchWithContinue(api, {
action: 'query',
generator: 'links',
titles: q,
gplnamespace: nsStr,
gpllimit: 'max',
prop: 'info'
}));
else if (mode === 'prefix') promises.push(fetchWithContinue(api, {
action: 'query',
list: 'allpages',
apprefix: q,
apnamespace: nsIds[0] || 0,
aplimit: 'max'
}));
else if (mode === 'watchlist') promises.push(fetchWithContinue(api, {
action: 'query',
list: 'watchlistraw',
wrnamespace: nsStr,
wrlimit: 'max'
}));
else if (mode === 'search') promises.push(fetchWithContinue(api, {
action: 'query',
list: 'search',
srsearch: q,
srnamespace: nsStr,
srlimit: 'max'
}));
else if (mode === 'usercontribs') promises.push(fetchWithContinue(api, {
action: 'query',
list: 'usercontribs',
ucuser: srcInputUser.getValue(),
ucstart: srcInputStartDate.getValue(),
ucend: srcInputEndDate.getValue(),
ucdir: 'newer',
uclimit: 'max',
ucnamespace: nsStr,
ucprop: 'title'
}));
else if (mode === 'pageswithprop') promises.push(fetchWithContinue(api, {
action: 'query',
list: 'pageswithprop',
pwppropname: srcDropProp.getValue(),
pwplimit: 'max'
}));
Promise.all(promises).then(function(res) {
var list = new Set();
res.forEach(titles => titles.forEach(t => list.add(t)));
var currentVal = listTextarea.getValue();
var newVal = Array.from(list).join('\n');
listTextarea.setValue(currentVal ? currentVal + '\n' + newVal : newVal);
mw.notify('Added ' + list.size + ' pages');
}).catch(e => alert('Error: ' + e));
} catch (e) {
alert("Fetch error: " + e);
}
});
btnSort.on('click', function() {
var v = listTextarea.getValue();
if (v) {
var lines = getNormalizedList(v);
lines.sort((a, b) => sortAsc ? a.localeCompare(b) : b.localeCompare(a));
listTextarea.setValue(lines.join('\n'));
sortAsc = !sortAsc;
}
});
btnDedup.on('click', function() {
var v = listTextarea.getValue();
if (v) listTextarea.setValue(getDeduplicatedList(v).join('\n'));
});
btnClear.on('click', function() {
listTextarea.setValue('');
});
btnSaveProj.on('click', function() {
try {
var currentMode = srcSelect.getValue();
if (['watchlist', 'usercontribs', 'pageswithprop'].indexOf(currentMode) === -1) queryCache[currentMode] = srcInput.getValue();
var saveExcludes = {};
for (var k in protCheckboxes) saveExcludes[k] = protCheckboxes[k].isSelected();
var data = {
version: APP_VERSION,
library: currentLibrary,
source: {
activeMode: currentMode,
namespaces: ($nsSelect.val() || []).map(v => parseInt(v)),
modes: {
cat: {
query: queryCache['cat'] || '',
options: {
pages: chkCatPages.isSelected(),
sub: chkCatSub.isSelected(),
file: chkCatFile.isSelected()
}
},
linksto: {
query: queryCache['linksto'] || '',
options: {
wiki: chkLinkWiki.isSelected(),
trans: chkLinkTrans.isSelected(),
img: chkLinkImg.isSelected(),
redir: dropLinkRedir.getValue(),
toRedir: chkLinkToRedir.isSelected()
}
},
linkson: {
query: queryCache['linkson'] || ''
},
prefix: {
query: queryCache['prefix'] || ''
},
watchlist: {
query: ''
},
search: {
query: queryCache['search'] || ''
},
usercontribs: {
options: {
user: srcInputUser.getValue(),
start: srcInputStartDate.getValue(),
end: srcInputEndDate.getValue()
}
},
pageswithprop: {
options: {
prop: srcDropProp.getValue()
}
}
}
},
settings: {
redir: redirMode.findSelectedItem().getData(),
skipLogic: radSkipExist.findSelectedItem().getData(),
skipNoChange: chkSkipNoChange.isSelected(),
minor: chkMinor.isSelected()
},
filters: {
contains: {
val: inpSkipContains.getValue(),
regex: togSkipContainsRegex.getValue()
},
notContains: {
val: inpSkipNotContains.getValue(),
regex: togSkipNotContainsRegex.getValue()
},
categories: {
skip: inpSkipCategories.getValue(),
require: inpSkipNotCategories.getValue()
}
},
rules: rulesRegistry.map(r => ({
find: r.find.getValue(),
replace: r.rep.getValue(),
regex: r.regex.getValue(),
flags: r.flags.getValue(),
enabled: r.isActive(),
isFunc: r.isFunc()
})),
scripts: {
pre: txtPreScript.getValue(),
post: txtPostScript.getValue()
},
processing: {
summary: inputSummary.getValue(),
list: listTextarea.getValue()
},
protection: {
mode: dropProtMode.getValue(),
excludes: saveExcludes,
target: (radTargetSet.findSelectedItem() || {
getData: () => null
}).getData(),
templateFilter: inpTemplateFilter.getValue()
}
};
var a = document.createElement('a');
a.href = URL.createObjectURL(new Blob([JSON.stringify(data, null, 1)], {
type: "application/json"
}));
a.download = "wawb_project.json";
a.click();
} catch (e) {
alert("Save error: " + e);
}
});
btnLoadProj.on('click', function() {
$fileInput.click();
});
$fileInput.on('change', function(e) {
var file = e.target.files[0];
if (!file) return;
var reader = new FileReader();
reader.onload = function(evt) {
try {
var data = JSON.parse(evt.target.result);
isLoadingProject = true;
if (data.source) {
if (data.source.namespaces) $nsSelect.val(data.source.namespaces.map(String));
if (data.source.modes) {
var m = data.source.modes;
queryCache = {};
for (var key in m)
if (m[key].query !== undefined) queryCache[key] = m[key].query;
if (m.cat && m.cat.options) {
chkCatPages.setSelected(m.cat.options.pages);
chkCatSub.setSelected(m.cat.options.sub);
chkCatFile.setSelected(m.cat.options.file);
}
if (m.linksto && m.linksto.options) {
chkLinkWiki.setSelected(m.linksto.options.wiki);
chkLinkTrans.setSelected(m.linksto.options.trans);
chkLinkImg.setSelected(m.linksto.options.img);
dropLinkRedir.setValue(m.linksto.options.redir);
chkLinkToRedir.setSelected(m.linksto.options.toRedir);
}
if (m.usercontribs && m.usercontribs.options) {
srcInputUser.setValue(m.usercontribs.options.user);
srcInputStartDate.setValue(m.usercontribs.options.start);
srcInputEndDate.setValue(m.usercontribs.options.end);
}
if (m.pageswithprop && m.pageswithprop.options) srcDropProp.setValue(m.pageswithprop.options.prop);
}
if (data.source.activeMode) {
srcSelect.setValue(data.source.activeMode);
isLoadingProject = false;
srcSelect.emit('change', data.source.activeMode);
isLoadingProject = true;
}
}
if (data.settings) {
redirMode.selectItemByData(data.settings.redir);
chkSkipNoChange.setSelected(data.settings.skipNoChange);
radSkipExist.selectItemByData(data.settings.skipLogic);
if (data.settings.minor !== undefined) chkMinor.setSelected(data.settings.minor);
}
if (data.protection) {
dropProtMode.setValue(data.protection.mode);
for (var k in data.protection.excludes)
if (protCheckboxes[k]) protCheckboxes[k].setSelected(data.protection.excludes[k]);
if (data.protection.target) radTargetSet.selectItemByData(data.protection.target);
if (data.protection.templateFilter) inpTemplateFilter.setValue(data.protection.templateFilter);
}
if (data.library) {
currentLibrary = data.library;
updateLibUI();
}
if (data.filters) {
inpSkipContains.setValue(data.filters.contains.val);
togSkipContainsRegex.setValue(data.filters.contains.regex);
inpSkipNotContains.setValue(data.filters.notContains.val);
togSkipNotContainsRegex.setValue(data.filters.notContains.regex);
}
if (data.filters.categories) {
inpSkipCategories.setValue(data.filters.categories.skip);
inpSkipNotCategories.setValue(data.filters.categories.require);
}
rulesRegistry.forEach(r => r.row.remove());
rulesRegistry = [];
$rulesList.empty();
if (data.rules) data.rules.forEach(r => {
addRule();
var last = rulesRegistry[rulesRegistry.length - 1];
last.find.setValue(r.find);
last.rep.setValue(r.replace);
last.regex.setValue(r.regex);
last.flags.setValue(r.flags);
last.flags.setDisabled(!r.regex);
last.setActive(r.enabled);
if (r.isFunc) last.setFunc(true);
});
if (rulesRegistry.length === 0) addRule();
if (data.scripts) {
txtPreScript.setValue(data.scripts.pre);
txtPostScript.setValue(data.scripts.post);
}
if (data.processing) {
inputSummary.setValue(data.processing.summary);
listTextarea.setValue(data.processing.list);
}
isLoadingProject = false;
setStatus('Project loaded');
} catch (err) {
alert("Error: " + err);
}
$fileInput.val('');
};
reader.readAsText(file);
});
if (CAN_MOVE || IS_ADMIN) {
togAdminEnable.on('change', function(val) {
if (!currentTitle) {
updateInterfaceMode();
return;
}
if (val) {
Editor.setValue(originalWikitext);
updateInterfaceMode();
renderDiff();
setStatus('Ready (Page actions)');
} else processPageContent();
});
}
if (CAN_MOVE) {
btnAdminMove.on('click', function() {
if (!currentVars['$xA']) {
mw.notify('Variable $xA not set', {
type: 'error'
});
return;
}
new mw.Api().postWithToken('csrf', {
action: 'move',
from: currentTitle,
to: currentVars['$xA'],
reason: inputSummary.getValue() + SUMMARY_SUFFIX,
movetalk: chkMovTalk.isSelected(),
movesubpages: chkMovSub.isSelected(),
noredirect: chkMovRedirect.isSelected()
}).then(function() {
removeTopLine();
loadNextPage();
}).catch(e => alert('Move failed: ' + e));
});
}
if (IS_ADMIN) {
btnAdminDel.on('click', function() {
new mw.Api().postWithToken('csrf', {
action: 'delete',
title: currentTitle,
reason: inputSummary.getValue() + SUMMARY_SUFFIX
}).then(function() {
if (chkDelTalk.isSelected()) new mw.Api().postWithToken('csrf', {
action: 'delete',
title: mw.Title.newFromText(currentTitle).getTalkPage().getPrefixedText(),
reason: 'Talk page of deleted page'
});
removeTopLine();
loadNextPage();
}).catch(e => alert('Delete failed: ' + e));
});
btnAdminProt.on('click', function() {
var protections = [];
if (dropProtEdit.getValue()) protections.push('edit=' + dropProtEdit.getValue());
if (dropProtMove.getValue()) protections.push('move=' + dropProtMove.getValue());
new mw.Api().postWithToken('csrf', {
action: 'protect',
title: currentTitle,
protections: protections.join('|'),
expiry: inpProtExpiry.getValue() || 'infinite',
reason: inputSummary.getValue() + SUMMARY_SUFFIX
}).then(function() {
removeTopLine();
loadNextPage();
}).catch(e => alert('Protect failed: ' + e));
});
}
Editor.init();
resetPanels();
});
$(window).on('beforeunload', function() {
return "You have unsaved work.";
});
}).catch(e => console.error("wAwB Loader Error:", e));
//</nowiki>
8p5a1x6sv5444j5kviladldyqppxsrh
Just-for-testing
0
171945
744030
740561
2026-05-24T11:35:44Z
Adityakumargupta45
71955
744030
wikitext
text/x-wiki
only for testing purpose using its
The Sun is very large.<ref>Miller, Edward (2005). The Sun. Academic Press.</ref>
5ffc9h7x2akuo514dn7sn58zhqgekf9
User:KockaAdmiralac/Sandbox
2
174806
743950
743758
2026-05-23T12:03:12Z
KockaAdmiralac
73426
Test
743950
wikitext
text/x-wiki
<math>points = \left\lceil\frac{
\frac{
100 \left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right) + 95
}{
\left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right)
}
}{5} \right\rceil 5 + \left\lceil \frac{oldbet}{5} \right\rceil 5</math>
dlnoiqr3f8a68ee8uswugpvf52rl6ww
743951
743950
2026-05-23T12:18:18Z
KockaAdmiralac
73426
Test
743951
wikitext
text/x-wiki
<math display="block">points = \left\lceil\frac{
\frac{
100 \left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right) + 95
}{
\left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right)
}
}{5} \right\rceil 5 + \left\lceil \frac{oldbet}{5} \right\rceil 5</math>
fzwlhgyorb9lyuoec2avx3c6dt6i5hl
743952
743951
2026-05-23T12:41:56Z
KockaAdmiralac
73426
Test
743952
wikitext
text/x-wiki
<math display="block">points = \left\lceil\frac{
\frac{
100 \left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right) + 95
}{
\left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right)
}
}{5} \right\rceil 5 + \left\lceil \frac{oldbet}{5} \right\rceil 5</math>
<math display="inline">points = \left\lceil\frac{
\frac{
100 \left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right) + 95
}{
\left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right)
}
}{5} \right\rceil 5 + \left\lceil \frac{oldbet}{5} \right\rceil 5</math>
<math>points = \left\lceil\frac{
\frac{
100 \left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right) + 95
}{
\left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right)
}
}{5} \right\rceil 5 + \left\lceil \frac{oldbet}{5} \right\rceil 5</math>
c8uq0ijf0hwnfi14twuxetd879tl2g9
743953
743952
2026-05-23T12:53:39Z
KockaAdmiralac
73426
/* */ Test
743953
wikitext
text/x-wiki
<math display="block">points = \left\lceil\frac{
\frac{
100 \left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right) + 95
}{
\left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right)
}
}{5} \right\rceil 5 + \left\lceil \frac{oldbet}{5} \right\rceil 5</math>
:<math display="inline">points = \left\lceil\frac{
\frac{
100 \left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right) + 95
}{
\left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right)
}
}{5} \right\rceil 5 + \left\lceil \frac{oldbet}{5} \right\rceil 5</math>
:<math>points = \left\lceil\frac{
\frac{
100 \left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right) + 95
}{
\left(0.1 + \frac{remaining}{50} \right)
\left( 1 + \frac{
\left\lceil \frac{oldbet}{5} \right\rceil 5
}{50} \right)
}
}{5} \right\rceil 5 + \left\lceil \frac{oldbet}{5} \right\rceil 5</math>
tl5wl1oyvai7de2mrbzlaufq8owli2m
User:Teriazar/sandbox
2
175213
744019
740667
2026-05-24T09:40:58Z
Teriazar
73808
744019
wikitext
text/x-wiki
{{Пользовательская страница}}
== Тестовая статья: Ливан ==
'''Ливан''' ({{lang-ar|لبنان}}) — государство на Ближнем Востоке, расположенное на восточном побережье Средиземного моря.
=== История ===
Ливан имеет богатую историю, уходящую корнями в финикийскую цивилизацию. Страна обрела независимость в 1943 году.
Дополнительную информацию можно найти на официальном портале [http://www.example-old.com/lebanon старый сайт о Ливане] и на страницах туристических агентств.
=== География ===
Страна граничит с Сирией на севере и востоке, с Израилем на юге. Площадь Ливана составляет около 10 452 км².
Климат Ливана средиземноморский. Подробнее — [http://www.old-geo-site.com/lebanon/climate устаревший климатический ресурс].
=== Экономика ===
Экономика Ливана исторически ориентирована на сферу услуг, банковский сектор и туризм. Столица страны — Бейрут — является крупным финансовым центром региона.
Туристический потенциал страны описан на странице [http://broken-link-example.com/beirut сломанная ссылка о Бейруте].
=== Примечания ===
<references />
=== Ссылки ===
* [[:ru:Ливан|Статья о Ливане в Википедии]]
* [http://www.example-old.com/lebanon Пример старой ссылки]
i3dyf4anmg6e40fx9nungky43blrso0
744020
744019
2026-05-24T09:45:14Z
Teriazar
73808
744020
wikitext
text/x-wiki
{{Пользовательская страница}}
{{значения}}
{{Не путать|Ливия|Ливией|государством в Африке}}
{{Государство
| Русское название = Ливанская Республика
| Оригинальное название = {{lang-ar|الجمهورية اللبنانية}}<br>{{lang-fr|République Libanaise}}
| Родительный падеж = Ливана
| Флаг = Flag of Lebanon.svg
| Герб = Coat of Arms of Lebanon.svg
| Девиз =
| Перевод названия гимна = Национальный ливанский гимн
| Аудио = Lebanese_national_anthem.ogg
| Название гимна = النشيد الوطني اللبناني
| Форма правления = [[Конфессионализм (политика)|конфессиональная]] [[парламентская республика]]<ref name="atlas">{{книга|заглавие=Атлас мира: Максимально подробная информация|ответственный=Руководители проекта: А. Н. Бушнев, А. П. Притворов|место=Москва|издательство=АСТ|год=2017|страницы=46|страниц=96|isbn=978-5-17-10261-4}}</ref>
| lat_dir = N
| lat_deg = 33
| lat_min = 54
| lat_sec = 0
| lon_dir = E
| lon_deg = 35
| lon_min = 51
| lon_sec = 0
| region = LB
| CoordScale = 1000000
| На карте = Lebanon_(orthographic_projection).svg
| Подпись к карте = Ливан на карте мира
| Языки = [[Арабский язык|арабский]]
| Дата независимости = [[22 ноября]] [[1943 год]]а
| Независимость от = [[Франция|Франции]]
| Столица = [[Бейрут]]
| Крупнейшие города = Бейрут, [[Триполи (Ливан)|Триполи]], [[Сайда (город)|Сайда]], [[Баабда]], [[Эн-Набатия (город)|Эн-Набатия]], [[Захла]]
| Должность руководителя 1 = [[Список президентов Ливана|Президент]]
| Руководитель 1 = [[Аун, Жозеф|Жозеф Аун]]
| Должность руководителя 2 = [[Список премьер-министров Ливана|Премьер-министр]]
| Руководитель 2 = [[Салам, Наваф|Наваф Салам]]
| Должность руководителя 3 = Председатель [[Палата представителей Ливана|Палаты представителей]]
| Руководитель 3 = [[Берри, Набих|Набих Берри]]
| Государственная религия = [[светское государство]]
| Место по территории = 161
| Территория = 10452
| Процент воды = 1,6
| Место по населению = {{рост}}122 <ref>[https://population-hub.com/ru/list-of-countries-by-population.html Список стран по населению на 2020 год] {{Wayback|url=https://population-hub.com/ru/list-of-countries-by-population.html |date=20200728142814 }} По данным Population HUB</ref>
| Население = {{рост}}{{число|5364482}}<ref name="автоссылка1">{{CIA World Factbook|article=Lebanon|access-date=23-09-2024}}</ref>
| Год оценки = 2024
| Год переписи =
| Этнохороним = лива́нец, лива́нка, [[ливанцы]]
| Плотность населения = 523
| ВВП (ППС) = {{число|44443|млрд}}<ref name="dataimf">{{Cite web|lang=en|url=https://www.imf.org/en/Publications/WEO/weo-database/2020/October/weo-report?c=512,612,911,912,419,611,469,915,429,433,439,916,443,917,446,672,682,686,449,564,453,456,726,732,463,923,744,925,466,927,487,474,&s=NGDPD,PPPGDP,NGDPDPC,PPPPC,&sy=2018&ey=2025&ssm=0&scsm=1&scc=0&ssd=1&ssc=0&sic=0&sort=country&ds=,&br=1|title=Report for Selected Countries and Subjects|website=IMF|access-date=2020-11-26|archive-date=2020-11-16|archive-url=https://web.archive.org/web/20201116125632/https://www.imf.org/en/Publications/WEO/weo-database/2020/October/weo-report?c=512,612,911,912,419,611,469,915,429,433,439,916,443,917,446,672,682,686,449,564,453,456,726,732,463,923,744,925,466,927,487,474,&s=NGDPD,PPPGDP,NGDPDPC,PPPPC,&sy=2018&ey=2025&ssm=0&scsm=1&scc=0&ssd=1&ssc=0&sic=0&sort=country&ds=,&br=1|url-status=live}}</ref>
| Год расчёта ВВП (ППС) = 2022
| Место по ВВП (ППС) = 89
| ВВП (ППС) на душу населения = {{s|9732}}<ref name="dataimf"/>
| Место по ВВП (ППС) на душу населения = 85
| ВВП (номинал) = 18,08 млрд<ref name="dataimf"/>
| Год расчёта ВВП (номинал) = 2022
| Место по ВВП (номинал) = 79
| ВВП (номинал) на душу населения = {{s|4577}}<ref name="dataimf"/>
| Место по ВВП (номинал) на душу населения = 74
| ИРЧП = {{Рост}} 0,744<ref>{{cite web |url=http://hdr.undp.org/sites/default/files/hdr2019.pdf |lang=en |title=Human Development Indices and Indicators 2019 |publisher=[[Программа развития ООН]] |description=Доклад о человеческом развитии на сайте Программы развития ООН |access-date=2020-01-02 |archive-date=2018-10-24 |archive-url=https://web.archive.org/web/20181024144212/http://hdr.undp.org/sites/default/files/2018_summary_human_development_statistical_update_en.pdf |url-status=live }}</ref>
| Год расчёта ИРЧП = 2022
| Место по ИРЧП = 93
| Уровень ИРЧП = <span style="color:#090;">высокий</span>
| Валюта = [[ливанский фунт]]<br>([[ISO 4217|LBP, 422]])
| Домен = [[.lb]]
| Телефонный код = 961
| Часовой пояс = [[Восточноевропейское время|EET]] ([[UTC+2:00|UTC+2]], [[Летнее время|летом]] [[Восточноевропейское летнее время|UTC+3]])
}}
'''Лива́н''' ({{lang-ar|لبنان}}, {{lang-fr|Liban}}), официальное название — '''Лива́нская Респу́блика''' ({{lang-ar|الجمهورية اللبنانية}}, {{lang-fr|République libanaise}}) — государство на [[Ближний Восток|Ближнем Востоке]], расположенное в гористой местности на восточном берегу [[Средиземное море|Средиземного моря]]. На востоке и севере граничит с [[Сирия|Сирией]], на юге — с [[Израиль|Израилем]].
Столица — [[Бейрут]]. Государственный язык — [[Арабский язык|арабский]] ([[Ливанский диалект арабского языка|ливанский диалект]]). Население Ливана — около 5,3 миллиона человек<ref name="автоссылка1" />. Республика выделяется чрезвычайным религиозным разнообразием.
В государстве действует особая [[политическая система]] — так называемый [[Конфессионализм (политика)|конфессионализм]], подразумевающий организацию государственной власти в соответствии с делением общества на религиозные общины.
До [[Гражданская война в Ливане|гражданской войны 1975—1990 годов]] Ливан был процветающим государством, финансовой и банковской столицей Ближнего Востока с преобладающей долей христианского населения (по переписи 1913 года доля христиан составляла 79,5 %, по переписи 1932 года — 49,9 % (58,5 %, включая эмиграцию)), за что получил неофициальное название «Ближневосточная [[Швейцария]]». Страна также пользуется популярностью среди туристов. После завершения войны началось восстановление экономики.
В Ливане находится один из древнейших городов — [[Баальбек]] со своим знаменитым [[Трилитон Баальбека|Трилитоном Баальбека]].
== Этимология ==
Название стране было присвоено по [[Ливан (хребет)|горному хребту Ливан]], который проходит по территории страны вдоль берега [[Средиземное море|Средиземного моря]]. Название хребта, в свою очередь, происходит от [[Прасемитский язык|древнесемитского]] ''laban'' («белый») — его сравнительно высокие вершины в зимнее время покрыты снегом{{sfn|Поспелов|2002|с=242}}.
== География ==
{{main|География Ливана}}
[[Файл:карта Ливана.png|thumb|right|315px|Карта Ливана]]
Ливан расположен на [[Ближний восток|Ближнем востоке]]. На западе омывается [[Средиземное море|Средиземным морем]], береговая линия 225 [[км]]. На севере и востоке граничит с [[Сирия|Сирией]], на юге — с [[Израиль|Израилем]]. Сирийско-ливанская граница имеет протяжённость 375 км, ливано-израильская — 79 км. Небольшой отрезок границы Ливана с [[Голанские высоты|Голанскими высотами]] ([[Фермы Шебаа]]), присоединёнными Израилем, является спорной территорией.
Общая площадь Ливана — 10452 {{км2}}. По размерам страна является [[Список стран, сортировка по площади|161-й в мире]]. Большая часть Ливана покрыта [[гора]]ми, кроме [[Долина Бекаа|долины Бекаа]] на северо-востоке и вытянутого с севера на юг узкого равнинного участка вдоль берега моря. Прибрежный Ливан отделяется от восточных регионов горными цепями [[Ливан (хребет)|Ливан]] и [[Антиливан]]. В Ливане имеются залежи [[известняк]]а, [[Железная руда|железной руды]], месторождения [[Соль|соли]]. Ливан богат водными ресурсами. Река [[Эль-Литани]] является основным источником воды для южных районов Ливана. Тем не менее, судоходных рек в стране нет.
[[Файл:Satellite image of Lebanon in March 2002.jpg|thumb|right|315px|Ливан из космоса]]
=== Климат ===
Для Ливана характерен [[средиземноморский климат|средиземноморский климат (по классификации Кёппена)]]. В прибрежных регионах зима, как правило, прохладная, а лето — влажное и жаркое. Зимой в горах температура опускается ниже 0 °C, возможно выпадение снега. Хотя среднегодовое количество осадков в Ливане гораздо больше, чем в соседних странах, на северо-востоке преобладает засушливый климат, так как горы блокируют поступление влажного воздуха с моря. Часто случаются песчаные и пылевые бури.
=== Флора ===
[[Файл:Cedar of Lebanon (Cedar of God), Lebanon.jpg|thumb|left|[[Ливанский кедр]] — национальное растение государства]]
[[Файл:Pilgrimage_to_the_Cedars_of_Libanon.jpg|left|thumb|«Паломничество у ливанского кедра» — полотно [[Венгрия|венгерского]] художника [[Чонтвари, Тивадар Костка|Чонтвари Тивадара Костки]]]]
Флора Ливана состоит примерно из 2200—2400 видов{{sfn|Павлов|1965}}. [[Эндемик|Эндемических]] [[Семейство|семейств]] в ней нет, количество эндемических [[Род (биология)|родов]] малочисленно, а эндемические [[Вид (биология)|виды]] связаны с молодым прогрессивным [[видообразование]]м в [[Полиморфизм (биология)|полиморфных]] родах. Во флоре Ливана господствует средиземноморский флористический элемент с незначительной примесью ирано-туранских видов.
[[Растительность]] Ливана (как главным образом горной страны) имеет поясный характер. Нижний пояс представлен на [[Известняк|известняковых породах]] типичным средиземноморским [[маквис]]ом. В нём господствует {{bt-ruslat|маслина европейская|Olea europaea}}. На севере, в районе [[Триполи (Ливан)|Триполи]], она поднимается до 600—800 м наибольшей высоты, а на востоке, по склонам [[Хермон]]а, достигает 700 м наибольшей высоты. Вместе с маслиной встречаются {{bt-ruslat|олеандр|Nerium oleander}}, вечнозелёные [[дуб]]ы — {{bt-ruslat|дуб лузитанский|Quercus lusitanica}}, {{bt-ruslat|дуб калепринский|Quercus calliprinos}}, {{bt-ruslat|дуб таворский|Quercus ithaburensis}}, [[кустарник]]и — {{bt-ruslat|волчеягодник маслиноподобный|Daphne oleoides}}, {{bt-ruslat|вишня распростёртая|Prunus prostrate}}, {{bt-ruslat|розмарин лекарственный|Rosmarinus officinalis}} и [[Травянистые растения|травы]] — {{bt-ruslat|Лаванда стэхадская|Lavandula stoechas}}, {{bt-ruslat||Dorycnium hirsutum}}, {{bt-ruslat|подладанник жёлтый|Cytinus hypocistis}}, {{bt-ruslat|володушка кустарниковая|Bupleurum fruticosum}}, {{bt-ruslat|глинус лядвенецевидный|Glynus lotoides}}, {{bt-ruslat|шаровница обезболивающая|Clobularia alupum}}, {{bt-ruslat||Pastinaca teretiuscula}}, {{bt-ruslat||Turgeniopsis foeniculaea}} и др.
Следующий — лесной — пояс Ливана, простирающийся с высот 600—800 м до 2300—2400 м абс. выс., хорошо выражен в центральной части страны, где преобладают [[песчаник]]и. Растительность песчаников сильно нарушена вырубками и выпасом скота. Наибольший вред приносят козы, являющиеся не столько травоядными, сколько древоядными животными. В древности на территории Ливана в огромном количестве произрастали леса [[Кедр ливанский|ливанского кедра]] (''Cedrus libani''), ставшего символом страны. Столетиями деревья вырубались без пересадки как основной материал в [[Судостроение|кораблестроении]], и это в конечном итоге привело к тому, что к [[XX век]]у на месте богатейших лесов остались лишь отдельные острова зелени — на высотах от 1300 до 2000 м — величайший из которых находится в долине Бшерры на высоте 1520 м.
В лесном поясе встречаются также {{bt-ruslat|платан восточный|Platanus orientalis}}, {{bt-ruslat|клён сирийский|Acer syriacum}}, {{bt-ruslat|ясень манновый|Fraxinus ornus}} и [[хвойные]] — {{bt-ruslat|сосна алеппская|Pinus halepensis}}, {{bt-ruslat|сосна калабрийская|Pinus brutia}}, {{bt-ruslat|кипарис вечнозелёный|Cupressus sempervirens}}<!-- (Cupressus sempervirens var. Horizontalis)-->, {{bt-ruslat|Пихта киликийская|Abies cilicica}}, [[Можжевельник|древовидные можжевельники]] на хребте [[Ливан (хребет)|Ливан]] — {{bt-ruslat|можжевельник колючий|Juniperus oxycedrus}} и {{bt-ruslat|можжевельник вонючий|Juniperus foetidissima}}, а на [[Хермон]]е — {{bt-ruslat|можжевельник высокий|Juniperus excelsa}}. Выше древовидные можжевельники сменяются на кустарниковый {{bt-ruslat|можжевельник косточковый|Juniperus drupacea}}. В лесах нередко встречаются [[Папоротниковидные|папоротники]], из которых наиболее примечательны {{bt-ruslat||Pteris arguta}} и {{bt-ruslat||Pteris longifolia}}, и заросли [[Иван-чай узколистный|иван-чая узколистного]] ({{bt|Chamerion angustifolium}}).
С высоты 2300—2400 м начинается наименее изученный пояс высокогорной [[Альпийская растительность|альпийской растительности]]. Здесь растут {{bt-ruslat|рододендрон понтийский|Rhododendron ponticum}}, селагинелла {{bt-ruslat||Selaginella denticulate}}, {{bt-ruslat|осока лесная|Carex sylvatica}} и другие бореальные и аркто-альпийские растения: {{bt-ruslat|камнеломка|Saxifraga}}, {{bt-ruslat|ветреница|Anemone}}, {{bt-ruslat|лютик|Ranunculus}}, {{bt-ruslat|Крупка (растение){{!}}крупка|Draba}}, {{bt-ruslat|горечавка|Gentiana}}.
В значительно более сухих горах [[Антиливан]]а растительность беднее, лиственные породы почти отсутствуют, а из хвойных встречаются только {{bt-ruslat|кедр ливанский|Cedrus libani}} и {{bt-ruslat|можжевельник косточковый|Juniperus drupacea}}. В нижнем поясе кое-где растут единично вечнозелёные [[дуб]]ы и {{bt-ruslat|фисташка палестинская|Pistacia palaesina}}, а иногда встречаются и пустынно-степные группировки подушковидного [[чероноголовник колючий|чероноголовника колючего]] ({{bt-ruslat||Poterium spinosum}}).
[[Культурные растения]] Ливана немногочисленны. Это главным образом [[пшеница]] и [[ячмень]], только на побережье Средиземного моря разводятся [[Цитрусовые культуры|цитрусовые]] и другие [[Плодовые культуры|плодовые породы]], [[Виноград культурный|виноград]], {{bt-ruslat|инжир|Ficus carica}} и [[Маслина|маслины]].
== История ==
{{main|История Ливана}}
=== Древний Ливан ===
Появление первых поселений на территории современного Ливана относится к [[6-е тысячелетие до н. э.|6-му тысячелетию до н. э.]] В окрестностях [[Библ]]а археологи обнаружили остатки доисторических хижин и примитивных орудий. Некоторые предметы быта указывают на существование здесь стоянок рыболовецких племён времён эпохи [[неолит]]а ещё в [[8-е тысячелетие до н. э.|8-м]]—[[7-е тысячелетие до н. э.|7-м тысячелетиях до н. э.]]
Ливан стал родиной [[Финикия|Финикии]], развитого морского торгового государства, растянувшегося вдоль берега [[Средиземное море|Средиземного моря]]. Финикийцы дали миру первый [[Финикийский алфавит|алфавит]]. Расцвет Финикии пришёлся на 1200—800 годы до н. э. В VI веке до н. э. Финикия попала под владычество [[Иран|персов]] во главе с [[Кир II Великий|Киром Великим]]. В 332 году до н. э. [[Александр Македонский]] совершил поход на Финикию, уничтожив её крупнейший город — [[Тир (город)|Тир]]. С распадом империи Македонского Ливан вошёл в состав [[Селевкиды|Царства Селевкидов]], а в конце I века до н. э. — [[Римская империя|Римской империи]].
=== Средневековый Ливан ===
[[Файл:DeirAlQamar-FakhredinePalace.jpg|thumb|Дворец XVII века|left]]
В период арабских завоеваний и становления [[Арабский Халифат|Халифата]] в Ливан проникает [[ислам]]. В XII веке Ливан стал частью Иерусалимского королевства [[Крестоносцы|крестоносцев]]. В 1261 году крестоносцы были изгнаны из Ливана [[Мамлюкский султанат|тюрками-мамлюками]], и Ливан находился в составе мамлюкского Египта до 1516 года. В 1517 году султан [[Селим I]] присоединил эту территорию к [[Османская империя|Османской империи]]. Эмиры [[Шехаб (династия)|династии Шехаб]] правили Ливаном с 1697 до 1842 года.
=== Французский мандат ===
{{См. также|Великий Ливан}}
[[Файл:Beirut-in-1919.webm|thumb|Бейрут в 1919 г.]]
Территория Ливана (в составе Большой Сирии) входила в состав Османской империи на протяжении более 400 лет. После поражения Турции в [[Первая мировая война|Первой мировой войне]] и распада Османской империи, территория Большой Сирии была оккупирована в 1918 году британскими войсками под командованием генерала Аленби. В 1918 г., по более раннему [[Соглашение Сайкса — Пико|соглашению Сайкса-Пико]] между странами [[Антанта|Антанты]] от 1916 года, территория Сирии была передана [[Франция|Франции]] и управление ею было легализовано в виде [[Сирия#Французский мандат|Французского мандата]] от Лиги Наций. В 1926 году территория Ливана была отделена от Сирии, и Ливан стал отдельной территориальной единицей, управляемой, однако, той же администрацией Французского мандата Сирии.
=== Независимый Ливан ===
В 1940 году Франция была оккупирована [[Германия|Германией]]. Уже в [[Ноябрь|ноябре]] во французском мандате в Ливане прошли первые нелегитимные выборы и сформировано правительство.
В 1943 году Ливан уже официально приобрёл независимость. «[[Национальный пакт]]» установил правило, по которому [[президент]]ом страны должен быть [[Маронитская католическая церковь|христианин-маронит]], а [[премьер-министр]]ом — [[Ислам|мусульманин-суннит]] (спикером же парламента — мусульманин-шиит).
В 1948 году Ливан принял участие в первой [[Арабо-израильская война 1948 года|арабо-израильской войне]]. После поражения Арабской освободительной армии Ливан подписал с [[Израиль|Израилем]] соглашение о прекращении огня. 100 тысяч арабских беженцев перебрались из Палестины в Ливан.
С 1956 года в Ливане начали усиливаться противоречия между христианами и мусульманами, вылившиеся в мае 1958 года в [[Ливанский кризис 1958 года|гражданскую войну]]. Чтобы удержать власть в стране, президент [[Шамун, Камиль|Камиль Шамун]] обратился за военной помощью к США. Американские войска находились в стране с июля по октябрь до полной нормализации обстановки.
=== Гражданская война ===
{{main|Гражданская война в Ливане}}
[[Файл:Green Line, Beirut 1982.jpg|thumb|Бейрут в военное время]]
В 1975 году в Ливане разразилась вторая [[Гражданская война в Ливане|гражданская война]] между [[Правохристиане (Ливан)|правохристианскими]] силами и лево-мусульманскими милициями, которых поддержали находившиеся в Ливане палестинские боевики. Война продолжалась 15 лет, разрушив некогда процветающую экономику страны, и унесла жизни более 150 тысяч жителей. Кровопролитие прекратилось в 1990 году подписанием Таифских соглашений.
В 1976 году по просьбе тогдашнего правительства в Ливан вошли сирийские войска. {{не переведено 3|Сирийское присутствие в Ливане|Сирийское присутствие||Syrian occupation of Lebanon}} продолжалось до 2005 года, несмотря на официальные требования президентов Ливана о выводе сирийских войск, начиная с 1983 года<ref name="CommitteeUSA">{{cite web|url=http://www.gpo.gov/fdsys/pkg/CHRG-106shrg67981/pdf/CHRG-106shrg67981.pdf|title=Hearing before the Subcommittee on Near Eastern and South Asian Affairs of of the Committee on Foreign Relations United States Senate|date=2000-06-14|publisher=Committee on Foreign Relations|lang=en|access-date=2012-07-03|archive-url=https://www.webcitation.org/69f2GcUF3?url=http://www.gpo.gov/fdsys/pkg/CHRG-106shrg67981/pdf/CHRG-106shrg67981.pdf|archive-date=2012-08-04|url-status=live}}</ref><ref name="Youssef">Shiar Youssef [http://www.globalresearch.ca/index.php?context=va&aid=9340 What really happened in Beirut? July 3, 2012] {{Wayback|url=http://www.globalresearch.ca/index.php?context=va&aid=9340 |date=20120529093001 }}</ref>.
Дважды войска [[Армия обороны Израиля|армии обороны Израиля]] (ЦАХАЛ) были введены на территорию Ливана. Первый раз в марте 1978 года — после захвата двух автобусов с заложниками, когда погибло 36 и было ранено свыше 70 израильских граждан<ref name="Брасс_истоки">{{Cite web |url=http://rus.delfi.lv/news/entertainment/books/article.php?id=9150664 |title=Александр Брасс. Палестинские истоки, Marcus, Polaris, 24 сентября 2004 |access-date=2015-09-15 |archive-date=2007-09-26 |archive-url=https://web.archive.org/web/20070926235526/http://rus.delfi.lv/news/entertainment/books/article.php?id=9150664 |url-status=live }}</ref>; второй в июне 1982 года — в ответ на покушение на израильского посла в Лондоне [[Аргов, Шломо|Шломо Аргова]]<ref>после покушения три месяца Ш. Аргов находился в [[Кома|коме]], остался парализованным, и до дня своей смерти в 2003 году был госпитализирован в реабилитационном отделении больницы [[Больница Хадасса|Адасса Хар ха-Цофим]] в [[Иерусалим]]е</ref> были проведены массированные бомбардировки по позициям Организации освобождения Палестины в Ливане<ref>[[Эйтан, Рафаэль|Рафаэль Эйтан]]. Повесть солдата. / пер. с иврита — [[Баух, Ефрем Исаакович|Ефим (Ефрем) Баух]]. Израиль, изд-во «Яир», 1991. стр.336</ref><ref name="LibraryCongress">{{cite web|url=http://lcweb2.loc.gov/cgi-bin/query/r?frd/cstdy:@field%28DOCID+lb0161%29|title=Lebanon. The Two-Week War. Section 1 of 1; Data as of December 1987 Library of Congress Country Studies|publisher=Lcweb2.loc.gov|date=1982-06-03|access-date=2012-02-29|archive-url=https://www.webcitation.org/68MN7WD5k?url=http://lcweb2.loc.gov/cgi-bin/query/r?frd%2Fcstdy%3A%40field%28DOCID+lb0161%29|archive-date=2012-06-12|url-status=live}}</ref>. Тогда ООП подвергло массированному обстрелу территорию Израиля<ref name="LibraryCongress" /><ref name="brass2004">{{книга|автор=Александр Брасс|заглавие=Палестинские истоки // Терроризм - история и современность|ссылка=https://books.google.co.il/books?id=ChY2kq6KVMcC&pg=PA80 |издательство=Olma Media Group|год=2004|страниц=347 |страницы=80|isbn=5948496694, 9785948496696}}</ref><ref name="Eitan1992">{{книга|автор= [[Эйтан, Рафаэль|Raful Eitan]]|заглавие=A Soldier's Story: The Life and Times of an Israeli War Hero|ссылка=https://books.google.ru/books?id=3Iav7igW5CQC|издательство=SP Books|год=1992|pages=272|allpages=388|isbn=1561710946, 9781561710942}}</ref>, а силы ЦАХАЛа вошли на территорию южного Ливана. Силы ЦАХАЛа оставались в южном Ливане вплоть до 2000 года. После вывода войск между Израилем и Ливаном была проведена чёткая граница — так называемая «голубая линия», однако [[Мазария-Шабъа|фермы Шебаа]] к северу от [[Голанские высоты|Голанских высот]] так и остались спорной территорией.
=== Последующий период ===
В послевоенный период экономика Ливана бурно росла.
Недолгий период относительного спокойствия был прерван правительственным кризисом, спровоцированным убийством экс-премьера страны [[Харири, Рафик|Рафика Харири]], последовавшим выводом из страны [[Сирийские арабские вооружённые силы|сирийских войск]] и [[Вторая ливанская война|израильско-ливанским конфликтом]] в 2006 году.
В 2007 году ситуация в Ливане осложнилась [[Конфликт в Северном Ливане 2007 года|кризисом вокруг лагеря Нахр аль-Барид]].
В 2011 году в Ливане возник [[Конфликт в Ливане (2011—2017)|конфликт между крупнейшими парламентскими фракциями]]. А в 2015 году по стране прокатилась [[Беспорядки в Ливане (2015)|волна протестов]] из-за бездействия правительства и [[Президентские выборы в Ливане (2014—2016)|политического кризиса]], в ходе которого парламент до 2016 года не мог избрать президента.
9 марта 2020 года Ливан объявил первый в истории страны [[дефолт]] по [[облигация]]м на сумму 1,2 млрд долларов США<ref>{{Cite web|url=https://www.rbc.ru/economics/07/03/2020/5e63d3459a7947cc5cd55594|title=Ливан объявил дефолт по евробондам из-за «сожравшей страну коррупции»|publisher=РБК|lang=ru|access-date=2020-03-11|archive-date=2020-03-08|archive-url=https://web.archive.org/web/20200308125036/https://www.rbc.ru/economics/07/03/2020/5e63d3459a7947cc5cd55594|url-status=live}}</ref>. Общий внешний долг достиг 90 млрд долларов (более 150 % от ВВП)<ref>{{Cite web|url=https://espresso.economist.com/a596c69468e85ae53014c825e9079543|title=No more romance on the Levant: Lebanon’s debt crisis|date=2020-03-08|publisher=Economist Espresso|lang=en|access-date=2020-03-11|archive-date=2021-01-29|archive-url=https://web.archive.org/web/20210129184645/https://espresso.economist.com/a596c69468e85ae53014c825e9079543|url-status=live}}</ref>.
10 августа 2020 года правительство Ливана официально ушло в отставку в полном составе<ref>{{cite news|title=Правительство Ливана в полном составе ушло в отставку спустя неделю после взрыва в Бейруте|url=https://meduza.io/news/2020/08/10/pravitelstvo-livana-v-polnom-sostave-ushlo-v-otstavku-spustya-nedelyu-posle-vzryva-v-beyrute|access-date=2020-08-11|publisher=Медуза|date=2020-08-10|archive-date=2021-05-12|archive-url=https://web.archive.org/web/20210512071803/https://meduza.io/news/2020/08/10/pravitelstvo-livana-v-polnom-sostave-ushlo-v-otstavku-spustya-nedelyu-posle-vzryva-v-beyrute}}</ref>.
== Государственное устройство ==
{{main|Государственный строй Ливана}}
[[Файл:BeirutParliament.jpg|мини|Здание Палаты представителей в [[Бейрут]]е]]
Существующая более полувека «ливанская модель» (конфессионализм) государственного устройства была создана в 1943 году в процессе обретения Ливаном независимости от Франции. Для того, чтобы обеспечить более или менее равный доступ к верховной власти для всех религиозных [[Конфессия|конфессий]], был разработан следующий порядок: [[Президент Ливана|президентом]] страны должен быть [[Христианство|христианин]]-[[Марониты|маронит]], [[Премьер-министр Ливана|премьер-министром]] — [[Сунниты|мусульманин-суннит]], [[спикер]]ом парламента — [[Шииты|мусульманин-шиит]], а в правительстве должны быть поровну представлены [[Христианство|христиане]] и [[Ислам|мусульмане]]. Согласно конституции, Ливан является [[Парламентская республика|парламентской республикой]].
[[Законодательная власть]] представлена [[Палата представителей Ливана|Палатой представителей]] ({{lang-ar|مجلس النواب}}) — [[парламент]]ом Ливана, который состоит из 128 депутатов, избираемых прямым голосованием на четырёхлетний срок. В Палате заседают 64 [[мусульманин]]а (27 [[Сунниты|суннитов]], 27 [[Шииты|шиитов]], 8 [[Друзы|друзов]] и 2 [[Алавиты|алавита]]) и 64 [[христианин]]а (32 [[Маронитская католическая церковь|маронита]], 20 армян [[ААЦ]], 2 [[Армянская католическая церковь|армяно-католика]], 7 [[Православие|православных]], 1 греко-католик ([[Мелькитская греко-католическая церковь|мелькит]]), 1 [[Протестантизм|протестант]], а также ещё 1 по усмотрению). Парламент избирает президента, утверждает состав правительства, утверждает законы и [[бюджет]] республики.
Президент ([[Маронитская католическая церковь|маронит]]) избирается Палатой представителей на 6-летний срок, причём одно лицо не может дважды занимать этот пост. Дважды в истории это правило нарушалось: в 1995 году на 3 года был продлён срок пребывания у власти [[Ильяс Храуи|Ильяса Храуи]], а также в 2004 году президентские полномочия до 23 ноября 2007 года были продлены для [[Лахуд, Эмиль|Эмиля Лахуда]]. Президент по представлению парламента назначает [[премьер-министр]]а ([[Сунниты|суннита]]) и его первого заместителя. После консультаций с президентом и парламентом премьер-министр формирует [[кабинет министров]] также по принципу религиозного [[Квота|квотирования]].
В соответствии с [[Конфессия|конфессиональным]] делением в Ливане зарождались и [[Политическая партия|политические партии]], которые по большей части имеют [[Религия|религиозный]] характер. [[Христианство|Христианские]], [[Сунниты|суннитские]], [[Шииты|шиитские]], [[Друзы|друзские]] партии борются не друг против друга, а за места в пределах заранее определённых конфессиональных [[Квота|квот]]. В каждой из конфессий исторически сложилось несколько противостоящих друг другу политических сил. Например, среди ливанских христиан были как яростные противники сирийского военного присутствия в Ливане (например, генерал [[Аун, Мишель Наим|Мишель Аун]] или командующий объединённой христианской милицией «[[Ливанские Силы]]» [[Джааджаа, Самир|Самир Джааджаа]]), так и лояльные [[Сирия|Сирии]] политики, которым как раз и доставались президентские посты ([[Моавад, Рене|Рене Муаввад]], [[Храуи, Ильяс|Элиас Храуи]], [[Эмиль Лахуд]]).
Бывший премьер-министр [[Харири, Рафик|Рафик Харири]] был первым, кто бросил вызов этой системе. Он пришёл к власти, не опираясь на какую-либо из существующих религиозно-политических партий, а благодаря своему колоссальному состоянию. Оно же позволило ему осуществить восстановление разрушенной страны. Сирия поддерживала сохранение прежней системы конфессиональных квот, заявляя, что альтернативой ей может быть лишь новая [[гражданская война]].
Согласно [[Economist Intelligence Unit]] страна в 2018 была классифицирована по [[Индекс демократии (Economist)|индексу демократии]] как [[гибридный режим]]<ref name="euidata2018">{{cite web |url=https://pages.eiu.com/rs/753-RIQ-438/images/Democracy_Index_2018.pdf |title=Democracy Index 2018: Me too? Political participation, protest and democracy |website=The Economist Intelligence Unit (The EIU) |access-date=2019-01-25 |archive-date=2019-01-10 |archive-url=https://web.archive.org/web/20190110013730/http://pages.eiu.com/rs/753-RIQ-438/images/Democracy_Index_2018.pdf |url-status=live }}</ref>.
=== Политические силы Ливана ===
Особенностью ливанской политики является деление всех политических сил на сторонников и противников сирийского влияния в стране{{Нет АИ|18|07|2017}}. В настоящее время первые объединены в [[Коалиция 8 марта|Коалицию 8 марта]], имеющую 68 из 128 мест в парламенте, а вторые — в [[Коалиция 14 марта|Коалицию 14 марта]] (60 мест в парламенте). В каждой этноконфессиональный группе Ливана есть партии, выступающие как с просирийских, так и с антисирийских позиций.
Основные партии христианской общины — [[Свободное патриотическое движение]] (СПД), [[Катаиб|Катаиб (Ливанская фаланга)]], [[Ливанские силы]], [[Национал-либеральная партия (Ливан)|Национал-либеральная партия]] (НЛП), [[Марада]]. Просирийские позиции занимают СПД и
«Марада», антисирийские — фалангисты, «Ливанские силы», национал-либералы. За консолидацию христианских политических сил выступает движение [[Фронт свободы (Ливан)|Фронт свободы]].
Крупнейшая партия мусульман-суннитов — антисирийское [[Движение за будущее]]. В шиитской общине доминируют [[Амаль]] и проиранская [[Хезболла]].
Особое место занимает [[друзы|друзская]] [[Прогрессивно-социалистическая партия Ливана|Прогрессивно-социалистическая партия]] (чей лидер [[Валид Джумблат]] известен своей беспринципностью). Она постоянно меняет свою позицию в зависимости от того, какая политическая и/или военная сила преобладает в Ливане, стоя на защите интересов [[друзы|общины друзов]].
Партийные списки построены по конфессиональному признаку, а внутри партийных списков места распределяются по клановому принципу. В то же время, конфессионально-клановое деление Ливана имеет географическое отражение: приверженцы одного клана, как правило, компактно населяют определённый район и традиционно выдвигают одного и того же представителя.
=== Результаты парламентских выборов 2005 по округам ===
# Бейрут (19 депутатов). Все 19 мест достались партии «Аль-Мустакбаль». «Свободное патриотическое движение» генерала Мишеля Ауна и армянская партия [[Дашнакцутюн]] не получили ни одного места. Ещё до выборов Мишель Аун призвал жителей Бейрута бойкотировать выборы, поскольку их результаты, по его мнению, были предопределены. Не участвовать в выборах призвали и лидеры армянской партии [[Дашнакцутюн]]. В результате самая низкая явка избирателей отмечена именно в христианских районах Бейрута.
# Южный Ливан. Большинство получил альянс «Амаль» — «[[Хезболла]]».
# Горный Ливан и долина Бекаа — большинство получил [[Аун, Мишель|Мишель Аун]].
# Северный Ливан — все 28 мандатов получил блок Саада Харири.
=== Результаты парламентских выборов 2009 по округам ===
{{main|Парламентские выборы в Ливане (2009)}}
== Административное деление ==
{{Lebanon Labelled Map|image=Lebanon districts 2020.png|float=right}}
{{main|Административное деление Ливана}}
Ливан делится на 9 мухафаз или провинций (''мухафаза'', {{lang-ar|محافظة}}), которые, в свою очередь, делятся на 25 районов (''када'', {{lang-ar|قضاء}}). Районы делятся на округа.
# [[Бейрут (мухафаза)|Бейрут]]
# [[Горный Ливан]]
# [[Кесруан-Джубейль]]
# [[Северный Ливан]]
# [[Бекаа (мухафаза)|Бекаа]]
# [[Набатия (мухафаза)|Набатия]]
# [[Аккар (мухафаза)|Аккар]]
# [[Баальбек-Хермель|Баальбек—Хермель]]
# [[Южный Ливан]]
== Население ==
{{нет ссылок в разделе|дата=2017-05-30}}
{{main|Население Ливана|Города Ливана}}
[[Файл:Lebanon_single_age_population_pyramid_2020.png|thumb|250px|[[Возрастно-половая пирамида]] населения Ливана на 2020 год]]
Основную часть населения Ливана составляют [[ливанцы]], при этом они разделены на несколько [[Конфессия|этноконфессиональных]] групп, что имеет определяющее значение в жизни страны. В стране также большое количество [[Палестинские беженцы#Положение беженцев в Ливане|беженцев из Палестины]] и их потомков. Государственный язык — [[Ливанский диалект арабского языка|ливанский диалект]] [[Арабский язык|арабского]].
Кроме того, в стране годами проживают тысячи иностранных рабочих (из [[Индия|Индии]], [[Бангладеш]], [[Филиппины|Филиппин]], [[Эфиопия|Эфиопии]] и др.), выполняющие в стране различную неквалифицированную работу.
=== Религия ===
{{main|Религия в Ливане|Конфессиональность в Ливане|Ислам в Ливане}}
{{нет ссылок в разделе|дата=2016-02-26}}
[[Файл:Lebanon Religious groups RUS.jpg|мини|250px|Географическое распределение основных этноконфессиональных групп Ливана]]
Около 60 % населения Ливана исповедует [[ислам]] ([[сунниты]], [[шииты]], [[алавиты]]). В Ливане живут также [[друзы]], имеющие собственные верования<ref>{{bulleted list|
|{{cite web |last=Abulafia |first=Anna Sapir |author-link=Anna Abulafia |date=2019-09-23 |url=https://www.bl.uk/sacred-texts/articles/the-abrahamic-religions |title=The Abrahamic religions |website=www.bl.uk |publisher=[[British Library]] |location=London |access-date=2021-03-09 |url-status=live |archive-url=https://web.archive.org/web/20200712150432/https://www.bl.uk/sacred-texts/articles/the-abrahamic-religions |archive-date=2020-07-12}}
|{{cite book |last=Obeid |first=Anis |title=The Druze & Their Faith in Tawhid |url=https://books.google.com/books?id=FejqBQAAQBAJ&pg=PT1 |year=2006 |publisher=[[Syracuse University Press]] |isbn=978-0-8156-5257-1 |page=1}}
|{{harvnb|Dana|2010|p=314}}
}}</ref><ref name="Adams Media">{{cite book |last1=Morrison |first1=Terri |url=https://archive.org/details/kissboworshakeha00morr_568 |title=Kiss, Bow, Or Shake Hands: The Bestselling Guide to Doing Business in More Than 60 Countries |last2=Conaway |first2=Wayne A. |date=2006 |publisher=[[Adams Media]] |isbn=978-1-59337-368-9 |edition=illustrated |page=[https://archive.org/details/kissboworshakeha00morr_568/page/n274 259] |url-access=limited}}<!--|access-date=6 January 2015--></ref>.
Численность христиан разных конфессий в Ливане достигает 40 % (по оценкам экспертов 40,5 %) населения. На территории Ливана существуют, в частности, [[Антиохийский патриархат|православные (греко-православные)]], [[Армянская апостольская церковь]], [[Сиро-яковитская православная церковь]], шесть [[восточнокатолические церкви|восточнокатолических церквей]] — [[Маронитская католическая церковь|маронитская]] (западносирийская), [[Халдейская католическая церковь|халдейско-католическая]], [[Мелькитская католическая церковь|мелькитская (грекокатолическая)]], [[Армянская католическая церковь|армянокатолическая]], [[Сирийская католическая церковь|сирокатолическая]] и [[Коптская католическая церковь|коптокатолическая]].
=== Города ===
{{Основная статья|Города Ливана}}
== Экономика ==
{{главная|Экономика Ливана}}
{{См. также|Виноделие в Ливане}}
== Культура ==
{{main|{{нп3|Культура Ливана|Культура Ливана|en|Culture of Lebanon}}}}
[[Файл:USJ Campus.jpg|thumb|left|Здание ливанского Университета [[Иосиф Обручник|Иосифа Обручника]]]]
[[Файл:Fairuz playing the guitar.jpg|мини|Знаменитая ливанская певица [[Файруз]]|альт=]]
В Бейруте 4 университета, государственный [[симфонический оркестр]], проводятся множество музыкальных фестивалей — самые известные Бейтеддинский и Баальбекский, на которых выступали Паваротти, Каррерас и другие мировые знаменитости.
== Спорт ==
Ливан является родиной многих всемирно известных спортсменов. В Ливане родились будущие [[Культуризм|культуристы]] Самир Баннут (победитель турнира «[[Мистер Олимпия]]») и [[Мохаммед Баннут]], Ахмад Хайдар (абсолютный чемпион мира 1997 года).
Страна регулярно принимает участие в [[Азиатские игры|Азиатских]] и [[Олимпийские игры|Олимпийских играх]], как в летних, так и в зимних. Четырежды ливанские спортсмены становились призёрами Олимпийских игр: «серебро» завоевали борец Закария Чигаб ([[Летние Олимпийские игры 1952|Хельсинки-1952]]) и тяжелоатлет Мохамед Торабулси ([[Летние Олимпийские игры 1972|Мюнхен-1972]]), «бронзу» — борцы Халил Таха ([[Летние Олимпийские игры 1952|Хельсинки-1952]]) и Хасан Бехара ([[Летние Олимпийские игры 1980|Москва-1980]]). Участие в Азиатских играх принесло спортсменам из Ливана большие успехи — пять раз они поднимались на высшую ступень пьедестала почёта. Одна из золотых медалей была завоёвана на [[Зимние Азиатские игры|Зимних Азиатских играх]]. Этого успеха добился горнолыжник Ники Фюрстбауэр на [[Зимние Азиатские игры 2003|Зимней Азиаде-2003]].
Одним из ключевых организаторов ливанского спортивного движения в [[XX век]]е был [[Жмайель, Габриэль|Габриэль Жмайель]] — основатель и первый президент [[Олимпийский комитет Ливана|Олимпийского комитета Ливана]], член [[Международный олимпийский комитет|Международного олимпийского комитета]], а также директор [[Средиземноморские игры 1959|Средиземноморских игр]] и [[Арабские игры|Панарабских игр]], проходивших в [[Бейрут]]е в разное время<ref>70yearsMG — Gabriel Gemayel. https://www.70yearsmg.com/founders/gabriel-gemayel/. Дата обращения: 12 июля 2025.</ref>.
== Внешняя политика ==
{{Main|Внешняя политика Ливана}}
Внешняя политика Ливана до 2005 года была тесно связана с политикой Сирии в связи с наличием сирийских войск в стране и поддержкой сирийского вмешательства в ливанскую политику со стороны Хезболлы.
С 1948 года Ливан находятся в состоянии войны с Израилем. Поскольку граница Ливана и Израиля фактически контролируется «Хезболлой», там регулярно происходят вооруженные инциденты. Север Израиля систематически подвергается [[Обстрелы Израиля из Ливана|обстрелам]]. В свою очередь Израиль наносит авиаудары по объектам «Хезболлы».
После [[Падение режима Асада|падения режима Асада]] в Сирии и прихода к власти протурецкой суннитской группировки [[Хайят Тахрир аш-Шам]] на ливано-сирийской границе с 17 марта 2025 года на сирийско-ливанской границе произошли вооружённые столкновения между войсками нового правительства Сирии и боевиками «Хезболлы»<ref>{{Cite web |url=https://www.newsru.co.il/mideast/17mar2025/syria_lebanon_106.html |title=На границе Сирии и Ливана продолжаются бои между «Хизбаллой» и боевиками аль-Джулани |lang=ru |date=2025-03-18 |publisher=[[Newsru.co.il]] |access-date=2025-03-18 |url-status=live |archive-date=2025-03-17 |archive-url=https://web.archive.org/web/20250317085354/https://www.newsru.co.il/mideast/17mar2025/syria_lebanon_106.html }}</ref>
== Вооружённые силы ==
{{main|Вооружённые силы Ливана}}
Во время [[Гражданская война в Ливане|гражданской войны]] государственные вооружённые силы фактически распались, а все противоборствующие группировки имели свои вооружённые формирования. Впоследствии правительственные силы были восстановлены, и в 1990-х годах смогли взять под контроль всю территорию страны; большинство ополчений были разоружены. По соглашению в воссозданную армию вошли 20 тысяч ополченцев, в частности 8 тыс. бойцов [[Ливанские силы|Ливанских сил]], 6 тыс. бойцов «[[Амаль]]», 3 тыс. членов [[Друзы|друзских]] ополчений, 2 тыс. членов «[[Хезболла|Хезболлы]]» и тысяча членов христианских отрядов «[[Марада]]».
В 1996 году Вооружённые силы составляли 48,9 тыс. человек ([[Сухопутные войска Ливана|Сухопутные войска]] — 97,1 %, [[Военно-морские силы Ливана|Военно-морской флот]] — 1,2 %, [[Военно-воздушные силы Ливана|ВВС]] — 1,7 %).
До 2000 года на юге страны существовала союзная [[Израиль|Израилю]] «[[Армия Южного Ливана]]», прекратившая своё существование после вывода израильских войск из страны. Вооружённые формирования на юге страны остались у «Хезболлы», которая на 2025 год фактически контролирует юг Ливана.
В Ливане постоянно находятся 5600 солдат [[ЮНИФИЛ]], отвечающие за поддержание мира в стране. Часть [[Сирия|сирийского]] военного контингента, составлявшего в конце 90-х 35,5 тыс. человек, была выведена в 2001 году.
== См. также ==
{{wikiatlas|Lebanon}}
{{Дерево статей|Ливан}}
== Примечания ==
{{Примечания|2}}
== Литература ==
* {{Книга:Густерин П.В.: Города Арабского Востока|2007}}
* {{книга|автор=John C. Rolland|заглавие=Lebanon: Current Issues and Background |оригинал= |ссылка=https://books.google.co.il/books?id=-JVOKeNkllgC|издательство=Nova Publishers|год= 2003 |allpages=235 |isbn=1590338715 |isbn2=9781590338711}}
* {{книга|автор=Павлов Н. В.|заглавие=Ботаническая география зарубежных стран, ч. 1, 2|место=М.|издательство=«Высшая школа»|год=1965|страницы=7—9|страниц=310|ref=Павлов}}
* {{книга |автор=[[Поспелов, Евгений Михайлович|Поспелов Е. М.]]|заглавие=[[Географические названия мира. Топонимический словарь]]|издание=2-е изд., стереотип|ответственный=отв. ред. Р. А. Агеева |ссылка= |место=М.|издательство=Русские словари, Астрель, АСТ|год=2002 |страниц=512|страницы=|isbn=5-17-001389-2 |тираж=3000 |ref=Поспелов}}
* {{cite book|ref=Dana|last=Dana|first=Léo-Paul|title=Entrepreneurship and Religion|год=2010|publisher=[[Edward Elgar Publishing]]|isbn=978-1-84980-632-9}}
== Ссылки ==
{{Навигация
|Портал = Ливан
|Викисловарь = Ливан
|Викитека = Категория:Ливан
|Тема = Ливан
}}
* [http://www.livan.info/ Русские в Ливане]
* [https://web.archive.org/web/20131110161130/http://vlivan.ru/putevoditel_po_livanu/ Электронный путеводитель по Ливану]
* [http://annamap.ru/livan/ Новая карта Ливана]
* [http://mirputeshestvii.ru/read/reports/puteshestvie_v_livan_bejrut-2275/ Путешествие по Ливану]. Рассказ и фотографии.
{{dmoz|World/Russian/Страны_и_регионы/Ближний_Восток/Ливан/}}
* [https://web.archive.org/web/20090713225015/http://www.vokrugsveta.ru/tv/vs/cast/715/ Статья в журнале «Вокруг света»]
* [https://web.archive.org/web/20110713063803/http://www.isramir.com/content/view/4399/169/ Хронология политических и военных событий в Ливане (1920—2004)] // Дов Конторер, 21.06.2006
{{Внешние ссылки}}
{{Ливан в темах}}
{{Азия}}
{{Лига арабских государств}}
{{Agadir}}
{{Союз для Средиземноморья}}
{{ОИК}}
{{Заморская экспансия Франции}}
{{Франкоязычные страны}}
{{Бывшие мандатные территории}}
[[Категория:Ливан| ]]
[[Категория:Унитарные республики]]
[[Категория:Государства — члены ООН]]
[[Категория:Государства и территории, основанные в 1943 году]]
[[Категория:Страны у Средиземного моря]]
peqz70r7e1e7edn9lwhkfvv6ipkybvf
744021
744020
2026-05-24T09:57:00Z
Teriazar
73808
WikiRadar: добавлен источник [https://www.vedomosti.ru/politics/news/2026/04/21/1191787-gumanitarnuyu-pomosch] (before_section)
744021
wikitext
text/x-wiki
{{Пользовательская страница}}
{{значения}}
{{Не путать|Ливия|Ливией|государством в Африке}}
{{Государство
| Русское название = Ливанская Республика
| Оригинальное название = {{lang-ar|الجمهورية اللبنانية}}<br>{{lang-fr|République Libanaise}}
| Родительный падеж = Ливана
| Флаг = Flag of Lebanon.svg
| Герб = Coat of Arms of Lebanon.svg
| Девиз =
| Перевод названия гимна = Национальный ливанский гимн
| Аудио = Lebanese_national_anthem.ogg
| Название гимна = النشيد الوطني اللبناني
| Форма правления = [[Конфессионализм (политика)|конфессиональная]] [[парламентская республика]]<ref name="atlas">{{книга|заглавие=Атлас мира: Максимально подробная информация|ответственный=Руководители проекта: А. Н. Бушнев, А. П. Притворов|место=Москва|издательство=АСТ|год=2017|страницы=46|страниц=96|isbn=978-5-17-10261-4}}</ref>
| lat_dir = N
| lat_deg = 33
| lat_min = 54
| lat_sec = 0
| lon_dir = E
| lon_deg = 35
| lon_min = 51
| lon_sec = 0
| region = LB
| CoordScale = 1000000
| На карте = Lebanon_(orthographic_projection).svg
| Подпись к карте = Ливан на карте мира
| Языки = [[Арабский язык|арабский]]
| Дата независимости = [[22 ноября]] [[1943 год]]а
| Независимость от = [[Франция|Франции]]
| Столица = [[Бейрут]]
| Крупнейшие города = Бейрут, [[Триполи (Ливан)|Триполи]], [[Сайда (город)|Сайда]], [[Баабда]], [[Эн-Набатия (город)|Эн-Набатия]], [[Захла]]
| Должность руководителя 1 = [[Список президентов Ливана|Президент]]
| Руководитель 1 = [[Аун, Жозеф|Жозеф Аун]]
| Должность руководителя 2 = [[Список премьер-министров Ливана|Премьер-министр]]
| Руководитель 2 = [[Салам, Наваф|Наваф Салам]]
| Должность руководителя 3 = Председатель [[Палата представителей Ливана|Палаты представителей]]
| Руководитель 3 = [[Берри, Набих|Набих Берри]]
| Государственная религия = [[светское государство]]
| Место по территории = 161
| Территория = 10452
| Процент воды = 1,6
| Место по населению = {{рост}}122 <ref>[https://population-hub.com/ru/list-of-countries-by-population.html Список стран по населению на 2020 год] {{Wayback|url=https://population-hub.com/ru/list-of-countries-by-population.html |date=20200728142814 }} По данным Population HUB</ref>
| Население = {{рост}}{{число|5364482}}<ref name="автоссылка1">{{CIA World Factbook|article=Lebanon|access-date=23-09-2024}}</ref>
| Год оценки = 2024
| Год переписи =
| Этнохороним = лива́нец, лива́нка, [[ливанцы]]
| Плотность населения = 523
| ВВП (ППС) = {{число|44443|млрд}}<ref name="dataimf">{{Cite web|lang=en|url=https://www.imf.org/en/Publications/WEO/weo-database/2020/October/weo-report?c=512,612,911,912,419,611,469,915,429,433,439,916,443,917,446,672,682,686,449,564,453,456,726,732,463,923,744,925,466,927,487,474,&s=NGDPD,PPPGDP,NGDPDPC,PPPPC,&sy=2018&ey=2025&ssm=0&scsm=1&scc=0&ssd=1&ssc=0&sic=0&sort=country&ds=,&br=1|title=Report for Selected Countries and Subjects|website=IMF|access-date=2020-11-26|archive-date=2020-11-16|archive-url=https://web.archive.org/web/20201116125632/https://www.imf.org/en/Publications/WEO/weo-database/2020/October/weo-report?c=512,612,911,912,419,611,469,915,429,433,439,916,443,917,446,672,682,686,449,564,453,456,726,732,463,923,744,925,466,927,487,474,&s=NGDPD,PPPGDP,NGDPDPC,PPPPC,&sy=2018&ey=2025&ssm=0&scsm=1&scc=0&ssd=1&ssc=0&sic=0&sort=country&ds=,&br=1|url-status=live}}</ref>
| Год расчёта ВВП (ППС) = 2022
| Место по ВВП (ППС) = 89
| ВВП (ППС) на душу населения = {{s|9732}}<ref name="dataimf"/>
| Место по ВВП (ППС) на душу населения = 85
| ВВП (номинал) = 18,08 млрд<ref name="dataimf"/>
| Год расчёта ВВП (номинал) = 2022
| Место по ВВП (номинал) = 79
| ВВП (номинал) на душу населения = {{s|4577}}<ref name="dataimf"/>
| Место по ВВП (номинал) на душу населения = 74
| ИРЧП = {{Рост}} 0,744<ref>{{cite web |url=http://hdr.undp.org/sites/default/files/hdr2019.pdf |lang=en |title=Human Development Indices and Indicators 2019 |publisher=[[Программа развития ООН]] |description=Доклад о человеческом развитии на сайте Программы развития ООН |access-date=2020-01-02 |archive-date=2018-10-24 |archive-url=https://web.archive.org/web/20181024144212/http://hdr.undp.org/sites/default/files/2018_summary_human_development_statistical_update_en.pdf |url-status=live }}</ref>
| Год расчёта ИРЧП = 2022
| Место по ИРЧП = 93
| Уровень ИРЧП = <span style="color:#090;">высокий</span>
| Валюта = [[ливанский фунт]]<br>([[ISO 4217|LBP, 422]])
| Домен = [[.lb]]
| Телефонный код = 961
| Часовой пояс = [[Восточноевропейское время|EET]] ([[UTC+2:00|UTC+2]], [[Летнее время|летом]] [[Восточноевропейское летнее время|UTC+3]])
}}
'''Лива́н''' ({{lang-ar|لبنان}}, {{lang-fr|Liban}}), официальное название — '''Лива́нская Респу́блика''' ({{lang-ar|الجمهورية اللبنانية}}, {{lang-fr|République libanaise}}) — государство на [[Ближний Восток|Ближнем Востоке]], расположенное в гористой местности на восточном берегу [[Средиземное море|Средиземного моря]]. На востоке и севере граничит с [[Сирия|Сирией]], на юге — с [[Израиль|Израилем]].
Столица — [[Бейрут]]. Государственный язык — [[Арабский язык|арабский]] ([[Ливанский диалект арабского языка|ливанский диалект]]). Население Ливана — около 5,3 миллиона человек<ref name="автоссылка1" />. Республика выделяется чрезвычайным религиозным разнообразием.
В государстве действует особая [[политическая система]] — так называемый [[Конфессионализм (политика)|конфессионализм]], подразумевающий организацию государственной власти в соответствии с делением общества на религиозные общины.
До [[Гражданская война в Ливане|гражданской войны 1975—1990 годов]] Ливан был процветающим государством, финансовой и банковской столицей Ближнего Востока с преобладающей долей христианского населения (по переписи 1913 года доля христиан составляла 79,5 %, по переписи 1932 года — 49,9 % (58,5 %, включая эмиграцию)), за что получил неофициальное название «Ближневосточная [[Швейцария]]». Страна также пользуется популярностью среди туристов. После завершения войны началось восстановление экономики.
В Ливане находится один из древнейших городов — [[Баальбек]] со своим знаменитым [[Трилитон Баальбека|Трилитоном Баальбека]].
== Этимология ==
Название стране было присвоено по [[Ливан (хребет)|горному хребту Ливан]], который проходит по территории страны вдоль берега [[Средиземное море|Средиземного моря]]. Название хребта, в свою очередь, происходит от [[Прасемитский язык|древнесемитского]] ''laban'' («белый») — его сравнительно высокие вершины в зимнее время покрыты снегом{{sfn|Поспелов|2002|с=242}}.
== География ==
{{main|География Ливана}}
[[Файл:карта Ливана.png|thumb|right|315px|Карта Ливана]]
Ливан расположен на [[Ближний восток|Ближнем востоке]]. На западе омывается [[Средиземное море|Средиземным морем]], береговая линия 225 [[км]]. На севере и востоке граничит с [[Сирия|Сирией]], на юге — с [[Израиль|Израилем]]. Сирийско-ливанская граница имеет протяжённость 375 км, ливано-израильская — 79 км. Небольшой отрезок границы Ливана с [[Голанские высоты|Голанскими высотами]] ([[Фермы Шебаа]]), присоединёнными Израилем, является спорной территорией.
Общая площадь Ливана — 10452 {{км2}}. По размерам страна является [[Список стран, сортировка по площади|161-й в мире]]. Большая часть Ливана покрыта [[гора]]ми, кроме [[Долина Бекаа|долины Бекаа]] на северо-востоке и вытянутого с севера на юг узкого равнинного участка вдоль берега моря. Прибрежный Ливан отделяется от восточных регионов горными цепями [[Ливан (хребет)|Ливан]] и [[Антиливан]]. В Ливане имеются залежи [[известняк]]а, [[Железная руда|железной руды]], месторождения [[Соль|соли]]. Ливан богат водными ресурсами. Река [[Эль-Литани]] является основным источником воды для южных районов Ливана. Тем не менее, судоходных рек в стране нет.
[[Файл:Satellite image of Lebanon in March 2002.jpg|thumb|right|315px|Ливан из космоса]]
=== Климат ===
Для Ливана характерен [[средиземноморский климат|средиземноморский климат (по классификации Кёппена)]]. В прибрежных регионах зима, как правило, прохладная, а лето — влажное и жаркое. Зимой в горах температура опускается ниже 0 °C, возможно выпадение снега. Хотя среднегодовое количество осадков в Ливане гораздо больше, чем в соседних странах, на северо-востоке преобладает засушливый климат, так как горы блокируют поступление влажного воздуха с моря. Часто случаются песчаные и пылевые бури.
=== Флора ===
[[Файл:Cedar of Lebanon (Cedar of God), Lebanon.jpg|thumb|left|[[Ливанский кедр]] — национальное растение государства]]
[[Файл:Pilgrimage_to_the_Cedars_of_Libanon.jpg|left|thumb|«Паломничество у ливанского кедра» — полотно [[Венгрия|венгерского]] художника [[Чонтвари, Тивадар Костка|Чонтвари Тивадара Костки]]]]
Флора Ливана состоит примерно из 2200—2400 видов{{sfn|Павлов|1965}}. [[Эндемик|Эндемических]] [[Семейство|семейств]] в ней нет, количество эндемических [[Род (биология)|родов]] малочисленно, а эндемические [[Вид (биология)|виды]] связаны с молодым прогрессивным [[видообразование]]м в [[Полиморфизм (биология)|полиморфных]] родах. Во флоре Ливана господствует средиземноморский флористический элемент с незначительной примесью ирано-туранских видов.
[[Растительность]] Ливана (как главным образом горной страны) имеет поясный характер. Нижний пояс представлен на [[Известняк|известняковых породах]] типичным средиземноморским [[маквис]]ом. В нём господствует {{bt-ruslat|маслина европейская|Olea europaea}}. На севере, в районе [[Триполи (Ливан)|Триполи]], она поднимается до 600—800 м наибольшей высоты, а на востоке, по склонам [[Хермон]]а, достигает 700 м наибольшей высоты. Вместе с маслиной встречаются {{bt-ruslat|олеандр|Nerium oleander}}, вечнозелёные [[дуб]]ы — {{bt-ruslat|дуб лузитанский|Quercus lusitanica}}, {{bt-ruslat|дуб калепринский|Quercus calliprinos}}, {{bt-ruslat|дуб таворский|Quercus ithaburensis}}, [[кустарник]]и — {{bt-ruslat|волчеягодник маслиноподобный|Daphne oleoides}}, {{bt-ruslat|вишня распростёртая|Prunus prostrate}}, {{bt-ruslat|розмарин лекарственный|Rosmarinus officinalis}} и [[Травянистые растения|травы]] — {{bt-ruslat|Лаванда стэхадская|Lavandula stoechas}}, {{bt-ruslat||Dorycnium hirsutum}}, {{bt-ruslat|подладанник жёлтый|Cytinus hypocistis}}, {{bt-ruslat|володушка кустарниковая|Bupleurum fruticosum}}, {{bt-ruslat|глинус лядвенецевидный|Glynus lotoides}}, {{bt-ruslat|шаровница обезболивающая|Clobularia alupum}}, {{bt-ruslat||Pastinaca teretiuscula}}, {{bt-ruslat||Turgeniopsis foeniculaea}} и др.
Следующий — лесной — пояс Ливана, простирающийся с высот 600—800 м до 2300—2400 м абс. выс., хорошо выражен в центральной части страны, где преобладают [[песчаник]]и. Растительность песчаников сильно нарушена вырубками и выпасом скота. Наибольший вред приносят козы, являющиеся не столько травоядными, сколько древоядными животными. В древности на территории Ливана в огромном количестве произрастали леса [[Кедр ливанский|ливанского кедра]] (''Cedrus libani''), ставшего символом страны. Столетиями деревья вырубались без пересадки как основной материал в [[Судостроение|кораблестроении]], и это в конечном итоге привело к тому, что к [[XX век]]у на месте богатейших лесов остались лишь отдельные острова зелени — на высотах от 1300 до 2000 м — величайший из которых находится в долине Бшерры на высоте 1520 м.
В лесном поясе встречаются также {{bt-ruslat|платан восточный|Platanus orientalis}}, {{bt-ruslat|клён сирийский|Acer syriacum}}, {{bt-ruslat|ясень манновый|Fraxinus ornus}} и [[хвойные]] — {{bt-ruslat|сосна алеппская|Pinus halepensis}}, {{bt-ruslat|сосна калабрийская|Pinus brutia}}, {{bt-ruslat|кипарис вечнозелёный|Cupressus sempervirens}}<!-- (Cupressus sempervirens var. Horizontalis)-->, {{bt-ruslat|Пихта киликийская|Abies cilicica}}, [[Можжевельник|древовидные можжевельники]] на хребте [[Ливан (хребет)|Ливан]] — {{bt-ruslat|можжевельник колючий|Juniperus oxycedrus}} и {{bt-ruslat|можжевельник вонючий|Juniperus foetidissima}}, а на [[Хермон]]е — {{bt-ruslat|можжевельник высокий|Juniperus excelsa}}. Выше древовидные можжевельники сменяются на кустарниковый {{bt-ruslat|можжевельник косточковый|Juniperus drupacea}}. В лесах нередко встречаются [[Папоротниковидные|папоротники]], из которых наиболее примечательны {{bt-ruslat||Pteris arguta}} и {{bt-ruslat||Pteris longifolia}}, и заросли [[Иван-чай узколистный|иван-чая узколистного]] ({{bt|Chamerion angustifolium}}).
С высоты 2300—2400 м начинается наименее изученный пояс высокогорной [[Альпийская растительность|альпийской растительности]]. Здесь растут {{bt-ruslat|рододендрон понтийский|Rhododendron ponticum}}, селагинелла {{bt-ruslat||Selaginella denticulate}}, {{bt-ruslat|осока лесная|Carex sylvatica}} и другие бореальные и аркто-альпийские растения: {{bt-ruslat|камнеломка|Saxifraga}}, {{bt-ruslat|ветреница|Anemone}}, {{bt-ruslat|лютик|Ranunculus}}, {{bt-ruslat|Крупка (растение){{!}}крупка|Draba}}, {{bt-ruslat|горечавка|Gentiana}}.
В значительно более сухих горах [[Антиливан]]а растительность беднее, лиственные породы почти отсутствуют, а из хвойных встречаются только {{bt-ruslat|кедр ливанский|Cedrus libani}} и {{bt-ruslat|можжевельник косточковый|Juniperus drupacea}}. В нижнем поясе кое-где растут единично вечнозелёные [[дуб]]ы и {{bt-ruslat|фисташка палестинская|Pistacia palaesina}}, а иногда встречаются и пустынно-степные группировки подушковидного [[чероноголовник колючий|чероноголовника колючего]] ({{bt-ruslat||Poterium spinosum}}).
[[Культурные растения]] Ливана немногочисленны. Это главным образом [[пшеница]] и [[ячмень]], только на побережье Средиземного моря разводятся [[Цитрусовые культуры|цитрусовые]] и другие [[Плодовые культуры|плодовые породы]], [[Виноград культурный|виноград]], {{bt-ruslat|инжир|Ficus carica}} и [[Маслина|маслины]].
== История ==
{{main|История Ливана}}
=== Древний Ливан ===
Появление первых поселений на территории современного Ливана относится к [[6-е тысячелетие до н. э.|6-му тысячелетию до н. э.]] В окрестностях [[Библ]]а археологи обнаружили остатки доисторических хижин и примитивных орудий. Некоторые предметы быта указывают на существование здесь стоянок рыболовецких племён времён эпохи [[неолит]]а ещё в [[8-е тысячелетие до н. э.|8-м]]—[[7-е тысячелетие до н. э.|7-м тысячелетиях до н. э.]]
Ливан стал родиной [[Финикия|Финикии]], развитого морского торгового государства, растянувшегося вдоль берега [[Средиземное море|Средиземного моря]]. Финикийцы дали миру первый [[Финикийский алфавит|алфавит]]. Расцвет Финикии пришёлся на 1200—800 годы до н. э. В VI веке до н. э. Финикия попала под владычество [[Иран|персов]] во главе с [[Кир II Великий|Киром Великим]]. В 332 году до н. э. [[Александр Македонский]] совершил поход на Финикию, уничтожив её крупнейший город — [[Тир (город)|Тир]]. С распадом империи Македонского Ливан вошёл в состав [[Селевкиды|Царства Селевкидов]], а в конце I века до н. э. — [[Римская империя|Римской империи]].
=== Средневековый Ливан ===
[[Файл:DeirAlQamar-FakhredinePalace.jpg|thumb|Дворец XVII века|left]]
В период арабских завоеваний и становления [[Арабский Халифат|Халифата]] в Ливан проникает [[ислам]]. В XII веке Ливан стал частью Иерусалимского королевства [[Крестоносцы|крестоносцев]]. В 1261 году крестоносцы были изгнаны из Ливана [[Мамлюкский султанат|тюрками-мамлюками]], и Ливан находился в составе мамлюкского Египта до 1516 года. В 1517 году султан [[Селим I]] присоединил эту территорию к [[Османская империя|Османской империи]]. Эмиры [[Шехаб (династия)|династии Шехаб]] правили Ливаном с 1697 до 1842 года.
=== Французский мандат ===
{{См. также|Великий Ливан}}
[[Файл:Beirut-in-1919.webm|thumb|Бейрут в 1919 г.]]
Территория Ливана (в составе Большой Сирии) входила в состав Османской империи на протяжении более 400 лет. После поражения Турции в [[Первая мировая война|Первой мировой войне]] и распада Османской империи, территория Большой Сирии была оккупирована в 1918 году британскими войсками под командованием генерала Аленби. В 1918 г., по более раннему [[Соглашение Сайкса — Пико|соглашению Сайкса-Пико]] между странами [[Антанта|Антанты]] от 1916 года, территория Сирии была передана [[Франция|Франции]] и управление ею было легализовано в виде [[Сирия#Французский мандат|Французского мандата]] от Лиги Наций. В 1926 году территория Ливана была отделена от Сирии, и Ливан стал отдельной территориальной единицей, управляемой, однако, той же администрацией Французского мандата Сирии.
=== Независимый Ливан ===
В 1940 году Франция была оккупирована [[Германия|Германией]]. Уже в [[Ноябрь|ноябре]] во французском мандате в Ливане прошли первые нелегитимные выборы и сформировано правительство.
В 1943 году Ливан уже официально приобрёл независимость. «[[Национальный пакт]]» установил правило, по которому [[президент]]ом страны должен быть [[Маронитская католическая церковь|христианин-маронит]], а [[премьер-министр]]ом — [[Ислам|мусульманин-суннит]] (спикером же парламента — мусульманин-шиит).
В 1948 году Ливан принял участие в первой [[Арабо-израильская война 1948 года|арабо-израильской войне]]. После поражения Арабской освободительной армии Ливан подписал с [[Израиль|Израилем]] соглашение о прекращении огня. 100 тысяч арабских беженцев перебрались из Палестины в Ливан.
С 1956 года в Ливане начали усиливаться противоречия между христианами и мусульманами, вылившиеся в мае 1958 года в [[Ливанский кризис 1958 года|гражданскую войну]]. Чтобы удержать власть в стране, президент [[Шамун, Камиль|Камиль Шамун]] обратился за военной помощью к США. Американские войска находились в стране с июля по октябрь до полной нормализации обстановки.
=== Гражданская война ===
{{main|Гражданская война в Ливане}}
[[Файл:Green Line, Beirut 1982.jpg|thumb|Бейрут в военное время]]
В 1975 году в Ливане разразилась вторая [[Гражданская война в Ливане|гражданская война]] между [[Правохристиане (Ливан)|правохристианскими]] силами и лево-мусульманскими милициями, которых поддержали находившиеся в Ливане палестинские боевики. Война продолжалась 15 лет, разрушив некогда процветающую экономику страны, и унесла жизни более 150 тысяч жителей. Кровопролитие прекратилось в 1990 году подписанием Таифских соглашений.
В 1976 году по просьбе тогдашнего правительства в Ливан вошли сирийские войска. {{не переведено 3|Сирийское присутствие в Ливане|Сирийское присутствие||Syrian occupation of Lebanon}} продолжалось до 2005 года, несмотря на официальные требования президентов Ливана о выводе сирийских войск, начиная с 1983 года<ref name="CommitteeUSA">{{cite web|url=http://www.gpo.gov/fdsys/pkg/CHRG-106shrg67981/pdf/CHRG-106shrg67981.pdf|title=Hearing before the Subcommittee on Near Eastern and South Asian Affairs of of the Committee on Foreign Relations United States Senate|date=2000-06-14|publisher=Committee on Foreign Relations|lang=en|access-date=2012-07-03|archive-url=https://www.webcitation.org/69f2GcUF3?url=http://www.gpo.gov/fdsys/pkg/CHRG-106shrg67981/pdf/CHRG-106shrg67981.pdf|archive-date=2012-08-04|url-status=live}}</ref><ref name="Youssef">Shiar Youssef [http://www.globalresearch.ca/index.php?context=va&aid=9340 What really happened in Beirut? July 3, 2012] {{Wayback|url=http://www.globalresearch.ca/index.php?context=va&aid=9340 |date=20120529093001 }}</ref>.
Дважды войска [[Армия обороны Израиля|армии обороны Израиля]] (ЦАХАЛ) были введены на территорию Ливана. Первый раз в марте 1978 года — после захвата двух автобусов с заложниками, когда погибло 36 и было ранено свыше 70 израильских граждан<ref name="Брасс_истоки">{{Cite web |url=http://rus.delfi.lv/news/entertainment/books/article.php?id=9150664 |title=Александр Брасс. Палестинские истоки, Marcus, Polaris, 24 сентября 2004 |access-date=2015-09-15 |archive-date=2007-09-26 |archive-url=https://web.archive.org/web/20070926235526/http://rus.delfi.lv/news/entertainment/books/article.php?id=9150664 |url-status=live }}</ref>; второй в июне 1982 года — в ответ на покушение на израильского посла в Лондоне [[Аргов, Шломо|Шломо Аргова]]<ref>после покушения три месяца Ш. Аргов находился в [[Кома|коме]], остался парализованным, и до дня своей смерти в 2003 году был госпитализирован в реабилитационном отделении больницы [[Больница Хадасса|Адасса Хар ха-Цофим]] в [[Иерусалим]]е</ref> были проведены массированные бомбардировки по позициям Организации освобождения Палестины в Ливане<ref>[[Эйтан, Рафаэль|Рафаэль Эйтан]]. Повесть солдата. / пер. с иврита — [[Баух, Ефрем Исаакович|Ефим (Ефрем) Баух]]. Израиль, изд-во «Яир», 1991. стр.336</ref><ref name="LibraryCongress">{{cite web|url=http://lcweb2.loc.gov/cgi-bin/query/r?frd/cstdy:@field%28DOCID+lb0161%29|title=Lebanon. The Two-Week War. Section 1 of 1; Data as of December 1987 Library of Congress Country Studies|publisher=Lcweb2.loc.gov|date=1982-06-03|access-date=2012-02-29|archive-url=https://www.webcitation.org/68MN7WD5k?url=http://lcweb2.loc.gov/cgi-bin/query/r?frd%2Fcstdy%3A%40field%28DOCID+lb0161%29|archive-date=2012-06-12|url-status=live}}</ref>. Тогда ООП подвергло массированному обстрелу территорию Израиля<ref name="LibraryCongress" /><ref name="brass2004">{{книга|автор=Александр Брасс|заглавие=Палестинские истоки // Терроризм - история и современность|ссылка=https://books.google.co.il/books?id=ChY2kq6KVMcC&pg=PA80 |издательство=Olma Media Group|год=2004|страниц=347 |страницы=80|isbn=5948496694, 9785948496696}}</ref><ref name="Eitan1992">{{книга|автор= [[Эйтан, Рафаэль|Raful Eitan]]|заглавие=A Soldier's Story: The Life and Times of an Israeli War Hero|ссылка=https://books.google.ru/books?id=3Iav7igW5CQC|издательство=SP Books|год=1992|pages=272|allpages=388|isbn=1561710946, 9781561710942}}</ref>, а силы ЦАХАЛа вошли на территорию южного Ливана. Силы ЦАХАЛа оставались в южном Ливане вплоть до 2000 года. После вывода войск между Израилем и Ливаном была проведена чёткая граница — так называемая «голубая линия», однако [[Мазария-Шабъа|фермы Шебаа]] к северу от [[Голанские высоты|Голанских высот]] так и остались спорной территорией.
=== Последующий период ===
В послевоенный период экономика Ливана бурно росла.
Недолгий период относительного спокойствия был прерван правительственным кризисом, спровоцированным убийством экс-премьера страны [[Харири, Рафик|Рафика Харири]], последовавшим выводом из страны [[Сирийские арабские вооружённые силы|сирийских войск]] и [[Вторая ливанская война|израильско-ливанским конфликтом]] в 2006 году.
В 2007 году ситуация в Ливане осложнилась [[Конфликт в Северном Ливане 2007 года|кризисом вокруг лагеря Нахр аль-Барид]].
В 2011 году в Ливане возник [[Конфликт в Ливане (2011—2017)|конфликт между крупнейшими парламентскими фракциями]]. А в 2015 году по стране прокатилась [[Беспорядки в Ливане (2015)|волна протестов]] из-за бездействия правительства и [[Президентские выборы в Ливане (2014—2016)|политического кризиса]], в ходе которого парламент до 2016 года не мог избрать президента.
9 марта 2020 года Ливан объявил первый в истории страны [[дефолт]] по [[облигация]]м на сумму 1,2 млрд долларов США<ref>{{Cite web|url=https://www.rbc.ru/economics/07/03/2020/5e63d3459a7947cc5cd55594|title=Ливан объявил дефолт по евробондам из-за «сожравшей страну коррупции»|publisher=РБК|lang=ru|access-date=2020-03-11|archive-date=2020-03-08|archive-url=https://web.archive.org/web/20200308125036/https://www.rbc.ru/economics/07/03/2020/5e63d3459a7947cc5cd55594|url-status=live}}</ref>. Общий внешний долг достиг 90 млрд долларов (более 150 % от ВВП)<ref>{{Cite web|url=https://espresso.economist.com/a596c69468e85ae53014c825e9079543|title=No more romance on the Levant: Lebanon’s debt crisis|date=2020-03-08|publisher=Economist Espresso|lang=en|access-date=2020-03-11|archive-date=2021-01-29|archive-url=https://web.archive.org/web/20210129184645/https://espresso.economist.com/a596c69468e85ae53014c825e9079543|url-status=live}}</ref>.
10 августа 2020 года правительство Ливана официально ушло в отставку в полном составе<ref>{{cite news|title=Правительство Ливана в полном составе ушло в отставку спустя неделю после взрыва в Бейруте|url=https://meduza.io/news/2020/08/10/pravitelstvo-livana-v-polnom-sostave-ushlo-v-otstavku-spustya-nedelyu-posle-vzryva-v-beyrute|access-date=2020-08-11|publisher=Медуза|date=2020-08-10|archive-date=2021-05-12|archive-url=https://web.archive.org/web/20210512071803/https://meduza.io/news/2020/08/10/pravitelstvo-livana-v-polnom-sostave-ushlo-v-otstavku-spustya-nedelyu-posle-vzryva-v-beyrute}}</ref>.
== Государственное устройство ==
{{main|Государственный строй Ливана}}
[[Файл:BeirutParliament.jpg|мини|Здание Палаты представителей в [[Бейрут]]е]]
Существующая более полувека «ливанская модель» (конфессионализм) государственного устройства была создана в 1943 году в процессе обретения Ливаном независимости от Франции. Для того, чтобы обеспечить более или менее равный доступ к верховной власти для всех религиозных [[Конфессия|конфессий]], был разработан следующий порядок: [[Президент Ливана|президентом]] страны должен быть [[Христианство|христианин]]-[[Марониты|маронит]], [[Премьер-министр Ливана|премьер-министром]] — [[Сунниты|мусульманин-суннит]], [[спикер]]ом парламента — [[Шииты|мусульманин-шиит]], а в правительстве должны быть поровну представлены [[Христианство|христиане]] и [[Ислам|мусульмане]]. Согласно конституции, Ливан является [[Парламентская республика|парламентской республикой]].
[[Законодательная власть]] представлена [[Палата представителей Ливана|Палатой представителей]] ({{lang-ar|مجلس النواب}}) — [[парламент]]ом Ливана, который состоит из 128 депутатов, избираемых прямым голосованием на четырёхлетний срок. В Палате заседают 64 [[мусульманин]]а (27 [[Сунниты|суннитов]], 27 [[Шииты|шиитов]], 8 [[Друзы|друзов]] и 2 [[Алавиты|алавита]]) и 64 [[христианин]]а (32 [[Маронитская католическая церковь|маронита]], 20 армян [[ААЦ]], 2 [[Армянская католическая церковь|армяно-католика]], 7 [[Православие|православных]], 1 греко-католик ([[Мелькитская греко-католическая церковь|мелькит]]), 1 [[Протестантизм|протестант]], а также ещё 1 по усмотрению). Парламент избирает президента, утверждает состав правительства, утверждает законы и [[бюджет]] республики.
Президент ([[Маронитская католическая церковь|маронит]]) избирается Палатой представителей на 6-летний срок, причём одно лицо не может дважды занимать этот пост. Дважды в истории это правило нарушалось: в 1995 году на 3 года был продлён срок пребывания у власти [[Ильяс Храуи|Ильяса Храуи]], а также в 2004 году президентские полномочия до 23 ноября 2007 года были продлены для [[Лахуд, Эмиль|Эмиля Лахуда]]. Президент по представлению парламента назначает [[премьер-министр]]а ([[Сунниты|суннита]]) и его первого заместителя. После консультаций с президентом и парламентом премьер-министр формирует [[кабинет министров]] также по принципу религиозного [[Квота|квотирования]].
В соответствии с [[Конфессия|конфессиональным]] делением в Ливане зарождались и [[Политическая партия|политические партии]], которые по большей части имеют [[Религия|религиозный]] характер. [[Христианство|Христианские]], [[Сунниты|суннитские]], [[Шииты|шиитские]], [[Друзы|друзские]] партии борются не друг против друга, а за места в пределах заранее определённых конфессиональных [[Квота|квот]]. В каждой из конфессий исторически сложилось несколько противостоящих друг другу политических сил. Например, среди ливанских христиан были как яростные противники сирийского военного присутствия в Ливане (например, генерал [[Аун, Мишель Наим|Мишель Аун]] или командующий объединённой христианской милицией «[[Ливанские Силы]]» [[Джааджаа, Самир|Самир Джааджаа]]), так и лояльные [[Сирия|Сирии]] политики, которым как раз и доставались президентские посты ([[Моавад, Рене|Рене Муаввад]], [[Храуи, Ильяс|Элиас Храуи]], [[Эмиль Лахуд]]).
Бывший премьер-министр [[Харири, Рафик|Рафик Харири]] был первым, кто бросил вызов этой системе. Он пришёл к власти, не опираясь на какую-либо из существующих религиозно-политических партий, а благодаря своему колоссальному состоянию. Оно же позволило ему осуществить восстановление разрушенной страны. Сирия поддерживала сохранение прежней системы конфессиональных квот, заявляя, что альтернативой ей может быть лишь новая [[гражданская война]].
Согласно [[Economist Intelligence Unit]] страна в 2018 была классифицирована по [[Индекс демократии (Economist)|индексу демократии]] как [[гибридный режим]]<ref name="euidata2018">{{cite web |url=https://pages.eiu.com/rs/753-RIQ-438/images/Democracy_Index_2018.pdf |title=Democracy Index 2018: Me too? Political participation, protest and democracy |website=The Economist Intelligence Unit (The EIU) |access-date=2019-01-25 |archive-date=2019-01-10 |archive-url=https://web.archive.org/web/20190110013730/http://pages.eiu.com/rs/753-RIQ-438/images/Democracy_Index_2018.pdf |url-status=live }}</ref>.
=== Политические силы Ливана ===
Особенностью ливанской политики является деление всех политических сил на сторонников и противников сирийского влияния в стране{{Нет АИ|18|07|2017}}. В настоящее время первые объединены в [[Коалиция 8 марта|Коалицию 8 марта]], имеющую 68 из 128 мест в парламенте, а вторые — в [[Коалиция 14 марта|Коалицию 14 марта]] (60 мест в парламенте). В каждой этноконфессиональный группе Ливана есть партии, выступающие как с просирийских, так и с антисирийских позиций.
Основные партии христианской общины — [[Свободное патриотическое движение]] (СПД), [[Катаиб|Катаиб (Ливанская фаланга)]], [[Ливанские силы]], [[Национал-либеральная партия (Ливан)|Национал-либеральная партия]] (НЛП), [[Марада]]. Просирийские позиции занимают СПД и
«Марада», антисирийские — фалангисты, «Ливанские силы», национал-либералы. За консолидацию христианских политических сил выступает движение [[Фронт свободы (Ливан)|Фронт свободы]].
Крупнейшая партия мусульман-суннитов — антисирийское [[Движение за будущее]]. В шиитской общине доминируют [[Амаль]] и проиранская [[Хезболла]].
Особое место занимает [[друзы|друзская]] [[Прогрессивно-социалистическая партия Ливана|Прогрессивно-социалистическая партия]] (чей лидер [[Валид Джумблат]] известен своей беспринципностью). Она постоянно меняет свою позицию в зависимости от того, какая политическая и/или военная сила преобладает в Ливане, стоя на защите интересов [[друзы|общины друзов]].
Партийные списки построены по конфессиональному признаку, а внутри партийных списков места распределяются по клановому принципу. В то же время, конфессионально-клановое деление Ливана имеет географическое отражение: приверженцы одного клана, как правило, компактно населяют определённый район и традиционно выдвигают одного и того же представителя.
=== Результаты парламентских выборов 2005 по округам ===
# Бейрут (19 депутатов). Все 19 мест достались партии «Аль-Мустакбаль». «Свободное патриотическое движение» генерала Мишеля Ауна и армянская партия [[Дашнакцутюн]] не получили ни одного места. Ещё до выборов Мишель Аун призвал жителей Бейрута бойкотировать выборы, поскольку их результаты, по его мнению, были предопределены. Не участвовать в выборах призвали и лидеры армянской партии [[Дашнакцутюн]]. В результате самая низкая явка избирателей отмечена именно в христианских районах Бейрута.
# Южный Ливан. Большинство получил альянс «Амаль» — «[[Хезболла]]».
# Горный Ливан и долина Бекаа — большинство получил [[Аун, Мишель|Мишель Аун]].
# Северный Ливан — все 28 мандатов получил блок Саада Харири.
=== Результаты парламентских выборов 2009 по округам ===
{{main|Парламентские выборы в Ливане (2009)}}
== Административное деление ==
{{Lebanon Labelled Map|image=Lebanon districts 2020.png|float=right}}
{{main|Административное деление Ливана}}
Ливан делится на 9 мухафаз или провинций (''мухафаза'', {{lang-ar|محافظة}}), которые, в свою очередь, делятся на 25 районов (''када'', {{lang-ar|قضاء}}). Районы делятся на округа.
# [[Бейрут (мухафаза)|Бейрут]]
# [[Горный Ливан]]
# [[Кесруан-Джубейль]]
# [[Северный Ливан]]
# [[Бекаа (мухафаза)|Бекаа]]
# [[Набатия (мухафаза)|Набатия]]
# [[Аккар (мухафаза)|Аккар]]
# [[Баальбек-Хермель|Баальбек—Хермель]]
# [[Южный Ливан]]
== Население ==
{{нет ссылок в разделе|дата=2017-05-30}}
{{main|Население Ливана|Города Ливана}}
[[Файл:Lebanon_single_age_population_pyramid_2020.png|thumb|250px|[[Возрастно-половая пирамида]] населения Ливана на 2020 год]]
Основную часть населения Ливана составляют [[ливанцы]], при этом они разделены на несколько [[Конфессия|этноконфессиональных]] групп, что имеет определяющее значение в жизни страны. В стране также большое количество [[Палестинские беженцы#Положение беженцев в Ливане|беженцев из Палестины]] и их потомков. Государственный язык — [[Ливанский диалект арабского языка|ливанский диалект]] [[Арабский язык|арабского]].
Кроме того, в стране годами проживают тысячи иностранных рабочих (из [[Индия|Индии]], [[Бангладеш]], [[Филиппины|Филиппин]], [[Эфиопия|Эфиопии]] и др.), выполняющие в стране различную неквалифицированную работу.
=== Религия ===
{{main|Религия в Ливане|Конфессиональность в Ливане|Ислам в Ливане}}
{{нет ссылок в разделе|дата=2016-02-26}}
[[Файл:Lebanon Religious groups RUS.jpg|мини|250px|Географическое распределение основных этноконфессиональных групп Ливана]]
Около 60 % населения Ливана исповедует [[ислам]] ([[сунниты]], [[шииты]], [[алавиты]]). В Ливане живут также [[друзы]], имеющие собственные верования<ref>{{bulleted list|
|{{cite web |last=Abulafia |first=Anna Sapir |author-link=Anna Abulafia |date=2019-09-23 |url=https://www.bl.uk/sacred-texts/articles/the-abrahamic-religions |title=The Abrahamic religions |website=www.bl.uk |publisher=[[British Library]] |location=London |access-date=2021-03-09 |url-status=live |archive-url=https://web.archive.org/web/20200712150432/https://www.bl.uk/sacred-texts/articles/the-abrahamic-religions |archive-date=2020-07-12}}
|{{cite book |last=Obeid |first=Anis |title=The Druze & Their Faith in Tawhid |url=https://books.google.com/books?id=FejqBQAAQBAJ&pg=PT1 |year=2006 |publisher=[[Syracuse University Press]] |isbn=978-0-8156-5257-1 |page=1}}
|{{harvnb|Dana|2010|p=314}}
}}</ref><ref name="Adams Media">{{cite book |last1=Morrison |first1=Terri |url=https://archive.org/details/kissboworshakeha00morr_568 |title=Kiss, Bow, Or Shake Hands: The Bestselling Guide to Doing Business in More Than 60 Countries |last2=Conaway |first2=Wayne A. |date=2006 |publisher=[[Adams Media]] |isbn=978-1-59337-368-9 |edition=illustrated |page=[https://archive.org/details/kissboworshakeha00morr_568/page/n274 259] |url-access=limited}}<!--|access-date=6 January 2015--></ref>.
Численность христиан разных конфессий в Ливане достигает 40 % (по оценкам экспертов 40,5 %) населения. На территории Ливана существуют, в частности, [[Антиохийский патриархат|православные (греко-православные)]], [[Армянская апостольская церковь]], [[Сиро-яковитская православная церковь]], шесть [[восточнокатолические церкви|восточнокатолических церквей]] — [[Маронитская католическая церковь|маронитская]] (западносирийская), [[Халдейская католическая церковь|халдейско-католическая]], [[Мелькитская католическая церковь|мелькитская (грекокатолическая)]], [[Армянская католическая церковь|армянокатолическая]], [[Сирийская католическая церковь|сирокатолическая]] и [[Коптская католическая церковь|коптокатолическая]].
=== Города ===
{{Основная статья|Города Ливана}}
== Экономика ==
{{главная|Экономика Ливана}}
{{См. также|Виноделие в Ливане}}
== Культура ==
{{main|{{нп3|Культура Ливана|Культура Ливана|en|Culture of Lebanon}}}}
[[Файл:USJ Campus.jpg|thumb|left|Здание ливанского Университета [[Иосиф Обручник|Иосифа Обручника]]]]
[[Файл:Fairuz playing the guitar.jpg|мини|Знаменитая ливанская певица [[Файруз]]|альт=]]
В Бейруте 4 университета, государственный [[симфонический оркестр]], проводятся множество музыкальных фестивалей — самые известные Бейтеддинский и Баальбекский, на которых выступали Паваротти, Каррерас и другие мировые знаменитости.
== Спорт ==
Ливан является родиной многих всемирно известных спортсменов. В Ливане родились будущие [[Культуризм|культуристы]] Самир Баннут (победитель турнира «[[Мистер Олимпия]]») и [[Мохаммед Баннут]], Ахмад Хайдар (абсолютный чемпион мира 1997 года).
Страна регулярно принимает участие в [[Азиатские игры|Азиатских]] и [[Олимпийские игры|Олимпийских играх]], как в летних, так и в зимних. Четырежды ливанские спортсмены становились призёрами Олимпийских игр: «серебро» завоевали борец Закария Чигаб ([[Летние Олимпийские игры 1952|Хельсинки-1952]]) и тяжелоатлет Мохамед Торабулси ([[Летние Олимпийские игры 1972|Мюнхен-1972]]), «бронзу» — борцы Халил Таха ([[Летние Олимпийские игры 1952|Хельсинки-1952]]) и Хасан Бехара ([[Летние Олимпийские игры 1980|Москва-1980]]). Участие в Азиатских играх принесло спортсменам из Ливана большие успехи — пять раз они поднимались на высшую ступень пьедестала почёта. Одна из золотых медалей была завоёвана на [[Зимние Азиатские игры|Зимних Азиатских играх]]. Этого успеха добился горнолыжник Ники Фюрстбауэр на [[Зимние Азиатские игры 2003|Зимней Азиаде-2003]].
Одним из ключевых организаторов ливанского спортивного движения в [[XX век]]е был [[Жмайель, Габриэль|Габриэль Жмайель]] — основатель и первый президент [[Олимпийский комитет Ливана|Олимпийского комитета Ливана]], член [[Международный олимпийский комитет|Международного олимпийского комитета]], а также директор [[Средиземноморские игры 1959|Средиземноморских игр]] и [[Арабские игры|Панарабских игр]], проходивших в [[Бейрут]]е в разное время<ref>70yearsMG — Gabriel Gemayel. https://www.70yearsmg.com/founders/gabriel-gemayel/. Дата обращения: 12 июля 2025.</ref>.
== Внешняя политика ==
{{Main|Внешняя политика Ливана}}
Внешняя политика Ливана до 2005 года была тесно связана с политикой Сирии в связи с наличием сирийских войск в стране и поддержкой сирийского вмешательства в ливанскую политику со стороны Хезболлы.
С 1948 года Ливан находятся в состоянии войны с Израилем. Поскольку граница Ливана и Израиля фактически контролируется «Хезболлой», там регулярно происходят вооруженные инциденты. Север Израиля систематически подвергается [[Обстрелы Израиля из Ливана|обстрелам]]. В свою очередь Израиль наносит авиаудары по объектам «Хезболлы».
После [[Падение режима Асада|падения режима Асада]] в Сирии и прихода к власти протурецкой суннитской группировки [[Хайят Тахрир аш-Шам]] на ливано-сирийской границе с 17 марта 2025 года на сирийско-ливанской границе произошли вооружённые столкновения между войсками нового правительства Сирии и боевиками «Хезболлы»<ref>{{Cite web |url=https://www.newsru.co.il/mideast/17mar2025/syria_lebanon_106.html |title=На границе Сирии и Ливана продолжаются бои между «Хизбаллой» и боевиками аль-Джулани |lang=ru |date=2025-03-18 |publisher=[[Newsru.co.il]] |access-date=2025-03-18 |url-status=live |archive-date=2025-03-17 |archive-url=https://web.archive.org/web/20250317085354/https://www.newsru.co.il/mideast/17mar2025/syria_lebanon_106.html }}</ref>
== Вооружённые силы ==
{{main|Вооружённые силы Ливана}}
Во время [[Гражданская война в Ливане|гражданской войны]] государственные вооружённые силы фактически распались, а все противоборствующие группировки имели свои вооружённые формирования. Впоследствии правительственные силы были восстановлены, и в 1990-х годах смогли взять под контроль всю территорию страны; большинство ополчений были разоружены. По соглашению в воссозданную армию вошли 20 тысяч ополченцев, в частности 8 тыс. бойцов [[Ливанские силы|Ливанских сил]], 6 тыс. бойцов «[[Амаль]]», 3 тыс. членов [[Друзы|друзских]] ополчений, 2 тыс. членов «[[Хезболла|Хезболлы]]» и тысяча членов христианских отрядов «[[Марада]]».
В 1996 году Вооружённые силы составляли 48,9 тыс. человек ([[Сухопутные войска Ливана|Сухопутные войска]] — 97,1 %, [[Военно-морские силы Ливана|Военно-морской флот]] — 1,2 %, [[Военно-воздушные силы Ливана|ВВС]] — 1,7 %).
До 2000 года на юге страны существовала союзная [[Израиль|Израилю]] «[[Армия Южного Ливана]]», прекратившая своё существование после вывода израильских войск из страны. Вооружённые формирования на юге страны остались у «Хезболлы», которая на 2025 год фактически контролирует юг Ливана.
В Ливане постоянно находятся 5600 солдат [[ЮНИФИЛ]], отвечающие за поддержание мира в стране. Часть [[Сирия|сирийского]] военного контингента, составлявшего в конце 90-х 35,5 тыс. человек, была выведена в 2001 году.
== См. также ==
{{wikiatlas|Lebanon}}
{{Дерево статей|Ливан}}
<ref>[https://www.vedomosti.ru/politics/news/2026/04/21/1191787-gumanitarnuyu-pomosch Ливана]</ref>
== Примечания ==
{{Примечания|2}}
== Литература ==
* {{Книга:Густерин П.В.: Города Арабского Востока|2007}}
* {{книга|автор=John C. Rolland|заглавие=Lebanon: Current Issues and Background |оригинал= |ссылка=https://books.google.co.il/books?id=-JVOKeNkllgC|издательство=Nova Publishers|год= 2003 |allpages=235 |isbn=1590338715 |isbn2=9781590338711}}
* {{книга|автор=Павлов Н. В.|заглавие=Ботаническая география зарубежных стран, ч. 1, 2|место=М.|издательство=«Высшая школа»|год=1965|страницы=7—9|страниц=310|ref=Павлов}}
* {{книга |автор=[[Поспелов, Евгений Михайлович|Поспелов Е. М.]]|заглавие=[[Географические названия мира. Топонимический словарь]]|издание=2-е изд., стереотип|ответственный=отв. ред. Р. А. Агеева |ссылка= |место=М.|издательство=Русские словари, Астрель, АСТ|год=2002 |страниц=512|страницы=|isbn=5-17-001389-2 |тираж=3000 |ref=Поспелов}}
* {{cite book|ref=Dana|last=Dana|first=Léo-Paul|title=Entrepreneurship and Religion|год=2010|publisher=[[Edward Elgar Publishing]]|isbn=978-1-84980-632-9}}
== Ссылки ==
{{Навигация
|Портал = Ливан
|Викисловарь = Ливан
|Викитека = Категория:Ливан
|Тема = Ливан
}}
* [http://www.livan.info/ Русские в Ливане]
* [https://web.archive.org/web/20131110161130/http://vlivan.ru/putevoditel_po_livanu/ Электронный путеводитель по Ливану]
* [http://annamap.ru/livan/ Новая карта Ливана]
* [http://mirputeshestvii.ru/read/reports/puteshestvie_v_livan_bejrut-2275/ Путешествие по Ливану]. Рассказ и фотографии.
{{dmoz|World/Russian/Страны_и_регионы/Ближний_Восток/Ливан/}}
* [https://web.archive.org/web/20090713225015/http://www.vokrugsveta.ru/tv/vs/cast/715/ Статья в журнале «Вокруг света»]
* [https://web.archive.org/web/20110713063803/http://www.isramir.com/content/view/4399/169/ Хронология политических и военных событий в Ливане (1920—2004)] // Дов Конторер, 21.06.2006
{{Внешние ссылки}}
{{Ливан в темах}}
{{Азия}}
{{Лига арабских государств}}
{{Agadir}}
{{Союз для Средиземноморья}}
{{ОИК}}
{{Заморская экспансия Франции}}
{{Франкоязычные страны}}
{{Бывшие мандатные территории}}
[[Категория:Ливан| ]]
[[Категория:Унитарные республики]]
[[Категория:Государства — члены ООН]]
[[Категория:Государства и территории, основанные в 1943 году]]
[[Категория:Страны у Средиземного моря]]
5c7rz6jwo6emvb855a8i8kdnymnt3hr
744022
744021
2026-05-24T10:15:03Z
Teriazar
73808
Добавлен источник: Минздрав Ливана заявил о гибели более 3000 человек из-за атак Израиля
744022
wikitext
text/x-wiki
{{Пользовательская страница}}
{{значения}}
{{Не путать|Ливия|Ливией|государством в Африке}}
{{Государство
| Русское название = Ливанская Республика
| Оригинальное название = {{lang-ar|الجمهورية اللبنانية}}<br>{{lang-fr|République Libanaise}}
| Родительный падеж = Ливана
| Флаг = Flag of Lebanon.svg
| Герб = Coat of Arms of Lebanon.svg
| Девиз =
| Перевод названия гимна = Национальный ливанский гимн
| Аудио = Lebanese_national_anthem.ogg
| Название гимна = النشيد الوطني اللبناني
| Форма правления = [[Конфессионализм (политика)|конфессиональная]] [[парламентская республика]]<ref name="atlas">{{книга|заглавие=Атлас мира: Максимально подробная информация|ответственный=Руководители проекта: А. Н. Бушнев, А. П. Притворов|место=Москва|издательство=АСТ|год=2017|страницы=46|страниц=96|isbn=978-5-17-10261-4}}</ref>
| lat_dir = N
| lat_deg = 33
| lat_min = 54
| lat_sec = 0
| lon_dir = E
| lon_deg = 35
| lon_min = 51
| lon_sec = 0
| region = LB
| CoordScale = 1000000
| На карте = Lebanon_(orthographic_projection).svg
| Подпись к карте = Ливан на карте мира
| Языки = [[Арабский язык|арабский]]
| Дата независимости = [[22 ноября]] [[1943 год]]а
| Независимость от = [[Франция|Франции]]
| Столица = [[Бейрут]]
| Крупнейшие города = Бейрут, [[Триполи (Ливан)|Триполи]], [[Сайда (город)|Сайда]], [[Баабда]], [[Эн-Набатия (город)|Эн-Набатия]], [[Захла]]
| Должность руководителя 1 = [[Список президентов Ливана|Президент]]
| Руководитель 1 = [[Аун, Жозеф|Жозеф Аун]]
| Должность руководителя 2 = [[Список премьер-министров Ливана|Премьер-министр]]
| Руководитель 2 = [[Салам, Наваф|Наваф Салам]]
| Должность руководителя 3 = Председатель [[Палата представителей Ливана|Палаты представителей]]
| Руководитель 3 = [[Берри, Набих|Набих Берри]]
| Государственная религия = [[светское государство]]
| Место по территории = 161
| Территория = 10452
| Процент воды = 1,6
| Место по населению = {{рост}}122 <ref>[https://population-hub.com/ru/list-of-countries-by-population.html Список стран по населению на 2020 год] {{Wayback|url=https://population-hub.com/ru/list-of-countries-by-population.html |date=20200728142814 }} По данным Population HUB</ref>
| Население = {{рост}}{{число|5364482}}<ref name="автоссылка1">{{CIA World Factbook|article=Lebanon|access-date=23-09-2024}}</ref>
| Год оценки = 2024
| Год переписи =
| Этнохороним = лива́нец, лива́нка, [[ливанцы]]
| Плотность населения = 523
| ВВП (ППС) = {{число|44443|млрд}}<ref name="dataimf">{{Cite web|lang=en|url=https://www.imf.org/en/Publications/WEO/weo-database/2020/October/weo-report?c=512,612,911,912,419,611,469,915,429,433,439,916,443,917,446,672,682,686,449,564,453,456,726,732,463,923,744,925,466,927,487,474,&s=NGDPD,PPPGDP,NGDPDPC,PPPPC,&sy=2018&ey=2025&ssm=0&scsm=1&scc=0&ssd=1&ssc=0&sic=0&sort=country&ds=,&br=1|title=Report for Selected Countries and Subjects|website=IMF|access-date=2020-11-26|archive-date=2020-11-16|archive-url=https://web.archive.org/web/20201116125632/https://www.imf.org/en/Publications/WEO/weo-database/2020/October/weo-report?c=512,612,911,912,419,611,469,915,429,433,439,916,443,917,446,672,682,686,449,564,453,456,726,732,463,923,744,925,466,927,487,474,&s=NGDPD,PPPGDP,NGDPDPC,PPPPC,&sy=2018&ey=2025&ssm=0&scsm=1&scc=0&ssd=1&ssc=0&sic=0&sort=country&ds=,&br=1|url-status=live}}</ref>
| Год расчёта ВВП (ППС) = 2022
| Место по ВВП (ППС) = 89
| ВВП (ППС) на душу населения = {{s|9732}}<ref name="dataimf"/>
| Место по ВВП (ППС) на душу населения = 85
| ВВП (номинал) = 18,08 млрд<ref name="dataimf"/>
| Год расчёта ВВП (номинал) = 2022
| Место по ВВП (номинал) = 79
| ВВП (номинал) на душу населения = {{s|4577}}<ref name="dataimf"/>
| Место по ВВП (номинал) на душу населения = 74
| ИРЧП = {{Рост}} 0,744<ref>{{cite web |url=http://hdr.undp.org/sites/default/files/hdr2019.pdf |lang=en |title=Human Development Indices and Indicators 2019 |publisher=[[Программа развития ООН]] |description=Доклад о человеческом развитии на сайте Программы развития ООН |access-date=2020-01-02 |archive-date=2018-10-24 |archive-url=https://web.archive.org/web/20181024144212/http://hdr.undp.org/sites/default/files/2018_summary_human_development_statistical_update_en.pdf |url-status=live }}</ref>
| Год расчёта ИРЧП = 2022
| Место по ИРЧП = 93
| Уровень ИРЧП = <span style="color:#090;">высокий</span>
| Валюта = [[ливанский фунт]]<br>([[ISO 4217|LBP, 422]])
| Домен = [[.lb]]
| Телефонный код = 961
| Часовой пояс = [[Восточноевропейское время|EET]] ([[UTC+2:00|UTC+2]], [[Летнее время|летом]] [[Восточноевропейское летнее время|UTC+3]])
}}
'''Лива́н''' ({{lang-ar|لبنان}}, {{lang-fr|Liban}}), официальное название — '''Лива́нская Респу́блика''' ({{lang-ar|الجمهورية اللبنانية}}, {{lang-fr|République libanaise}}) — государство на [[Ближний Восток|Ближнем Востоке]], расположенное в гористой местности на восточном берегу [[Средиземное море|Средиземного моря]]. На востоке и севере граничит с [[Сирия|Сирией]], на юге — с [[Израиль|Израилем]].
Столица — [[Бейрут]]. Государственный язык — [[Арабский язык|арабский]] ([[Ливанский диалект арабского языка|ливанский диалект]]). Население Ливана — около 5,3 миллиона человек<ref name="автоссылка1" />. Республика выделяется чрезвычайным религиозным разнообразием.
В государстве действует особая [[политическая система]] — так называемый [[Конфессионализм (политика)|конфессионализм]], подразумевающий организацию государственной власти в соответствии с делением общества на религиозные общины.
До [[Гражданская война в Ливане|гражданской войны 1975—1990 годов]] Ливан был процветающим государством, финансовой и банковской столицей Ближнего Востока с преобладающей долей христианского населения (по переписи 1913 года доля христиан составляла 79,5 %, по переписи 1932 года — 49,9 % (58,5 %, включая эмиграцию)), за что получил неофициальное название «Ближневосточная [[Швейцария]]». Страна также пользуется популярностью среди туристов. После завершения войны началось восстановление экономики.
В Ливане находится один из древнейших городов — [[Баальбек]] со своим знаменитым [[Трилитон Баальбека|Трилитоном Баальбека]].
== Этимология ==
Название стране было присвоено по [[Ливан (хребет)|горному хребту Ливан]], который проходит по территории страны вдоль берега [[Средиземное море|Средиземного моря]]. Название хребта, в свою очередь, происходит от [[Прасемитский язык|древнесемитского]] ''laban'' («белый») — его сравнительно высокие вершины в зимнее время покрыты снегом{{sfn|Поспелов|2002|с=242}}.
== География ==
{{main|География Ливана}}
[[Файл:карта Ливана.png|thumb|right|315px|Карта Ливана]]
Ливан расположен на [[Ближний восток|Ближнем востоке]]. На западе омывается [[Средиземное море|Средиземным морем]], береговая линия 225 [[км]]. На севере и востоке граничит с [[Сирия|Сирией]], на юге — с [[Израиль|Израилем]]. Сирийско-ливанская граница имеет протяжённость 375 км, ливано-израильская — 79 км. Небольшой отрезок границы Ливана с [[Голанские высоты|Голанскими высотами]] ([[Фермы Шебаа]]), присоединёнными Израилем, является спорной территорией.
Общая площадь Ливана — 10452 {{км2}}. По размерам страна является [[Список стран, сортировка по площади|161-й в мире]]. Большая часть Ливана покрыта [[гора]]ми, кроме [[Долина Бекаа|долины Бекаа]] на северо-востоке и вытянутого с севера на юг узкого равнинного участка вдоль берега моря. Прибрежный Ливан отделяется от восточных регионов горными цепями [[Ливан (хребет)|Ливан]] и [[Антиливан]]. В Ливане имеются залежи [[известняк]]а, [[Железная руда|железной руды]], месторождения [[Соль|соли]]. Ливан богат водными ресурсами. Река [[Эль-Литани]] является основным источником воды для южных районов Ливана. Тем не менее, судоходных рек в стране нет.
[[Файл:Satellite image of Lebanon in March 2002.jpg|thumb|right|315px|Ливан из космоса]]
=== Климат ===
Для Ливана характерен [[средиземноморский климат|средиземноморский климат (по классификации Кёппена)]]. В прибрежных регионах зима, как правило, прохладная, а лето — влажное и жаркое. Зимой в горах температура опускается ниже 0 °C, возможно выпадение снега. Хотя среднегодовое количество осадков в Ливане гораздо больше, чем в соседних странах, на северо-востоке преобладает засушливый климат, так как горы блокируют поступление влажного воздуха с моря. Часто случаются песчаные и пылевые бури.
=== Флора ===
[[Файл:Cedar of Lebanon (Cedar of God), Lebanon.jpg|thumb|left|[[Ливанский кедр]] — национальное растение государства]]
[[Файл:Pilgrimage_to_the_Cedars_of_Libanon.jpg|left|thumb|«Паломничество у ливанского кедра» — полотно [[Венгрия|венгерского]] художника [[Чонтвари, Тивадар Костка|Чонтвари Тивадара Костки]]]]
Флора Ливана состоит примерно из 2200—2400 видов{{sfn|Павлов|1965}}. [[Эндемик|Эндемических]] [[Семейство|семейств]] в ней нет, количество эндемических [[Род (биология)|родов]] малочисленно, а эндемические [[Вид (биология)|виды]] связаны с молодым прогрессивным [[видообразование]]м в [[Полиморфизм (биология)|полиморфных]] родах. Во флоре Ливана господствует средиземноморский флористический элемент с незначительной примесью ирано-туранских видов.
[[Растительность]] Ливана (как главным образом горной страны) имеет поясный характер. Нижний пояс представлен на [[Известняк|известняковых породах]] типичным средиземноморским [[маквис]]ом. В нём господствует {{bt-ruslat|маслина европейская|Olea europaea}}. На севере, в районе [[Триполи (Ливан)|Триполи]], она поднимается до 600—800 м наибольшей высоты, а на востоке, по склонам [[Хермон]]а, достигает 700 м наибольшей высоты. Вместе с маслиной встречаются {{bt-ruslat|олеандр|Nerium oleander}}, вечнозелёные [[дуб]]ы — {{bt-ruslat|дуб лузитанский|Quercus lusitanica}}, {{bt-ruslat|дуб калепринский|Quercus calliprinos}}, {{bt-ruslat|дуб таворский|Quercus ithaburensis}}, [[кустарник]]и — {{bt-ruslat|волчеягодник маслиноподобный|Daphne oleoides}}, {{bt-ruslat|вишня распростёртая|Prunus prostrate}}, {{bt-ruslat|розмарин лекарственный|Rosmarinus officinalis}} и [[Травянистые растения|травы]] — {{bt-ruslat|Лаванда стэхадская|Lavandula stoechas}}, {{bt-ruslat||Dorycnium hirsutum}}, {{bt-ruslat|подладанник жёлтый|Cytinus hypocistis}}, {{bt-ruslat|володушка кустарниковая|Bupleurum fruticosum}}, {{bt-ruslat|глинус лядвенецевидный|Glynus lotoides}}, {{bt-ruslat|шаровница обезболивающая|Clobularia alupum}}, {{bt-ruslat||Pastinaca teretiuscula}}, {{bt-ruslat||Turgeniopsis foeniculaea}} и др.
Следующий — лесной — пояс Ливана, простирающийся с высот 600—800 м до 2300—2400 м абс. выс., хорошо выражен в центральной части страны, где преобладают [[песчаник]]и. Растительность песчаников сильно нарушена вырубками и выпасом скота. Наибольший вред приносят козы, являющиеся не столько травоядными, сколько древоядными животными. В древности на территории Ливана в огромном количестве произрастали леса [[Кедр ливанский|ливанского кедра]] (''Cedrus libani''), ставшего символом страны. Столетиями деревья вырубались без пересадки как основной материал в [[Судостроение|кораблестроении]], и это в конечном итоге привело к тому, что к [[XX век]]у на месте богатейших лесов остались лишь отдельные острова зелени — на высотах от 1300 до 2000 м — величайший из которых находится в долине Бшерры на высоте 1520 м.
В лесном поясе встречаются также {{bt-ruslat|платан восточный|Platanus orientalis}}, {{bt-ruslat|клён сирийский|Acer syriacum}}, {{bt-ruslat|ясень манновый|Fraxinus ornus}} и [[хвойные]] — {{bt-ruslat|сосна алеппская|Pinus halepensis}}, {{bt-ruslat|сосна калабрийская|Pinus brutia}}, {{bt-ruslat|кипарис вечнозелёный|Cupressus sempervirens}}<!-- (Cupressus sempervirens var. Horizontalis)-->, {{bt-ruslat|Пихта киликийская|Abies cilicica}}, [[Можжевельник|древовидные можжевельники]] на хребте [[Ливан (хребет)|Ливан]] — {{bt-ruslat|можжевельник колючий|Juniperus oxycedrus}} и {{bt-ruslat|можжевельник вонючий|Juniperus foetidissima}}, а на [[Хермон]]е — {{bt-ruslat|можжевельник высокий|Juniperus excelsa}}. Выше древовидные можжевельники сменяются на кустарниковый {{bt-ruslat|можжевельник косточковый|Juniperus drupacea}}. В лесах нередко встречаются [[Папоротниковидные|папоротники]], из которых наиболее примечательны {{bt-ruslat||Pteris arguta}} и {{bt-ruslat||Pteris longifolia}}, и заросли [[Иван-чай узколистный|иван-чая узколистного]] ({{bt|Chamerion angustifolium}}).
С высоты 2300—2400 м начинается наименее изученный пояс высокогорной [[Альпийская растительность|альпийской растительности]]. Здесь растут {{bt-ruslat|рододендрон понтийский|Rhododendron ponticum}}, селагинелла {{bt-ruslat||Selaginella denticulate}}, {{bt-ruslat|осока лесная|Carex sylvatica}} и другие бореальные и аркто-альпийские растения: {{bt-ruslat|камнеломка|Saxifraga}}, {{bt-ruslat|ветреница|Anemone}}, {{bt-ruslat|лютик|Ranunculus}}, {{bt-ruslat|Крупка (растение){{!}}крупка|Draba}}, {{bt-ruslat|горечавка|Gentiana}}.
В значительно более сухих горах [[Антиливан]]а растительность беднее, лиственные породы почти отсутствуют, а из хвойных встречаются только {{bt-ruslat|кедр ливанский|Cedrus libani}} и {{bt-ruslat|можжевельник косточковый|Juniperus drupacea}}. В нижнем поясе кое-где растут единично вечнозелёные [[дуб]]ы и {{bt-ruslat|фисташка палестинская|Pistacia palaesina}}, а иногда встречаются и пустынно-степные группировки подушковидного [[чероноголовник колючий|чероноголовника колючего]] ({{bt-ruslat||Poterium spinosum}}).
[[Культурные растения]] Ливана немногочисленны. Это главным образом [[пшеница]] и [[ячмень]], только на побережье Средиземного моря разводятся [[Цитрусовые культуры|цитрусовые]] и другие [[Плодовые культуры|плодовые породы]], [[Виноград культурный|виноград]], {{bt-ruslat|инжир|Ficus carica}} и [[Маслина|маслины]].
== История ==
{{main|История Ливана}}
=== Древний Ливан ===
Появление первых поселений на территории современного Ливана относится к [[6-е тысячелетие до н. э.|6-му тысячелетию до н. э.]] В окрестностях [[Библ]]а археологи обнаружили остатки доисторических хижин и примитивных орудий. Некоторые предметы быта указывают на существование здесь стоянок рыболовецких племён времён эпохи [[неолит]]а ещё в [[8-е тысячелетие до н. э.|8-м]]—[[7-е тысячелетие до н. э.|7-м тысячелетиях до н. э.]]
Ливан стал родиной [[Финикия|Финикии]], развитого морского торгового государства, растянувшегося вдоль берега [[Средиземное море|Средиземного моря]]. Финикийцы дали миру первый [[Финикийский алфавит|алфавит]]. Расцвет Финикии пришёлся на 1200—800 годы до н. э. В VI веке до н. э. Финикия попала под владычество [[Иран|персов]] во главе с [[Кир II Великий|Киром Великим]]. В 332 году до н. э. [[Александр Македонский]] совершил поход на Финикию, уничтожив её крупнейший город — [[Тир (город)|Тир]]. С распадом империи Македонского Ливан вошёл в состав [[Селевкиды|Царства Селевкидов]], а в конце I века до н. э. — [[Римская империя|Римской империи]].
=== Средневековый Ливан ===
[[Файл:DeirAlQamar-FakhredinePalace.jpg|thumb|Дворец XVII века|left]]
В период арабских завоеваний и становления [[Арабский Халифат|Халифата]] в Ливан проникает [[ислам]]. В XII веке Ливан стал частью Иерусалимского королевства [[Крестоносцы|крестоносцев]]. В 1261 году крестоносцы были изгнаны из Ливана [[Мамлюкский султанат|тюрками-мамлюками]], и Ливан находился в составе мамлюкского Египта до 1516 года. В 1517 году султан [[Селим I]] присоединил эту территорию к [[Османская империя|Османской империи]]. Эмиры [[Шехаб (династия)|династии Шехаб]] правили Ливаном с 1697 до 1842 года.
=== Французский мандат ===
{{См. также|Великий Ливан}}
[[Файл:Beirut-in-1919.webm|thumb|Бейрут в 1919 г.]]
Территория Ливана (в составе Большой Сирии) входила в состав Османской империи на протяжении более 400 лет. После поражения Турции в [[Первая мировая война|Первой мировой войне]] и распада Османской империи, территория Большой Сирии была оккупирована в 1918 году британскими войсками под командованием генерала Аленби. В 1918 г., по более раннему [[Соглашение Сайкса — Пико|соглашению Сайкса-Пико]] между странами [[Антанта|Антанты]] от 1916 года, территория Сирии была передана [[Франция|Франции]] и управление ею было легализовано в виде [[Сирия#Французский мандат|Французского мандата]] от Лиги Наций. В 1926 году территория Ливана была отделена от Сирии, и Ливан стал отдельной территориальной единицей, управляемой, однако, той же администрацией Французского мандата Сирии.
=== Независимый Ливан ===
В 1940 году Франция была оккупирована [[Германия|Германией]]. Уже в [[Ноябрь|ноябре]] во французском мандате в Ливане прошли первые нелегитимные выборы и сформировано правительство.
В 1943 году Ливан уже официально приобрёл независимость. «[[Национальный пакт]]» установил правило, по которому [[президент]]ом страны должен быть [[Маронитская католическая церковь|христианин-маронит]], а [[премьер-министр]]ом — [[Ислам|мусульманин-суннит]] (спикером же парламента — мусульманин-шиит).
В 1948 году Ливан принял участие в первой [[Арабо-израильская война 1948 года|арабо-израильской войне]]. После поражения Арабской освободительной армии Ливан подписал с [[Израиль|Израилем]] соглашение о прекращении огня. 100 тысяч арабских беженцев перебрались из Палестины в Ливан.
С 1956 года в Ливане начали усиливаться противоречия между христианами и мусульманами, вылившиеся в мае 1958 года в [[Ливанский кризис 1958 года|гражданскую войну]]. Чтобы удержать власть в стране, президент [[Шамун, Камиль|Камиль Шамун]] обратился за военной помощью к США. Американские войска находились в стране с июля по октябрь до полной нормализации обстановки.
=== Гражданская война ===
{{main|Гражданская война в Ливане}}
[[Файл:Green Line, Beirut 1982.jpg|thumb|Бейрут в военное время]]
В 1975 году в Ливане разразилась вторая [[Гражданская война в Ливане|гражданская война]] между [[Правохристиане (Ливан)|правохристианскими]] силами и лево-мусульманскими милициями, которых поддержали находившиеся в Ливане палестинские боевики. Война продолжалась 15 лет, разрушив некогда процветающую экономику страны, и унесла жизни более 150 тысяч жителей. Кровопролитие прекратилось в 1990 году подписанием Таифских соглашений.
В 1976 году по просьбе тогдашнего правительства в Ливан вошли сирийские войска. {{не переведено 3|Сирийское присутствие в Ливане|Сирийское присутствие||Syrian occupation of Lebanon}} продолжалось до 2005 года, несмотря на официальные требования президентов Ливана о выводе сирийских войск, начиная с 1983 года<ref name="CommitteeUSA">{{cite web|url=http://www.gpo.gov/fdsys/pkg/CHRG-106shrg67981/pdf/CHRG-106shrg67981.pdf|title=Hearing before the Subcommittee on Near Eastern and South Asian Affairs of of the Committee on Foreign Relations United States Senate|date=2000-06-14|publisher=Committee on Foreign Relations|lang=en|access-date=2012-07-03|archive-url=https://www.webcitation.org/69f2GcUF3?url=http://www.gpo.gov/fdsys/pkg/CHRG-106shrg67981/pdf/CHRG-106shrg67981.pdf|archive-date=2012-08-04|url-status=live}}</ref><ref name="Youssef">Shiar Youssef [http://www.globalresearch.ca/index.php?context=va&aid=9340 What really happened in Beirut? July 3, 2012] {{Wayback|url=http://www.globalresearch.ca/index.php?context=va&aid=9340 |date=20120529093001 }}</ref>.
Дважды войска [[Армия обороны Израиля|армии обороны Израиля]] (ЦАХАЛ) были введены на территорию Ливана. Первый раз в марте 1978 года — после захвата двух автобусов с заложниками, когда погибло 36 и было ранено свыше 70 израильских граждан<ref name="Брасс_истоки">{{Cite web |url=http://rus.delfi.lv/news/entertainment/books/article.php?id=9150664 |title=Александр Брасс. Палестинские истоки, Marcus, Polaris, 24 сентября 2004 |access-date=2015-09-15 |archive-date=2007-09-26 |archive-url=https://web.archive.org/web/20070926235526/http://rus.delfi.lv/news/entertainment/books/article.php?id=9150664 |url-status=live }}</ref>; второй в июне 1982 года — в ответ на покушение на израильского посла в Лондоне [[Аргов, Шломо|Шломо Аргова]]<ref>после покушения три месяца Ш. Аргов находился в [[Кома|коме]], остался парализованным, и до дня своей смерти в 2003 году был госпитализирован в реабилитационном отделении больницы [[Больница Хадасса|Адасса Хар ха-Цофим]] в [[Иерусалим]]е</ref> были проведены массированные бомбардировки по позициям Организации освобождения Палестины в Ливане<ref>[[Эйтан, Рафаэль|Рафаэль Эйтан]]. Повесть солдата. / пер. с иврита — [[Баух, Ефрем Исаакович|Ефим (Ефрем) Баух]]. Израиль, изд-во «Яир», 1991. стр.336</ref><ref name="LibraryCongress">{{cite web|url=http://lcweb2.loc.gov/cgi-bin/query/r?frd/cstdy:@field%28DOCID+lb0161%29|title=Lebanon. The Two-Week War. Section 1 of 1; Data as of December 1987 Library of Congress Country Studies|publisher=Lcweb2.loc.gov|date=1982-06-03|access-date=2012-02-29|archive-url=https://www.webcitation.org/68MN7WD5k?url=http://lcweb2.loc.gov/cgi-bin/query/r?frd%2Fcstdy%3A%40field%28DOCID+lb0161%29|archive-date=2012-06-12|url-status=live}}</ref>. Тогда ООП подвергло массированному обстрелу территорию Израиля<ref name="LibraryCongress" /><ref name="brass2004">{{книга|автор=Александр Брасс|заглавие=Палестинские истоки // Терроризм - история и современность|ссылка=https://books.google.co.il/books?id=ChY2kq6KVMcC&pg=PA80 |издательство=Olma Media Group|год=2004|страниц=347 |страницы=80|isbn=5948496694, 9785948496696}}</ref><ref name="Eitan1992">{{книга|автор= [[Эйтан, Рафаэль|Raful Eitan]]|заглавие=A Soldier's Story: The Life and Times of an Israeli War Hero|ссылка=https://books.google.ru/books?id=3Iav7igW5CQC|издательство=SP Books|год=1992|pages=272|allpages=388|isbn=1561710946, 9781561710942}}</ref>, а силы ЦАХАЛа вошли на территорию южного Ливана. Силы ЦАХАЛа оставались в южном Ливане вплоть до 2000 года. После вывода войск между Израилем и Ливаном была проведена чёткая граница — так называемая «голубая линия», однако [[Мазария-Шабъа|фермы Шебаа]] к северу от [[Голанские высоты|Голанских высот]] так и остались спорной территорией.
=== Последующий период ===
В послевоенный период экономика Ливана бурно росла.
Недолгий период относительного спокойствия был прерван правительственным кризисом, спровоцированным убийством экс-премьера страны [[Харири, Рафик|Рафика Харири]], последовавшим выводом из страны [[Сирийские арабские вооружённые силы|сирийских войск]] и [[Вторая ливанская война|израильско-ливанским конфликтом]] в 2006 году.
В 2007 году ситуация в Ливане осложнилась [[Конфликт в Северном Ливане 2007 года|кризисом вокруг лагеря Нахр аль-Барид]].
В 2011 году в Ливане возник [[Конфликт в Ливане (2011—2017)|конфликт между крупнейшими парламентскими фракциями]]. А в 2015 году по стране прокатилась [[Беспорядки в Ливане (2015)|волна протестов]] из-за бездействия правительства и [[Президентские выборы в Ливане (2014—2016)|политического кризиса]], в ходе которого парламент до 2016 года не мог избрать президента.
9 марта 2020 года Ливан объявил первый в истории страны [[дефолт]] по [[облигация]]м на сумму 1,2 млрд долларов США<ref>{{Cite web|url=https://www.rbc.ru/economics/07/03/2020/5e63d3459a7947cc5cd55594|title=Ливан объявил дефолт по евробондам из-за «сожравшей страну коррупции»|publisher=РБК|lang=ru|access-date=2020-03-11|archive-date=2020-03-08|archive-url=https://web.archive.org/web/20200308125036/https://www.rbc.ru/economics/07/03/2020/5e63d3459a7947cc5cd55594|url-status=live}}</ref>. Общий внешний долг достиг 90 млрд долларов (более 150 % от ВВП)<ref>{{Cite web|url=https://espresso.economist.com/a596c69468e85ae53014c825e9079543|title=No more romance on the Levant: Lebanon’s debt crisis|date=2020-03-08|publisher=Economist Espresso|lang=en|access-date=2020-03-11|archive-date=2021-01-29|archive-url=https://web.archive.org/web/20210129184645/https://espresso.economist.com/a596c69468e85ae53014c825e9079543|url-status=live}}</ref>.
10 августа 2020 года правительство Ливана официально ушло в отставку в полном составе<ref>{{cite news|title=Правительство Ливана в полном составе ушло в отставку спустя неделю после взрыва в Бейруте|url=https://meduza.io/news/2020/08/10/pravitelstvo-livana-v-polnom-sostave-ushlo-v-otstavku-spustya-nedelyu-posle-vzryva-v-beyrute|access-date=2020-08-11|publisher=Медуза|date=2020-08-10|archive-date=2021-05-12|archive-url=https://web.archive.org/web/20210512071803/https://meduza.io/news/2020/08/10/pravitelstvo-livana-v-polnom-sostave-ushlo-v-otstavku-spustya-nedelyu-posle-vzryva-v-beyrute}}</ref>.
== Государственное устройство ==
{{main|Государственный строй Ливана}}
[[Файл:BeirutParliament.jpg|мини|Здание Палаты представителей в [[Бейрут]]е]]
Существующая более полувека «ливанская модель» (конфессионализм) государственного устройства была создана в 1943 году в процессе обретения Ливаном независимости от Франции. Для того, чтобы обеспечить более или менее равный доступ к верховной власти для всех религиозных [[Конфессия|конфессий]], был разработан следующий порядок: [[Президент Ливана|президентом]] страны должен быть [[Христианство|христианин]]-[[Марониты|маронит]], [[Премьер-министр Ливана|премьер-министром]] — [[Сунниты|мусульманин-суннит]], [[спикер]]ом парламента — [[Шииты|мусульманин-шиит]], а в правительстве должны быть поровну представлены [[Христианство|христиане]] и [[Ислам|мусульмане]]. Согласно конституции, Ливан является [[Парламентская республика|парламентской республикой]].
[[Законодательная власть]] представлена [[Палата представителей Ливана|Палатой представителей]] ({{lang-ar|مجلس النواب}}) — [[парламент]]ом Ливана, который состоит из 128 депутатов, избираемых прямым голосованием на четырёхлетний срок. В Палате заседают 64 [[мусульманин]]а (27 [[Сунниты|суннитов]], 27 [[Шииты|шиитов]], 8 [[Друзы|друзов]] и 2 [[Алавиты|алавита]]) и 64 [[христианин]]а (32 [[Маронитская католическая церковь|маронита]], 20 армян [[ААЦ]], 2 [[Армянская католическая церковь|армяно-католика]], 7 [[Православие|православных]], 1 греко-католик ([[Мелькитская греко-католическая церковь|мелькит]]), 1 [[Протестантизм|протестант]], а также ещё 1 по усмотрению). Парламент избирает президента, утверждает состав правительства, утверждает законы и [[бюджет]] республики.
Президент ([[Маронитская католическая церковь|маронит]]) избирается Палатой представителей на 6-летний срок, причём одно лицо не может дважды занимать этот пост. Дважды в истории это правило нарушалось: в 1995 году на 3 года был продлён срок пребывания у власти [[Ильяс Храуи|Ильяса Храуи]], а также в 2004 году президентские полномочия до 23 ноября 2007 года были продлены для [[Лахуд, Эмиль|Эмиля Лахуда]]. Президент по представлению парламента назначает [[премьер-министр]]а ([[Сунниты|суннита]]) и его первого заместителя. После консультаций с президентом и парламентом премьер-министр формирует [[кабинет министров]] также по принципу религиозного [[Квота|квотирования]].
В соответствии с [[Конфессия|конфессиональным]] делением в Ливане зарождались и [[Политическая партия|политические партии]], которые по большей части имеют [[Религия|религиозный]] характер. [[Христианство|Христианские]], [[Сунниты|суннитские]], [[Шииты|шиитские]], [[Друзы|друзские]] партии борются не друг против друга, а за места в пределах заранее определённых конфессиональных [[Квота|квот]]. В каждой из конфессий исторически сложилось несколько противостоящих друг другу политических сил. Например, среди ливанских христиан были как яростные противники сирийского военного присутствия в Ливане (например, генерал [[Аун, Мишель Наим|Мишель Аун]] или командующий объединённой христианской милицией «[[Ливанские Силы]]» [[Джааджаа, Самир|Самир Джааджаа]]), так и лояльные [[Сирия|Сирии]] политики, которым как раз и доставались президентские посты ([[Моавад, Рене|Рене Муаввад]], [[Храуи, Ильяс|Элиас Храуи]], [[Эмиль Лахуд]]).
Бывший премьер-министр [[Харири, Рафик|Рафик Харири]] был первым, кто бросил вызов этой системе. Он пришёл к власти, не опираясь на какую-либо из существующих религиозно-политических партий, а благодаря своему колоссальному состоянию. Оно же позволило ему осуществить восстановление разрушенной страны. Сирия поддерживала сохранение прежней системы конфессиональных квот, заявляя, что альтернативой ей может быть лишь новая [[гражданская война]].
Согласно [[Economist Intelligence Unit]] страна в 2018 была классифицирована по [[Индекс демократии (Economist)|индексу демократии]] как [[гибридный режим]]<ref name="euidata2018">{{cite web |url=https://pages.eiu.com/rs/753-RIQ-438/images/Democracy_Index_2018.pdf |title=Democracy Index 2018: Me too? Political participation, protest and democracy |website=The Economist Intelligence Unit (The EIU) |access-date=2019-01-25 |archive-date=2019-01-10 |archive-url=https://web.archive.org/web/20190110013730/http://pages.eiu.com/rs/753-RIQ-438/images/Democracy_Index_2018.pdf |url-status=live }}</ref>.
=== Политические силы Ливана ===
Особенностью ливанской политики является деление всех политических сил на сторонников и противников сирийского влияния в стране{{Нет АИ|18|07|2017}}. В настоящее время первые объединены в [[Коалиция 8 марта|Коалицию 8 марта]], имеющую 68 из 128 мест в парламенте, а вторые — в [[Коалиция 14 марта|Коалицию 14 марта]] (60 мест в парламенте). В каждой этноконфессиональный группе Ливана есть партии, выступающие как с просирийских, так и с антисирийских позиций.
Основные партии христианской общины — [[Свободное патриотическое движение]] (СПД), [[Катаиб|Катаиб (Ливанская фаланга)]], [[Ливанские силы]], [[Национал-либеральная партия (Ливан)|Национал-либеральная партия]] (НЛП), [[Марада]]. Просирийские позиции занимают СПД и
«Марада», антисирийские — фалангисты, «Ливанские силы», национал-либералы. За консолидацию христианских политических сил выступает движение [[Фронт свободы (Ливан)|Фронт свободы]].
Крупнейшая партия мусульман-суннитов — антисирийское [[Движение за будущее]]. В шиитской общине доминируют [[Амаль]] и проиранская [[Хезболла]].
Особое место занимает [[друзы|друзская]] [[Прогрессивно-социалистическая партия Ливана|Прогрессивно-социалистическая партия]] (чей лидер [[Валид Джумблат]] известен своей беспринципностью). Она постоянно меняет свою позицию в зависимости от того, какая политическая и/или военная сила преобладает в Ливане, стоя на защите интересов [[друзы|общины друзов]].
Партийные списки построены по конфессиональному признаку, а внутри партийных списков места распределяются по клановому принципу. В то же время, конфессионально-клановое деление Ливана имеет географическое отражение: приверженцы одного клана, как правило, компактно населяют определённый район и традиционно выдвигают одного и того же представителя.
=== Результаты парламентских выборов 2005 по округам ===
# Бейрут (19 депутатов). Все 19 мест достались партии «Аль-Мустакбаль». «Свободное патриотическое движение» генерала Мишеля Ауна и армянская партия [[Дашнакцутюн]] не получили ни одного места. Ещё до выборов Мишель Аун призвал жителей Бейрута бойкотировать выборы, поскольку их результаты, по его мнению, были предопределены. Не участвовать в выборах призвали и лидеры армянской партии [[Дашнакцутюн]]. В результате самая низкая явка избирателей отмечена именно в христианских районах Бейрута.
# Южный Ливан. Большинство получил альянс «Амаль» — «[[Хезболла]]».
# Горный Ливан и долина Бекаа — большинство получил [[Аун, Мишель|Мишель Аун]].
# Северный Ливан — все 28 мандатов получил блок Саада Харири.
=== Результаты парламентских выборов 2009 по округам ===
{{main|Парламентские выборы в Ливане (2009)}}
== Административное деление ==
{{Lebanon Labelled Map|image=Lebanon districts 2020.png|float=right}}
{{main|Административное деление Ливана}}
Ливан делится на 9 мухафаз или провинций (''мухафаза'', {{lang-ar|محافظة}}), которые, в свою очередь, делятся на 25 районов (''када'', {{lang-ar|قضاء}}). Районы делятся на округа.
# [[Бейрут (мухафаза)|Бейрут]]
# [[Горный Ливан]]
# [[Кесруан-Джубейль]]
# [[Северный Ливан]]
# [[Бекаа (мухафаза)|Бекаа]]
# [[Набатия (мухафаза)|Набатия]]
# [[Аккар (мухафаза)|Аккар]]
# [[Баальбек-Хермель|Баальбек—Хермель]]
# [[Южный Ливан]]
== Население ==
{{нет ссылок в разделе|дата=2017-05-30}}
{{main|Население Ливана|Города Ливана}}
[[Файл:Lebanon_single_age_population_pyramid_2020.png|thumb|250px|[[Возрастно-половая пирамида]] населения Ливана на 2020 год]]
Основную часть населения Ливана составляют [[ливанцы]], при этом они разделены на несколько [[Конфессия|этноконфессиональных]] групп, что имеет определяющее значение в жизни страны. В стране также большое количество [[Палестинские беженцы#Положение беженцев в Ливане|беженцев из Палестины]] и их потомков. Государственный язык — [[Ливанский диалект арабского языка|ливанский диалект]] [[Арабский язык|арабского]].
Кроме того, в стране годами проживают тысячи иностранных рабочих (из [[Индия|Индии]], [[Бангладеш]], [[Филиппины|Филиппин]], [[Эфиопия|Эфиопии]] и др.), выполняющие в стране различную неквалифицированную работу.
=== Религия ===
{{main|Религия в Ливане|Конфессиональность в Ливане|Ислам в Ливане}}
{{нет ссылок в разделе|дата=2016-02-26}}
[[Файл:Lebanon Religious groups RUS.jpg|мини|250px|Географическое распределение основных этноконфессиональных групп Ливана]]
Около 60 % населения Ливана исповедует [[ислам]] ([[сунниты]], [[шииты]], [[алавиты]]). В Ливане живут также [[друзы]], имеющие собственные верования<ref>{{bulleted list|
|{{cite web |last=Abulafia |first=Anna Sapir |author-link=Anna Abulafia |date=2019-09-23 |url=https://www.bl.uk/sacred-texts/articles/the-abrahamic-religions |title=The Abrahamic religions |website=www.bl.uk |publisher=[[British Library]] |location=London |access-date=2021-03-09 |url-status=live |archive-url=https://web.archive.org/web/20200712150432/https://www.bl.uk/sacred-texts/articles/the-abrahamic-religions |archive-date=2020-07-12}}
|{{cite book |last=Obeid |first=Anis |title=The Druze & Their Faith in Tawhid |url=https://books.google.com/books?id=FejqBQAAQBAJ&pg=PT1 |year=2006 |publisher=[[Syracuse University Press]] |isbn=978-0-8156-5257-1 |page=1}}
|{{harvnb|Dana|2010|p=314}}
}}</ref><ref name="Adams Media">{{cite book |last1=Morrison |first1=Terri |url=https://archive.org/details/kissboworshakeha00morr_568 |title=Kiss, Bow, Or Shake Hands: The Bestselling Guide to Doing Business in More Than 60 Countries |last2=Conaway |first2=Wayne A. |date=2006 |publisher=[[Adams Media]] |isbn=978-1-59337-368-9 |edition=illustrated |page=[https://archive.org/details/kissboworshakeha00morr_568/page/n274 259] |url-access=limited}}<!--|access-date=6 January 2015--></ref>.
Численность христиан разных конфессий в Ливане достигает 40 % (по оценкам экспертов 40,5 %) населения. На территории Ливана существуют, в частности, [[Антиохийский патриархат|православные (греко-православные)]], [[Армянская апостольская церковь]], [[Сиро-яковитская православная церковь]], шесть [[восточнокатолические церкви|восточнокатолических церквей]] — [[Маронитская католическая церковь|маронитская]] (западносирийская), [[Халдейская католическая церковь|халдейско-католическая]], [[Мелькитская католическая церковь|мелькитская (грекокатолическая)]], [[Армянская католическая церковь|армянокатолическая]], [[Сирийская католическая церковь|сирокатолическая]] и [[Коптская католическая церковь|коптокатолическая]].
=== Города ===
{{Основная статья|Города Ливана}}
== Экономика ==
{{главная|Экономика Ливана}}
{{См. также|Виноделие в Ливане}}
== Культура ==
{{main|{{нп3|Культура Ливана|Культура Ливана|en|Culture of Lebanon}}}}
[[Файл:USJ Campus.jpg|thumb|left|Здание ливанского Университета [[Иосиф Обручник|Иосифа Обручника]]]]
[[Файл:Fairuz playing the guitar.jpg|мини|Знаменитая ливанская певица [[Файруз]]|альт=]]
В Бейруте 4 университета, государственный [[симфонический оркестр]], проводятся множество музыкальных фестивалей — самые известные Бейтеддинский и Баальбекский, на которых выступали Паваротти, Каррерас и другие мировые знаменитости.
== Спорт ==
Ливан является родиной многих всемирно известных спортсменов. В Ливане родились будущие [[Культуризм|культуристы]] Самир Баннут (победитель турнира «[[Мистер Олимпия]]») и [[Мохаммед Баннут]], Ахмад Хайдар (абсолютный чемпион мира 1997 года).
Страна регулярно принимает участие в [[Азиатские игры|Азиатских]] и [[Олимпийские игры|Олимпийских играх]], как в летних, так и в зимних. Четырежды ливанские спортсмены становились призёрами Олимпийских игр: «серебро» завоевали борец Закария Чигаб ([[Летние Олимпийские игры 1952|Хельсинки-1952]]) и тяжелоатлет Мохамед Торабулси ([[Летние Олимпийские игры 1972|Мюнхен-1972]]), «бронзу» — борцы Халил Таха ([[Летние Олимпийские игры 1952|Хельсинки-1952]]) и Хасан Бехара ([[Летние Олимпийские игры 1980|Москва-1980]]). Участие в Азиатских играх принесло спортсменам из Ливана большие успехи — пять раз они поднимались на высшую ступень пьедестала почёта. Одна из золотых медалей была завоёвана на [[Зимние Азиатские игры|Зимних Азиатских играх]]. Этого успеха добился горнолыжник Ники Фюрстбауэр на [[Зимние Азиатские игры 2003|Зимней Азиаде-2003]].
Одним из ключевых организаторов ливанского спортивного движения в [[XX век]]е был [[Жмайель, Габриэль|Габриэль Жмайель]] — основатель и первый президент [[Олимпийский комитет Ливана|Олимпийского комитета Ливана]], член [[Международный олимпийский комитет|Международного олимпийского комитета]], а также директор [[Средиземноморские игры 1959|Средиземноморских игр]] и [[Арабские игры|Панарабских игр]], проходивших в [[Бейрут]]е в разное время<ref>70yearsMG — Gabriel Gemayel. https://www.70yearsmg.com/founders/gabriel-gemayel/. Дата обращения: 12 июля 2025.</ref>.
== Внешняя политика ==
{{Main|Внешняя политика Ливана}}
Внешняя политика Ливана до 2005 года была тесно связана с политикой Сирии в связи с наличием сирийских войск в стране и поддержкой сирийского вмешательства в ливанскую политику со стороны Хезболлы.
С 1948 года Ливан находятся в состоянии войны с Израилем. Поскольку граница Ливана и Израиля фактически контролируется «Хезболлой», там регулярно происходят вооруженные инциденты. Север Израиля систематически подвергается [[Обстрелы Израиля из Ливана|обстрелам]]. В свою очередь Израиль наносит авиаудары по объектам «Хезболлы».
После [[Падение режима Асада|падения режима Асада]] в Сирии и прихода к власти протурецкой суннитской группировки [[Хайят Тахрир аш-Шам]] на ливано-сирийской границе с 17 марта 2025 года на сирийско-ливанской границе произошли вооружённые столкновения между войсками нового правительства Сирии и боевиками «Хезболлы»<ref>{{Cite web |url=https://www.newsru.co.il/mideast/17mar2025/syria_lebanon_106.html |title=На границе Сирии и Ливана продолжаются бои между «Хизбаллой» и боевиками аль-Джулани |lang=ru |date=2025-03-18 |publisher=[[Newsru.co.il]] |access-date=2025-03-18 |url-status=live |archive-date=2025-03-17 |archive-url=https://web.archive.org/web/20250317085354/https://www.newsru.co.il/mideast/17mar2025/syria_lebanon_106.html }}</ref>
== Вооружённые силы ==
{{main|Вооружённые силы Ливана}}
Во время [[Гражданская война в Ливане|гражданской войны]] государственные вооружённые силы фактически распались, а все противоборствующие группировки имели свои вооружённые формирования. Впоследствии правительственные силы были восстановлены, и в 1990-х годах смогли взять под контроль всю территорию страны; большинство ополчений были разоружены. По соглашению в воссозданную армию вошли 20 тысяч ополченцев, в частности 8 тыс. бойцов [[Ливанские силы|Ливанских сил]], 6 тыс. бойцов «[[Амаль]]», 3 тыс. членов [[Друзы|друзских]] ополчений, 2 тыс. членов «[[Хезболла|Хезболлы]]» и тысяча членов христианских отрядов «[[Марада]]».
В 1996 году Вооружённые силы составляли 48,9 тыс. человек ([[Сухопутные войска Ливана|Сухопутные войска]] — 97,1 %, [[Военно-морские силы Ливана|Военно-морской флот]] — 1,2 %, [[Военно-воздушные силы Ливана|ВВС]] — 1,7 %).
До 2000 года на юге страны существовала союзная [[Израиль|Израилю]] «[[Армия Южного Ливана]]», прекратившая своё существование после вывода израильских войск из страны. Вооружённые формирования на юге страны остались у «Хезболлы», которая на 2025 год фактически контролирует юг Ливана.
В Ливане постоянно находятся 5600 солдат [[ЮНИФИЛ]], отвечающие за поддержание мира в стране. Часть [[Сирия|сирийского]] военного контингента, составлявшего в конце 90-х 35,5 тыс. человек, была выведена в 2001 году.
== См. также ==
{{wikiatlas|Lebanon}}
{{Дерево статей|Ливан}}
<ref>[https://www.vedomosti.ru/politics/news/2026/04/21/1191787-gumanitarnuyu-pomosch Ливана]</ref>
<ref>[https://www.vedomosti.ru/politics/news/2026/05/21/1199090-minzdrav-livana Минздрав Ливана заявил о гибели более 3000 человек из-за атак Израиля]</ref>
== Примечания ==
{{Примечания|2}}
== Литература ==
* {{Книга:Густерин П.В.: Города Арабского Востока|2007}}
* {{книга|автор=John C. Rolland|заглавие=Lebanon: Current Issues and Background |оригинал= |ссылка=https://books.google.co.il/books?id=-JVOKeNkllgC|издательство=Nova Publishers|год= 2003 |allpages=235 |isbn=1590338715 |isbn2=9781590338711}}
* {{книга|автор=Павлов Н. В.|заглавие=Ботаническая география зарубежных стран, ч. 1, 2|место=М.|издательство=«Высшая школа»|год=1965|страницы=7—9|страниц=310|ref=Павлов}}
* {{книга |автор=[[Поспелов, Евгений Михайлович|Поспелов Е. М.]]|заглавие=[[Географические названия мира. Топонимический словарь]]|издание=2-е изд., стереотип|ответственный=отв. ред. Р. А. Агеева |ссылка= |место=М.|издательство=Русские словари, Астрель, АСТ|год=2002 |страниц=512|страницы=|isbn=5-17-001389-2 |тираж=3000 |ref=Поспелов}}
* {{cite book|ref=Dana|last=Dana|first=Léo-Paul|title=Entrepreneurship and Religion|год=2010|publisher=[[Edward Elgar Publishing]]|isbn=978-1-84980-632-9}}
== Ссылки ==
{{Навигация
|Портал = Ливан
|Викисловарь = Ливан
|Викитека = Категория:Ливан
|Тема = Ливан
}}
* [http://www.livan.info/ Русские в Ливане]
* [https://web.archive.org/web/20131110161130/http://vlivan.ru/putevoditel_po_livanu/ Электронный путеводитель по Ливану]
* [http://annamap.ru/livan/ Новая карта Ливана]
* [http://mirputeshestvii.ru/read/reports/puteshestvie_v_livan_bejrut-2275/ Путешествие по Ливану]. Рассказ и фотографии.
{{dmoz|World/Russian/Страны_и_регионы/Ближний_Восток/Ливан/}}
* [https://web.archive.org/web/20090713225015/http://www.vokrugsveta.ru/tv/vs/cast/715/ Статья в журнале «Вокруг света»]
* [https://web.archive.org/web/20110713063803/http://www.isramir.com/content/view/4399/169/ Хронология политических и военных событий в Ливане (1920—2004)] // Дов Конторер, 21.06.2006
{{Внешние ссылки}}
{{Ливан в темах}}
{{Азия}}
{{Лига арабских государств}}
{{Agadir}}
{{Союз для Средиземноморья}}
{{ОИК}}
{{Заморская экспансия Франции}}
{{Франкоязычные страны}}
{{Бывшие мандатные территории}}
[[Категория:Ливан| ]]
[[Категория:Унитарные республики]]
[[Категория:Государства — члены ООН]]
[[Категория:Государства и территории, основанные в 1943 году]]
[[Категория:Страны у Средиземного моря]]
pwl92veqk5h1etg479r3qrxtyzsnit7
744023
744022
2026-05-24T10:18:27Z
Teriazar
73808
744023
wikitext
text/x-wiki
{{Пользовательская страница}}
{{значения}}
{{Не путать|Ливия|Ливией|государством в Африке}}
{{Государство
| Русское название = Ливанская Республика
| Оригинальное название = {{lang-ar|الجمهورية اللبنانية}}<br>{{lang-fr|République Libanaise}}
| Родительный падеж = Ливана
| Флаг = Flag of Lebanon.svg
| Герб = Coat of Arms of Lebanon.svg
| Девиз =
| Перевод названия гимна = Национальный ливанский гимн
| Аудио = Lebanese_national_anthem.ogg
| Название гимна = النشيد الوطني اللبناني
| Форма правления = [[Конфессионализм (политика)|конфессиональная]] [[парламентская республика]]<ref name="atlas">{{книга|заглавие=Атлас мира: Максимально подробная информация|ответственный=Руководители проекта: А. Н. Бушнев, А. П. Притворов|место=Москва|издательство=АСТ|год=2017|страницы=46|страниц=96|isbn=978-5-17-10261-4}}</ref>
| lat_dir = N
| lat_deg = 33
| lat_min = 54
| lat_sec = 0
| lon_dir = E
| lon_deg = 35
| lon_min = 51
| lon_sec = 0
| region = LB
| CoordScale = 1000000
| На карте = Lebanon_(orthographic_projection).svg
| Подпись к карте = Ливан на карте мира
| Языки = [[Арабский язык|арабский]]
| Дата независимости = [[22 ноября]] [[1943 год]]а
| Независимость от = [[Франция|Франции]]
| Столица = [[Бейрут]]
| Крупнейшие города = Бейрут, [[Триполи (Ливан)|Триполи]], [[Сайда (город)|Сайда]], [[Баабда]], [[Эн-Набатия (город)|Эн-Набатия]], [[Захла]]
| Должность руководителя 1 = [[Список президентов Ливана|Президент]]
| Руководитель 1 = [[Аун, Жозеф|Жозеф Аун]]
| Должность руководителя 2 = [[Список премьер-министров Ливана|Премьер-министр]]
| Руководитель 2 = [[Салам, Наваф|Наваф Салам]]
| Должность руководителя 3 = Председатель [[Палата представителей Ливана|Палаты представителей]]
| Руководитель 3 = [[Берри, Набих|Набих Берри]]
| Государственная религия = [[светское государство]]
| Место по территории = 161
| Территория = 10452
| Процент воды = 1,6
| Место по населению = {{рост}}122 <ref>[https://population-hub.com/ru/list-of-countries-by-population.html Список стран по населению на 2020 год] {{Wayback|url=https://population-hub.com/ru/list-of-countries-by-population.html |date=20200728142814 }} По данным Population HUB</ref>
| Население = {{рост}}{{число|5364482}}<ref name="автоссылка1">{{CIA World Factbook|article=Lebanon|access-date=23-09-2024}}</ref>
| Год оценки = 2024
| Год переписи =
| Этнохороним = лива́нец, лива́нка, [[ливанцы]]
| Плотность населения = 523
| ВВП (ППС) = {{число|44443|млрд}}<ref name="dataimf">{{Cite web|lang=en|url=https://www.imf.org/en/Publications/WEO/weo-database/2020/October/weo-report?c=512,612,911,912,419,611,469,915,429,433,439,916,443,917,446,672,682,686,449,564,453,456,726,732,463,923,744,925,466,927,487,474,&s=NGDPD,PPPGDP,NGDPDPC,PPPPC,&sy=2018&ey=2025&ssm=0&scsm=1&scc=0&ssd=1&ssc=0&sic=0&sort=country&ds=,&br=1|title=Report for Selected Countries and Subjects|website=IMF|access-date=2020-11-26|archive-date=2020-11-16|archive-url=https://web.archive.org/web/20201116125632/https://www.imf.org/en/Publications/WEO/weo-database/2020/October/weo-report?c=512,612,911,912,419,611,469,915,429,433,439,916,443,917,446,672,682,686,449,564,453,456,726,732,463,923,744,925,466,927,487,474,&s=NGDPD,PPPGDP,NGDPDPC,PPPPC,&sy=2018&ey=2025&ssm=0&scsm=1&scc=0&ssd=1&ssc=0&sic=0&sort=country&ds=,&br=1|url-status=live}}</ref>
| Год расчёта ВВП (ППС) = 2022
| Место по ВВП (ППС) = 89
| ВВП (ППС) на душу населения = {{s|9732}}<ref name="dataimf"/>
| Место по ВВП (ППС) на душу населения = 85
| ВВП (номинал) = 18,08 млрд<ref name="dataimf"/>
| Год расчёта ВВП (номинал) = 2022
| Место по ВВП (номинал) = 79
| ВВП (номинал) на душу населения = {{s|4577}}<ref name="dataimf"/>
| Место по ВВП (номинал) на душу населения = 74
| ИРЧП = {{Рост}} 0,744<ref>{{cite web |url=http://hdr.undp.org/sites/default/files/hdr2019.pdf |lang=en |title=Human Development Indices and Indicators 2019 |publisher=[[Программа развития ООН]] |description=Доклад о человеческом развитии на сайте Программы развития ООН |access-date=2020-01-02 |archive-date=2018-10-24 |archive-url=https://web.archive.org/web/20181024144212/http://hdr.undp.org/sites/default/files/2018_summary_human_development_statistical_update_en.pdf |url-status=live }}</ref>
| Год расчёта ИРЧП = 2022
| Место по ИРЧП = 93
| Уровень ИРЧП = <span style="color:#090;">высокий</span>
| Валюта = [[ливанский фунт]]<br>([[ISO 4217|LBP, 422]])
| Домен = [[.lb]]
| Телефонный код = 961
| Часовой пояс = [[Восточноевропейское время|EET]] ([[UTC+2:00|UTC+2]], [[Летнее время|летом]] [[Восточноевропейское летнее время|UTC+3]])
}}
'''Лива́н''' ({{lang-ar|لبنان}}, {{lang-fr|Liban}}), официальное название — '''Лива́нская Респу́блика''' ({{lang-ar|الجمهورية اللبنانية}}, {{lang-fr|République libanaise}}) — государство на [[Ближний Восток|Ближнем Востоке]], расположенное в гористой местности на восточном берегу [[Средиземное море|Средиземного моря]]. На востоке и севере граничит с [[Сирия|Сирией]], на юге — с [[Израиль|Израилем]].
Столица — [[Бейрут]]. Государственный язык — [[Арабский язык|арабский]] ([[Ливанский диалект арабского языка|ливанский диалект]]). Население Ливана — около 5,3 миллиона человек<ref name="автоссылка1" />. Республика выделяется чрезвычайным религиозным разнообразием.
В государстве действует особая [[политическая система]] — так называемый [[Конфессионализм (политика)|конфессионализм]], подразумевающий организацию государственной власти в соответствии с делением общества на религиозные общины.
До [[Гражданская война в Ливане|гражданской войны 1975—1990 годов]] Ливан был процветающим государством, финансовой и банковской столицей Ближнего Востока с преобладающей долей христианского населения (по переписи 1913 года доля христиан составляла 79,5 %, по переписи 1932 года — 49,9 % (58,5 %, включая эмиграцию)), за что получил неофициальное название «Ближневосточная [[Швейцария]]». Страна также пользуется популярностью среди туристов. После завершения войны началось восстановление экономики.
В Ливане находится один из древнейших городов — [[Баальбек]] со своим знаменитым [[Трилитон Баальбека|Трилитоном Баальбека]].
== Этимология ==
Название стране было присвоено по [[Ливан (хребет)|горному хребту Ливан]], который проходит по территории страны вдоль берега [[Средиземное море|Средиземного моря]]. Название хребта, в свою очередь, происходит от [[Прасемитский язык|древнесемитского]] ''laban'' («белый») — его сравнительно высокие вершины в зимнее время покрыты снегом{{sfn|Поспелов|2002|с=242}}.
== География ==
{{main|География Ливана}}
[[Файл:карта Ливана.png|thumb|right|315px|Карта Ливана]]
Ливан расположен на [[Ближний восток|Ближнем востоке]]. На западе омывается [[Средиземное море|Средиземным морем]], береговая линия 225 [[км]]. На севере и востоке граничит с [[Сирия|Сирией]], на юге — с [[Израиль|Израилем]]. Сирийско-ливанская граница имеет протяжённость 375 км, ливано-израильская — 79 км. Небольшой отрезок границы Ливана с [[Голанские высоты|Голанскими высотами]] ([[Фермы Шебаа]]), присоединёнными Израилем, является спорной территорией.
Общая площадь Ливана — 10452 {{км2}}. По размерам страна является [[Список стран, сортировка по площади|161-й в мире]]. Большая часть Ливана покрыта [[гора]]ми, кроме [[Долина Бекаа|долины Бекаа]] на северо-востоке и вытянутого с севера на юг узкого равнинного участка вдоль берега моря. Прибрежный Ливан отделяется от восточных регионов горными цепями [[Ливан (хребет)|Ливан]] и [[Антиливан]]. В Ливане имеются залежи [[известняк]]а, [[Железная руда|железной руды]], месторождения [[Соль|соли]]. Ливан богат водными ресурсами. Река [[Эль-Литани]] является основным источником воды для южных районов Ливана. Тем не менее, судоходных рек в стране нет.
[[Файл:Satellite image of Lebanon in March 2002.jpg|thumb|right|315px|Ливан из космоса]]
=== Климат ===
Для Ливана характерен [[средиземноморский климат|средиземноморский климат (по классификации Кёппена)]]. В прибрежных регионах зима, как правило, прохладная, а лето — влажное и жаркое. Зимой в горах температура опускается ниже 0 °C, возможно выпадение снега. Хотя среднегодовое количество осадков в Ливане гораздо больше, чем в соседних странах, на северо-востоке преобладает засушливый климат, так как горы блокируют поступление влажного воздуха с моря. Часто случаются песчаные и пылевые бури.
=== Флора ===
[[Файл:Cedar of Lebanon (Cedar of God), Lebanon.jpg|thumb|left|[[Ливанский кедр]] — национальное растение государства]]
[[Файл:Pilgrimage_to_the_Cedars_of_Libanon.jpg|left|thumb|«Паломничество у ливанского кедра» — полотно [[Венгрия|венгерского]] художника [[Чонтвари, Тивадар Костка|Чонтвари Тивадара Костки]]]]
Флора Ливана состоит примерно из 2200—2400 видов{{sfn|Павлов|1965}}. [[Эндемик|Эндемических]] [[Семейство|семейств]] в ней нет, количество эндемических [[Род (биология)|родов]] малочисленно, а эндемические [[Вид (биология)|виды]] связаны с молодым прогрессивным [[видообразование]]м в [[Полиморфизм (биология)|полиморфных]] родах. Во флоре Ливана господствует средиземноморский флористический элемент с незначительной примесью ирано-туранских видов.
[[Растительность]] Ливана (как главным образом горной страны) имеет поясный характер. Нижний пояс представлен на [[Известняк|известняковых породах]] типичным средиземноморским [[маквис]]ом. В нём господствует {{bt-ruslat|маслина европейская|Olea europaea}}. На севере, в районе [[Триполи (Ливан)|Триполи]], она поднимается до 600—800 м наибольшей высоты, а на востоке, по склонам [[Хермон]]а, достигает 700 м наибольшей высоты. Вместе с маслиной встречаются {{bt-ruslat|олеандр|Nerium oleander}}, вечнозелёные [[дуб]]ы — {{bt-ruslat|дуб лузитанский|Quercus lusitanica}}, {{bt-ruslat|дуб калепринский|Quercus calliprinos}}, {{bt-ruslat|дуб таворский|Quercus ithaburensis}}, [[кустарник]]и — {{bt-ruslat|волчеягодник маслиноподобный|Daphne oleoides}}, {{bt-ruslat|вишня распростёртая|Prunus prostrate}}, {{bt-ruslat|розмарин лекарственный|Rosmarinus officinalis}} и [[Травянистые растения|травы]] — {{bt-ruslat|Лаванда стэхадская|Lavandula stoechas}}, {{bt-ruslat||Dorycnium hirsutum}}, {{bt-ruslat|подладанник жёлтый|Cytinus hypocistis}}, {{bt-ruslat|володушка кустарниковая|Bupleurum fruticosum}}, {{bt-ruslat|глинус лядвенецевидный|Glynus lotoides}}, {{bt-ruslat|шаровница обезболивающая|Clobularia alupum}}, {{bt-ruslat||Pastinaca teretiuscula}}, {{bt-ruslat||Turgeniopsis foeniculaea}} и др.
Следующий — лесной — пояс Ливана, простирающийся с высот 600—800 м до 2300—2400 м абс. выс., хорошо выражен в центральной части страны, где преобладают [[песчаник]]и. Растительность песчаников сильно нарушена вырубками и выпасом скота. Наибольший вред приносят козы, являющиеся не столько травоядными, сколько древоядными животными. В древности на территории Ливана в огромном количестве произрастали леса [[Кедр ливанский|ливанского кедра]] (''Cedrus libani''), ставшего символом страны. Столетиями деревья вырубались без пересадки как основной материал в [[Судостроение|кораблестроении]], и это в конечном итоге привело к тому, что к [[XX век]]у на месте богатейших лесов остались лишь отдельные острова зелени — на высотах от 1300 до 2000 м — величайший из которых находится в долине Бшерры на высоте 1520 м.
В лесном поясе встречаются также {{bt-ruslat|платан восточный|Platanus orientalis}}, {{bt-ruslat|клён сирийский|Acer syriacum}}, {{bt-ruslat|ясень манновый|Fraxinus ornus}} и [[хвойные]] — {{bt-ruslat|сосна алеппская|Pinus halepensis}}, {{bt-ruslat|сосна калабрийская|Pinus brutia}}, {{bt-ruslat|кипарис вечнозелёный|Cupressus sempervirens}}<!-- (Cupressus sempervirens var. Horizontalis)-->, {{bt-ruslat|Пихта киликийская|Abies cilicica}}, [[Можжевельник|древовидные можжевельники]] на хребте [[Ливан (хребет)|Ливан]] — {{bt-ruslat|можжевельник колючий|Juniperus oxycedrus}} и {{bt-ruslat|можжевельник вонючий|Juniperus foetidissima}}, а на [[Хермон]]е — {{bt-ruslat|можжевельник высокий|Juniperus excelsa}}. Выше древовидные можжевельники сменяются на кустарниковый {{bt-ruslat|можжевельник косточковый|Juniperus drupacea}}. В лесах нередко встречаются [[Папоротниковидные|папоротники]], из которых наиболее примечательны {{bt-ruslat||Pteris arguta}} и {{bt-ruslat||Pteris longifolia}}, и заросли [[Иван-чай узколистный|иван-чая узколистного]] ({{bt|Chamerion angustifolium}}).
С высоты 2300—2400 м начинается наименее изученный пояс высокогорной [[Альпийская растительность|альпийской растительности]]. Здесь растут {{bt-ruslat|рододендрон понтийский|Rhododendron ponticum}}, селагинелла {{bt-ruslat||Selaginella denticulate}}, {{bt-ruslat|осока лесная|Carex sylvatica}} и другие бореальные и аркто-альпийские растения: {{bt-ruslat|камнеломка|Saxifraga}}, {{bt-ruslat|ветреница|Anemone}}, {{bt-ruslat|лютик|Ranunculus}}, {{bt-ruslat|Крупка (растение){{!}}крупка|Draba}}, {{bt-ruslat|горечавка|Gentiana}}.
В значительно более сухих горах [[Антиливан]]а растительность беднее, лиственные породы почти отсутствуют, а из хвойных встречаются только {{bt-ruslat|кедр ливанский|Cedrus libani}} и {{bt-ruslat|можжевельник косточковый|Juniperus drupacea}}. В нижнем поясе кое-где растут единично вечнозелёные [[дуб]]ы и {{bt-ruslat|фисташка палестинская|Pistacia palaesina}}, а иногда встречаются и пустынно-степные группировки подушковидного [[чероноголовник колючий|чероноголовника колючего]] ({{bt-ruslat||Poterium spinosum}}).
[[Культурные растения]] Ливана немногочисленны. Это главным образом [[пшеница]] и [[ячмень]], только на побережье Средиземного моря разводятся [[Цитрусовые культуры|цитрусовые]] и другие [[Плодовые культуры|плодовые породы]], [[Виноград культурный|виноград]], {{bt-ruslat|инжир|Ficus carica}} и [[Маслина|маслины]].
== История ==
{{main|История Ливана}}
=== Древний Ливан ===
Появление первых поселений на территории современного Ливана относится к [[6-е тысячелетие до н. э.|6-му тысячелетию до н. э.]] В окрестностях [[Библ]]а археологи обнаружили остатки доисторических хижин и примитивных орудий. Некоторые предметы быта указывают на существование здесь стоянок рыболовецких племён времён эпохи [[неолит]]а ещё в [[8-е тысячелетие до н. э.|8-м]]—[[7-е тысячелетие до н. э.|7-м тысячелетиях до н. э.]]
Ливан стал родиной [[Финикия|Финикии]], развитого морского торгового государства, растянувшегося вдоль берега [[Средиземное море|Средиземного моря]]. Финикийцы дали миру первый [[Финикийский алфавит|алфавит]]. Расцвет Финикии пришёлся на 1200—800 годы до н. э. В VI веке до н. э. Финикия попала под владычество [[Иран|персов]] во главе с [[Кир II Великий|Киром Великим]]. В 332 году до н. э. [[Александр Македонский]] совершил поход на Финикию, уничтожив её крупнейший город — [[Тир (город)|Тир]]. С распадом империи Македонского Ливан вошёл в состав [[Селевкиды|Царства Селевкидов]], а в конце I века до н. э. — [[Римская империя|Римской империи]].
=== Средневековый Ливан ===
[[Файл:DeirAlQamar-FakhredinePalace.jpg|thumb|Дворец XVII века|left]]
В период арабских завоеваний и становления [[Арабский Халифат|Халифата]] в Ливан проникает [[ислам]]. В XII веке Ливан стал частью Иерусалимского королевства [[Крестоносцы|крестоносцев]]. В 1261 году крестоносцы были изгнаны из Ливана [[Мамлюкский султанат|тюрками-мамлюками]], и Ливан находился в составе мамлюкского Египта до 1516 года. В 1517 году султан [[Селим I]] присоединил эту территорию к [[Османская империя|Османской империи]]. Эмиры [[Шехаб (династия)|династии Шехаб]] правили Ливаном с 1697 до 1842 года.
=== Французский мандат ===
{{См. также|Великий Ливан}}
[[Файл:Beirut-in-1919.webm|thumb|Бейрут в 1919 г.]]
Территория Ливана (в составе Большой Сирии) входила в состав Османской империи на протяжении более 400 лет. После поражения Турции в [[Первая мировая война|Первой мировой войне]] и распада Османской империи, территория Большой Сирии была оккупирована в 1918 году британскими войсками под командованием генерала Аленби. В 1918 г., по более раннему [[Соглашение Сайкса — Пико|соглашению Сайкса-Пико]] между странами [[Антанта|Антанты]] от 1916 года, территория Сирии была передана [[Франция|Франции]] и управление ею было легализовано в виде [[Сирия#Французский мандат|Французского мандата]] от Лиги Наций. В 1926 году территория Ливана была отделена от Сирии, и Ливан стал отдельной территориальной единицей, управляемой, однако, той же администрацией Французского мандата Сирии.
=== Независимый Ливан ===
В 1940 году Франция была оккупирована [[Германия|Германией]]. Уже в [[Ноябрь|ноябре]] во французском мандате в Ливане прошли первые нелегитимные выборы и сформировано правительство.
В 1943 году Ливан уже официально приобрёл независимость. «[[Национальный пакт]]» установил правило, по которому [[президент]]ом страны должен быть [[Маронитская католическая церковь|христианин-маронит]], а [[премьер-министр]]ом — [[Ислам|мусульманин-суннит]] (спикером же парламента — мусульманин-шиит).
В 1948 году Ливан принял участие в первой [[Арабо-израильская война 1948 года|арабо-израильской войне]]. После поражения Арабской освободительной армии Ливан подписал с [[Израиль|Израилем]] соглашение о прекращении огня. 100 тысяч арабских беженцев перебрались из Палестины в Ливан.
С 1956 года в Ливане начали усиливаться противоречия между христианами и мусульманами, вылившиеся в мае 1958 года в [[Ливанский кризис 1958 года|гражданскую войну]]. Чтобы удержать власть в стране, президент [[Шамун, Камиль|Камиль Шамун]] обратился за военной помощью к США. Американские войска находились в стране с июля по октябрь до полной нормализации обстановки.
=== Гражданская война ===
{{main|Гражданская война в Ливане}}
[[Файл:Green Line, Beirut 1982.jpg|thumb|Бейрут в военное время]]
В 1975 году в Ливане разразилась вторая [[Гражданская война в Ливане|гражданская война]] между [[Правохристиане (Ливан)|правохристианскими]] силами и лево-мусульманскими милициями, которых поддержали находившиеся в Ливане палестинские боевики. Война продолжалась 15 лет, разрушив некогда процветающую экономику страны, и унесла жизни более 150 тысяч жителей. Кровопролитие прекратилось в 1990 году подписанием Таифских соглашений.
В 1976 году по просьбе тогдашнего правительства в Ливан вошли сирийские войска. {{не переведено 3|Сирийское присутствие в Ливане|Сирийское присутствие||Syrian occupation of Lebanon}} продолжалось до 2005 года, несмотря на официальные требования президентов Ливана о выводе сирийских войск, начиная с 1983 года<ref name="CommitteeUSA">{{cite web|url=http://www.gpo.gov/fdsys/pkg/CHRG-106shrg67981/pdf/CHRG-106shrg67981.pdf|title=Hearing before the Subcommittee on Near Eastern and South Asian Affairs of of the Committee on Foreign Relations United States Senate|date=2000-06-14|publisher=Committee on Foreign Relations|lang=en|access-date=2012-07-03|archive-url=https://www.webcitation.org/69f2GcUF3?url=http://www.gpo.gov/fdsys/pkg/CHRG-106shrg67981/pdf/CHRG-106shrg67981.pdf|archive-date=2012-08-04|url-status=live}}</ref><ref name="Youssef">Shiar Youssef [http://www.globalresearch.ca/index.php?context=va&aid=9340 What really happened in Beirut? July 3, 2012] {{Wayback|url=http://www.globalresearch.ca/index.php?context=va&aid=9340 |date=20120529093001 }}</ref>.
Дважды войска [[Армия обороны Израиля|армии обороны Израиля]] (ЦАХАЛ) были введены на территорию Ливана. Первый раз в марте 1978 года — после захвата двух автобусов с заложниками, когда погибло 36 и было ранено свыше 70 израильских граждан<ref name="Брасс_истоки">{{Cite web |url=http://rus.delfi.lv/news/entertainment/books/article.php?id=9150664 |title=Александр Брасс. Палестинские истоки, Marcus, Polaris, 24 сентября 2004 |access-date=2015-09-15 |archive-date=2007-09-26 |archive-url=https://web.archive.org/web/20070926235526/http://rus.delfi.lv/news/entertainment/books/article.php?id=9150664 |url-status=live }}</ref>; второй в июне 1982 года — в ответ на покушение на израильского посла в Лондоне [[Аргов, Шломо|Шломо Аргова]]<ref>после покушения три месяца Ш. Аргов находился в [[Кома|коме]], остался парализованным, и до дня своей смерти в 2003 году был госпитализирован в реабилитационном отделении больницы [[Больница Хадасса|Адасса Хар ха-Цофим]] в [[Иерусалим]]е</ref> были проведены массированные бомбардировки по позициям Организации освобождения Палестины в Ливане<ref>[[Эйтан, Рафаэль|Рафаэль Эйтан]]. Повесть солдата. / пер. с иврита — [[Баух, Ефрем Исаакович|Ефим (Ефрем) Баух]]. Израиль, изд-во «Яир», 1991. стр.336</ref><ref name="LibraryCongress">{{cite web|url=http://lcweb2.loc.gov/cgi-bin/query/r?frd/cstdy:@field%28DOCID+lb0161%29|title=Lebanon. The Two-Week War. Section 1 of 1; Data as of December 1987 Library of Congress Country Studies|publisher=Lcweb2.loc.gov|date=1982-06-03|access-date=2012-02-29|archive-url=https://www.webcitation.org/68MN7WD5k?url=http://lcweb2.loc.gov/cgi-bin/query/r?frd%2Fcstdy%3A%40field%28DOCID+lb0161%29|archive-date=2012-06-12|url-status=live}}</ref>. Тогда ООП подвергло массированному обстрелу территорию Израиля<ref name="LibraryCongress" /><ref name="brass2004">{{книга|автор=Александр Брасс|заглавие=Палестинские истоки // Терроризм - история и современность|ссылка=https://books.google.co.il/books?id=ChY2kq6KVMcC&pg=PA80 |издательство=Olma Media Group|год=2004|страниц=347 |страницы=80|isbn=5948496694, 9785948496696}}</ref><ref name="Eitan1992">{{книга|автор= [[Эйтан, Рафаэль|Raful Eitan]]|заглавие=A Soldier's Story: The Life and Times of an Israeli War Hero|ссылка=https://books.google.ru/books?id=3Iav7igW5CQC|издательство=SP Books|год=1992|pages=272|allpages=388|isbn=1561710946, 9781561710942}}</ref>, а силы ЦАХАЛа вошли на территорию южного Ливана. Силы ЦАХАЛа оставались в южном Ливане вплоть до 2000 года. После вывода войск между Израилем и Ливаном была проведена чёткая граница — так называемая «голубая линия», однако [[Мазария-Шабъа|фермы Шебаа]] к северу от [[Голанские высоты|Голанских высот]] так и остались спорной территорией.
=== Последующий период ===
В послевоенный период экономика Ливана бурно росла.
Недолгий период относительного спокойствия был прерван правительственным кризисом, спровоцированным убийством экс-премьера страны [[Харири, Рафик|Рафика Харири]], последовавшим выводом из страны [[Сирийские арабские вооружённые силы|сирийских войск]] и [[Вторая ливанская война|израильско-ливанским конфликтом]] в 2006 году.
В 2007 году ситуация в Ливане осложнилась [[Конфликт в Северном Ливане 2007 года|кризисом вокруг лагеря Нахр аль-Барид]].
В 2011 году в Ливане возник [[Конфликт в Ливане (2011—2017)|конфликт между крупнейшими парламентскими фракциями]]. А в 2015 году по стране прокатилась [[Беспорядки в Ливане (2015)|волна протестов]] из-за бездействия правительства и [[Президентские выборы в Ливане (2014—2016)|политического кризиса]], в ходе которого парламент до 2016 года не мог избрать президента.
9 марта 2020 года Ливан объявил первый в истории страны [[дефолт]] по [[облигация]]м на сумму 1,2 млрд долларов США<ref>{{Cite web|url=https://www.rbc.ru/economics/07/03/2020/5e63d3459a7947cc5cd55594|title=Ливан объявил дефолт по евробондам из-за «сожравшей страну коррупции»|publisher=РБК|lang=ru|access-date=2020-03-11|archive-date=2020-03-08|archive-url=https://web.archive.org/web/20200308125036/https://www.rbc.ru/economics/07/03/2020/5e63d3459a7947cc5cd55594|url-status=live}}</ref>. Общий внешний долг достиг 90 млрд долларов (более 150 % от ВВП)<ref>{{Cite web|url=https://espresso.economist.com/a596c69468e85ae53014c825e9079543|title=No more romance on the Levant: Lebanon’s debt crisis|date=2020-03-08|publisher=Economist Espresso|lang=en|access-date=2020-03-11|archive-date=2021-01-29|archive-url=https://web.archive.org/web/20210129184645/https://espresso.economist.com/a596c69468e85ae53014c825e9079543|url-status=live}}</ref>.
10 августа 2020 года правительство Ливана официально ушло в отставку в полном составе<ref>{{cite news|title=Правительство Ливана в полном составе ушло в отставку спустя неделю после взрыва в Бейруте|url=https://meduza.io/news/2020/08/10/pravitelstvo-livana-v-polnom-sostave-ushlo-v-otstavku-spustya-nedelyu-posle-vzryva-v-beyrute|access-date=2020-08-11|publisher=Медуза|date=2020-08-10|archive-date=2021-05-12|archive-url=https://web.archive.org/web/20210512071803/https://meduza.io/news/2020/08/10/pravitelstvo-livana-v-polnom-sostave-ushlo-v-otstavku-spustya-nedelyu-posle-vzryva-v-beyrute}}</ref>.
== Государственное устройство ==
{{main|Государственный строй Ливана}}
[[Файл:BeirutParliament.jpg|мини|Здание Палаты представителей в [[Бейрут]]е]]
Существующая более полувека «ливанская модель» (конфессионализм) государственного устройства была создана в 1943 году в процессе обретения Ливаном независимости от Франции. Для того, чтобы обеспечить более или менее равный доступ к верховной власти для всех религиозных [[Конфессия|конфессий]], был разработан следующий порядок: [[Президент Ливана|президентом]] страны должен быть [[Христианство|христианин]]-[[Марониты|маронит]], [[Премьер-министр Ливана|премьер-министром]] — [[Сунниты|мусульманин-суннит]], [[спикер]]ом парламента — [[Шииты|мусульманин-шиит]], а в правительстве должны быть поровну представлены [[Христианство|христиане]] и [[Ислам|мусульмане]]. Согласно конституции, Ливан является [[Парламентская республика|парламентской республикой]].
[[Законодательная власть]] представлена [[Палата представителей Ливана|Палатой представителей]] ({{lang-ar|مجلس النواب}}) — [[парламент]]ом Ливана, который состоит из 128 депутатов, избираемых прямым голосованием на четырёхлетний срок. В Палате заседают 64 [[мусульманин]]а (27 [[Сунниты|суннитов]], 27 [[Шииты|шиитов]], 8 [[Друзы|друзов]] и 2 [[Алавиты|алавита]]) и 64 [[христианин]]а (32 [[Маронитская католическая церковь|маронита]], 20 армян [[ААЦ]], 2 [[Армянская католическая церковь|армяно-католика]], 7 [[Православие|православных]], 1 греко-католик ([[Мелькитская греко-католическая церковь|мелькит]]), 1 [[Протестантизм|протестант]], а также ещё 1 по усмотрению). Парламент избирает президента, утверждает состав правительства, утверждает законы и [[бюджет]] республики.
Президент ([[Маронитская католическая церковь|маронит]]) избирается Палатой представителей на 6-летний срок, причём одно лицо не может дважды занимать этот пост. Дважды в истории это правило нарушалось: в 1995 году на 3 года был продлён срок пребывания у власти [[Ильяс Храуи|Ильяса Храуи]], а также в 2004 году президентские полномочия до 23 ноября 2007 года были продлены для [[Лахуд, Эмиль|Эмиля Лахуда]]. Президент по представлению парламента назначает [[премьер-министр]]а ([[Сунниты|суннита]]) и его первого заместителя. После консультаций с президентом и парламентом премьер-министр формирует [[кабинет министров]] также по принципу религиозного [[Квота|квотирования]].
В соответствии с [[Конфессия|конфессиональным]] делением в Ливане зарождались и [[Политическая партия|политические партии]], которые по большей части имеют [[Религия|религиозный]] характер. [[Христианство|Христианские]], [[Сунниты|суннитские]], [[Шииты|шиитские]], [[Друзы|друзские]] партии борются не друг против друга, а за места в пределах заранее определённых конфессиональных [[Квота|квот]]. В каждой из конфессий исторически сложилось несколько противостоящих друг другу политических сил. Например, среди ливанских христиан были как яростные противники сирийского военного присутствия в Ливане (например, генерал [[Аун, Мишель Наим|Мишель Аун]] или командующий объединённой христианской милицией «[[Ливанские Силы]]» [[Джааджаа, Самир|Самир Джааджаа]]), так и лояльные [[Сирия|Сирии]] политики, которым как раз и доставались президентские посты ([[Моавад, Рене|Рене Муаввад]], [[Храуи, Ильяс|Элиас Храуи]], [[Эмиль Лахуд]]).
Бывший премьер-министр [[Харири, Рафик|Рафик Харири]] был первым, кто бросил вызов этой системе. Он пришёл к власти, не опираясь на какую-либо из существующих религиозно-политических партий, а благодаря своему колоссальному состоянию. Оно же позволило ему осуществить восстановление разрушенной страны. Сирия поддерживала сохранение прежней системы конфессиональных квот, заявляя, что альтернативой ей может быть лишь новая [[гражданская война]].
Согласно [[Economist Intelligence Unit]] страна в 2018 была классифицирована по [[Индекс демократии (Economist)|индексу демократии]] как [[гибридный режим]]<ref name="euidata2018">{{cite web |url=https://pages.eiu.com/rs/753-RIQ-438/images/Democracy_Index_2018.pdf |title=Democracy Index 2018: Me too? Political participation, protest and democracy |website=The Economist Intelligence Unit (The EIU) |access-date=2019-01-25 |archive-date=2019-01-10 |archive-url=https://web.archive.org/web/20190110013730/http://pages.eiu.com/rs/753-RIQ-438/images/Democracy_Index_2018.pdf |url-status=live }}</ref>.
=== Политические силы Ливана ===
Особенностью ливанской политики является деление всех политических сил на сторонников и противников сирийского влияния в стране{{Нет АИ|18|07|2017}}. В настоящее время первые объединены в [[Коалиция 8 марта|Коалицию 8 марта]], имеющую 68 из 128 мест в парламенте, а вторые — в [[Коалиция 14 марта|Коалицию 14 марта]] (60 мест в парламенте). В каждой этноконфессиональный группе Ливана есть партии, выступающие как с просирийских, так и с антисирийских позиций.
Основные партии христианской общины — [[Свободное патриотическое движение]] (СПД), [[Катаиб|Катаиб (Ливанская фаланга)]], [[Ливанские силы]], [[Национал-либеральная партия (Ливан)|Национал-либеральная партия]] (НЛП), [[Марада]]. Просирийские позиции занимают СПД и
«Марада», антисирийские — фалангисты, «Ливанские силы», национал-либералы. За консолидацию христианских политических сил выступает движение [[Фронт свободы (Ливан)|Фронт свободы]].
Крупнейшая партия мусульман-суннитов — антисирийское [[Движение за будущее]]. В шиитской общине доминируют [[Амаль]] и проиранская [[Хезболла]].
Особое место занимает [[друзы|друзская]] [[Прогрессивно-социалистическая партия Ливана|Прогрессивно-социалистическая партия]] (чей лидер [[Валид Джумблат]] известен своей беспринципностью). Она постоянно меняет свою позицию в зависимости от того, какая политическая и/или военная сила преобладает в Ливане, стоя на защите интересов [[друзы|общины друзов]].
Партийные списки построены по конфессиональному признаку, а внутри партийных списков места распределяются по клановому принципу. В то же время, конфессионально-клановое деление Ливана имеет географическое отражение: приверженцы одного клана, как правило, компактно населяют определённый район и традиционно выдвигают одного и того же представителя.
=== Результаты парламентских выборов 2005 по округам ===
# Бейрут (19 депутатов). Все 19 мест достались партии «Аль-Мустакбаль». «Свободное патриотическое движение» генерала Мишеля Ауна и армянская партия [[Дашнакцутюн]] не получили ни одного места. Ещё до выборов Мишель Аун призвал жителей Бейрута бойкотировать выборы, поскольку их результаты, по его мнению, были предопределены. Не участвовать в выборах призвали и лидеры армянской партии [[Дашнакцутюн]]. В результате самая низкая явка избирателей отмечена именно в христианских районах Бейрута.
# Южный Ливан. Большинство получил альянс «Амаль» — «[[Хезболла]]».
# Горный Ливан и долина Бекаа — большинство получил [[Аун, Мишель|Мишель Аун]].
# Северный Ливан — все 28 мандатов получил блок Саада Харири.
=== Результаты парламентских выборов 2009 по округам ===
{{main|Парламентские выборы в Ливане (2009)}}
== Административное деление ==
{{Lebanon Labelled Map|image=Lebanon districts 2020.png|float=right}}
{{main|Административное деление Ливана}}
Ливан делится на 9 мухафаз или провинций (''мухафаза'', {{lang-ar|محافظة}}), которые, в свою очередь, делятся на 25 районов (''када'', {{lang-ar|قضاء}}). Районы делятся на округа.
# [[Бейрут (мухафаза)|Бейрут]]
# [[Горный Ливан]]
# [[Кесруан-Джубейль]]
# [[Северный Ливан]]
# [[Бекаа (мухафаза)|Бекаа]]
# [[Набатия (мухафаза)|Набатия]]
# [[Аккар (мухафаза)|Аккар]]
# [[Баальбек-Хермель|Баальбек—Хермель]]
# [[Южный Ливан]]
== Население ==
{{нет ссылок в разделе|дата=2017-05-30}}
{{main|Население Ливана|Города Ливана}}
[[Файл:Lebanon_single_age_population_pyramid_2020.png|thumb|250px|[[Возрастно-половая пирамида]] населения Ливана на 2020 год]]
Основную часть населения Ливана составляют [[ливанцы]], при этом они разделены на несколько [[Конфессия|этноконфессиональных]] групп, что имеет определяющее значение в жизни страны. В стране также большое количество [[Палестинские беженцы#Положение беженцев в Ливане|беженцев из Палестины]] и их потомков. Государственный язык — [[Ливанский диалект арабского языка|ливанский диалект]] [[Арабский язык|арабского]].
Кроме того, в стране годами проживают тысячи иностранных рабочих (из [[Индия|Индии]], [[Бангладеш]], [[Филиппины|Филиппин]], [[Эфиопия|Эфиопии]] и др.), выполняющие в стране различную неквалифицированную работу.
=== Религия ===
{{main|Религия в Ливане|Конфессиональность в Ливане|Ислам в Ливане}}
{{нет ссылок в разделе|дата=2016-02-26}}
[[Файл:Lebanon Religious groups RUS.jpg|мини|250px|Географическое распределение основных этноконфессиональных групп Ливана]]
Около 60 % населения Ливана исповедует [[ислам]] ([[сунниты]], [[шииты]], [[алавиты]]). В Ливане живут также [[друзы]], имеющие собственные верования<ref>{{bulleted list|
|{{cite web |last=Abulafia |first=Anna Sapir |author-link=Anna Abulafia |date=2019-09-23 |url=https://www.bl.uk/sacred-texts/articles/the-abrahamic-religions |title=The Abrahamic religions |website=www.bl.uk |publisher=[[British Library]] |location=London |access-date=2021-03-09 |url-status=live |archive-url=https://web.archive.org/web/20200712150432/https://www.bl.uk/sacred-texts/articles/the-abrahamic-religions |archive-date=2020-07-12}}
|{{cite book |last=Obeid |first=Anis |title=The Druze & Their Faith in Tawhid |url=https://books.google.com/books?id=FejqBQAAQBAJ&pg=PT1 |year=2006 |publisher=[[Syracuse University Press]] |isbn=978-0-8156-5257-1 |page=1}}
|{{harvnb|Dana|2010|p=314}}
}}</ref><ref name="Adams Media">{{cite book |last1=Morrison |first1=Terri |url=https://archive.org/details/kissboworshakeha00morr_568 |title=Kiss, Bow, Or Shake Hands: The Bestselling Guide to Doing Business in More Than 60 Countries |last2=Conaway |first2=Wayne A. |date=2006 |publisher=[[Adams Media]] |isbn=978-1-59337-368-9 |edition=illustrated |page=[https://archive.org/details/kissboworshakeha00morr_568/page/n274 259] |url-access=limited}}<!--|access-date=6 January 2015--></ref>.
Численность христиан разных конфессий в Ливане достигает 40 % (по оценкам экспертов 40,5 %) населения. На территории Ливана существуют, в частности, [[Антиохийский патриархат|православные (греко-православные)]], [[Армянская апостольская церковь]], [[Сиро-яковитская православная церковь]], шесть [[восточнокатолические церкви|восточнокатолических церквей]] — [[Маронитская католическая церковь|маронитская]] (западносирийская), [[Халдейская католическая церковь|халдейско-католическая]], [[Мелькитская католическая церковь|мелькитская (грекокатолическая)]], [[Армянская католическая церковь|армянокатолическая]], [[Сирийская католическая церковь|сирокатолическая]] и [[Коптская католическая церковь|коптокатолическая]].
=== Города ===
{{Основная статья|Города Ливана}}
== Экономика ==
{{главная|Экономика Ливана}}
{{См. также|Виноделие в Ливане}}
== Культура ==
{{main|{{нп3|Культура Ливана|Культура Ливана|en|Culture of Lebanon}}}}
[[Файл:USJ Campus.jpg|thumb|left|Здание ливанского Университета [[Иосиф Обручник|Иосифа Обручника]]]]
[[Файл:Fairuz playing the guitar.jpg|мини|Знаменитая ливанская певица [[Файруз]]|альт=]]
В Бейруте 4 университета, государственный [[симфонический оркестр]], проводятся множество музыкальных фестивалей — самые известные Бейтеддинский и Баальбекский, на которых выступали Паваротти, Каррерас и другие мировые знаменитости.
== Спорт ==
Ливан является родиной многих всемирно известных спортсменов. В Ливане родились будущие [[Культуризм|культуристы]] Самир Баннут (победитель турнира «[[Мистер Олимпия]]») и [[Мохаммед Баннут]], Ахмад Хайдар (абсолютный чемпион мира 1997 года).
Страна регулярно принимает участие в [[Азиатские игры|Азиатских]] и [[Олимпийские игры|Олимпийских играх]], как в летних, так и в зимних. Четырежды ливанские спортсмены становились призёрами Олимпийских игр: «серебро» завоевали борец Закария Чигаб ([[Летние Олимпийские игры 1952|Хельсинки-1952]]) и тяжелоатлет Мохамед Торабулси ([[Летние Олимпийские игры 1972|Мюнхен-1972]]), «бронзу» — борцы Халил Таха ([[Летние Олимпийские игры 1952|Хельсинки-1952]]) и Хасан Бехара ([[Летние Олимпийские игры 1980|Москва-1980]]). Участие в Азиатских играх принесло спортсменам из Ливана большие успехи — пять раз они поднимались на высшую ступень пьедестала почёта. Одна из золотых медалей была завоёвана на [[Зимние Азиатские игры|Зимних Азиатских играх]]. Этого успеха добился горнолыжник Ники Фюрстбауэр на [[Зимние Азиатские игры 2003|Зимней Азиаде-2003]].
Одним из ключевых организаторов ливанского спортивного движения в [[XX век]]е был [[Жмайель, Габриэль|Габриэль Жмайель]] — основатель и первый президент [[Олимпийский комитет Ливана|Олимпийского комитета Ливана]], член [[Международный олимпийский комитет|Международного олимпийского комитета]], а также директор [[Средиземноморские игры 1959|Средиземноморских игр]] и [[Арабские игры|Панарабских игр]], проходивших в [[Бейрут]]е в разное время<ref>70yearsMG — Gabriel Gemayel. https://www.70yearsmg.com/founders/gabriel-gemayel/. Дата обращения: 12 июля 2025.</ref>.
== Внешняя политика ==
{{Main|Внешняя политика Ливана}}
Внешняя политика Ливана до 2005 года была тесно связана с политикой Сирии в связи с наличием сирийских войск в стране и поддержкой сирийского вмешательства в ливанскую политику со стороны Хезболлы.
С 1948 года Ливан находятся в состоянии войны с Израилем. Поскольку граница Ливана и Израиля фактически контролируется «Хезболлой», там регулярно происходят вооруженные инциденты. Север Израиля систематически подвергается [[Обстрелы Израиля из Ливана|обстрелам]]. В свою очередь Израиль наносит авиаудары по объектам «Хезболлы».
После [[Падение режима Асада|падения режима Асада]] в Сирии и прихода к власти протурецкой суннитской группировки [[Хайят Тахрир аш-Шам]] на ливано-сирийской границе с 17 марта 2025 года на сирийско-ливанской границе произошли вооружённые столкновения между войсками нового правительства Сирии и боевиками «Хезболлы»<ref>{{Cite web |url=https://www.newsru.co.il/mideast/17mar2025/syria_lebanon_106.html |title=На границе Сирии и Ливана продолжаются бои между «Хизбаллой» и боевиками аль-Джулани |lang=ru |date=2025-03-18 |publisher=[[Newsru.co.il]] |access-date=2025-03-18 |url-status=live |archive-date=2025-03-17 |archive-url=https://web.archive.org/web/20250317085354/https://www.newsru.co.il/mideast/17mar2025/syria_lebanon_106.html }}</ref>
== Вооружённые силы ==
{{main|Вооружённые силы Ливана}}
Во время [[Гражданская война в Ливане|гражданской войны]] государственные вооружённые силы фактически распались, а все противоборствующие группировки имели свои вооружённые формирования. Впоследствии правительственные силы были восстановлены, и в 1990-х годах смогли взять под контроль всю территорию страны; большинство ополчений были разоружены. По соглашению в воссозданную армию вошли 20 тысяч ополченцев, в частности 8 тыс. бойцов [[Ливанские силы|Ливанских сил]], 6 тыс. бойцов «[[Амаль]]», 3 тыс. членов [[Друзы|друзских]] ополчений, 2 тыс. членов «[[Хезболла|Хезболлы]]» и тысяча членов христианских отрядов «[[Марада]]».
В 1996 году Вооружённые силы составляли 48,9 тыс. человек ([[Сухопутные войска Ливана|Сухопутные войска]] — 97,1 %, [[Военно-морские силы Ливана|Военно-морской флот]] — 1,2 %, [[Военно-воздушные силы Ливана|ВВС]] — 1,7 %).
До 2000 года на юге страны существовала союзная [[Израиль|Израилю]] «[[Армия Южного Ливана]]», прекратившая своё существование после вывода израильских войск из страны. Вооружённые формирования на юге страны остались у «Хезболлы», которая на 2025 год фактически контролирует юг Ливана.
В Ливане постоянно находятся 5600 солдат [[ЮНИФИЛ]], отвечающие за поддержание мира в стране. Часть [[Сирия|сирийского]] военного контингента, составлявшего в конце 90-х 35,5 тыс. человек, была выведена в 2001 году.
== См. также ==
{{wikiatlas|Lebanon}}
{{Дерево статей|Ливан}}
<ref>[https://www.vedomosti.ru/politics/news/2026/05/21/1199090-minzdrav-livana Минздрав Ливана заявил о гибели более 3000 человек из-за атак Израиля]</ref>
== Примечания ==
{{Примечания|2}}
== Литература ==
* {{Книга:Густерин П.В.: Города Арабского Востока|2007}}
* {{книга|автор=John C. Rolland|заглавие=Lebanon: Current Issues and Background |оригинал= |ссылка=https://books.google.co.il/books?id=-JVOKeNkllgC|издательство=Nova Publishers|год= 2003 |allpages=235 |isbn=1590338715 |isbn2=9781590338711}}
* {{книга|автор=Павлов Н. В.|заглавие=Ботаническая география зарубежных стран, ч. 1, 2|место=М.|издательство=«Высшая школа»|год=1965|страницы=7—9|страниц=310|ref=Павлов}}
* {{книга |автор=[[Поспелов, Евгений Михайлович|Поспелов Е. М.]]|заглавие=[[Географические названия мира. Топонимический словарь]]|издание=2-е изд., стереотип|ответственный=отв. ред. Р. А. Агеева |ссылка= |место=М.|издательство=Русские словари, Астрель, АСТ|год=2002 |страниц=512|страницы=|isbn=5-17-001389-2 |тираж=3000 |ref=Поспелов}}
* {{cite book|ref=Dana|last=Dana|first=Léo-Paul|title=Entrepreneurship and Religion|год=2010|publisher=[[Edward Elgar Publishing]]|isbn=978-1-84980-632-9}}
== Ссылки ==
{{Навигация
|Портал = Ливан
|Викисловарь = Ливан
|Викитека = Категория:Ливан
|Тема = Ливан
}}
* [http://www.livan.info/ Русские в Ливане]
* [https://web.archive.org/web/20131110161130/http://vlivan.ru/putevoditel_po_livanu/ Электронный путеводитель по Ливану]
* [http://annamap.ru/livan/ Новая карта Ливана]
* [http://mirputeshestvii.ru/read/reports/puteshestvie_v_livan_bejrut-2275/ Путешествие по Ливану]. Рассказ и фотографии.
{{dmoz|World/Russian/Страны_и_регионы/Ближний_Восток/Ливан/}}
* [https://web.archive.org/web/20090713225015/http://www.vokrugsveta.ru/tv/vs/cast/715/ Статья в журнале «Вокруг света»]
* [https://web.archive.org/web/20110713063803/http://www.isramir.com/content/view/4399/169/ Хронология политических и военных событий в Ливане (1920—2004)] // Дов Конторер, 21.06.2006
{{Внешние ссылки}}
{{Ливан в темах}}
{{Азия}}
{{Лига арабских государств}}
{{Agadir}}
{{Союз для Средиземноморья}}
{{ОИК}}
{{Заморская экспансия Франции}}
{{Франкоязычные страны}}
{{Бывшие мандатные территории}}
[[Категория:Ливан| ]]
[[Категория:Унитарные республики]]
[[Категория:Государства — члены ООН]]
[[Категория:Государства и территории, основанные в 1943 году]]
[[Категория:Страны у Средиземного моря]]
qt1e85rub443pwsukjfnhwjtatl31gm
User:OUT is this/common.js
2
175239
743994
741664
2026-05-24T00:37:41Z
OUT is this
73801
743994
javascript
text/javascript
window.scriptManagerList = [
// [[:test:User:OUT_is_this/marker.js]]
{ name: 'マーカー', lang: 'test', title: 'User:OUT_is_this/marker.js' },
// [[:test:User:OUT_is_this/ArticleInfo_(Japanese)_.js]]
{ name: '記事情報を追加', lang: 'test', title: 'User:OUT_is_this/ArticleInfo_(Japanese)_.js' },
// [[:test:User:OUT is this/SimpleBookmark.js]]
{ name: 'OUT is this/SimpleBookmark.js', lang: 'test', title: 'User:OUT is this/SimpleBookmark.js' },
{ name: 'スクリプトサンドボックス', title: '利用者:Nanona15dobato/script/sandbox.js' },
{ name: 'フォント切り替え', lang: 'en', title: 'User:PerryPerson/WikiFonts.js' },
];
//テスト
//絞り込みおまかせ表示 [[利用者:OUT is this/advancedRandom.js]]
mw.loader.load( '/w/index.php?title=利用者:OUT is this/advancedRandom.js&action=raw&ctype=text/javascript' );
/* --- マネージャー本体の読み込み --- インポート元:[[利用者:OUT_is_this/ScriptManager.js]]*/
mw.loader.load( '//test.wikipedia.org/w/index.php?title=User:OUT_is_this/ScriptManager.js&action=raw&ctype=text/javascript' );
cjzrgmi53qdun4n70pcau00zqmed3t4
Template:Projekt-gutenberg.org
10
175601
743970
743668
2026-05-23T16:39:40Z
PerfektesChaos
18104
Setup
743970
wikitext
text/x-wiki
<onlyinclude><includeonly>{{#invoke:Vorlage:projekt-gutenberg.org|f |root= |lazy=1}}</includeonly></onlyinclude>
{{Dokumentation}}
eigpcy26p8br21jd9cay2rw1jjj9x9t
743971
743970
2026-05-23T16:45:00Z
PerfektesChaos
18104
Test
743971
wikitext
text/x-wiki
<onlyinclude><includeonly>{{#invoke:Vorlage:projekt-gutenberg.org|f |root= |lazy=1}}</includeonly></onlyinclude>
{{Dokumentation}}
{{projekt-gutenberg.org|a=joachim-ringelnatz}}
3tmsywr8n0zvestw72r2kgxgtl7a6c8
Template:Projekt-gutenberg.org/AexStr.json
10
175620
743968
743896
2026-05-23T16:21:58Z
PerfektesChaos
18104
2026-05-22
743968
json
application/json
{
"suite": "projekt-gutenberg.org",
"sub": "AexStr",
"serial": "2026-05-22",
"hash": {
"anonymus": "anonyme-oder-unbekannte-autoren",
"antholog": "anthologien",
"about": "edmond-about",
"abraham": "abraham-a-sancta-clara",
"achleitn": "arthur-achleitner",
"adlerrev": "paul-adler",
"adlersfe": "eufemia-von-adlersfeld-ballestrem",
"aischylo": "aischylos",
"alarcon": "pedro-antonio-de-alarcn",
"alcofora": "marianna-alcoforado",
"alexandr": "alexandra-von-bayern",
"alexis": "willibald-alexis",
"alkiphro": "alkiphron",
"altenbrg": "peter-altenberg",
"amicis": "edmondo-de-amicis",
"amyntor": "gerhard-von-amyntor",
"andersen": "hans-christian-andersen",
"antonius": "marcus-aurelius-antonius",
"anzengru": "ludwig-anzengruber",
"apel": "august-apel",
"appenzel": "johann-conrad-appenzeller",
"archenho": "johann-wilhelm-von-archenholz",
"arcybase": "michail-petrowitsch-arzybaschew",
"aretino": "pietro-aretino",
"argens": "jean-baptiste-de-boyer-marquis-dargens",
"ariosto": "ludovico-ariosto",
"aristoph": "aristophanes",
"aristote": "aristoteles",
"arndf": "friedrich-arnd",
"arndt": "ernst-moritz-arndt",
"arnim": "achim-von-arnim",
"arnimg": "gisela-von-arnim",
"ascher": "saul-ascher",
"asmus": "wilhelm-asmus",
"asmussen": "georg-asmussen",
"attar": "farid-ed-din-attar",
"atterbom": "per-daniel-amadeus-atterbom",
"audoux": "marguerite-audoux",
"auerbach": "berthold-auerbach",
"auernhei": "raoul-auernheimer",
"augusti": "auguste-plehn",
"augustin": "aurelius-augustinus",
"aurbache": "ludwig-aurbacher",
"avenariu": "ferdinand-avenarius",
"bacon": "francis-bacon",
"baggesen": "jens-baggesen",
"bahr": "hermann-bahr",
"bakunin": "michael-bakunin",
"ball": "hugo-ball",
"balmont": "konstantin-balmont",
"balzac": "honore-de-balzac",
"barlach": "ernst-barlach",
"bartels": "max-bartels",
"bartsch": "rudolf-hans-bartsch",
"basile": "giambattista-basile",
"baudelai": "charles-baudelaire",
"baum": "vicki-baum",
"baumbach": "rudolf-baumbach",
"beardsle": "aubrey-beardsley",
"beaumarc": "pierre-de-beaumarchais",
"bebel": "august-bebel",
"bechstei": "ludwig-bechstein",
"beckford": "john-beckford",
"becquer": "gustavo-adolfo-becquer",
"beecher": "harriett-beecher-stowe",
"beeker": "kaethe-van-beeker",
"beer": "richard-beer-hofmann",
"bely": "andrej-bely",
"benjamin": "walter-benjamin",
"benn": "gottfried-benn",
"bennett": "arnold-bennett",
"benrath": "henry-benrath",
"beradt": "martin-beradt",
"bergengr": "siegfried-bergengruen",
"berger": "alfred-freiherrn-von-berger",
"bergman": "hjalmar-bergman",
"bergmann": "hilda-bergmann",
"bergson": "henri-bergson",
"berlioz": "hector-berlioz",
"bern": "maximilian-bern",
"bernhard": "marie-bernhard",
"bernhatr": "tristan-bernard",
"bernoull": "carl-albrecht-bernoulli",
"berthold": "theodor-berthold",
"bethge": "hans-bethge",
"betsch": "roland-betsch",
"bettauer": "hugo-bettauer",
"bettelhe": "anton-bettelheim",
"beutler": "margarete-beutler",
"beyerln": "franz-adam-beyerlein",
"bierbaum": "otto-julius-bierbaum",
"bierce": "ambrose-gwinnett-bierce",
"bismarck": "otto-von-bismarck",
"blascoib": "vicente-blasco-ibanez",
"blass": "ernst-blass",
"blaumani": "rdolfs-blaumanis",
"bleibtre": "karl-bleibtreu",
"bleifran": "franz-blei",
"bleyfrit": "fritz-bley",
"bloem": "walter-bloem",
"blomberg": "hugo-freiherr-von-blomberg",
"blumauer": "aloys-blumauer",
"blumenha": "wilhelm-blumenhagen",
"blumenre": "paul-blumenreich",
"bode": "wilhelm-von-bode",
"boehme": "margarete-boehme",
"boehmh": "hans-boehm",
"boerne": "ludwig-boerne",
"boettger": "adolf-boettger",
"boettich": "georg-boetticher",
"boie": "margarete-boie",
"bois-rey": "emil-heinrich-du-bois-reymond",
"boisgobe": "fortune-de-boisgobey",
"bolanden": "joseph-eduard-konrad-bischoff",
"bonsels": "waldemar-bonsels",
"booysen": "jens-booysen",
"borchert": "wolfgang-borchert",
"bote": "hermann-bote",
"bourget": "paul-bourget",
"boutet": "frederic-boutet",
"boyesen": "hjalmar-hjorth-boyesen",
"braeker": "ulrich-braeker",
"brand": "frederick-schiller-faust",
"brandes": "georg-brandes",
"brant": "sebastian-brant",
"braune": "rudolf-braune",
"brausewe": "artur-brausewetter",
"brehm": "alfred-edmund-brehm",
"bremer": "fredrika-bremer",
"brentanh": "hanny-brentano",
"brentano": "clemens-brentano",
"brentans": "sophie-friederike-brentano",
"brillat": "jean-anthelme-brillat-savarin",
"brjussow": "valerij-brjussow",
"broch": "hermann-broch",
"brockden": "charles-brockden-brown",
"bruno": "giordano-bruno",
"bruns": "max-bruns",
"buchanan": "robert-buchanan",
"buechner": "georg-buechner",
"buelau": "friedrich-von-buelau",
"buergel": "bruno-hans-buergel",
"buerger": "gottfried-august-buerger",
"bulwer": "edward-bulwer-lytton",
"buol": "maria-buol",
"burnett": "frances-hodgson-burnett",
"burrough": "edgar-rice-burroughs",
"busch": "wilhelm-busch",
"busse": "carl-busse",
"busse-he": "hermann-eris-busse",
"byr": "robert-byr",
"calderon": "pedro-caldern-de-la-barca",
"camoes": "luis-vaz-de-cames",
"campe": "joachim-heinrich-campe",
"capek": "karel-capek",
"cardauns": "hermann-cardauns",
"carducci": "giosue-carducci",
"carlyle": "thomas-carlyle",
"carnegie": "andrew-carnegie",
"carossa": "hans-carossa",
"carpente": "edward-carpenter",
"carroll": "charles-lutwidge-dodgson",
"carter": "howard-carter",
"casanova": "giacomo-casanova",
"castel": "abbe-castel-de-saint-pierre",
"castell": "willy-lang",
"cazotte": "jacques-cazotte",
"cechov": "anton-tschechov",
"cellini": "benvenuto-cellini",
"cervante": "miguel-de-cervantes-saavedra",
"cfmeyer": "conrad-ferdinand-meyer",
"chajjam": "omar-chajjam",
"chamberl": "houston-stewart-chamberlain",
"chamisso": "adelbert-von-chamisso",
"chatrian": "alessandre-chatrian",
"chaucer": "geoffrey-chaucer",
"chester": "george-randolph-chester",
"chlumbrg": "hans-chlumberg",
"christal": "helene-christaller",
"cicero": "marcus-tullius-cicero",
"claretie": "jules-claretie",
"claudius": "matthias-claudius",
"clausewz": "carl-von-clausewitz",
"clement": "berta-clement",
"cody": "helen-cody",
"colerus": "egmont-colerus",
"collodi": "carlo-collodi",
"coloma": "luis-coloma",
"conrad": "joseph-conrad",
"conscien": "hendrik-conscience",
"cooper": "james-fenimore-cooper",
"coppee": "francois-coppee",
"corinth": "lovis-corinth",
"corvin": "otto-julius-bernhard-von-corvin-wiersbitzki",
"couperus": "louis-couperus",
"crebillo": "claude-prosper-jolyot-de-crebillon",
"crede": "carl-crede",
"croissan": "anna-croissant-rust",
"croker": "bithia-mary-croker",
"cronau": "rudolf-cronau",
"crusenst": "magnus-jacob-crusenstolpe",
"dahn": "felix-dahn",
"daiber": "albert-daiber",
"damaschk": "adolf-damaschke",
"dannunzi": "gabriele-dannunzio",
"daporto": "luigi-da-porto",
"darwin": "charles-darwin",
"daudet": "alphonse-daudet",
"daudetle": "leon-daudet",
"dauthene": "elisabeth-dauthendey",
"davis": "richard-harding-davis",
"decius": "nikolaus-decius",
"decken": "auguste-von-der-decken",
"dedenrot": "eugen-hermann-von-dedenroth",
"defoe": "daniel-defoe",
"dehmel": "richard-dehmel",
"dehmelp": "paula-dehmel",
"deledda": "grazia-deledda",
"delitz": "friedrich-delitzsch",
"derschau": "august-egbert-von-derschau",
"dery": "juliane-dery",
"descarte": "rene-descartes",
"detmold": "johann-hermann-detmold",
"deutsch": "lev-grigorievich-deutsch",
"dickens": "charles-dickens",
"diderot": "denis-diderot",
"didring": "ernst-didring",
"diebold": "bernhard-diebold",
"diederic": "franz-diederich",
"diener": "bertha-eckstein-diener",
"dimitrof": "georgi-dimitroff",
"dincklag": "friedrich-von-dincklage-campe",
"dine": "willard-huntington-wright",
"dingelst": "franz-von-dingelstedt",
"doermann": "felix-doermann",
"dohm": "hedwig-dohm",
"dominik": "hans-dominik",
"donath": "adolph-donath",
"dostojew": "fjodor-michailowitsch-dostojewski",
"douglas": "lord-alfred-douglas",
"doyle": "arthur-conan-doyle",
"dransfel": "hedwig-dransfeld",
"dreyer": "max-dreyer",
"dronke": "ernst-dronke",
"droste": "annette-von-droste-huelshoff",
"droysen": "johann-gustav-droysen",
"duboc": "charles-edouard-duboc",
"duller": "eduard-duller",
"dumasjun": "alexandre-dumas-der-juengere",
"dumaurie": "george-du-maurier",
"duncker": "dora-duncker",
"duun": "olav-duun",
"eberfw": "friedrich-wilhelm-weber",
"eberhard": "august-gottlob-eberhard",
"ebertfr": "friedrich-ebert",
"ebnresch": "marie-von-ebner-eschenbach",
"ebstein": "erich-ebstein",
"echegara": "jose-echegaray",
"eckerman": "johann-peter-eckermann",
"edel": "edmund-edel",
"edzardi": "anton-edzardi",
"eeden": "frederik-van-eeden",
"eekhoud": "georges-eekhoud",
"ehrensta": "albert-ehrenstein",
"eichacke": "reinhold-eichacker",
"eichndrf": "joseph-von-eichendorff",
"eichrodt": "ludwig-eichrodt",
"einsteic": "carl-einstein",
"eliasber": "alexander-eliasberg",
"elisabet": "kaiserin-elisabeth-von-oesterreich",
"emerson": "ralph-waldo-emerson",
"enderlin": "paul-enderling",
"endrikat": "fred-endrikat",
"engele": "eduard-engel",
"enking": "ottomar-enking",
"eoetvoes": "josef-von-eoetvoes",
"erasmus": "erasmus-von-rotterdam",
"ernst": "otto-ernst",
"ertl": "emil-ertl",
"eschenba": "wolfram-von-eschenbach",
"etahoff": "eta-hoffmann",
"ettlinge": "josef-moritz-ettlinger",
"eulenbur": "philipp-fuerst-zu-eulenburg-hertefeld",
"euripide": "euripides",
"eversfra": "franz-evers",
"ewers": "hanns-heinz-ewers",
"ey": "luise-ey",
"eyth": "max-eyth",
"falk": "johannes-daniel-falk",
"farina": "salvatore-farina",
"farrere": "claude-farrere",
"fechenba": "felix-fechenbach",
"federn": "karl-federn",
"felde": "johannes-kaltenboeck",
"feuchter": "ernst-von-feuchtersleben",
"feuerbaa": "anselm-feuerbach",
"feuerbac": "paul-johann-anselm-ritter-von-feuerbach",
"feuerbal": "ludwig-feuerbach",
"figner": "wera-figner",
"fischart": "johann-fischart",
"fischerw": "wilhelm-fischer",
"fischeww": "wilhelm-fischer-2",
"fitzgera": "f-scott-fitzgerald",
"flaischl": "caesar-flaischlen",
"flaubert": "gustave-flaubert",
"fletcher": "joseph-smith-fletcher",
"floerick": "kurt-floericke",
"floerkeh": "hanns-floerke",
"fock": "gorch-fock",
"foerstef": "friedrich-foerster",
"fogazzar": "antonio-fogazzaro",
"fontane": "theodor-fontane",
"forbesmo": "irene-anna-maria-magdalena-gisela-gabriele-forbes-mosse",
"forsterj": "john-forster",
"fouque": "friedrich-de-la-motte-fouque",
"france": "anatole-france",
"franka": "anne-frank",
"frankljo": "john-franklin",
"franzign": "ignaz-franz-1",
"franzjos": "franz-joseph-von-oesterreich",
"franzos": "karl-emil-franzos",
"freeman": "richard-austin-freeman",
"freiligr": "ferdinand-freiligrath",
"freissle": "ernst-wolfgang-freissler",
"freud": "sigmund-freud",
"freytag": "gustav-freytag",
"friedell": "egon-friedell",
"friedlae": "ludwig-friedlaender",
"friedlas": "salomon-friedlaender",
"friedlhu": "hugo-friedlaender",
"frisch": "efraim-frisch",
"frobeniu": "leo-frobenius",
"froehlia": "abraham-emanuel-froehlich",
"froissar": "jean-froissart",
"frontinu": "sextus-julius-frontinus",
"fuchs-li": "robert-fuchs-liska",
"fuerst": "artur-fuerst",
"fvhausen": "friedrich-von-hausen",
"gaboriau": "emile-gaboriau",
"gagern": "friedrich-frhr-von-gagern",
"galen": "philipp-galen",
"gall": "louise-von-gall",
"galswort": "john-galsworthy",
"ganghofe": "ludwig-ganghofer",
"gangl": "josef-gangl",
"garschin": "wsewolod-michailowitsch-garschin",
"geibelp": "peter-geibel",
"geissler": "max-geissler",
"gellert": "christian-fuerchtegott-gellert",
"gelpke": "august-heinrich-christian-gelpke",
"genee": "rudolf-genee",
"gengenba": "pamphilus-gengenbach",
"george": "stefan-george",
"gerharda": "adolph-von-gerhardt",
"gerhardt": "paul-gerhardt",
"gesell": "silvio-gesell",
"gfeller": "simon-gfeller",
"gide": "andre-gide",
"gildemei": "otto-gildemeister",
"gillhoff": "johannes-gillhoff",
"giraudou": "jean-giraudoux",
"giseke": "robert-giseke",
"glaser": "adolf-glaser",
"glaspell": "susan-glaspell",
"glass": "luise-glass",
"glassbre": "adolf-glassbrenner",
"glauser": "friedrich-glauser",
"gleim": "johann-wilhelm-ludwig-gleim",
"gluemer": "claire-von-gluemer",
"gobineau": "arthur-de-gobineau",
"goecking": "leopold-friedrich-guenther-von-goeckingk",
"goedicke": "elisabeth-goedicke",
"goerres": "joseph-von-goerres",
"goethe": "johann-wolfgang-von-goethe",
"goetheke": "katharina-elisabetha-goethe",
"goett": "emil-servatius-goett",
"gogol": "nikolai-gogol",
"goldmann": "otto-goldmann",
"goldsmit": "oliver-goldsmith",
"goltz": "bogumil-goltz",
"gontscha": "iwan-gontscharow",
"gorki": "maxim-gorki",
"gothein": "marie-luise-gothein",
"gotthelf": "jeremias-gotthelf",
"gottscha": "rudolf-carl-von-gottschall",
"gottschl": "luise-adelgunde-victorie-gottsched-geb-kulmus",
"grabbe": "christian-dietrich-grabbe",
"grabein": "paul-grabein",
"gracian": "baltasar-gracin-y-morales",
"grad": "max-grad",
"graeser": "erdmann-graeser",
"grahame": "kenneth-grahame",
"grasberg": "hans-grasberger",
"grazie": "marie-eugenie-delle-grazie",
"green": "anna-katherine-green",
"gregorov": "ferdinand-gregorovius",
"greif": "martin-greif",
"greiner": "leo-greiner",
"greinz": "rudolf-heinrich-greinz",
"greville": "henry-greville",
"greyerzo": "otto-von-greyerz",
"grillprz": "franz-grillparzer",
"grimm": "brueder-grimm",
"grimmels": "hans-jakob-christoffel-von-grimmelshausen",
"grisebac": "eduard-grisebach",
"groddeck": "georg-groddeck",
"groller": "balduin-groller",
"groner": "auguste-groner",
"grosse": "julius-grosse",
"grosseka": "karl-grosse",
"grossh": "hans-gross",
"grubeaw": "august-wilhelm-grube-2",
"gruenbau": "fritz-gruenbaum",
"grunert": "carl-grunert",
"gryphius": "andreas-gryphius",
"gumppenb": "hanns-theodor-wilhelm-freiherr-von-gumppenberg",
"gurlitt": "cornelius-gurlitt",
"gutzkow": "karl-gutzkow",
"gvstrass": "gottfried-von-strassburg",
"haarhaus": "julius-r-haarhaus",
"hacklaen": "friedrich-wilhelm-hacklaender",
"hadwiger": "victor-hadwiger",
"haeberli": "karl-ludwig-haeberlin",
"hagedorn": "friedrich-von-hagedorn",
"hagen": "august-hagen",
"haller": "albrecht-von-haller",
"haltrich": "josef-haltrich",
"hammerst": "hans-freiherr-von-hammerstein-equord",
"hamsun": "knut-hamsun",
"handl": "willi-handl",
"hanried": "norbert-hanrieder-2",
"harden": "maximilian-harden",
"hardt": "friedrich-wilhelm-ernst-hardt",
"harland": "henry-harland",
"harris": "frank-harris",
"harsdoer": "georg-philipp-harsdoerfer",
"harte": "bret-harte",
"hasek": "jaroslav-haek",
"hauff": "wilhelm-hauff",
"hawthorn": "nathaniel-hawthorne",
"hebbel": "christian-friedrich-hebbel",
"hebel": "johann-peter-hebel",
"hedin": "sven-hedin",
"heilboad": "adolf-heilborn",
"heimburg": "berta-behrens",
"heine": "heinrich-heine",
"heineth": "thomas-theodor-heine",
"helmhltz": "hermann-ludwig-ferdinand-von-helmholtz",
"henning": "max-henning",
"hennings": "emmy-hennings",
"henrich": "hedwig-henrich-wilhelmi",
"hensler": "karl-friedrich-hensler",
"herbert": "wilhelm-mayer",
"herder": "johann-gottfried-herder",
"herold": "franz-herold",
"hertz": "wilhelm-hertz",
"herwegh": "georg-herwegh",
"hesse": "hermann-hesse",
"heun": "carl-gottlieb-samuel-heun",
"hey": "johann-wilhelm-hey",
"heyse": "paul-heyse",
"hildegar": "hildegard-von-bingen",
"hill": "headon-hill",
"hirschbe": "leopold-hirschberg",
"hirschfe": "magnus-hirschfeld",
"hoelderl": "friedrich-hoelderlin",
"hoerner": "herbert-von-hoerner",
"hofbauer": "josef-hofbauer",
"hofmanns": "hugo-von-hofmannsthal",
"hofmille": "josef-hofmiller",
"holberg": "ludvig-holberg",
"holek": "wenzel-holek",
"holtze": "friedrich-holtze",
"holz": "arno-holz",
"horvath": "oedoen-von-horvth",
"hruschka": "annie-hruschka",
"huchric": "ricarda-huch",
"humbolda": "friedrich-wilhelm-heinrich-alexander-freiherr-von-humboldt",
"humboldw": "friedrich-wilhelm-christian-karl-ferdinand-freiherr-von-humboldt",
"hume": "david-hume",
"hymans": "henri-hymans",
"ibsen": "henrik-ibsen",
"ichenhae": "eliza-ichenhaeuser",
"iffland": "august-wilhelm-iffland",
"ingram": "john-kells-ingram",
"irving": "washington-irving",
"jacobi": "johann-georg-jacobi",
"jacobsen": "jens-peter-jacobsen",
"jaegerh": "hans-henrik-jger",
"jammes": "francis-jammes",
"janitsch": "maria-janitschek",
"jeanpaul": "jean-paul",
"jens": "ina-jens",
"jensen": "wilhelm-jensen",
"jerrold": "douglas-jerrold",
"jhering": "rudolf-von-ihering",
"jirasek": "alois-jirsek",
"jokai": "maurus-jkai",
"jonson": "ben-jonson",
"jungstil": "heinrich-stilling",
"kabel": "walther-kabel",
"kafka": "franz-kafka",
"kahane": "arthur-kahane",
"kalckreu": "wolf-graf-von-kalckreuth",
"kalisch": "david-kalisch",
"kane": "elisha-kent-kane",
"kant": "immanuel-kant",
"kapffess": "franziska-von-kapff-essenther",
"kapp": "friedrich-kapp",
"kapri": "rudolf-von-kapri",
"karlin": "alma-karlin",
"karlweis": "carl-karlweis",
"karrillo": "adam-karrillon",
"kastein": "josef-kastein",
"katscher": "leopold-katscher",
"kaulbach": "hermann-kaulbach",
"kautsky": "karl-kautsky",
"keats": "john-keats",
"keim": "franz-keim",
"keller": "gottfried-keller",
"kellera": "augustin-keller",
"kellerma": "bernhard-kellermann",
"kellerp": "paul-keller",
"kempner": "friederike-kempner",
"kennan": "george-kennan",
"kern": "maximilian-kern",
"kernerj": "justinus-kerner",
"kernerjg": "johann-georg-kerner",
"kernerma": "marie-kerner",
"kernstoc": "ottokar-kernstock",
"kerr": "alfred-kerr",
"kessler": "harry-kessler",
"key": "ellen-key",
"keyserlg": "eduard-graf-von-keyserling",
"keyserlh": "graf-hermann-keyserling",
"kielland": "alexander-lange-kielland",
"kierkega": "sren-kierkegaard",
"kind": "johann-friedrich-kind",
"kinkel": "gottfried-kinkel",
"kinkeljo": "johanna-kinkel",
"kipling": "rudyard-kipling",
"kirchbac": "wolfgang-kirchbach",
"kirchhoh": "hans-wilhelm-kirchhof",
"kisch": "egon-erwin-kisch",
"klabund": "alfred-henschke",
"klee": "paul-klee",
"kleinern": "ernst-klein",
"kleinfer": "johann-kleinfercher",
"kleist": "heinrich-von-kleist",
"klemm": "johanna-klemm",
"klepper": "jochen-klepper",
"klingema": "august-klingemann",
"klinger": "friedrich-maximilian-klinger",
"klopstoc": "friedrich-gottlieb-klopstock",
"klosterm": "carl-klostermann",
"kluge": "kurt-kluge",
"klutscha": "heinrich-w-klutschak",
"knigge": "adolph-freiherr-knigge",
"kobbe": "theodor-von-kobbe",
"kobell": "franz-ritter-von-kobell",
"koch": "henny-koch",
"koche": "ernst-koch",
"kock": "charles-paul-de-kock",
"koehler": "ludwig-koehler",
"koelsch": "adolf-koelsch",
"koenig": "alma-johanna-koenig",
"koenige": "eberhard-koenig",
"koepke": "rudolf-anastasius-koepke",
"koeppene": "edlef-koeppen",
"koerner": "karl-theodor-koerner",
"koestlin": "julius-koestlin",
"kohlraus": "robert-kohlrausch",
"kolbe": "leopold-kolbe",
"kolping": "adolf-kolping",
"kompert": "leopold-kompert",
"konfuziu": "konfuzius",
"konopnic": "marya-konopnicka",
"kopisch": "august-kopisch",
"kornfeld": "paul-kornfeld",
"korolenk": "wladimir-galaktionovich-korolenko",
"kortum": "dr-med-carl-arnold-kortum",
"kosegart": "gotthard-ludwig-kosegarten",
"kossak": "karl-ludwig-ernst-kossak",
"kotzebue": "august-von-kotzebue",
"kraffteb": "richard-von-krafft-ebing",
"kraftr": "robert-kraft",
"krag": "thomas-krag",
"kralik": "richard-von-kralik",
"kramer": "heinrich-kramer",
"kraszews": "jzef-ignacy-kraszewski",
"kraus": "karl-kraus",
"krauss": "friedrich-solomon-krauss",
"kraze": "friederike-henriette-kraze",
"kreis": "julius-kreis",
"kretzer": "max-kretzer",
"kroeger": "timm-kroeger",
"kronoff": "frida-hummel",
"kropotki": "pjotr-alexejewitsch-kropotkin",
"kruegerh": "hermann-anders-krueger",
"kruse": "heinrich-kruse",
"krutter": "franz-krutter",
"krylow": "iwan-andrejewitsch-krylow",
"krzyzano": "otfried-krzyzanowski",
"kubitsch": "rudolf-kubitschek",
"kuegelgn": "wilhelm-von-kuegelgen",
"kuehne": "ferdinand-gustav-kuehne",
"kuehnelt": "richard-kuehnelt",
"kuekelha": "heinz-kuekelhaus",
"kuelpe": "frances-kuelpe",
"kuelz": "ludwig-kuelz",
"kuernber": "ferdinand-kuernberger",
"kugler": "franz-kugler",
"kuh": "anton-kuh",
"kuhn": "gottlieb-jakob-kuhn",
"kurz": "hermann-kurz",
"kurzi": "isolde-kurz",
"kusmin": "michail-kusmin",
"kussmaul": "adolf-kussmaul",
"kvwuerzb": "konrad-von-wuerzburg",
"kyber": "manfred-kyber",
"labe": "louze-labe",
"labrete": "alice-cherbonnel",
"lachmann": "hedwig-lachmann",
"lachmanv": "volkmar-lachmann",
"laclos": "pierre-ambroise-francois-choderlos-de-laclos",
"lafargue": "paul-lafargue",
"lafayett": "marie-madeleine-la-fayette",
"lafonta": "august-lafontaine",
"lagerloe": "selma-lagerloef",
"lamartin": "alphonse-de-prat-lamartine",
"lambrech": "nanny-lambrecht",
"lampe": "friedo-lampe",
"landauer": "gustav-landauer",
"landor": "walter-savage-landor",
"landsbrg": "artur-landsberger",
"langbehn": "julius-langbehn",
"langbein": "august-friedrich-ernst-langbein",
"langef": "friedrich-albert-lange",
"langeh": "helene-lange",
"langens": "paul-langenscheidt",
"langewie": "wilhelm-langewiesche",
"langhein": "karl-heinrich-von-lang",
"laroche": "maria-sophie-von-la-roche-geb-gutermann",
"lasale": "antoine-de-la-sale",
"lasker": "else-lasker-schueler",
"lasssalle": "ferdinand-lassalle",
"lasswitz": "kurd-lasswitz",
"latzko": "andreas-latzko",
"laube": "heinrich-laube",
"lauffer": "otto-lauffer",
"lawrencd": "d-h-lawrence",
"lawrence": "thomas-edward-lawrence",
"leadbeat": "charles-webster-leadbeater",
"leffler": "anne-charlotte-leffler",
"leifhelm": "hans-leifhelm",
"leipzige": "leon-leipziger",
"leitner": "maria-leitner",
"leixner": "otto-von-leixner",
"lemonnie": "camille-lemonnier",
"lenau": "nikolaus-lenau",
"lenclos": "ninon-de-lenclos",
"lenz": "jakob-michael-reinhold-lenz",
"leppin": "paul-leppin",
"lequeux": "william-le-queux",
"lerbs": "karl-lerbs",
"lespinas": "julie-de-lespinasse",
"lessing": "gotthold-ephraim-lessing",
"leutelt": "gustav-leutelt",
"levertin": "oskar-levertin",
"levett": "oswald-levett",
"lewes": "george-henry-lewes",
"lewis": "sinclair-lewis",
"lhotzky": "heinrich-lhotzky",
"libai": "li-bai",
"lichtenb": "georg-christoph-lichtenberg",
"lichtens": "alfred-lichtenstein",
"lichtwar": "alfred-lichtwark",
"lichtwer": "magnus-gottfried-lichtwer",
"lieberma": "max-liebermann",
"liebknec": "wilhelm-liebknecht",
"liebstoe": "hans-liebstoeckl",
"lienhard": "friedrich-lienhard",
"lilienca": "adda-freifrau-von-liliencron",
"liliencr": "detlev-freiherr-von-liliencron",
"lindaup": "paul-lindau",
"lindener": "michael-lindener",
"linguet": "simon-nicolas-henri-linguet",
"lipsius": "maria-lipsius",
"livius": "titus-livius",
"locke": "john-locke",
"loens": "hermann-loens",
"loerke": "oskar-loerke",
"loewenfe": "leopold-loewenfeld",
"longfell": "henry-wadsworth-longfellow",
"loos": "adolf-loos",
"loti": "pierre-loti",
"louvet": "jean-baptiste-louvet",
"louys": "pierre-lous",
"lucka": "emil-lucka",
"ludwig2": "ludwig-ii-von-bayern",
"ludwige": "emil-ludwig",
"lukian": "lukian-von-samosata",
"luther": "martin-luther",
"lux": "joseph-august-lux",
"machiave": "niccol-machiavelli",
"mader": "friedrich-wilhelm-mader",
"maeterli": "maurice-maeterlinck",
"magnus": "erwin-magnus",
"mallarme": "stephane-mallarme",
"malot": "hector-malot",
"malss": "karl-balthasar-malss",
"maltzahe": "elisabeth-von-maltzahn",
"maltzan": "heinrich-von-maltzan",
"mannh": "heinrich-mann",
"mannk": "klaus-heinrich-thomas-mann",
"manueln": "niklaus-manuel",
"marguerv": "victor-margueritte",
"margvalo": "margaretha-von-valois",
"mariathe": "maria-theresia-von-oesterreich",
"mariefra": "marie-de-france",
"marlitt": "eugenie-marlitt",
"marni": "jeanne-marni",
"marryat": "frederick-marryat",
"marryatf": "florence-marryat",
"martens": "kurt-martens",
"marti": "hugo-marti",
"masaryk": "tom-garrigue-masaryk",
"maupassa": "guy-de-maupassant",
"maximili": "maximilian-i-von-habsburg",
"may": "karl-may",
"meding": "oskar-meding",
"mehring": "franz-mehring",
"meinhold": "johann-wilhelm-meinhold",
"meissnea": "august-gottlieb-meissner",
"meissner": "alfred-meissner",
"mendelba": "felix-mendelssohn-bartholdy",
"mendelss": "moses-mendelssohn",
"mendes": "catulle-mendes",
"mentzer": "johann-mentzer",
"meredith": "george-meredith",
"mereschk": "dmitri-sergejewitsch-mereschkowski",
"merian": "matthaeus-merian",
"messer": "max-messer",
"messner": "josef-messner",
"meyerfoe": "wilhelm-meyer-foerster",
"meyerj": "johann-meyer",
"meyermer": "theodor-meyer-merian",
"meyr": "melchior-meyr",
"meysenbu": "malwida-von-meysenbug",
"michaeli": "karin-michalis",
"michelet": "jules-michelet",
"mickiewi": "adam-mickiewicz",
"milow": "stephan-von-millenkovich",
"mirbeau": "octave-mirbeau",
"modersoh": "paula-modersohn-becker",
"moebius": "paul-julius-moebius",
"mohrmax": "max-mohr",
"molina": "tirso-de-molina",
"moltke": "helmuth-karl-bernhard-von-moltke",
"mommsen": "theodor-mommsen",
"mongdsi": "mong-ds",
"montaign": "michel-de-montaigne",
"montanus": "martin-montanus",
"montesqu": "montesquieu",
"montgome": "malla-montgomery-silfverstolpe",
"mooreg": "george-moore",
"mooret": "thomas-moore",
"morgenst": "christian-morgenstern",
"morgenth": "hans-morgenthaler",
"morier": "james-morier",
"moritz": "karl-philipp-moritz",
"morold": "max-von-millenkovich",
"morrison": "arthur-morrison",
"morus": "thomas-morus",
"moschero": "johann-hans-michael-moscherosch",
"mosen": "julius-mosen",
"moser": "ernst-moser",
"moszkows": "alexander-moszkowski",
"muehlbac": "luise-muehlbach",
"muehsam": "erich-muehsam",
"muellenh": "karl-muellenhoff",
"muellera": "adam-mueller-guttenbrunn",
"muellerj": "johann-gottwerth-mueller",
"muetzelb": "adolf-muetzelburg",
"muhammad": "prophet-mohammed",
"mulford": "prentice-mulford",
"multerer": "hans-multerer",
"mundt": "theodor-mundt",
"musil": "robert-musil",
"nathusiu": "marie-nathusius",
"natorp": "paul-natorp",
"naumann": "friedrich-naumann",
"navarra": "margarete-von-navarra",
"neander": "joachim-neander",
"nestroy": "johann-nestroy",
"neumannk": "karl-eugen-neumann",
"neumayer": "georg-von-neumayer",
"nicolai": "christoph-friedrich-nicolai",
"nicolaip": "philipp-nicolai",
"niebergl": "ernst-elias-niebergall",
"niemanna": "august-wilhelm-otto-niemann",
"nietzsch": "friedrich-wilhelm-nietzsche",
"nighting": "florence-nightingale",
"nohl": "ludwig-nohl",
"nordau": "max-nordau",
"nordensk": "otto-nordenskjoeld",
"nordhaus": "richard-nordhausen",
"norris": "frank-norris",
"nostitz": "helene-nostitz",
"nowak": "karl-friedrich-nowak",
"obst": "arthur-obst",
"oehlensc": "adam-gottlob-oehlenschlaeger",
"oeser": "hermann-oeser",
"oetker": "august-oetker",
"okakura": "kakuzo-okakura",
"olden": "balder-olden",
"olfers": "marie-von-olfers",
"oliphant": "margaret-oliphant",
"ompteda": "georg-freiherr-von-ompteda",
"opitz": "martin-opitz",
"oppenhei": "edward-phillips-oppenheim",
"orzeszko": "eliza-orzeszkowa",
"ossietzk": "carl-von-ossietzky",
"ostwald": "wilhelm-ostwald",
"ostwaldh": "hans-ostwald",
"ottwalt": "ernst-ottwalt",
"paalzow": "henriette-paalzow",
"paasche": "hans-paasche",
"paatz": "herbert-paatz",
"pajeken": "friedrich-joachim-pajeken",
"panizza": "leopold-hermann-oskar-panizza",
"pannwitz": "max-pannwitz",
"panteniu": "theodor-hermann-pantenius",
"pappenhe": "bertha-pappenheim",
"paquet": "alfons-paquet",
"parabell": "ferdinand-grautoff",
"pascal": "blaise-pascal",
"pastor": "willy-pastor",
"paula": "adolf-paul",
"paulig": "gustav-pauli",
"paulus": "eduard-paulus",
"peary": "robert-edwin-peary",
"pellico": "silvio-pellico",
"perezdeh": "ginez-perez-de-hita",
"perezgal": "benito-perez-galds",
"perfall": "anton-von-perfall",
"perfallk": "karl-von-perfall",
"petoefi": "sndor-petoefi",
"petroniu": "titus-petronius",
"petzold": "alfons-petzold",
"pfeffel": "gottlieb-konrad-pfeffel",
"pfeiffer": "ida-pfeiffer",
"pfeiffgw": "georg-wilhelm-pfeiffer",
"philippe": "charles-louis-philippe",
"piccolom": "alessandro-piccolomini",
"pichler": "adolf-pichler",
"pierson": "karoline-pierson",
"pies": "hermann-pies",
"pirandel": "luigi-pirandello",
"placzek": "siegfried-placzek",
"plautus": "titus-maccius-plautus",
"poe": "edgar-allan-poe",
"poeck": "wilhelm-poeck",
"poetzl": "eduard-poetzl",
"ponten": "josef-ponten",
"pontoppi": "henrik-pontoppidan",
"poradows": "marguerite-poradowska",
"poritzky": "jakob-elias-poritzky",
"praetori": "johannes-praetorius",
"preller": "ludwig-preller",
"prellwit": "gertrud-prellwitz",
"prevostm": "marcel-prevost",
"prinzhor": "hans-prinzhorn",
"proehle": "heinrich-proehle",
"proelss": "johannes-proelss",
"prosch": "peter-prosch",
"proust": "marcel-proust",
"prutz": "robert-eduard-prutz",
"przerwa": "kazimierz-przerwa-tetmajer",
"pueckler": "hermann-von-pueckler-muskau",
"puschkin": "alexander-sergejewitsch-puschkin",
"putlitz": "gustav-heinrich-gans-zu-putlitz",
"puttkamr": "alberta-von-puttkamer",
"queiroz": "jose-maria-eca-de-queiroz",
"queri": "georg-queri",
"quevedo": "don-francisco-gomez-de-quevedo",
"quidde": "ludwig-quidde",
"quincey": "thomas-de-quincey",
"raabe": "wilhelm-raabe",
"rabener": "gottlieb-wilhelm-rabener",
"radbruch": "gustav-radbruch",
"radek": "karl-radek",
"raimund": "ferdinand-raimund",
"ranke": "leopold-von-ranke",
"rankef": "friedrich-ranke",
"rankjo": "josef-rank",
"rathenau": "walther-rathenau",
"ratzel": "friedrich-ratzel",
"raumer": "friedrich-ludwig-georg-von-raumer",
"raupach": "ernst-benjamin-salomo-raupach",
"ravendro": "karl-doehring",
"rebhun": "paul-rebhun-rebhuhn",
"rebmann": "georg-friedrich-rebmann",
"reck": "fritz-reck-mallaczewen",
"regnier": "henri-de-regnier",
"reichena": "rudolf-reichenau",
"reinhard": "luise-reinhardt",
"reiser": "hans-reiser",
"reissner": "larissa-reissner",
"reitzel": "robert-reitzel",
"renan": "ernest-renan",
"reusch": "rudolf-reusch",
"reuterc": "christian-reuter",
"revel": "hugo-alphonso-revel",
"reventlo": "franziska-zu-reventlow",
"reymont": "wadysaw-stanisaw-reymont",
"rheinhar": "emil-alphons-rheinhardt",
"richterj": "joseph-richter",
"richterl": "ludwig-richter",
"richthof": "manfred-von-richthofen",
"riehl": "wilhelm-heinrich-von-riehl",
"rilke": "rainer-maria-rilke",
"ring": "max-ring",
"ringelnz": "joachim-ringelnatz",
"rist": "johann-rist",
"ritter": "johann-wilhelm-ritter",
"rochlitz": "friedrich-rochlitz",
"rod": "edouard-rod",
"rodaroda": "sndor-friedrich-rosenfeld",
"rodenbac": "georges-rodenbach",
"rodenber": "julius-rodenberg",
"roehle": "reinhard-roehle",
"roelvaag": "ole-edvart-rlvaag",
"roessler": "carl-ressner",
"rohlfs": "gerhard-rohlfs",
"rollandr": "romain-rolland",
"roquette": "otto-roquette",
"rose": "felicitas-rose",
"rosegger": "peter-rosegger",
"rosegghl": "hans-ludwig-rosegger",
"rosenhay": "paul-rosenhayn",
"rosenkra": "palle-adam-vilhelm-rosenkrantz",
"rost": "johann-christoph-rost",
"rostand": "edmond-rostand",
"roth": "joseph-roth",
"rothplet": "anna-rothpletz",
"rottenho": "johann-rottenhoefer",
"rousseau": "jean-jacques-rousseau",
"rubiner": "ludwig-rubiner",
"rudolfvh": "rudolf-kronprinz-von-oesterreich-ungarn",
"rueckert": "friedrich-rueckert",
"ruederer": "josef-ruederer",
"rumi": "dschalal-ad-din-muhammad-rumi",
"rumohr": "karl-friedrich-von-rumohr",
"ruppersb": "albert-ruppersberg",
"ruppius": "otto-ruppius",
"saar": "ferdinand-von-saar",
"sacherwa": "wanda-von-sacher-masoch",
"sachs": "hans-sachs",
"sack": "gustav-sack",
"sade": "donatien-alphonse-francois-de-sade",
"sadi": "musliheddin-sadi",
"sailer": "sebastian-sailer",
"sailerj": "johann-michael-sailer",
"saint-si": "louis-de-rouvroy-duc-de-saint-simon",
"salburg": "edith-graefin-salburg",
"salgari": "emilio-salgari",
"sallet": "friedrich-von-sallet",
"salome": "lou-andreas-salome",
"salomoer": "erich-salomon",
"salus": "hugo-salus",
"samain": "albert-samain",
"santayan": "jorge-augustn-nicols-ruiz-de-santayan",
"sapper": "agnes-sapper",
"sauerlan": "max-sauerlandt",
"scarron": "paul-scarron",
"schack": "adolf-friedrich-von-schack",
"schaefal": "albrecht-schaeffer",
"schaefer": "wilhelm-schaefer",
"schaffne": "jakob-schaffner",
"schanz": "frida-schanz",
"scharlin": "henrik-scharling",
"schaukal": "richard-von-schaukal",
"schaumbe": "heinrich-schaumberger",
"scheerba": "paul-scheerbart",
"schefer": "leopold-schefer",
"scheidema": "philipp-scheidemann",
"scheler": "max-scheler",
"schellic": "caroline-schelling",
"schenken": "max-von-schenkendorf",
"scherer": "wilhelm-scherer",
"schickel": "rene-schickele",
"schieber": "anna-schieber",
"schihuth": "hans-schiebelhuth",
"schillcg": "carl-georg-schillings",
"schiller": "friedrich-schiller",
"schillin": "gustav-schilling",
"schirges": "georg-gottlieb-schirges",
"schirmac": "kaethe-schirmacher",
"schiroka": "alfred-schirokauer",
"schlaf": "johannes-schlaf",
"schlegelf": "friedrich-schlegel",
"schlegld": "dorothea-schlegel",
"schlenth": "paul-schlenther",
"schliema": "heinrich-schliemann",
"schliepm": "hans-schliepmann",
"schlippe": "gabriele-freifrau-von-schlippenbach",
"schloegl": "friedrich-schloegl",
"schmitzo": "oscar-adolf-hermann-schmitz",
"schmolle": "gustav-schmoller",
"schneide": "josephine-schneider-foerstl",
"schneidt": "thekla-schneider",
"schnitzl": "arthur-schnitzler",
"schobert": "hedwig-schobert",
"schoell": "adolf-schoell",
"schoenhe": "karl-schoenherr",
"schoenw": "franz-xaver-von-schoenwerth",
"schoeppn": "alexander-schoeppner",
"schopenh": "arthur-schopenhauer",
"schorn": "adelheid-von-schorn",
"schrebem": "moritz-schreber",
"schreber": "daniel-paul-schreber",
"schrecke": "paul-schreckenbach",
"schreibe": "clara-schreiber",
"schreyvo": "joseph-schreyvogel",
"schudt": "jacob-schudt",
"schueler": "gustav-schueler",
"schulzea": "friedrich-august-schulze",
"schulzsm": "bernhardine-schulze-smidt",
"schumact": "tony-schumacher",
"schumanr": "robert-schumann",
"schummel": "johann-gottlieb-schummel",
"schupp": "johannes-martin-schupp",
"schurig": "arthur-schurig",
"schuyler": "eugene-schuyler",
"schwab": "gustav-schwab",
"schwarze": "annemarie-schwarzenbach",
"schwarzg": "georg-schwarz",
"schweich": "robert-schweichel",
"schweinf": "georg-schweinfurth",
"schwerio": "otto-schwerin",
"schwob": "marcel-schwob",
"scottf": "robert-falcon-scott",
"seeckt": "hans-von-seeckt",
"seidelh": "heinrich-seidel",
"seidlw": "walter-seidl",
"seitz": "robert-seitz",
"serner": "walter-serner",
"servaes": "franz-servaes",
"seton": "ernest-thompson-seton",
"seume": "johann-gottfried-seume",
"sevigne": "marie-de-rabutin-chantal-marquise-de-sevigne",
"shakespr": "william-shakespeare",
"shelley": "mary-shelley",
"shelleyp": "percy-bysshe-shelley",
"siber": "jules-siber",
"siebe": "josephine-siebe",
"sievekin": "amalie-sieveking",
"simrock": "karl-simrock",
"skjoldbo": "johan-skjoldborg",
"skowronf": "fritz-skowronnek",
"skowronr": "richard-skowronnek",
"skram": "amalie-skram",
"sling": "paul-schlesinger",
"smiles": "samuel-smiles",
"smollett": "tobias-smollett",
"soehle": "karl-soehle",
"sohnrey": "heinrich-sohnrey",
"soldan": "wilhelm-gottlieb-soldan",
"sologub": "fjodor-kusmitsch-teternikow",
"sophar": "moritz-wilhelm-sophar",
"sophokle": "sophokles",
"southey": "robert-southey",
"speckman": "diedrich-speckmann",
"spector": "mordecai-spector",
"spiero": "heinrich-spiero",
"spindler": "karl-spindler",
"spinoza": "baruch-de-spinoza",
"spohr": "louis-spohr",
"sprenger": "jakob-sprenger",
"ssymank": "paul-ssymank",
"stach": "ilse-von-stach",
"stacpool": "henry-de-vere-stacpoole",
"stael": "frau-von-stal",
"stanley": "henry-morton-stanley",
"stavenhg": "fritz-stavenhagen",
"stefbelg": "stephanie-von-belgien",
"steffen": "gustaf-f-steffen",
"steffens": "henrich-steffens",
"stegeman": "hermann-stegemann",
"stehr": "hermann-stehr",
"steinhau": "heinrich-steinhausen",
"steinvom": "heinrich-friedrich-karl-reichsfreiherr-vom-und-zum-stein",
"stendhal": "henri-beyle",
"sternado": "adolf-stern",
"sternber": "leo-sternberg",
"sterne": "laurence-sterne",
"sternhei": "carl-sternheim",
"stettenh": "julius-stettenheim",
"steube": "johann-kaspar-steube",
"stevenso": "robert-louis-stevenson",
"stieler": "karl-stieler",
"stier": "adelheid-stier",
"stifter": "adalbert-stifter",
"stilgeba": "edward-stilgebauer",
"stinde": "julius-stinde",
"stoker": "bram-stoker",
"stoltze": "karl-adolf-stoltze",
"stona": "maria-stona",
"storch": "ludwig-storch",
"storm": "theodor-storm",
"stpierre": "jacques-henri-bernardin-de-saint-pierre",
"straparo": "giovanni-francesco-straparola",
"stratz": "rudolf-stratz",
"strauss": "david-friedrich-strauss",
"streckfua": "adolf-streckfuss",
"stresema": "gustav-stresemann",
"strindbe": "johan-august-strindberg",
"strobl": "karl-hans-strobl",
"stuerzer": "rudolf-stuerzer",
"sturm": "julius-sturm",
"sturz": "helfrich-peter-sturz",
"sutermei": "otto-sutermeister",
"svensson": "jn-svensson",
"svevo": "italo-svevo",
"swift": "jonathan-swift",
"swinburn": "charles-swinburne",
"sydow": "margarete-von-sydow",
"sylva": "elisabeth-von-rumaenien",
"tacitus": "publius-cornelius-tacitus",
"tagore": "rabindranath-tagore",
"tanefiko": "riutei-tanefiko",
"tanera": "carl-tanera",
"tartarug": "ubald-tartaruga",
"taschenb": "ernst-ludwig-taschenberg",
"tasso": "torquato-tasso",
"taura": "august-peters",
"tegner": "esaias-tegner",
"telmann": "konrad-telmann",
"temme": "hubertus-temme",
"tennyson": "alfred-tennyson",
"tepl": "johannes-von-tepl",
"theden": "dietrich-theden",
"theis": "hans-theis",
"theresba": "therese-von-bayern",
"theuriet": "andre-theuriet",
"thode": "heinrich-thode",
"thoma": "ludwig-thoma",
"thomasvk": "thomas-von-kempen",
"thoresen": "magdalene-thoresen",
"thuemmel": "moritz-august-von-thuemmel",
"tieck": "ludwig-tieck",
"tillier": "claude-tillier",
"toepffer": "rudolf-toepffer",
"toller": "ernst-toller",
"tolstiak": "alexei-konstantinowitsch-tolstoi",
"tolstoi": "lew-tolstoi",
"tolstoia": "alexei-nikolajewitsch-tolstoi",
"tovote": "heinz-tovote",
"trakl": "georg-trakl",
"treitsch": "heinrich-von-treitschke",
"trelawny": "edward-john-trelawny",
"treller": "franz-treller",
"triller": "daniel-wilhelm-triller",
"trinius": "august-trinius",
"trojan": "johannes-trojan",
"trotzki": "leo-trotzki",
"tucholsk": "kurt-tucholsky",
"turgenev": "ivan-sergejevich-turgenev",
"twain": "mark-twain",
"ubell": "hermann-ubell",
"udet": "ernst-udet",
"uhland": "ludwig-uhland",
"ule": "ernst-ule",
"ulrichs": "karl-heinrich-ulrichs",
"undset": "sigrid-undset",
"ungern": "alexander-von-ungern-sternberg",
"valentin": "karl-valentin",
"vasari": "giorgio-vasari",
"verlaine": "paul-verlaine",
"verne": "jules-verne",
"viebig": "clara-viebig",
"villinge": "hermine-villinger",
"vischer": "friedrich-theodor-vischer",
"vleuten": "carl-ferdinand-van-vleuten",
"voegtlin": "adolf-voegtlin",
"voigtw": "wilhelm-voigt",
"volkmann": "richard-von-volkmann",
"voll": "karl-voll",
"vollrat": "heinrich-vollrat-schumacher",
"voltaire": "francois-marie-arouet-de-voltaire",
"vorlaend": "karl-vorlaender",
"voss": "johann-heinrich-voss",
"vossjul": "julius-von-voss",
"vrchlick": "jaroslav-vrchlick",
"vulpius": "christian-august-vulpius",
"wachenhu": "hans-wachenhusen",
"wagense": "christian-jacob-wagenseil",
"wagner": "wilhelm-richard-wagner",
"wagnerhe": "hermann-wagner-2",
"wagnerhl": "heinrich-leopold-wagner",
"waldeck": "heinrich-suso-waldeck",
"waltherv": "walther-von-der-vogelweide",
"wasserma": "jakob-wassermann",
"wbusch": "wilhelm-busch",
"webb-pep": "annie-webb-peploe",
"weberfw": "friedrich-wilhelm-weber",
"wedekind": "frank-wedekind",
"weerth": "georg-weerth",
"wegenea": "alfred-wegener",
"weil": "gustav-weil",
"weisse": "ernst-weiss",
"weissecf": "christian-felix-weisse",
"weissfer": "weiss-ferdl",
"wells": "herbert-george-wells",
"werfel": "franz-werfel",
"wichert": "ernst-wichert",
"wiechert": "ernst-wiechert",
"wieland": "christoph-martin-wieland",
"wilde": "oscar-wilde",
"wildgans": "anton-wildgans",
"wilhelm": "richard-wilhelm",
"willkomm": "ernst-adolf-willkomm",
"winckelm": "johann-joachim-winckelmann",
"winkler": "eugen-gottlob-winkler",
"wiseman": "nicholas-patrick-stephen-wiseman",
"wolf": "johann-wilhelm-wolf",
"wundt": "wilhelm-maximilian-wundt",
"wundtt": "theodor-wundt",
"zahn": "ernst-zahn",
"zola": "emile-zola",
"zoozmann": "richard-zoozmann",
"zschokke": "heinrich-zschokke",
"zweig": "stefan-zweig"
}
}
icwvelc6mx1n96ftypsapduomqr4a9l
User:Iiirxs/Template:Taxobox/doc
2
175658
743979
743949
2026-05-23T17:43:04Z
Iiirxs
49827
743979
wikitext
text/x-wiki
== Usage ==
Use this template on articles about taxa (species, genera, families, etc.). Fields with a Wikidata fallback are filled automatically when the article is connected to a Wikidata item.
=== Basic usage (Wikidata auto-fill where available) ===
<pre>{{Taxobox}}</pre>
=== With explicit values ===
<pre>
{{Taxobox
| name = Panthera leo
| image = Lion waiting in Namibia.jpg
| kingdom = Animalia
| family = Felidae
| genus = Panthera
| species = Panthera leo
| conservation_status = Vulnerable
}}
</pre>
== Parameters ==
{| class="wikitable"
! Parameter !! Wikidata property !! Description
|-
| <code>name</code> || — || Taxon name. Defaults to the page name.
|-
| <code>image</code> || P18 || Image filename (without <code>File:</code> prefix). Defaults to Wikidata P18.
|-
| <code>kingdom</code> || — || Biological kingdom (e.g. Animalia, Plantae). Always explicit — Wikidata encodes the full hierarchy via P171 chains with no direct kingdom property.
|-
| <code>family</code> || — || Biological family. Always explicit — same reason as kingdom.
|-
| <code>genus</code> || P171 || Immediate parent taxon (genus for a species item). Defaults to Wikidata P171.
|-
| <code>species</code> || P225 || Scientific taxon name. Defaults to Wikidata P225.
|-
| <code>conservation_status</code> || P141 || IUCN conservation status. Defaults to Wikidata P141.
|}
== Notes ==
* <code>kingdom</code> and <code>family</code> have no Wikidata fallback because Wikidata represents the taxonomic hierarchy as a chain of P171 (parent taxon) links, not as flat properties. These must always be provided explicitly.
* Requires the [[mw:Extension:Wikibase Client|WikibaseClient]] extension for Wikidata property lookup.
* Requires the [[mw:Extension:Scribunto|Scribunto]] extension and [[Module:Infobox]] for rendering.
<templatedata>
{
"description": "Infobox for taxa (species, genera, etc.). Some fields fall back to Wikidata properties automatically.",
"params": {
"name": {
"label": "Name",
"description": "Taxon name. Defaults to the page name.",
"type": "string",
"suggested": true
},
"image": {
"label": "Image",
"description": "Image filename without File: prefix. Defaults to Wikidata P18.",
"type": "wiki-file-name",
"suggested": true
},
"kingdom": {
"label": "Kingdom",
"description": "Biological kingdom (e.g. Animalia, Plantae). Always explicit.",
"type": "string"
},
"family": {
"label": "Family",
"description": "Biological family. Always explicit.",
"type": "string"
},
"genus": {
"label": "Genus",
"description": "Biological genus (immediate parent taxon). Defaults to Wikidata P171.",
"type": "string"
},
"species": {
"label": "Species",
"description": "Scientific taxon name. Defaults to Wikidata P225.",
"type": "string"
},
"conservation_status": {
"label": "Conservation status",
"description": "IUCN conservation status. Defaults to Wikidata P141.",
"type": "string"
}
}
}
</templatedata>
hooe79f0cot8cla2gy4p6kkexnb9ag7
User:Test Test Test Test Test Test Test Test Test Test Test
2
175659
743954
2026-05-23T14:19:49Z
Test Test Test Test Test Test Test Test Test Test Test
74119
Created page with "Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test..."
743954
wikitext
text/x-wiki
Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test
6hzqt767qtc7orucltnsvyr1ztkmjn5
Index tm tm
0
175660
743955
2026-05-23T14:24:05Z
Test Test Test Test Test Test Test Test Test Test Test
74119
Created page with "tm tm"
743955
wikitext
text/x-wiki
tm tm
4u6tgiay0wyao70jcrqxloa0g3vhca9
Template:Projekt-gutenberg.org/AexStr-BOT-ANR.json
10
175662
743964
2026-05-23T16:09:14Z
PerfektesChaos
18104
PerfektesChaos created the page [[Template:Projekt-gutenberg.org/AexStr-BOT-ANR.json]] using a non-default content model "JSON": supposed JSON
743964
json
application/json
{}
mbqvfsr1gawa9eid5wppvmaes442iwf
743965
743964
2026-05-23T16:11:48Z
PerfektesChaos
18104
2026-05-21
743965
json
application/json
{
"suite": "projekt-gutenberg.org",
"sub": "AexStr-BOT-ANR",
"serial": "2026-05-21",
"hash": {
"about": "edmond-about",
"abraham": "abraham-a-sancta-clara",
"achleitn": "arthur-achleitner",
"adlerrev": "paul-adler",
"adlersfe": "eufemia-von-adlersfeld-ballestrem",
"alarcon": "pedro-antonio-de-alarcn",
"alcofora": "marianna-alcoforado",
"alexandr": "alexandra-von-bayern",
"alkiphro": "alkiphron",
"amicis": "edmondo-de-amicis",
"amyntor": "gerhard-von-amyntor",
"apel": "august-apel",
"appenzel": "johann-conrad-appenzeller",
"archenho": "johann-wilhelm-von-archenholz",
"arcybase": "michail-petrowitsch-arzybaschew",
"argens": "jean-baptiste-de-boyer-marquis-dargens",
"ariosto": "ludovico-ariosto",
"arndf": "friedrich-arnd",
"asmus": "wilhelm-asmus",
"asmussen": "georg-asmussen",
"attar": "farid-ed-din-attar",
"atterbom": "per-daniel-amadeus-atterbom",
"audoux": "marguerite-audoux",
"auernhei": "raoul-auernheimer",
"augusti": "auguste-plehn",
"bacon": "francis-bacon",
"baggesen": "jens-baggesen",
"bakunin": "michael-bakunin",
"balmont": "konstantin-balmont",
"bartels": "max-bartels",
"bartsch": "rudolf-hans-bartsch",
"baum": "vicki-baum",
"beardsle": "aubrey-beardsley",
"beaumarc": "pierre-de-beaumarchais",
"bechstei": "ludwig-bechstein",
"beckford": "john-beckford",
"becquer": "gustavo-adolfo-becquer",
"beeker": "kaethe-van-beeker",
"beer": "richard-beer-hofmann",
"bely": "andrej-bely",
"benjamin": "walter-benjamin",
"benn": "gottfried-benn",
"bennett": "arnold-bennett",
"benrath": "henry-benrath",
"beradt": "martin-beradt",
"bergengr": "siegfried-bergengruen",
"berger": "alfred-freiherrn-von-berger",
"bergman": "hjalmar-bergman",
"bergmann": "hilda-bergmann",
"bergson": "henri-bergson",
"berlioz": "hector-berlioz",
"bern": "maximilian-bern",
"bernhard": "marie-bernhard",
"bernhatr": "tristan-bernard",
"bernoull": "carl-albrecht-bernoulli",
"berthold": "theodor-berthold",
"bethge": "hans-bethge",
"betsch": "roland-betsch",
"bettelhe": "anton-bettelheim",
"beutler": "margarete-beutler",
"beyerln": "franz-adam-beyerlein",
"bierce": "ambrose-gwinnett-bierce",
"blascoib": "vicente-blasco-ibanez",
"blass": "ernst-blass",
"blaumani": "rdolfs-blaumanis",
"bleifran": "franz-blei",
"bleyfrit": "fritz-bley",
"bloem": "walter-bloem",
"blomberg": "hugo-freiherr-von-blomberg",
"blumauer": "aloys-blumauer",
"blumenha": "wilhelm-blumenhagen",
"bode": "wilhelm-von-bode",
"boehmh": "hans-boehm",
"boettger": "adolf-boettger",
"boie": "margarete-boie",
"bois-rey": "emil-heinrich-du-bois-reymond",
"bolanden": "joseph-eduard-konrad-bischoff",
"bonsels": "waldemar-bonsels",
"booysen": "jens-booysen",
"bourget": "paul-bourget",
"boutet": "frederic-boutet",
"boyesen": "hjalmar-hjorth-boyesen",
"brand": "frederick-schiller-faust",
"brandes": "georg-brandes",
"braune": "rudolf-braune",
"brausewe": "artur-brausewetter",
"bremer": "fredrika-bremer",
"brentanh": "hanny-brentano",
"brillat": "jean-anthelme-brillat-savarin",
"brjussow": "valerij-brjussow",
"broch": "hermann-broch",
"brockden": "charles-brockden-brown",
"bruno": "giordano-bruno",
"bruns": "max-bruns",
"buchanan": "robert-buchanan",
"buelau": "friedrich-von-buelau",
"buergel": "bruno-hans-buergel",
"buol": "maria-buol",
"burrough": "edgar-rice-burroughs",
"busch": "wilhelm-busch",
"busse": "carl-busse",
"busse-he": "hermann-eris-busse",
"byr": "robert-byr",
"calderon": "pedro-caldern-de-la-barca",
"camoes": "luis-vaz-de-cames",
"campe": "joachim-heinrich-campe",
"capek": "karel-capek",
"cardauns": "hermann-cardauns",
"carducci": "giosue-carducci",
"carlyle": "thomas-carlyle",
"carnegie": "andrew-carnegie",
"carossa": "hans-carossa",
"carpente": "edward-carpenter",
"carroll": "charles-lutwidge-dodgson",
"carter": "howard-carter",
"castel": "abbe-castel-de-saint-pierre",
"castell": "willy-lang",
"cazotte": "jacques-cazotte",
"cellini": "benvenuto-cellini",
"chajjam": "omar-chajjam",
"chamberl": "houston-stewart-chamberlain",
"chatrian": "alessandre-chatrian",
"chaucer": "geoffrey-chaucer",
"chlumbrg": "hans-chlumberg",
"christal": "helene-christaller",
"claretie": "jules-claretie",
"clement": "berta-clement",
"colerus": "egmont-colerus",
"collodi": "carlo-collodi",
"coloma": "luis-coloma",
"conscien": "hendrik-conscience",
"coppee": "francois-coppee",
"corinth": "lovis-corinth",
"couperus": "louis-couperus",
"crebillo": "claude-prosper-jolyot-de-crebillon",
"crede": "carl-crede",
"croissan": "anna-croissant-rust",
"croker": "bithia-mary-croker",
"cronau": "rudolf-cronau",
"daiber": "albert-daiber",
"damaschk": "adolf-damaschke",
"dannunzi": "gabriele-dannunzio",
"daporto": "luigi-da-porto",
"darwin": "charles-darwin",
"daudetle": "leon-daudet",
"dauthene": "elisabeth-dauthendey",
"davis": "richard-harding-davis",
"decius": "nikolaus-decius",
"dedenrot": "eugen-hermann-von-dedenroth",
"defoe": "daniel-defoe",
"deledda": "grazia-deledda",
"delitz": "friedrich-delitzsch",
"derschau": "august-egbert-von-derschau",
"dery": "juliane-dery",
"descarte": "rene-descartes",
"detmold": "johann-hermann-detmold",
"deutsch": "lev-grigorievich-deutsch",
"didring": "ernst-didring",
"diebold": "bernhard-diebold",
"diederic": "franz-diederich",
"diener": "bertha-eckstein-diener",
"dimitrof": "georgi-dimitroff",
"dincklag": "friedrich-von-dincklage-campe",
"dine": "willard-huntington-wright",
"dingelst": "franz-von-dingelstedt",
"doermann": "felix-doermann",
"dominik": "hans-dominik",
"donath": "adolph-donath",
"dostojew": "fjodor-michailowitsch-dostojewski",
"douglas": "lord-alfred-douglas",
"dransfel": "hedwig-dransfeld",
"dreyer": "max-dreyer",
"dronke": "ernst-dronke",
"droysen": "johann-gustav-droysen",
"duboc": "charles-edouard-duboc",
"duller": "eduard-duller",
"dumasjun": "alexandre-dumas-der-juengere",
"dumaurie": "george-du-maurier",
"duncker": "dora-duncker",
"duun": "olav-duun",
"eberhard": "august-gottlob-eberhard",
"ebertfr": "friedrich-ebert",
"ebstein": "erich-ebstein",
"echegara": "jose-echegaray",
"edel": "edmund-edel",
"edzardi": "anton-edzardi",
"eeden": "frederik-van-eeden",
"eekhoud": "georges-eekhoud",
"eichacke": "reinhold-eichacker",
"eichrodt": "ludwig-eichrodt",
"einsteic": "carl-einstein",
"eliasber": "alexander-eliasberg",
"elisabet": "kaiserin-elisabeth-von-oesterreich",
"emerson": "ralph-waldo-emerson",
"enderlin": "paul-enderling",
"endrikat": "fred-endrikat",
"engele": "eduard-engel",
"enking": "ottomar-enking",
"eoetvoes": "josef-von-eoetvoes",
"erasmus": "erasmus-von-rotterdam",
"ertl": "emil-ertl",
"ettlinge": "josef-moritz-ettlinger",
"eulenbur": "philipp-fuerst-zu-eulenburg-hertefeld",
"eversfra": "franz-evers",
"ey": "luise-ey",
"farina": "salvatore-farina",
"farrere": "claude-farrere",
"fechenba": "felix-fechenbach",
"federn": "karl-federn",
"felde": "johannes-kaltenboeck",
"feuchter": "ernst-von-feuchtersleben",
"feuerbaa": "anselm-feuerbach",
"feuerbac": "paul-johann-anselm-ritter-von-feuerbach",
"feuerbal": "ludwig-feuerbach",
"figner": "wera-figner",
"fischart": "johann-fischart",
"fischerw": "wilhelm-fischer",
"fischeww": "wilhelm-fischer-2",
"fitzgera": "f-scott-fitzgerald",
"flaischl": "caesar-flaischlen",
"fletcher": "joseph-smith-fletcher",
"floerick": "kurt-floericke",
"floerkeh": "hanns-floerke",
"foerstef": "friedrich-foerster",
"fogazzar": "antonio-fogazzaro",
"forbesmo": "irene-anna-maria-magdalena-gisela-gabriele-forbes-mosse",
"forsterj": "john-forster",
"franka": "anne-frank",
"frankljo": "john-franklin",
"franzign": "ignaz-franz-1",
"franzjos": "franz-joseph-von-oesterreich",
"freeman": "richard-austin-freeman",
"freissle": "ernst-wolfgang-freissler",
"friedlae": "ludwig-friedlaender",
"friedlas": "salomon-friedlaender",
"friedlhu": "hugo-friedlaender",
"frisch": "efraim-frisch",
"frobeniu": "leo-frobenius",
"froehlia": "abraham-emanuel-froehlich",
"frontinu": "sextus-julius-frontinus",
"fuchs-li": "robert-fuchs-liska",
"fuerst": "artur-fuerst",
"fvhausen": "friedrich-von-hausen",
"gaboriau": "emile-gaboriau",
"gagern": "friedrich-frhr-von-gagern",
"galen": "philipp-galen",
"gall": "louise-von-gall",
"galswort": "john-galsworthy",
"gangl": "josef-gangl",
"garschin": "wsewolod-michailowitsch-garschin",
"geibelp": "peter-geibel",
"geissler": "max-geissler",
"gelpke": "august-heinrich-christian-gelpke",
"genee": "rudolf-genee",
"gengenba": "pamphilus-gengenbach",
"gerharda": "adolph-von-gerhardt",
"gesell": "silvio-gesell",
"gfeller": "simon-gfeller",
"gide": "andre-gide",
"gildemei": "otto-gildemeister",
"giraudou": "jean-giraudoux",
"giseke": "robert-giseke",
"glaser": "adolf-glaser",
"glaspell": "susan-glaspell",
"glass": "luise-glass",
"gobineau": "arthur-de-gobineau",
"goecking": "leopold-friedrich-guenther-von-goeckingk",
"goedicke": "elisabeth-goedicke",
"goerres": "joseph-von-goerres",
"goetheke": "katharina-elisabetha-goethe",
"goett": "emil-servatius-goett",
"goldmann": "otto-goldmann",
"goldsmit": "oliver-goldsmith",
"goltz": "bogumil-goltz",
"gontscha": "iwan-gontscharow",
"gorki": "maxim-gorki",
"gothein": "marie-luise-gothein",
"gottscha": "rudolf-carl-von-gottschall",
"gracian": "baltasar-gracin-y-morales",
"grad": "max-grad",
"graeser": "erdmann-graeser",
"grahame": "kenneth-grahame",
"grasberg": "hans-grasberger",
"grazie": "marie-eugenie-delle-grazie",
"green": "anna-katherine-green",
"greif": "martin-greif",
"greiner": "leo-greiner",
"greinz": "rudolf-heinrich-greinz",
"greville": "henry-greville",
"greyerzo": "otto-von-greyerz",
"grisebac": "eduard-grisebach",
"groddeck": "georg-groddeck",
"groller": "balduin-groller",
"groner": "auguste-groner",
"grosse": "julius-grosse",
"grosseka": "karl-grosse",
"grossh": "hans-gross",
"grubeaw": "august-wilhelm-grube-2",
"gruenbau": "fritz-gruenbaum",
"grunert": "carl-grunert",
"gumppenb": "hanns-theodor-wilhelm-freiherr-von-gumppenberg",
"gurlitt": "cornelius-gurlitt",
"gutzkow": "karl-gutzkow",
"haarhaus": "julius-r-haarhaus",
"hadwiger": "victor-hadwiger",
"haeberli": "karl-ludwig-haeberlin",
"hagen": "august-hagen",
"hammerst": "hans-freiherr-von-hammerstein-equord",
"hamsun": "knut-hamsun",
"handl": "willi-handl",
"hanried": "norbert-hanrieder-2",
"hardt": "friedrich-wilhelm-ernst-hardt",
"harland": "henry-harland",
"harris": "frank-harris",
"harsdoer": "georg-philipp-harsdoerfer",
"hasek": "jaroslav-haek",
"hawthorn": "nathaniel-hawthorne",
"hedin": "sven-hedin",
"heilboad": "adolf-heilborn",
"heimburg": "berta-behrens",
"heineth": "thomas-theodor-heine",
"helmhltz": "hermann-ludwig-ferdinand-von-helmholtz",
"hennings": "emmy-hennings",
"henrich": "hedwig-henrich-wilhelmi",
"herold": "franz-herold",
"hesse": "hermann-hesse",
"hill": "headon-hill",
"hirschbe": "leopold-hirschberg",
"hirschfe": "magnus-hirschfeld",
"hoerner": "herbert-von-hoerner",
"hofbauer": "josef-hofbauer",
"holek": "wenzel-holek",
"holtze": "friedrich-holtze",
"hruschka": "annie-hruschka",
"hume": "david-hume",
"hymans": "henri-hymans",
"iffland": "august-wilhelm-iffland",
"ingram": "john-kells-ingram",
"jacobi": "johann-georg-jacobi",
"jaegerh": "hans-henrik-jger",
"jammes": "francis-jammes",
"janitsch": "maria-janitschek",
"jens": "ina-jens",
"jerrold": "douglas-jerrold",
"jhering": "rudolf-von-ihering",
"jirasek": "alois-jirsek",
"jokai": "maurus-jkai",
"jonson": "ben-jonson",
"jungstil": "heinrich-stilling",
"kabel": "walther-kabel",
"kafka": "franz-kafka",
"kahane": "arthur-kahane",
"kalckreu": "wolf-graf-von-kalckreuth",
"kalisch": "david-kalisch",
"kane": "elisha-kent-kane",
"kant": "immanuel-kant",
"kapffess": "franziska-von-kapff-essenther",
"kapp": "friedrich-kapp",
"kapri": "rudolf-von-kapri",
"karlin": "alma-karlin",
"karlweis": "carl-karlweis",
"karrillo": "adam-karrillon",
"kastein": "josef-kastein",
"katscher": "leopold-katscher",
"kaulbach": "hermann-kaulbach",
"kautsky": "karl-kautsky",
"keats": "john-keats",
"keim": "franz-keim",
"keller": "gottfried-keller",
"kellera": "augustin-keller",
"kellerma": "bernhard-kellermann",
"kellerp": "paul-keller",
"kempner": "friederike-kempner",
"kennan": "george-kennan",
"kern": "maximilian-kern",
"kernerj": "justinus-kerner",
"kernerjg": "johann-georg-kerner",
"kernerma": "marie-kerner",
"kernstoc": "ottokar-kernstock",
"kerr": "alfred-kerr",
"kessler": "harry-kessler",
"key": "ellen-key",
"keyserlg": "eduard-graf-von-keyserling",
"keyserlh": "graf-hermann-keyserling",
"kielland": "alexander-lange-kielland",
"kierkega": "sren-kierkegaard",
"kind": "johann-friedrich-kind",
"kinkel": "gottfried-kinkel",
"kinkeljo": "johanna-kinkel",
"kipling": "rudyard-kipling",
"kirchbac": "wolfgang-kirchbach",
"kirchhoh": "hans-wilhelm-kirchhof",
"kisch": "egon-erwin-kisch",
"klee": "paul-klee",
"kleinern": "ernst-klein",
"kleinfer": "johann-kleinfercher",
"kleist": "heinrich-von-kleist",
"klemm": "johanna-klemm",
"klepper": "jochen-klepper",
"klingema": "august-klingemann",
"klinger": "friedrich-maximilian-klinger",
"klopstoc": "friedrich-gottlieb-klopstock",
"klosterm": "carl-klostermann",
"kluge": "kurt-kluge",
"klutscha": "heinrich-w-klutschak",
"knigge": "adolph-freiherr-knigge",
"kobbe": "theodor-von-kobbe",
"kobell": "franz-ritter-von-kobell",
"koch": "henny-koch",
"koche": "ernst-koch",
"kock": "charles-paul-de-kock",
"koehler": "ludwig-koehler",
"koelsch": "adolf-koelsch",
"koenig": "alma-johanna-koenig",
"koenige": "eberhard-koenig",
"koepke": "rudolf-anastasius-koepke",
"koeppene": "edlef-koeppen",
"koerner": "karl-theodor-koerner",
"koestlin": "julius-koestlin",
"kohlraus": "robert-kohlrausch",
"kolbe": "leopold-kolbe",
"kolping": "adolf-kolping",
"kompert": "leopold-kompert",
"konfuziu": "konfuzius",
"konopnic": "marya-konopnicka",
"kopisch": "august-kopisch",
"kornfeld": "paul-kornfeld",
"korolenk": "wladimir-galaktionovich-korolenko",
"kortum": "dr-med-carl-arnold-kortum",
"kosegart": "gotthard-ludwig-kosegarten",
"kossak": "karl-ludwig-ernst-kossak",
"kotzebue": "august-von-kotzebue",
"kraffteb": "richard-von-krafft-ebing",
"kraftr": "robert-kraft",
"krag": "thomas-krag",
"kralik": "richard-von-kralik",
"kramer": "heinrich-kramer",
"kraszews": "jzef-ignacy-kraszewski",
"kraus": "karl-kraus",
"krauss": "friedrich-solomon-krauss",
"kraze": "friederike-henriette-kraze",
"kreis": "julius-kreis",
"kretzer": "max-kretzer",
"kroeger": "timm-kroeger",
"kronoff": "frida-hummel",
"kropotki": "pjotr-alexejewitsch-kropotkin",
"kruegerh": "hermann-anders-krueger",
"kruse": "heinrich-kruse",
"krutter": "franz-krutter",
"krylow": "iwan-andrejewitsch-krylow",
"krzyzano": "otfried-krzyzanowski",
"kubitsch": "rudolf-kubitschek",
"kuegelgn": "wilhelm-von-kuegelgen",
"kuehne": "ferdinand-gustav-kuehne",
"kuehnelt": "richard-kuehnelt",
"kuekelha": "heinz-kuekelhaus",
"kuelpe": "frances-kuelpe",
"kuelz": "ludwig-kuelz",
"kuernber": "ferdinand-kuernberger",
"kugler": "franz-kugler",
"kuh": "anton-kuh",
"kuhn": "gottlieb-jakob-kuhn",
"kurz": "hermann-kurz",
"kurzi": "isolde-kurz",
"kusmin": "michail-kusmin",
"kussmaul": "adolf-kussmaul",
"kvwuerzb": "konrad-von-wuerzburg",
"kyber": "manfred-kyber",
"labe": "louze-labe",
"labrete": "alice-cherbonnel",
"lachmann": "hedwig-lachmann",
"lachmanv": "volkmar-lachmann",
"laclos": "pierre-ambroise-francois-choderlos-de-laclos",
"lafargue": "paul-lafargue",
"lafayett": "marie-madeleine-la-fayette",
"lafonta": "august-lafontaine",
"lagerloe": "selma-lagerloef",
"lamartin": "alphonse-de-prat-lamartine",
"lambrech": "nanny-lambrecht",
"lampe": "friedo-lampe",
"landauer": "gustav-landauer",
"landor": "walter-savage-landor",
"landsbrg": "artur-landsberger",
"langbehn": "julius-langbehn",
"langbein": "august-friedrich-ernst-langbein",
"langef": "friedrich-albert-lange",
"langeh": "helene-lange",
"langens": "paul-langenscheidt",
"langewie": "wilhelm-langewiesche",
"langhein": "karl-heinrich-von-lang",
"laroche": "maria-sophie-von-la-roche-geb-gutermann",
"lasale": "antoine-de-la-sale",
"lasker": "else-lasker-schueler",
"lasssalle": "ferdinand-lassalle",
"latzko": "andreas-latzko",
"lauffer": "otto-lauffer",
"lawrencd": "d-h-lawrence",
"lawrence": "thomas-edward-lawrence",
"leadbeat": "charles-webster-leadbeater",
"leffler": "anne-charlotte-leffler",
"leifhelm": "hans-leifhelm",
"leipzige": "leon-leipziger",
"leitner": "maria-leitner",
"leixner": "otto-von-leixner",
"lemonnie": "camille-lemonnier",
"lenclos": "ninon-de-lenclos",
"leppin": "paul-leppin",
"lequeux": "william-le-queux",
"lerbs": "karl-lerbs",
"leutelt": "gustav-leutelt",
"levertin": "oskar-levertin",
"levett": "oswald-levett",
"lewes": "george-henry-lewes",
"lewis": "sinclair-lewis",
"lhotzky": "heinrich-lhotzky",
"libai": "li-bai",
"lichtwar": "alfred-lichtwark",
"lichtwer": "magnus-gottfried-lichtwer",
"lieberma": "max-liebermann",
"liebknec": "wilhelm-liebknecht",
"liebstoe": "hans-liebstoeckl",
"lienhard": "friedrich-lienhard",
"lilienca": "adda-freifrau-von-liliencron",
"lindaup": "paul-lindau",
"lindener": "michael-lindener",
"linguet": "simon-nicolas-henri-linguet",
"lipsius": "maria-lipsius",
"locke": "john-locke",
"loerke": "oskar-loerke",
"loewenfe": "leopold-loewenfeld",
"longfell": "henry-wadsworth-longfellow",
"loos": "adolf-loos",
"loti": "pierre-loti",
"louvet": "jean-baptiste-louvet",
"louys": "pierre-lous",
"lucka": "emil-lucka",
"ludwig2": "ludwig-ii-von-bayern",
"ludwige": "emil-ludwig",
"lux": "joseph-august-lux",
"mader": "friedrich-wilhelm-mader",
"maeterli": "maurice-maeterlinck",
"magnus": "erwin-magnus",
"mallarme": "stephane-mallarme",
"malot": "hector-malot",
"malss": "karl-balthasar-malss",
"maltzahe": "elisabeth-von-maltzahn",
"maltzan": "heinrich-von-maltzan",
"mannh": "heinrich-mann",
"mannk": "klaus-heinrich-thomas-mann",
"manueln": "niklaus-manuel",
"marguerv": "victor-margueritte",
"margvalo": "margaretha-von-valois",
"mariathe": "maria-theresia-von-oesterreich",
"mariefra": "marie-de-france",
"marni": "jeanne-marni",
"marryat": "frederick-marryat",
"marryatf": "florence-marryat",
"martens": "kurt-martens",
"marti": "hugo-marti",
"masaryk": "tom-garrigue-masaryk",
"maximili": "maximilian-i-von-habsburg",
"may": "karl-may",
"mehring": "franz-mehring",
"meissnea": "august-gottlieb-meissner",
"meissner": "alfred-meissner",
"mendelba": "felix-mendelssohn-bartholdy",
"mendes": "catulle-mendes",
"mentzer": "johann-mentzer",
"meredith": "george-meredith",
"mereschk": "dmitri-sergejewitsch-mereschkowski",
"merian": "matthaeus-merian",
"messer": "max-messer",
"messner": "josef-messner",
"meyerj": "johann-meyer",
"meyermer": "theodor-meyer-merian",
"meyr": "melchior-meyr",
"meysenbu": "malwida-von-meysenbug",
"michaeli": "karin-michalis",
"michelet": "jules-michelet",
"mickiewi": "adam-mickiewicz",
"milow": "stephan-von-millenkovich",
"mirbeau": "octave-mirbeau",
"modersoh": "paula-modersohn-becker",
"moebius": "paul-julius-moebius",
"mohrmax": "max-mohr",
"molina": "tirso-de-molina",
"mongdsi": "mong-ds",
"montaign": "michel-de-montaigne",
"montanus": "martin-montanus",
"montesqu": "montesquieu",
"montgome": "malla-montgomery-silfverstolpe",
"mooreg": "george-moore",
"mooret": "thomas-moore",
"morgenst": "christian-morgenstern",
"morgenth": "hans-morgenthaler",
"morier": "james-morier",
"moritz": "karl-philipp-moritz",
"morold": "max-von-millenkovich",
"morrison": "arthur-morrison",
"moschero": "johann-hans-michael-moscherosch",
"mosen": "julius-mosen",
"moser": "ernst-moser",
"muehlbac": "luise-muehlbach",
"muellenh": "karl-muellenhoff",
"muellera": "adam-mueller-guttenbrunn",
"muetzelb": "adolf-muetzelburg",
"muhammad": "prophet-mohammed",
"mulford": "prentice-mulford",
"multerer": "hans-multerer",
"mundt": "theodor-mundt",
"musil": "robert-musil",
"nathusiu": "marie-nathusius",
"natorp": "paul-natorp",
"naumann": "friedrich-naumann",
"neander": "joachim-neander",
"neumannk": "karl-eugen-neumann",
"neumayer": "georg-von-neumayer",
"nicolaip": "philipp-nicolai",
"niemanna": "august-wilhelm-otto-niemann",
"nighting": "florence-nightingale",
"nohl": "ludwig-nohl",
"nordau": "max-nordau",
"nordensk": "otto-nordenskjoeld",
"nordhaus": "richard-nordhausen",
"norris": "frank-norris",
"nostitz": "helene-nostitz",
"nowak": "karl-friedrich-nowak",
"obst": "arthur-obst",
"oehlensc": "adam-gottlob-oehlenschlaeger",
"oeser": "hermann-oeser",
"oetker": "august-oetker",
"okakura": "kakuzo-okakura",
"olden": "balder-olden",
"olfers": "marie-von-olfers",
"oliphant": "margaret-oliphant",
"ompteda": "georg-freiherr-von-ompteda",
"opitz": "martin-opitz",
"oppenhei": "edward-phillips-oppenheim",
"orzeszko": "eliza-orzeszkowa",
"ostwald": "wilhelm-ostwald",
"ostwaldh": "hans-ostwald",
"ottwalt": "ernst-ottwalt",
"paalzow": "henriette-paalzow",
"paatz": "herbert-paatz",
"pajeken": "friedrich-joachim-pajeken",
"pannwitz": "max-pannwitz",
"panteniu": "theodor-hermann-pantenius",
"pappenhe": "bertha-pappenheim",
"paquet": "alfons-paquet",
"parabell": "ferdinand-grautoff",
"pascal": "blaise-pascal",
"pastor": "willy-pastor",
"paula": "adolf-paul",
"paulig": "gustav-pauli",
"paulus": "eduard-paulus",
"peary": "robert-edwin-peary",
"pellico": "silvio-pellico",
"perezdeh": "ginez-perez-de-hita",
"perezgal": "benito-perez-galds",
"perfall": "anton-von-perfall",
"perfallk": "karl-von-perfall",
"petoefi": "sndor-petoefi",
"petroniu": "titus-petronius",
"pfeiffer": "ida-pfeiffer",
"pfeiffgw": "georg-wilhelm-pfeiffer",
"philippe": "charles-louis-philippe",
"piccolom": "alessandro-piccolomini",
"pichler": "adolf-pichler",
"pierson": "karoline-pierson",
"pirandel": "luigi-pirandello",
"placzek": "siegfried-placzek",
"plautus": "titus-maccius-plautus",
"poeck": "wilhelm-poeck",
"poetzl": "eduard-poetzl",
"ponten": "josef-ponten",
"pontoppi": "henrik-pontoppidan",
"poradows": "marguerite-poradowska",
"poritzky": "jakob-elias-poritzky",
"praetori": "johannes-praetorius",
"prellwit": "gertrud-prellwitz",
"prevostm": "marcel-prevost",
"prinzhor": "hans-prinzhorn",
"proehle": "heinrich-proehle",
"proelss": "johannes-proelss",
"prosch": "peter-prosch",
"proust": "marcel-proust",
"prutz": "robert-eduard-prutz",
"przerwa": "kazimierz-przerwa-tetmajer",
"putlitz": "gustav-heinrich-gans-zu-putlitz",
"puttkamr": "alberta-von-puttkamer",
"queri": "georg-queri",
"quevedo": "don-francisco-gomez-de-quevedo",
"quidde": "ludwig-quidde",
"quincey": "thomas-de-quincey",
"radbruch": "gustav-radbruch",
"radek": "karl-radek",
"ranke": "leopold-von-ranke",
"rankef": "friedrich-ranke",
"rankjo": "josef-rank",
"rathenau": "walther-rathenau",
"ratzel": "friedrich-ratzel",
"raumer": "friedrich-ludwig-georg-von-raumer",
"raupach": "ernst-benjamin-salomo-raupach",
"ravendro": "karl-doehring",
"rebhun": "paul-rebhun-rebhuhn",
"rebmann": "georg-friedrich-rebmann",
"reck": "fritz-reck-mallaczewen",
"regnier": "henri-de-regnier",
"reichena": "rudolf-reichenau",
"reinhard": "luise-reinhardt",
"reiser": "hans-reiser",
"reissner": "larissa-reissner",
"reitzel": "robert-reitzel",
"renan": "ernest-renan",
"reusch": "rudolf-reusch",
"revel": "hugo-alphonso-revel",
"reymont": "wadysaw-stanisaw-reymont",
"rheinhar": "emil-alphons-rheinhardt",
"richterj": "joseph-richter",
"richterl": "ludwig-richter",
"richthof": "manfred-von-richthofen",
"ring": "max-ring",
"rist": "johann-rist",
"ritter": "johann-wilhelm-ritter",
"rochlitz": "friedrich-rochlitz",
"rod": "edouard-rod",
"rodaroda": "sndor-friedrich-rosenfeld",
"rodenbac": "georges-rodenbach",
"rodenber": "julius-rodenberg",
"roehle": "reinhard-roehle",
"roelvaag": "ole-edvart-rlvaag",
"roessler": "carl-ressner",
"rollandr": "romain-rolland",
"roquette": "otto-roquette",
"rose": "felicitas-rose",
"rosegghl": "hans-ludwig-rosegger",
"rosenhay": "paul-rosenhayn",
"rosenkra": "palle-adam-vilhelm-rosenkrantz",
"rost": "johann-christoph-rost",
"rostand": "edmond-rostand",
"roth": "joseph-roth",
"rothplet": "anna-rothpletz",
"rudolfvh": "rudolf-kronprinz-von-oesterreich-ungarn",
"ruederer": "josef-ruederer",
"rumi": "dschalal-ad-din-muhammad-rumi",
"rumohr": "karl-friedrich-von-rumohr",
"ruppersb": "albert-ruppersberg",
"ruppius": "otto-ruppius",
"sack": "gustav-sack",
"sade": "donatien-alphonse-francois-de-sade",
"sadi": "musliheddin-sadi",
"sailerj": "johann-michael-sailer",
"saint-si": "louis-de-rouvroy-duc-de-saint-simon",
"salburg": "edith-graefin-salburg",
"salgari": "emilio-salgari",
"salome": "lou-andreas-salome",
"salomoer": "erich-salomon",
"salus": "hugo-salus",
"samain": "albert-samain",
"santayan": "jorge-augustn-nicols-ruiz-de-santayan",
"sapper": "agnes-sapper",
"sauerlan": "max-sauerlandt",
"scarron": "paul-scarron",
"schack": "adolf-friedrich-von-schack",
"schaefal": "albrecht-schaeffer",
"schaefer": "wilhelm-schaefer",
"schaffne": "jakob-schaffner",
"schanz": "frida-schanz",
"scharlin": "henrik-scharling",
"schaukal": "richard-von-schaukal",
"schaumbe": "heinrich-schaumberger",
"scheerba": "paul-scheerbart",
"schefer": "leopold-schefer",
"scheidema": "philipp-scheidemann",
"scheler": "max-scheler",
"schellic": "caroline-schelling",
"schenken": "max-von-schenkendorf",
"scherer": "wilhelm-scherer",
"schickel": "rene-schickele",
"schieber": "anna-schieber",
"schihuth": "hans-schiebelhuth",
"schillcg": "carl-georg-schillings",
"schillin": "gustav-schilling",
"schirges": "georg-gottlieb-schirges",
"schirmac": "kaethe-schirmacher",
"schiroka": "alfred-schirokauer",
"schlaf": "johannes-schlaf",
"schlegld": "dorothea-schlegel",
"schlenth": "paul-schlenther",
"schliema": "heinrich-schliemann",
"schliepm": "hans-schliepmann",
"schlippe": "gabriele-freifrau-von-schlippenbach",
"schloegl": "friedrich-schloegl",
"schmitzo": "oscar-adolf-hermann-schmitz",
"schmolle": "gustav-schmoller",
"schneidt": "thekla-schneider",
"schoell": "adolf-schoell",
"schoenhe": "karl-schoenherr",
"schoenw": "franz-xaver-von-schoenwerth",
"schorn": "adelheid-von-schorn",
"schrebem": "moritz-schreber",
"schreber": "daniel-paul-schreber",
"schreibe": "clara-schreiber",
"schreyvo": "joseph-schreyvogel",
"schudt": "jacob-schudt",
"schueler": "gustav-schueler",
"schulzea": "friedrich-august-schulze",
"schulzsm": "bernhardine-schulze-smidt",
"schumact": "tony-schumacher",
"schumanr": "robert-schumann",
"schummel": "johann-gottlieb-schummel",
"schupp": "johannes-martin-schupp",
"schwarze": "annemarie-schwarzenbach",
"schwarzg": "georg-schwarz",
"schweich": "robert-schweichel",
"schwerio": "otto-schwerin",
"schwob": "marcel-schwob",
"scottf": "robert-falcon-scott",
"seeckt": "hans-von-seeckt",
"seidlw": "walter-seidl",
"seitz": "robert-seitz",
"serner": "walter-serner",
"servaes": "franz-servaes",
"seton": "ernest-thompson-seton",
"sevigne": "marie-de-rabutin-chantal-marquise-de-sevigne",
"shelley": "mary-shelley",
"shelleyp": "percy-bysshe-shelley",
"siber": "jules-siber",
"siebe": "josephine-siebe",
"sievekin": "amalie-sieveking",
"skjoldbo": "johan-skjoldborg",
"skowronf": "fritz-skowronnek",
"skowronr": "richard-skowronnek",
"skram": "amalie-skram",
"sling": "paul-schlesinger",
"smiles": "samuel-smiles",
"smollett": "tobias-smollett",
"soehle": "karl-soehle",
"sohnrey": "heinrich-sohnrey",
"soldan": "wilhelm-gottlieb-soldan",
"sologub": "fjodor-kusmitsch-teternikow",
"sophar": "moritz-wilhelm-sophar",
"southey": "robert-southey",
"speckman": "diedrich-speckmann",
"spector": "mordecai-spector",
"spiero": "heinrich-spiero",
"spinoza": "baruch-de-spinoza",
"spohr": "louis-spohr",
"sprenger": "jakob-sprenger",
"ssymank": "paul-ssymank",
"stach": "ilse-von-stach",
"stacpool": "henry-de-vere-stacpoole",
"stael": "frau-von-stal",
"stanley": "henry-morton-stanley",
"stavenhg": "fritz-stavenhagen",
"stefbelg": "stephanie-von-belgien",
"steffen": "gustaf-f-steffen",
"steffens": "henrich-steffens",
"stegeman": "hermann-stegemann",
"stehr": "hermann-stehr",
"steinhau": "heinrich-steinhausen",
"steinvom": "heinrich-friedrich-karl-reichsfreiherr-vom-und-zum-stein",
"sternado": "adolf-stern",
"sternber": "leo-sternberg",
"sternhei": "carl-sternheim",
"stettenh": "julius-stettenheim",
"stieler": "karl-stieler",
"stier": "adelheid-stier",
"stilgeba": "edward-stilgebauer",
"stona": "maria-stona",
"storch": "ludwig-storch",
"straparo": "giovanni-francesco-straparola",
"stratz": "rudolf-stratz",
"strauss": "david-friedrich-strauss",
"streckfua": "adolf-streckfuss",
"stresema": "gustav-stresemann",
"strobl": "karl-hans-strobl",
"stuerzer": "rudolf-stuerzer",
"sturm": "julius-sturm",
"sturz": "helfrich-peter-sturz",
"sutermei": "otto-sutermeister",
"svensson": "jn-svensson",
"svevo": "italo-svevo",
"swinburn": "charles-swinburne",
"sydow": "margarete-von-sydow",
"sylva": "elisabeth-von-rumaenien",
"tacitus": "publius-cornelius-tacitus",
"tagore": "rabindranath-tagore",
"tanera": "carl-tanera",
"tartarug": "ubald-tartaruga",
"taschenb": "ernst-ludwig-taschenberg",
"taura": "august-peters",
"tegner": "esaias-tegner",
"telmann": "konrad-telmann",
"temme": "hubertus-temme",
"tennyson": "alfred-tennyson",
"theden": "dietrich-theden",
"theis": "hans-theis",
"theresba": "therese-von-bayern",
"theuriet": "andre-theuriet",
"thode": "heinrich-thode",
"thomasvk": "thomas-von-kempen",
"thoresen": "magdalene-thoresen",
"tillier": "claude-tillier",
"toepffer": "rudolf-toepffer",
"tolstiak": "alexei-konstantinowitsch-tolstoi",
"tolstoia": "alexei-nikolajewitsch-tolstoi",
"tovote": "heinz-tovote",
"treitsch": "heinrich-von-treitschke",
"trelawny": "edward-john-trelawny",
"treller": "franz-treller",
"triller": "daniel-wilhelm-triller",
"trinius": "august-trinius",
"trojan": "johannes-trojan",
"trotzki": "leo-trotzki",
"ubell": "hermann-ubell",
"udet": "ernst-udet",
"ule": "ernst-ule",
"ulrichs": "karl-heinrich-ulrichs",
"undset": "sigrid-undset",
"ungern": "alexander-von-ungern-sternberg",
"valentin": "karl-valentin",
"verlaine": "paul-verlaine",
"viebig": "clara-viebig",
"villinge": "hermine-villinger",
"vleuten": "carl-ferdinand-van-vleuten",
"voegtlin": "adolf-voegtlin",
"voigtw": "wilhelm-voigt",
"voll": "karl-voll",
"vollrat": "heinrich-vollrat-schumacher",
"voltaire": "francois-marie-arouet-de-voltaire",
"vorlaend": "karl-vorlaender",
"vossjul": "julius-von-voss",
"vrchlick": "jaroslav-vrchlick",
"vulpius": "christian-august-vulpius",
"wachenhu": "hans-wachenhusen",
"wagnerhe": "hermann-wagner-2",
"waldeck": "heinrich-suso-waldeck",
"weissecf": "christian-felix-weisse",
"weissfer": "weiss-ferdl",
"willkomm": "ernst-adolf-willkomm",
"wiseman": "nicholas-patrick-stephen-wiseman",
"zahn": "ernst-zahn",
"zweig": "stefan-zweig"
}
}
qqnmlf5nj8pp53j086q7ovu0hv5ayys
Template:Projekt-gutenberg.org/Wex-BOT.json
10
175663
743966
2026-05-23T16:13:13Z
PerfektesChaos
18104
PerfektesChaos created the page [[Template:Projekt-gutenberg.org/Wex-BOT.json]] using a non-default content model "JSON": supposed JSON
743966
json
application/json
{}
mbqvfsr1gawa9eid5wppvmaes442iwf
743967
743966
2026-05-23T16:15:26Z
PerfektesChaos
18104
Setup
743967
json
application/json
{
"suite": "projekt-gutenberg.org",
"sub": "WexStr-BOT",
"serial": "2026-05-21",
"hash": {
"haller/gedichte/alpen": null,
"haller/gedichte/vernunft": null,
"hertz/erzaehlg/Kapitel1": null,
"weil/band1/inhalt": null,
"autoren/namen/blumenre": {
"a": "paul-blumenreich"
},
"autoren/namen/ichenhae": {
"a": "eliza-ichenhaeuser"
},
"autoren/namen/winkler": {
"a": "eugen-gottlob-winkler"
},
"boetie/knechtsc/knechtsc": {
"a": "etienne-de-la-botie",
"w": "von-der-freiwilligen-knechtschaft-des-menschen"
},
"cody/buffalo/buffalo": {
"a": "helen-cody",
"w": "buffalo-bill-der-letzte-grosse-kundschafter"
},
"eberfw/gedichte/chap001": {
"a": "friedrich-wilhelm-weber",
"w": "vier-gedichte",
"n": 2
},
"eberfw/gedichte/chap002": {
"a": "friedrich-wilhelm-weber",
"w": "vier-gedichte",
"n": 3
},
"eberfw/gedichte/chap003": {
"a": "friedrich-wilhelm-weber",
"w": "vier-gedichte",
"n": 4
},
"eberfw/gedichte/chap004": {
"a": "friedrich-wilhelm-weber",
"w": "vier-gedichte",
"n": 5
},
"ehrensta/tubutsch/tubutsch.html": {
"a": "albert-ehrenstein",
"w": "albert-ehrenstein-tubutsch"
},
"ernst/semper1/semper1": {
"a": "otto-ernst",
"w": "otto-ernst-asmus-sempers-jugendland"
},
"ernst/semper2/semper2": {
"a": "otto-ernst",
"w": "otto-ernst-semper-der-juengling"
},
"ernst/semper3/semper3": {
"a": "otto-ernst",
"w": "otto-ernst-semper-der-mann"
},
"george/blumen/blumen": {
"a": "stefan-george",
"w": "die-blumen-des-boesen"
},
"george/seele/chap001": {
"a": "stefan-george",
"w": "das-jahr-der-seele",
"n": 2
},
"gottschl/pietist/pietist": {
"a": "luise-adelgunde-victorie-gottsched-geb-kulmus",
"w": ""
},
"henning/koran/chap004": {
"a": "max-henning",
"w": "der-koran",
"n": 4
},
"henning/koran/chap007": {
"a": "max-henning",
"w": "der-koran",
"n": 7
},
"herbert/rufnacht/rufnacht": {
"a": "wilhelm-mayer",
"w": "der-ruf-in-der-nacht"
},
"https://www.projekt-gutenberg.org/antholog/s-rheinlan/chap030.html": {
"a": "anthologien",
"w": "sagen-aus-dem-rheinland",
"n": 31,
"linktest": "Die weiße Frau im Düsseldorfer Schloß"
},
"jensen/judenkoe/judenkoe": {
"a": "wilhelm-jensen",
"w": "die-juden-von-coelln"
},
"klabund/decamero/decamero": {
"a": "alfred-henschke",
"w": "decameron"
},
"klabund/literatu/literatu": {
"a": "alfred-henschke",
"w": "deutsche-literaturgeschichte-in-einer-stunde"
},
"klabund/stoerteb/stoerteb": {
"a": "alfred-henschke",
"w": "klabund-stoertebecker"
},
"lichtens/gedichte/chap113": {
"a": "alfred-lichtenstein",
"w": "alfred-lichtenstein-gedichte",
"n": 114
},
"muellerj/lindenbe/lindenbe": {
"a": "johann-gottwerth-mueller",
"w": "siegfried-von-lindenberg"
},
"nicolai/sebaldus/sebaldus": {
"a": "christoph-friedrich-nicolai",
"w": "friedrich-nicolai-sebaldus-nothanker"
},
"rabener/satirrab/sat2008": {
"a": "gottlieb-wilhelm-rabener",
"w": "gottlieb-wilhelm-rabeners-satiren",
"n": 26
},
"sagen/burgenla/burgenla": {
"a": "anthologien",
"w": "sagen-aus-dem-rheinland",
"n": 88
},
"sagen/posen/posen": {
"a": "anthologien",
"w": "sagen-aus-schwaben",
"n": 155
},
"sagen/sachsen/sachsen": {
"a": "anthologien",
"w": "sagen-aus-schwaben",
"n": 49
},
"sailer/7schwabn/7schwabn": {
"a": "sebastian-sailer",
"w": "sebastian-sailer-die-sieben-schwaben"
},
"schleglf/lucinde/lucinde": {
"a": "friedrich-schlegel",
"w": "lucinde"
},
"stendhal/ichmensc/ichmensc": {
"a": "henri-beyle",
"w": "bekenntnisse-eines-ichmenschen"
},
"stendhal/kartause/kartause": {
"a": "henri-beyle",
"w": "die-kartause-von-parma"
},
"stendhal/liebe/liebe": {
"a": "henri-beyle",
"w": "ueber-die-liebe"
},
"stendhal/rotschwa/rotschwa": {
"a": "henri-beyle",
"w": "rot-und-schwarz"
},
"tanzmaen/chap002": {
"a": "arthur-conan-doyle",
"w": "die-tanzenden-maennchen",
"n": 3
},
"tanzmaen/chap004": {
"a": "arthur-conan-doyle",
"w": "die-tanzenden-maennchen",
"n": 5
},
"voss/luise/luise": {
"a": "johann-heinrich-voss",
"w": "voss-luise"
},
"weisse/franzisk/franzisk": {
"a": "ernst-weiss",
"w": "franziska"
},
"weisse/galeere/galeere": {
"a": "ernst-weiss",
"w": "die-galeere"
},
"wundt/erlebtes/erlebtes": {
"a": "wilhelm-maximilian-wundt",
"w": "erlebtes-und-erkanntes"
},
"wundtt/ichberge/ichberge": {
"a": "theodor-wundt",
"w": "ich-und-die-berge"
}
}
}
cn4y9yu0u4ng0iydke9umf42xzx0ey9
Module:Vorlage:projekt-gutenberg.org
828
175664
743969
2026-05-23T16:37:20Z
PerfektesChaos
18104
2026-05-21
743969
Scribunto
text/plain
local PGorg = { suite = "projekt-gutenberg.org",
serial = "2026-05-21",
item = 0,
globals = { WLink = 19363224 },
config = { }
}
--[=[
projekt-gutenberg.org
loadJsonData: /config.json
/a.json
]=]
if mw.site.server:find( ".beta.wmflabs.org", 4, true ) then
require( "strict" )
end
require( "strict" )
local Failsafe = PGorg
local GlobalMod = PGorg
local foreignModule = function ( access, advanced, append, alt, alert )
-- Fetch global module
-- Precondition:
-- access -- string, with name of base module
-- advanced -- true, for require(); else mw.loadData()
-- append -- string, with subpage part, if any; or false
-- alt -- number, of wikidata item of root; or false
-- alert -- true, for throwing error on data problem
-- Postcondition:
-- Returns whatever, probably table
-- 2020-01-01
local storage = access
local finer = function ()
if append then
storage = string.format( "%s/%s",
storage,
append )
end
end
local fun, lucky, r, suited
if advanced then
fun = require
else
fun = mw.loadData
end
GlobalMod.globalModules = GlobalMod.globalModules or { }
suited = GlobalMod.globalModules[ access ]
if not suited then
finer()
lucky, r = pcall( fun, "Module:" .. storage )
end
if not lucky then
if not suited and
type( alt ) == "number" and
alt > 0 then
suited = string.format( "Q%d", alt )
suited = mw.wikibase.getSitelink( suited )
GlobalMod.globalModules[ access ] = suited or true
end
if type( suited ) == "string" then
storage = suited
finer()
lucky, r = pcall( fun, storage )
end
if not lucky and alert then
error( "Missing or invalid page: " .. storage )
end
end
return r
end -- foreignModule()
local facility = function ( access )
-- Retrieve JSON page name
-- Precondition:
-- access -- page identifier
-- Postcondition:
-- Returns page name
return string.format( "%s/%s.json", PGorg.sources, access )
end -- facility()
local factory = function ( apply )
-- Create external link
-- Precondition:
-- apply -- table, with URL segments
-- .site
-- .a
-- .w
-- .n
-- .live
-- .locked
-- .show
-- Postcondition:
-- Returns string, with external link
local r = apply.site
local show = apply.show
local last
if apply.show then
show = apply.show
if not show:match( "[.!?]$" ) and
not show:match( "[.!?]''$" ) then
last = true
end
else
show = string.format( "?????%s?????", apply.a )
if not PGorg.scream then
fault( "unknown", show )
end
end
if type( PGorg.config.a ) == "table" and
type( PGorg.config.a.slice ) == "string" then
r = r .. PGorg.config.a.slice
end
r = r .. apply.a
if apply.w then
if type( PGorg.config.w ) == "table" and
type( PGorg.config.w.slice ) == "string" then
r = r .. PGorg.config.w.slice
end
r = r .. apply.w
if apply.n then
if type( PGorg.config.n ) == "table" and
type( PGorg.config.n.slice ) == "string" then
r = r .. PGorg.config.n.slice
end
r = r .. apply.n
end
end
r = r .. "/"
if not apply.locked then
show = mw.text.nowiki( mw.text.decode( show ) )
if apply.live then
show = string.format( "''%s''", show )
end
end
if last then
show = show .. "."
end
r = string.format( "[%s %s]", r, show )
if PGorg.scream then
r = string.format( "%s %s", r, PGorg.scream )
end
return r
end -- factory()
local fault = function ( alert, about, access )
-- Create error message
-- Precondition:
-- alert -- string, message identifier
-- about -- ID code
-- access -- JSON id
-- Postcondition:
-- Build PGorg.scream
-- Returns PGorg.scream
local e = mw.html.create( "span" )
:addClass( "error" )
local err = PGorg.config.err
if type( err ) ~= "table" then
err = { }
end
e:wikitext( string.format( "[[%s]] – ", PGorg.sources ) )
if type( err[ alert ] ) == "string" then
e:wikitext( err[ alert ] )
else
e:wikitext( alert )
end
if type( about ) == "string" then
local e2 = mw.html.create( "code" )
:css( "white-space", "nowrap" )
:wikitext( " – ",
mw.text.nowiki( about ) )
e:wikitext( tostring( e2 ) )
end
if type( append ) == "string" then
e:wikitext( string.format( " – [[%s]]",
facility( access ) ) )
end
PGorg.scream = tostring( e )
if type( err.cat ) == "string" then
PGorg.scream = string.format( "%s[[category:%s]]",
PGorg.scream, err.cat )
end
return PGorg.scream
end -- fault()
local fetch = function ( access, allow )
-- Retrieve JSON object
-- Precondition:
-- access -- page identifier
-- allow -- lazy mode
-- Postcondition:
-- Returns JSON object, or not
local lucky, json, r
local s = facility( access )
lucky, json = pcall( mw.loadJsonData, s )
if type( json ) == "table" then
r = json
elseif not allow then
fault( "0json", false, s )
end
return r
end -- fetch()
local fix = function ( a, authors )
-- Fix author code by legacy redirect
-- Precondition:
-- a -- string, with author code
-- authors -- table, with current name hash map
-- Postcondition:
-- Returns table, with author code and link text, or not
local last, r, shift
if a:match( "^[1-9]%d?%d?%d?$" ) then
shift = "Num"
last = true
elseif a:match( "^%l%l%l+%d?$" ) and a:len() <= 9 then
shift = "Str"
end
if shift then
local json
shift = "Aex" .. shift
json = fetch( shift, true )
if json then
if type( json.hash ) == "table" then
local swap = json.hash[ a ]
if swap then
shift = authors[ swap ]
if shift then
r = { }
r.a = swap
r.show = shift
r.live = true
else
fault( "redir", swap )
end
elseif last then
fault( "invalid", a )
end
else
fault( "0hash", false, shift )
end
elseif last then
fault( "invalid", a )
end
end
return r
end -- fix()
local fulfil = function ( args )
-- Execute task
-- Precondition:
-- args -- table, with parameters
-- Postcondition:
-- Returns string, with transclusion
local r
if args.sources then
PGorg.sources = args.sources
else
PGorg.sources = string.format( "%s:%s",
mw.site.namespaces.Template.id,
PGorg.suite )
end
PGorg.config = fetch( "config" )
if PGorg.config then
if type( PGorg.config.site ) ~= "string" then
r = fault( "0site", false, "config" )
elseif not args.a then
r = fault( "0a" )
elseif not args.a:match( "^[%l%-%d]+$" ) then
r = fault( "invalid", args.a )
end
if not r then
local url = { }
url.site = PGorg.config.site
if args.w then
if args.a:match( "^%l%l%l[%l%-]*%d?$" ) then
url.a = args.a
if type( PGorg.config.w ) == "table" and
type( PGorg.config.w.show ) == "string" then
url.show = PGorg.config.w.show
else
url.show = args.w
end
if args.n then
if args.n:match( "^[1-9]%d?%d?$" ) then
url.n = args.n
else
r = fault( "invalid", args.n )
end
end
else
r = fault( "invalid", args.w )
end
else
local json = fetch( "a" )
if json then
if type( json.hash ) == "table" then
local show = json.hash[ args.a ]
if show then
url.a = args.a
url.show = show
url.live = true
else
local polyfill = fix( args.a, json.hash )
if polyfill then
url.a = polyfill.a
url.show = polyfill.show
url.live = polyfill.live
elseif PGorg.scream then
r = PGorg.scream
elseif args.lazy then
url.a = args.a
else
fault( "invalid", args.a )
end
end
else
r = fault( "0hash", false, "a" )
end
else
r = PGorg.scream
end
end
if not r then
if args.show then
url.show = args.show
url.locked = true
elseif not url.show and args.lazy then
local WLink = foreignModule( "WLink",
true,
false,
PGorg.globals.WLink )
if type( WLink ) == "table" and
type( WLink.getArticleBase ) == "function" then
url.show = WLink.getArticleBase()
end
end
r = factory( url )
end
end
else
r = PGorg.scream
end
return r
end -- fulfil()
Failsafe.failsafe = function ( atleast )
-- Retrieve versioning and check for compliance
-- Precondition:
-- atleast -- string, with required version
-- or wikidata|item|~|@ or false
-- Postcondition:
-- Returns string -- with queried version/item, also if problem
-- false -- if appropriate
-- 2024-03-01
local since = atleast
local last = ( since == "~" )
local linked = ( since == "@" )
local link = ( since == "item" )
local r
if last or link or linked or since == "wikidata" then
local item = Failsafe.item
since = false
if type( item ) == "number" and item > 0 then
local suited = string.format( "Q%d", item )
if link then
r = suited
else
local entity = mw.wikibase.getEntity( suited )
if type( entity ) == "table" then
local seek = Failsafe.serialProperty or "P348"
local vsn = entity:formatPropertyValues( seek )
if type( vsn ) == "table" and
type( vsn.value ) == "string" and
vsn.value ~= "" then
if last and vsn.value == Failsafe.serial then
r = false
elseif linked then
if mw.title.getCurrentTitle().prefixedText
== mw.wikibase.getSitelink( suited ) then
r = false
else
r = suited
end
else
r = vsn.value
end
end
end
end
elseif link then
r = false
end
end
if type( r ) == "nil" then
if not since or since <= Failsafe.serial then
r = Failsafe.serial
else
r = false
end
end
return r
end -- Failsafe.failsafe()
-- Export
local p = { }
p.f = function ( frame )
-- Template call
local params = { }
local parent = frame:getParent().args
local s
params.sources = frame.args.root
params.sA = parent.a
params.sW = parent.w
params.n = parent.n
params.show = parent.linktext
for k, v in pairs( params ) do
if v == "" then
params[ k ] = false
end
end -- for k, v
if frame.args.lazy == "1" then
params.lazy = true
end
return fulfil( params )
end -- p.f
p.failsafe = function ( frame )
-- Versioning interface
local s = type( frame )
local since
if s == "table" then
since = frame.args[ 1 ]
elseif s == "string" then
since = frame
end
if since then
since = mw.text.trim( since )
if since == "" then
since = false
end
end
return Failsafe.failsafe( since ) or ""
end -- p.failsafe
return p
r8vjsy08mamo3xxrq2gs537uigkhcoc
743972
743969
2026-05-23T16:52:43Z
PerfektesChaos
18104
m
743972
Scribunto
text/plain
local PGorg = { suite = "projekt-gutenberg.org",
serial = "2026-05-21",
item = 0,
globals = { WLink = 19363224 },
config = { }
}
--[=[
projekt-gutenberg.org
loadJsonData: /config.json
/a.json
]=]
if mw.site.server:find( ".beta.wmflabs.org", 4, true ) then
require( "strict" )
end
require( "strict" )
local Failsafe = PGorg
local GlobalMod = PGorg
local foreignModule = function ( access, advanced, append, alt, alert )
-- Fetch global module
-- Precondition:
-- access -- string, with name of base module
-- advanced -- true, for require(); else mw.loadData()
-- append -- string, with subpage part, if any; or false
-- alt -- number, of wikidata item of root; or false
-- alert -- true, for throwing error on data problem
-- Postcondition:
-- Returns whatever, probably table
-- 2020-01-01
local storage = access
local finer = function ()
if append then
storage = string.format( "%s/%s",
storage,
append )
end
end
local fun, lucky, r, suited
if advanced then
fun = require
else
fun = mw.loadData
end
GlobalMod.globalModules = GlobalMod.globalModules or { }
suited = GlobalMod.globalModules[ access ]
if not suited then
finer()
lucky, r = pcall( fun, "Module:" .. storage )
end
if not lucky then
if not suited and
type( alt ) == "number" and
alt > 0 then
suited = string.format( "Q%d", alt )
suited = mw.wikibase.getSitelink( suited )
GlobalMod.globalModules[ access ] = suited or true
end
if type( suited ) == "string" then
storage = suited
finer()
lucky, r = pcall( fun, storage )
end
if not lucky and alert then
error( "Missing or invalid page: " .. storage )
end
end
return r
end -- foreignModule()
local facility = function ( access )
-- Retrieve JSON page name
-- Precondition:
-- access -- page identifier
-- Postcondition:
-- Returns page name
return string.format( "%s/%s.json", PGorg.sources, access )
end -- facility()
local fault = function ( alert, about, access )
-- Create error message
-- Precondition:
-- alert -- string, message identifier
-- about -- ID code
-- access -- JSON id
-- Postcondition:
-- Build PGorg.scream
-- Returns PGorg.scream
local e = mw.html.create( "span" )
:addClass( "error" )
local err = PGorg.config.err
if type( err ) ~= "table" then
err = { }
end
e:wikitext( string.format( "[[%s]] – ", PGorg.sources ) )
if type( err[ alert ] ) == "string" then
e:wikitext( err[ alert ] )
else
e:wikitext( alert )
end
if type( about ) == "string" then
local e2 = mw.html.create( "code" )
:css( "white-space", "nowrap" )
:wikitext( " – ",
mw.text.nowiki( about ) )
e:wikitext( tostring( e2 ) )
end
if type( access ) == "string" then
e:wikitext( string.format( " – [[%s]]",
facility( access ) ) )
end
PGorg.scream = tostring( e )
if type( err.cat ) == "string" then
PGorg.scream = string.format( "%s[[category:%s]]",
PGorg.scream, err.cat )
end
return PGorg.scream
end -- fault()
local fetch = function ( access, allow )
-- Retrieve JSON object
-- Precondition:
-- access -- page identifier
-- allow -- lazy mode
-- Postcondition:
-- Returns JSON object, or not
local lucky, json, r
local s = facility( access )
lucky, json = pcall( mw.loadJsonData, s )
if type( json ) == "table" then
r = json
elseif not allow then
fault( "0json", false, s )
end
return r
end -- fetch()
local fiat = function ( apply )
-- Create external link
-- Precondition:
-- apply -- table, with URL segments
-- .site
-- .a
-- .w
-- .n
-- .live
-- .locked
-- .show
-- Postcondition:
-- Returns string, with external link
local r = apply.site
local last, show
if apply.show then
show = apply.show
if not show:match( "[.!?]$" ) and
not show:match( "[.!?]''$" ) then
last = true
end
else
show = string.format( "?????%s?????", apply.a )
if not PGorg.scream then
fault( "unknown", show )
end
end
if type( PGorg.config.a ) == "table" and
type( PGorg.config.a.slice ) == "string" then
r = r .. PGorg.config.a.slice
end
r = r .. apply.a
if apply.w then
if type( PGorg.config.w ) == "table" and
type( PGorg.config.w.slice ) == "string" then
r = r .. PGorg.config.w.slice
end
r = r .. apply.w
if apply.n then
if type( PGorg.config.n ) == "table" and
type( PGorg.config.n.slice ) == "string" then
r = r .. PGorg.config.n.slice
end
r = r .. apply.n
end
end
r = r .. "/"
if not apply.locked then
show = mw.text.nowiki( mw.text.decode( show ) )
if apply.live then
show = string.format( "''%s''", show )
end
end
if last then
show = show .. "."
end
r = string.format( "[%s %s]", r, show )
if PGorg.scream then
r = string.format( "%s %s", r, PGorg.scream )
end
return r
end -- fiat()
local fix = function ( a, authors )
-- Fix author code by legacy redirect
-- Precondition:
-- a -- string, with author code
-- authors -- table, with current name hash map
-- Postcondition:
-- Returns table, with author code and link text, or not
local last, r, shift
if a:match( "^[1-9]%d?%d?%d?$" ) then
shift = "Num"
last = true
elseif a:match( "^%l%l%l+%d?$" ) and a:len() <= 9 then
shift = "Str"
end
if shift then
local json
shift = "Aex" .. shift
json = fetch( shift, true )
if json then
if type( json.hash ) == "table" then
local swap = json.hash[ a ]
if swap then
shift = authors[ swap ]
if shift then
r = { }
r.a = swap
r.show = shift
r.live = true
else
fault( "redir", swap )
end
elseif last then
fault( "invalid", a )
end
else
fault( "0hash", false, shift )
end
elseif last then
fault( "invalid", a )
end
end
return r
end -- fix()
local fulfil = function ( args )
-- Execute task
-- Precondition:
-- args -- table, with parameters
-- Postcondition:
-- Returns string, with transclusion
local r
if args.sources then
PGorg.sources = args.sources
else
PGorg.sources = string.format( "%s:%s",
mw.site.namespaces.Template.id,
PGorg.suite )
end
PGorg.config = fetch( "config" )
if PGorg.config then
if type( PGorg.config.site ) ~= "string" then
r = fault( "0site", false, "config" )
elseif not args.a then
r = fault( "0a" )
elseif not args.a:match( "^[%l%-%d]+$" ) then
r = fault( "invalid", args.a )
end
if not r then
local url = { }
url.site = PGorg.config.site
if args.w then
if args.a:match( "^%l%l%l[%l%-]*%d?$" ) then
url.a = args.a
if type( PGorg.config.w ) == "table" and
type( PGorg.config.w.show ) == "string" then
url.show = PGorg.config.w.show
else
url.show = args.w
end
if args.n then
if args.n:match( "^[1-9]%d?%d?$" ) then
url.n = args.n
else
r = fault( "invalid", args.n )
end
end
else
r = fault( "invalid", args.w )
end
else
local json = fetch( "a" )
if json then
if type( json.hash ) == "table" then
local show = json.hash[ args.a ]
if show then
url.a = args.a
url.show = show
url.live = true
else
local polyfill = fix( args.a, json.hash )
if polyfill then
url.a = polyfill.a
url.show = polyfill.show
url.live = polyfill.live
elseif PGorg.scream then
r = PGorg.scream
elseif args.lazy then
url.a = args.a
else
fault( "invalid", args.a )
end
end
else
r = fault( "0hash", false, "a" )
end
else
r = PGorg.scream
end
end
if not r then
if args.show then
url.show = args.show
url.locked = true
elseif not url.show and args.lazy then
local WLink = foreignModule( "WLink",
true,
false,
PGorg.globals.WLink )
if type( WLink ) == "table" and
type( WLink.getArticleBase ) == "function" then
url.show = WLink.getArticleBase()
end
end
r = fiat( url )
end
end
else
r = PGorg.scream
end
return r
end -- fulfil()
Failsafe.failsafe = function ( atleast )
-- Retrieve versioning and check for compliance
-- Precondition:
-- atleast -- string, with required version
-- or wikidata|item|~|@ or false
-- Postcondition:
-- Returns string -- with queried version/item, also if problem
-- false -- if appropriate
-- 2024-03-01
local since = atleast
local last = ( since == "~" )
local linked = ( since == "@" )
local link = ( since == "item" )
local r
if last or link or linked or since == "wikidata" then
local item = Failsafe.item
since = false
if type( item ) == "number" and item > 0 then
local suited = string.format( "Q%d", item )
if link then
r = suited
else
local entity = mw.wikibase.getEntity( suited )
if type( entity ) == "table" then
local seek = Failsafe.serialProperty or "P348"
local vsn = entity:formatPropertyValues( seek )
if type( vsn ) == "table" and
type( vsn.value ) == "string" and
vsn.value ~= "" then
if last and vsn.value == Failsafe.serial then
r = false
elseif linked then
if mw.title.getCurrentTitle().prefixedText
== mw.wikibase.getSitelink( suited ) then
r = false
else
r = suited
end
else
r = vsn.value
end
end
end
end
elseif link then
r = false
end
end
if type( r ) == "nil" then
if not since or since <= Failsafe.serial then
r = Failsafe.serial
else
r = false
end
end
return r
end -- Failsafe.failsafe()
-- Export
local p = { }
p.f = function ( frame )
-- Template call
local params = { }
local parent = frame:getParent().args
params.sources = frame.args.root
params.sA = parent.a
params.sW = parent.w
params.n = parent.n
params.show = parent.linktext
for k, v in pairs( params ) do
if v == "" then
params[ k ] = false
end
end -- for k, v
if frame.args.lazy == "1" then
params.lazy = true
end
return fulfil( params )
end -- p.f
p.failsafe = function ( frame )
-- Versioning interface
local s = type( frame )
local since
if s == "table" then
since = frame.args[ 1 ]
elseif s == "string" then
since = frame
end
if since then
since = mw.text.trim( since )
if since == "" then
since = false
end
end
return Failsafe.failsafe( since ) or ""
end -- p.failsafe
return p
kbxwxfxjk9qfffvel3atj855vvq81h5
743974
743972
2026-05-23T17:00:38Z
PerfektesChaos
18104
m
743974
Scribunto
text/plain
local PGorg = { suite = "projekt-gutenberg.org",
serial = "2026-05-21",
item = 0,
globals = { WLink = 19363224 },
config = { }
}
--[=[
projekt-gutenberg.org
loadJsonData: /config.json
/a.json
]=]
if mw.site.server:find( ".beta.wmflabs.org", 4, true ) then
require( "strict" )
end
require( "strict" )
local Failsafe = PGorg
local GlobalMod = PGorg
local foreignModule = function ( access, advanced, append, alt, alert )
-- Fetch global module
-- Precondition:
-- access -- string, with name of base module
-- advanced -- true, for require(); else mw.loadData()
-- append -- string, with subpage part, if any; or false
-- alt -- number, of wikidata item of root; or false
-- alert -- true, for throwing error on data problem
-- Postcondition:
-- Returns whatever, probably table
-- 2020-01-01
local storage = access
local finer = function ()
if append then
storage = string.format( "%s/%s",
storage,
append )
end
end
local fun, lucky, r, suited
if advanced then
fun = require
else
fun = mw.loadData
end
GlobalMod.globalModules = GlobalMod.globalModules or { }
suited = GlobalMod.globalModules[ access ]
if not suited then
finer()
lucky, r = pcall( fun, "Module:" .. storage )
end
if not lucky then
if not suited and
type( alt ) == "number" and
alt > 0 then
suited = string.format( "Q%d", alt )
suited = mw.wikibase.getSitelink( suited )
GlobalMod.globalModules[ access ] = suited or true
end
if type( suited ) == "string" then
storage = suited
finer()
lucky, r = pcall( fun, storage )
end
if not lucky and alert then
error( "Missing or invalid page: " .. storage )
end
end
return r
end -- foreignModule()
local facility = function ( access )
-- Retrieve JSON page name
-- Precondition:
-- access -- page identifier
-- Postcondition:
-- Returns page name
return string.format( "%s/%s.json", PGorg.sources, access )
end -- facility()
local fault = function ( alert, about, access )
-- Create error message
-- Precondition:
-- alert -- string, message identifier
-- about -- ID code
-- access -- JSON id
-- Postcondition:
-- Build PGorg.scream
-- Returns PGorg.scream
local e = mw.html.create( "span" )
:addClass( "error" )
local err = PGorg.config.err
if type( err ) ~= "table" then
err = { }
end
e:wikitext( string.format( "[[%s]] – ", PGorg.sources ) )
if type( err[ alert ] ) == "string" then
e:wikitext( err[ alert ] )
else
e:wikitext( alert )
end
if type( about ) == "string" then
local e2 = mw.html.create( "code" )
:css( "white-space", "nowrap" )
:wikitext( " – ",
mw.text.nowiki( about ) )
e:wikitext( tostring( e2 ) )
end
if type( access ) == "string" then
e:wikitext( string.format( " – [[%s]]",
facility( access ) ) )
end
PGorg.scream = tostring( e )
if type( err.cat ) == "string" then
PGorg.scream = string.format( "%s[[category:%s]]",
PGorg.scream, err.cat )
end
return PGorg.scream
end -- fault()
local fetch = function ( access, allow )
-- Retrieve JSON object
-- Precondition:
-- access -- page identifier
-- allow -- lazy mode
-- Postcondition:
-- Returns JSON object, or not
local s = facility( access )
local lucky, json, r
lucky, json = pcall( mw.loadJsonData, s )
if type( json ) == "table" then
r = json
elseif not allow then
fault( "0json", false, access )
end
return r
end -- fetch()
local fiat = function ( apply )
-- Create external link
-- Precondition:
-- apply -- table, with URL segments
-- .site
-- .a
-- .w
-- .n
-- .live
-- .locked
-- .show
-- Postcondition:
-- Returns string, with external link
local r = apply.site
local last, show
if apply.show then
show = apply.show
if not show:match( "[.!?]$" ) and
not show:match( "[.!?]''$" ) then
last = true
end
else
show = string.format( "?????%s?????", apply.a )
if not PGorg.scream then
fault( "unknown", show )
end
end
if type( PGorg.config.a ) == "table" and
type( PGorg.config.a.slice ) == "string" then
r = r .. PGorg.config.a.slice
end
r = r .. apply.a
if apply.w then
if type( PGorg.config.w ) == "table" and
type( PGorg.config.w.slice ) == "string" then
r = r .. PGorg.config.w.slice
end
r = r .. apply.w
if apply.n then
if type( PGorg.config.n ) == "table" and
type( PGorg.config.n.slice ) == "string" then
r = r .. PGorg.config.n.slice
end
r = r .. apply.n
end
end
r = r .. "/"
if not apply.locked then
show = mw.text.nowiki( mw.text.decode( show ) )
if apply.live then
show = string.format( "''%s''", show )
end
end
if last then
show = show .. "."
end
r = string.format( "[%s %s]", r, show )
if PGorg.scream then
r = string.format( "%s %s", r, PGorg.scream )
end
return r
end -- fiat()
local fix = function ( a, authors )
-- Fix author code by legacy redirect
-- Precondition:
-- a -- string, with author code
-- authors -- table, with current name hash map
-- Postcondition:
-- Returns table, with author code and link text, or not
local last, r, shift
if a:match( "^[1-9]%d?%d?%d?$" ) then
shift = "Num"
last = true
elseif a:match( "^%l%l%l+%d?$" ) and a:len() <= 9 then
shift = "Str"
end
if shift then
local json
shift = "Aex" .. shift
json = fetch( shift, true )
if json then
if type( json.hash ) == "table" then
local swap = json.hash[ a ]
if swap then
shift = authors[ swap ]
if shift then
r = { }
r.a = swap
r.show = shift
r.live = true
else
fault( "redir", swap )
end
elseif last then
fault( "invalid", a )
end
else
fault( "0hash", false, shift )
end
elseif last then
fault( "invalid", a )
end
end
return r
end -- fix()
local fulfil = function ( args )
-- Execute task
-- Precondition:
-- args -- table, with parameters
-- Postcondition:
-- Returns string, with transclusion
local r
if args.sources then
PGorg.sources = args.sources
else
PGorg.sources = string.format( "%s:%s",
mw.site.namespaces.Template.name,
PGorg.suite )
end
PGorg.config = fetch( "config" )
if PGorg.config then
if type( PGorg.config.site ) ~= "string" then
r = fault( "0site", false, "config" )
elseif not args.sA then
r = fault( "0a" )
elseif not args.sA:match( "^[%l%-%d]+$" ) then
r = fault( "invalid", args.sA )
end
if not r then
local url = { }
url.site = PGorg.config.site
if args.sW then
if args.sA:match( "^%l%l%l[%l%-]*%d?$" ) then
url.a = args.sA
if type( PGorg.config.w ) == "table" and
type( PGorg.config.w.show ) == "string" then
url.show = PGorg.config.w.show
else
url.show = args.sW
end
if args.n then
if args.n:match( "^[1-9]%d?%d?$" ) then
url.n = args.n
else
r = fault( "invalid", args.n )
end
end
else
r = fault( "invalid", args.sW )
end
else
local json = fetch( "a" )
if json then
if type( json.hash ) == "table" then
local show = json.hash[ args.sA ]
if show then
url.a = args.sA
url.show = show
url.live = true
else
local polyfill = fix( args.sA, json.hash )
if polyfill then
url.a = polyfill.a
url.show = polyfill.show
url.live = polyfill.live
elseif PGorg.scream then
r = PGorg.scream
elseif args.lazy then
url.a = args.sA
else
fault( "invalid", args.sA )
end
end
else
r = fault( "0hash", false, "a" )
end
else
r = PGorg.scream
end
end
if not r then
if args.show then
url.show = args.show
url.locked = true
elseif not url.show and args.lazy then
local WLink = foreignModule( "WLink",
true,
false,
PGorg.globals.WLink )
if type( WLink ) == "table" and
type( WLink.getArticleBase ) == "function" then
url.show = WLink.getArticleBase()
end
end
r = fiat( url )
end
end
else
r = PGorg.scream
end
return r
end -- fulfil()
Failsafe.failsafe = function ( atleast )
-- Retrieve versioning and check for compliance
-- Precondition:
-- atleast -- string, with required version
-- or wikidata|item|~|@ or false
-- Postcondition:
-- Returns string -- with queried version/item, also if problem
-- false -- if appropriate
-- 2024-03-01
local since = atleast
local last = ( since == "~" )
local linked = ( since == "@" )
local link = ( since == "item" )
local r
if last or link or linked or since == "wikidata" then
local item = Failsafe.item
since = false
if type( item ) == "number" and item > 0 then
local suited = string.format( "Q%d", item )
if link then
r = suited
else
local entity = mw.wikibase.getEntity( suited )
if type( entity ) == "table" then
local seek = Failsafe.serialProperty or "P348"
local vsn = entity:formatPropertyValues( seek )
if type( vsn ) == "table" and
type( vsn.value ) == "string" and
vsn.value ~= "" then
if last and vsn.value == Failsafe.serial then
r = false
elseif linked then
if mw.title.getCurrentTitle().prefixedText
== mw.wikibase.getSitelink( suited ) then
r = false
else
r = suited
end
else
r = vsn.value
end
end
end
end
elseif link then
r = false
end
end
if type( r ) == "nil" then
if not since or since <= Failsafe.serial then
r = Failsafe.serial
else
r = false
end
end
return r
end -- Failsafe.failsafe()
-- Export
local p = { }
p.f = function ( frame )
-- Template call
local params = { }
local parent = frame:getParent().args
params.sources = frame.args.root
params.sA = parent.a
params.sW = parent.w
params.n = parent.n
params.show = parent.linktext
for k, v in pairs( params ) do
if v == "" then
params[ k ] = false
end
end -- for k, v
if frame.args.lazy == "1" then
params.lazy = true
end
return fulfil( params )
end -- p.f
p.failsafe = function ( frame )
-- Versioning interface
local s = type( frame )
local since
if s == "table" then
since = frame.args[ 1 ]
elseif s == "string" then
since = frame
end
if since then
since = mw.text.trim( since )
if since == "" then
since = false
end
end
return Failsafe.failsafe( since ) or ""
end -- p.failsafe
return p
9qr3ajvgciy6n7wue0v0zqa29xzkdj2
Template:Departments of France
10
175665
743977
2026-05-23T17:35:56Z
Ludo Games-T
73707
Created page with "{{#invoke:Countries|main|Module:Departments of France|showcode=yes}}<noinclude>{{Documentation}}</noinclude>"
743977
wikitext
text/x-wiki
{{#invoke:Countries|main|Module:Departments of France|showcode=yes}}<noinclude>{{Documentation}}</noinclude>
j6yskzb5wqtfqzxlpm8tv6vaat0l700
Test11
0
175666
743984
2026-05-23T21:43:26Z
Enbi
72574
Enbi moved page [[Test11]] to [[Test112323]]
743984
wikitext
text/x-wiki
#REDIRECT [[Test112323]]
{{Redirect category shell|
{{R from move}}
}}
p59n0kzwmcx0jjew578vrwwoh2yo21j
Talk:Test11
1
175667
743986
2026-05-23T21:43:26Z
Enbi
72574
Enbi moved page [[Talk:Test11]] to [[Talk:Test112323]]
743986
wikitext
text/x-wiki
#REDIRECT [[Talk:Test112323]]
{{Redirect category shell|
{{R from move}}
}}
51wquy5kx5kum4p9nxnwn28efvn8j8l
Talk:Test112323
1
175668
743988
2026-05-23T21:44:52Z
Enbi
72574
Enbi moved page [[Talk:Test112323]] to [[Talk:Test112324]]
743988
wikitext
text/x-wiki
#REDIRECT [[Talk:Test112324]]
{{Redirect category shell|
{{R from move}}
}}
5uy17a85nvnv8mqqazzsqpqr2ceaj24
Talk:Test112324
1
175669
743990
2026-05-23T21:51:57Z
Enbi
72574
Enbi moved page [[Talk:Test112324]] to [[Talk:Test112324282828]]
743990
wikitext
text/x-wiki
#REDIRECT [[Talk:Test112324282828]]
{{Redirect category shell|
{{R from move}}
}}
gxg9o6xi9g18fqwu525knw7vwi57van
Talk:Test112324282828
1
175670
743992
2026-05-23T21:54:38Z
Enbi
72574
Enbi moved page [[Talk:Test112324282828]] to [[Talk:Test234566781]]
743992
wikitext
text/x-wiki
#REDIRECT [[Talk:Test234566781]]
{{Redirect category shell|
{{R from move}}
}}
4eowt5jby99z704z8ijufsiki9nx4t3
User:YoshiRulz/common.css
2
175671
743995
2026-05-24T01:41:43Z
YoshiRulz
71495
Create stylesheet
743995
css
text/css
/** https://dag.wikipedia.org/w/load.php?lang=en&modules=ext.articleplaceholder.defaultDisplay&only=styles&skin=vector-2022 */
.articleplaceholder-statementgroup{display:inline-block;border:1px solid var(--border-color-base,#a2a9b1);vertical-align:top;padding:10px;margin:20px;width:350px;max-height:300px;overflow:auto}.mw-body .articleplaceholder-statementgroup h2,.mw-body .articleplaceholder-identifierlist h2{margin-top:0}.mw-articleplaceholder-topmessage-container{width:100%;border-style:solid;border-color:var(--border-color-muted,#dadde3);border-width:1px;border-left-width:10px;margin:0 auto 0 auto;height:100%;padding:0 10px 0 10px;min-height:50px;background-color:var(--background-color-neutral-subtle,#f8f9fa)}.mw-articleplaceholder-topmessage-container::after{clear:both}.mw-articleplaceholder-topmessage-container-left{float:left;width:65px;text-align:center;margin-top:0.5em}.mw-articleplaceholder-topmessage-container-right{float:right;width:150px;text-align:center;margin-top:0.5em}.mw-articleplaceholder-topmessage-container-center{overflow:hidden;white-space:nowrap}.articleplaceholder-sidebar{float:right;width:310px}.articleplaceholder-topimage{float:right}.articleplaceholder-identifierlist{clear:both;border:1px solid var(--border-color-subtle,#c8ccd1);background-color:var(--background-color-neutral-subtle,#f8f9fa);width:100%;padding:0.4em}.articleplaceholder-identifierlist td{vertical-align:top;padding:0.25em}.articleplaceholder-id-value{word-break:break-all}.articleplaceholder-statement{margin-top:0}.articleplaceholder-statementgrouplist{margin-top:1.5em}@media screen and (min-width:912px){.articleplaceholder-statementgrouplist{width:auto;overflow:hidden}}.articleplaceholder-qualifier{margin-left:1em}@media (max-width:880px){#bodyContent{margin-left:20%}.articleplaceholder-sidebar,.articleplaceholder-statementgroup{float:none;position:static}}@media only screen and (max-device-width:880px){.articleplaceholder-sidebar,.articleplaceholder-statementgroup{float:none;position:static}.articleplaceholder-statementgroup{width:80%}.articleplaceholder-sidebar{width:95%}}
tjd6jhltlxftp1vu7w6ncdd8a84kcp0
LLM generated
0
175672
743997
2026-05-24T06:07:56Z
~2026-30970-33
74126
test test
743997
wikitext
text/x-wiki
LLM generated article
d0tr4j4k4n6nayz9b34laic4adydn9v
743998
743997
2026-05-24T06:09:32Z
Xzkdeng
74125
Proposing article for deletion per [[WP:LLMPROD]]. undefined Feel free to reinstate by following [[WP:LLMPRVOBJ|the procedures for disputing presumptive removal of LLM-generated content]].
743998
wikitext
text/x-wiki
{{subst:prod llm|concern=undefined test|user=~2026-30970-33}}
LLM generated article
t3qiscxnquzf0zyycopxgp2laxi6yka
744003
743998
2026-05-24T06:16:07Z
Xzkdeng
74125
Undid revision [[Special:Diff/743998|743998]] by [[Special:Contributions/Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]])
744003
wikitext
text/x-wiki
LLM generated article
d0tr4j4k4n6nayz9b34laic4adydn9v
744005
744003
2026-05-24T06:18:16Z
Xzkdeng
74125
Proposing article for deletion per [[WP:LLMPROD]]. undefined Feel free to reinstate by following [[WP:LLMPRVOBJ|the procedures for disputing presumptive removal of LLM-generated content]].
744005
wikitext
text/x-wiki
{{Prod llm/dated
| concern = undefined test|test [[test]] '''test'''
| user = ~2026-30970-33
| timestamp = 20260524061816
| help =
}}
LLM generated article
9h6w4c0xz8f5kqgd12y1mr65c9am21g
744008
744005
2026-05-24T06:36:55Z
Xzkdeng
74125
744008
wikitext
text/x-wiki
LLM generated article
d0tr4j4k4n6nayz9b34laic4adydn9v
744009
744008
2026-05-24T06:38:03Z
Xzkdeng
74125
Proposing article for deletion per [[WP:LLMPROD]]. Author is blocked for AI use. Feel free to reinstate by following [[WP:LLMPRVOBJ|the procedures for disputing presumptive removal of LLM-generated content]].
744009
wikitext
text/x-wiki
{{Prod llm/dated
| concern = Author is blocked for AI use. test[[test]]
| user = ~2026-30970-33
| timestamp = 20260524063803
| help = off
}}
LLM generated article
7mwbzvfql23csy83rysg2xnsxj2zfdc
744011
744009
2026-05-24T06:41:10Z
Xzkdeng
74125
Endorsing proposed deletion per [[WP:LLMPROD]].
744011
wikitext
text/x-wiki
{{Prod llm/dated
| concern = Author is blocked for AI use. test[[test]]
| user = ~2026-30970-33
| timestamp = 20260524063803
| help = off
}}
{{Proposed deletion endorsed|1=article is [[WP:LLMPROD|presumed to have been AI-generated]]. Author is inactive.}}
LLM generated article
8uk3h9allbsokmrn5jp60bh9195pyfs
744015
744011
2026-05-24T06:53:20Z
Xzkdeng
74125
Replaced content with "LLM generated article"
744015
wikitext
text/x-wiki
LLM generated article
d0tr4j4k4n6nayz9b34laic4adydn9v
744016
744015
2026-05-24T06:54:09Z
Xzkdeng
74125
Proposing article for deletion per [[WP:LLMPROD]]. Author disclosed using AI and consents to clean-up of their past edits at [[test|ppp]]. Feel free to reinstate by following [[WP:LLMPRVOBJ|the procedures for disputing presumptive removal of LLM-generated content]].
744016
wikitext
text/x-wiki
{{Prod llm/dated
| concern = Author disclosed using AI and consents to clean-up of their past edits at [[test|ppp]]. advcd
| user = ~2026-30970-33
| timestamp = 20260524065409
| help = off
}}
LLM generated article
033pkfydqkra2cj9hom0qu8zjidig6k
744025
744016
2026-05-24T11:30:38Z
Xzkdeng
74125
Replaced content with "LLM generated article"
744025
wikitext
text/x-wiki
LLM generated article
d0tr4j4k4n6nayz9b34laic4adydn9v
744027
744025
2026-05-24T11:33:37Z
Xzkdeng
74125
Proposing article for deletion per [[WP:LLMPROD]]. There is consensus at [[test|test]] that presumptive removal is appropriate. Feel free to reinstate by following [[WP:LLMPRVOBJ|the procedures for disputing presumptive removal of LLM-generated content]].
744027
wikitext
text/x-wiki
{{Prod llm/dated
| concern = There is consensus at [[test|test]] that presumptive removal is appropriate. test llmprod
| user = ~2026-30970-33
| timestamp = 20260524113337
| help = off
}}
LLM generated article
t2bdup6a7vx7ev77xgxpfskrl5x1xyb
User talk:~2026-30970-33
3
175673
743999
2026-05-24T06:09:34Z
Xzkdeng
74125
Notification: proposed deletion of [[:LLM generated]].
743999
wikitext
text/x-wiki
{{subst:prodwarningLLM|1=LLM generated|concern=test}} [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:09, 24 May 2026 (UTC)
g3sqmahyi6lone2gm9gq8g9zt6p7x99
744006
743999
2026-05-24T06:18:18Z
Xzkdeng
74125
Notification: proposed deletion of [[:LLM generated]].
744006
wikitext
text/x-wiki
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:09, 24 May 2026 (UTC)
== [[WP:LLMPROD|Proposed deletion]] of [[:test [[test]] '''test''']] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[test [[test]] '''test''']] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:18, 24 May 2026 (UTC)
r2rdib2f5lb73x7szapr5ogvjts6plz
744010
744006
2026-05-24T06:38:05Z
Xzkdeng
74125
Notification: proposed deletion of [[:LLM generated]].
744010
wikitext
text/x-wiki
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:09, 24 May 2026 (UTC)
== [[WP:LLMPROD|Proposed deletion]] of [[:test [[test]] '''test''']] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[test [[test]] '''test''']] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:18, 24 May 2026 (UTC)
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:38, 24 May 2026 (UTC)
4lb3kcctra4qc9cxfle2xc8pta6at13
744012
744010
2026-05-24T06:41:13Z
Xzkdeng
74125
Notification: proposed deletion of [[:LLM generated]].
744012
wikitext
text/x-wiki
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:09, 24 May 2026 (UTC)
== [[WP:LLMPROD|Proposed deletion]] of [[:test [[test]] '''test''']] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[test [[test]] '''test''']] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:18, 24 May 2026 (UTC)
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:38, 24 May 2026 (UTC)
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:41, 24 May 2026 (UTC)
nd414ju5bouoc1o8azyqqibnflrddd8
744017
744012
2026-05-24T06:54:11Z
Xzkdeng
74125
Notification: proposed deletion of [[:LLM generated]].
744017
wikitext
text/x-wiki
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:09, 24 May 2026 (UTC)
== [[WP:LLMPROD|Proposed deletion]] of [[:test [[test]] '''test''']] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[test [[test]] '''test''']] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:18, 24 May 2026 (UTC)
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:38, 24 May 2026 (UTC)
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:41, 24 May 2026 (UTC)
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 06:54, 24 May 2026 (UTC)
9fin061qznsrahdcb5nyc8a5tywrngr
744026
744017
2026-05-24T11:32:53Z
Xzkdeng
74125
Blanked the page
744026
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
744028
744026
2026-05-24T11:33:39Z
Xzkdeng
74125
Notification: proposed deletion of [[:LLM generated]].
744028
wikitext
text/x-wiki
== [[WP:LLMPROD|Proposed deletion]] of [[:LLM generated]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The page [[LLM generated]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the page at any time.<!-- Template:ProdwarningLLM --> [[User:Xzkdeng|Xzkdeng]] ([[User talk:Xzkdeng|talk]]) 11:33, 24 May 2026 (UTC)
f1o8j380yi23cs2sdjarsy77laakrew
Talk:LLM generated
1
175674
744000
2026-05-24T06:09:34Z
Xzkdeng
74125
Adding {{Old prod}}
744000
wikitext
text/x-wiki
{{Old prod|nom=Xzkdeng|nomdate=2026-05-24}}
omixeh4jb8gvvy9lhqwcyubnn6xlxvu
Template:Prod llm
10
175675
744001
2026-05-24T06:14:10Z
Xzkdeng
74125
for testing. copied from en wikipedia
744001
wikitext
text/x-wiki
{{{{{|safesubst:}}}#ifeq:{{{{{|safesubst:}}}issubst}}<noinclude>yes</noinclude>|yes|
{{Prod llm/dated<noinclude>|demo=yes</noinclude>
| concern = {{{concern|{{{reason|{{{1|}}}}}}}}}
| user = {{{user|}}}
| timestamp = {{{{{|safesubst:}}}CURRENTTIMESTAMP}}
| help = {{{help|}}}
}}
| {{error|message=This template must be [[Wikipedia:Substitution|substituted]].}}[[Category:Proposed deletions needing attention|S{{PAGENAME}}]]
}}<noinclude>
{{documentation}}
</noinclude>
brzrtjp9doymi1hohydo52x7oldrf0r
Template:Prod llm/dated
10
175676
744002
2026-05-24T06:15:03Z
Xzkdeng
74125
for testing. copied from en wikipedia
744002
wikitext
text/x-wiki
{{ambox
|type=delete
|image=none
|class=mbox-prod
|text=This {{Namespace detect|main=article|draft=draft|other=page}} coincides in timing and pattern with contributions by the same user which have been determined to be AI-generated, and has no significant contributions by other editors. It is presumed to have also been AI-generated, and may be assumed to violate [[WP:PAGS|Wikipedia's policies and guidelines]]. If no editor takes responsibility for it within a five-day grace period, this {{Namespace detect|main=article|draft=draft|other=page}} '''may be [[Wikipedia:Presumptive removal of AI-generated content|deleted]]'''.<p>To object to proposed deletion, remove this template from the page. By doing so, you '''take responsibility for the content''', and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You must closely review the content and its sources to ensure that it complies with polices and guidelines, which may require reworking the content. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]]. '''Once you have done so, you may remove this template.'''</p>{{#if: {{{concern|{{{reason|{{{1|}}}}}}}}} | <p>The nominator also gave the following reason for this proposed deletion:</p><blockquote>{{{concern|{{{reason|{{{1|}}}}}}}}}</blockquote> }}
{{Find sources mainspace|{{PAGENAME}}}}
<span class="plainlinks" style="font-size: smaller">'''Reviewer tools:''' [[Wikipedia:Presumptive removal of AI-generated content|guideline]] [[Wikipedia:WikiProject AI Cleanup|project]]<!--
--> ([[{{TALKPAGENAME:{{SUBPAGENAME}}}}|talk]] <!--
-->• [{{fullurl:Special:Log|page={{FULLPAGENAMEE}}}} log]) <!--
-->{{main other|demospace={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|main}}| Move: [{{fullurl:Special:MovePage/{{FULLPAGENAMEE}}|wpNewTitle=Draft:{{SUBPAGENAMEE}}&wpReason={{urlencode:Move article to draft space to allow improvement}}}} draft space]<!--
-- userfy, but goes to tagger user not creaters
--->{{#if: {{{user|}}}| [{{fullurl:Special:MovePage/{{FULLPAGENAMEE}}|wpNewTitle={{urlencode:User:{{{user}}}/{{FULLPAGENAMEE}}}}&wpReason=Userfied}} userfy]}}|}}</span>
{{#ifexpr:{{#time:U}}>{{#time:U|{{{timestamp|30200000000000}}} +5 days}}
|{{color|red|This article may be deleted without further notice.}}{{category handler
|all=[[Category:Expired proposed deletions]][[Category:Expired proposed deletions of AI-generated content]]
|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}
}}
|The article may be deleted if this message remains in place for five days{{#if:{{{timestamp|}}}
|, i.e., after {{#time:H:i, j F Y|{{{timestamp}}} +5 days}} (UTC)
|. Please check the {{history|{{FULLPAGENAME}}|history}} to see when this template was added.
}}.
}}
{{#ifeq:{{{help}}}|off||----
<small><span class="verbose prod-notify-code">'''Nominator:''' Please consider notifying the author if active: <code>{{tlsp|link subst=no|prodwarningLLM|2={{FULLPAGENAME}}|3=concern={{#tag:nowiki|{{{concern|{{{reason|{{{1|}}}}}}}}}}}}} <nowiki>~~~~</nowiki></code></span></small>}}{{#ifexpr:{{#time:U}}>{{#time:U|{{{timestamp|30200000000000}}} +5 days}}
|{{#ifeq:{{{help}}}|off|----|<br/>}}{{#if:{{{timestamp|}}}
|<small>'''Timestamp:''' {{{timestamp}}} {{#time:H:i, j F Y|{{{timestamp}}}}} (UTC)
}}<br/><span class="sysop-show">'''Administrators:''' [{{fullurl:{{FULLPAGENAME}}|wpReason={{urlencode:Expired [[WP:LLMPROD|LLMPROD]], {{#if: {{{concern|{{{reason|{{{1|}}}}}}}}} | concern was {{{concern|{{{reason|{{{1|}}}}}}}}} | likely [[WP:NOLLM|AI-generated content]] }}}}&action=delete}} delete]</span></small>
}}
}}{{category handler
|all={{#if:{{{timestamp|}}}
|{{DMCA|Articles containing suspected AI-generated texts|from|{{#time: F Y | {{{timestamp|}}}}}}}
[[Category:AI-generated content proposed for deletion]]
[[Category:Proposed deletion as of {{#time:j F Y|{{{timestamp}}}}}]]
[[Category:AI-generated content proposed for deletion by days left|{{#switch:{{#expr:5-trunc(({{#time: U|now}}-{{#time: U|{{{timestamp}}}}})/86400)}}|1=A|2=B|3=C|4=D|5=E|6=F|7=G|8=H|9=I|#default=-}}]]
|[[Category:Proposed deletions needing attention|U{{PAGENAME}}]]
}}[[Category:All articles proposed for deletion]]
|nocat={{#ifeq:{{{demo|<noinclude>yes</noinclude>}}}|yes|true}}
}}<includeonly>{{NOINDEX}}</includeonly><noinclude>
{{documentation}}
</noinclude>
3in9ubampoaoik75jc1mf603sn5c0io
Template:ProdwarningLLM
10
175677
744004
2026-05-24T06:17:58Z
Xzkdeng
74125
for testing. copied from en wikipedia
744004
wikitext
text/x-wiki
== [[WP:LLMPROD|Proposed deletion]] of [[:{{{1}}}]] ==
[[File:Ambox warning yellow.svg|left|link=|alt=Notice|48px|]]
The {{safesubst:<noinclude/>#switch:{{safesubst:<noinclude/>NAMESPACENUMBER|{{{1}}}}}|0=article|118=draft|#default=page}} [[{{{1}}}]] has been [[Wikipedia:Presumptive removal of AI-generated content|proposed for deletion]], as it matches an established pattern of AI-generated content.
You may prevent the proposed deletion by removing the {{Tlc|proposed deletion/dated}} notice. In this case, you take responsibility for the content, and the [[WP:ONUS|onus]] is on you to achieve [[Wikipedia:Consensus|consensus]] for its inclusion. You [[WP:NOLLM|must remove or rewrite any generated content]], and all content and its sources must be closely reviewed, and reworked as needed, to ensure that it complies with polices and guidelines. This may involve checking that the cited sources [[WP:V|support the content]] and are [[WP:RS|reliable]], determining whether the content is [[WP:DUE|due]] for inclusion, and rewriting the content in your own words to revise the [[WP:TONE|tone]] and resolve possible [[WP:COPYVIO|copyright violations]].
If the proposed deletion has already been carried out, and you intend to review and rework it, you may [[Wikipedia:Requests for undeletion|request undeletion]] of the {{safesubst:<noinclude/>#switch:{{safesubst:<noinclude/>NAMESPACENUMBER|{{{1}}}}}|0=article|118=draft|#default=page}} at any time.<!-- Template:ProdwarningLLM --><noinclude>
{{Documentation}}
</noinclude>
gc2q4xrvkneau71h2p5w4agot9yvq0h
Imam Ali campaign of Fadak
0
175678
744007
2026-05-24T06:30:24Z
~2026-31004-06
74127
Created page with "E"
744007
wikitext
text/x-wiki
E
q6d3zw3k6j9g38ai89uxd3wwf6u4965
User:Xzkdeng/twinkleoptions.js
2
175679
744013
2026-05-24T06:43:32Z
Xzkdeng
74125
Saving Twinkle preferences: automatic edit from [[:Wikipedia:Twinkle/Preferences]]
744013
javascript
text/javascript
// twinkleoptions.js: personal Twinkle preferences file
//
// NOTE: The easiest way to change your Twinkle preferences is by using the
// Twinkle preferences panel, at [[Wikipedia:Twinkle/Preferences]].
//
// This file is AUTOMATICALLY GENERATED. Any changes you make (aside from
// changing the configuration parameters in a valid-JavaScript way) will be
// overwritten the next time you click "save" in the Twinkle preferences
// panel. If modifying this file, make sure to use correct JavaScript.
// <nowiki>
window.Twinkle.prefs = {
"optionsVersion": 2.1,
"logProdPages": true
};
// </nowiki>
// End of twinkleoptions.js
e7fod1g35ru18jwi3ybyd0o9mpgabhk
Template:Proposed deletion endorsed
10
175680
744014
2026-05-24T06:46:31Z
Xzkdeng
74125
for testing. copied from en wikipedia
744014
wikitext
text/x-wiki
{{{{{|safesubst:}}}#invoke:Unsubst||$B=
<!--{{Proposed deletion endorsed}} begin-->{{Mbox
| name = Proposed deletion endorsed
| subst = <includeonly>{{subst:substcheck}}</includeonly>
| type = delete
| image = none
| text = Another editor has reviewed this page's '''[[Wikipedia:Proposed deletion|proposed deletion]]'''{{#if:{{{comment|{{{1|}}}}}}|, endorses the proposal to delete, and adds:
<blockquote>{{{comment|{{{1}}}}}}</blockquote>| and endorses both the proposal and the reason given above.<br/>}}
<small class="verbose">If you remove the {{file other|{{tlc|proposed deletion/dated files}}|{{tlc|proposed deletion/dated}}}} tag above, please also remove this {{tlc|Proposed deletion endorsed}} tag.</small>
| cat = Endorsed proposed deletions
}}<!--{{Proposed deletion endorsed}} end-->
}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
b1g9kilkmtglzarsjmer5ko7321icgk
User:Xzkdeng/PROD log
2
175681
744018
2026-05-24T06:54:12Z
Xzkdeng
74125
Logging PROD nomination of [[:LLM generated]].
744018
wikitext
text/x-wiki
This is a log of all [[WP:PROD|proposed deletion]] tags applied or endorsed by this user using [[WP:TW|Twinkle]]'s PROD module.
If you no longer wish to keep this log, you can turn it off using the [[Wikipedia:Twinkle/Preferences|preferences panel]], and nominate this page for speedy deletion under [[WP:CSD#U1|CSD U1]].
=== May 2026 ===
# [[:LLM generated]]: LLM PROD; notified {{user|~2026-30970-33}} 06:54, 24 May 2026 (UTC)
#* '''Reason''': Author disclosed using AI and consents to clean-up of their past edits at [[test|ppp]]. advcd
lkmwcvqj9q4edsy3c2n3ikwbyx6uysm
744029
744018
2026-05-24T11:33:41Z
Xzkdeng
74125
Logging PROD nomination of [[:LLM generated]].
744029
wikitext
text/x-wiki
This is a log of all [[WP:PROD|proposed deletion]] tags applied or endorsed by this user using [[WP:TW|Twinkle]]'s PROD module.
If you no longer wish to keep this log, you can turn it off using the [[Wikipedia:Twinkle/Preferences|preferences panel]], and nominate this page for speedy deletion under [[WP:CSD#U1|CSD U1]].
=== May 2026 ===
# [[:LLM generated]]: LLM PROD; notified {{user|~2026-30970-33}} 06:54, 24 May 2026 (UTC)
#* '''Reason''': Author disclosed using AI and consents to clean-up of their past edits at [[test|ppp]]. advcd
# [[:LLM generated]]: LLM PROD; notified {{user|~2026-30970-33}} 11:33, 24 May 2026 (UTC)
#* '''Reason''': There is consensus at [[test|test]] that presumptive removal is appropriate. test llmprod
910uwmdi2sado477fk8p6b2y7xfdc0s
User:Xzkdeng/common.js
2
175682
744024
2026-05-24T11:29:44Z
Xzkdeng
74125
load local twinkle
744024
javascript
text/javascript
mw.loader.load('http://localhost:5500');
jd0agzrpwx862rb2rythiph29ll5vyj