Βικιπαίδεια
pntwiki
https://pnt.wikipedia.org/wiki/%CE%91%CF%81%CF%87%CE%B9%CE%BA%CF%8C%CE%BD_%CF%83%CE%B5%CE%BB%CE%AF%CE%B4%CE%B1
MediaWiki 1.47.0-wmf.13
first-letter
Μέσον
Ειδικόν
Καλάτσεμαν
Χρήστες
Καλάτσεμαν χρήστε
Βικιπαίδεια
Βικιπαίδεια καλάτσεμαν
Αρχείον
Καλάτσεμαν αρχείονος
MediaWiki
MediaWiki talk
Πρότυπον
Καλάτσεμαν πρότυπι
Βοήθειαν
Καλάτσεμαν βοήθειας
Κατηγορίαν
Καλάτσεμαν κατηγορίας
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Βικιπαίδεια
0
149
37734
36087
2026-08-03T18:52:23Z
Εὐθυμένης
2777
37734
wikitext
text/x-wiki
[[Αρχείον:Wikipedia-logo-v2.svg|μικρογραφία|upright=0.68|An incomplete sphere made of large, white jigsaw puzzle pieces. Each puzzle piece contains one glyph from a different writing system, with each glyph written in black.]]
Η '''Βικιπαίδεια''' (αγγλ.: ''Wikipedia'') έν' μιαν ελεύθερη διαδικτυακή [[εγκυκλοπαίδεια]]. Γράφνε και συντηρούνε ατέ εθελοντές ασ' όλες τον κόσμον, ντο λέγουνταν [[Βικιπαιδιστές]], μέσα ασήν ανοιχτήν συνεργασίαν και με το λογισμικόν [[MediaWiki]]. Εθεμελίωσαν ατέ ο [[Τζίμι Γουέιλς]] και ο [[Λάρι Σάνγκερ]] το 2001. Ασόν 2003 και ύστερα, την Βικιπαίδειαν φιλοξενεί το [[Ίδρυμα Wikimedia]], έναν αμερικανικόν [[μη κερδοσκοπικόν σωματείον]] ντο ζει κυρίως ασά λεφτά ντο δίνουνε οι αναγνώστες.<ref name=WF10.23.23>{{en}} {{cite web |title=7 reasons you should donate to Wikipedia |url=https://wikimediafoundation.org/news/2022/11/03/7-reasons-you-should-donate-to-wikipedia/ |last1=Seitz-Gruwell |first1=Lisa |authorlink1=Λίζα Ζάιτς-Γκρούβελ |website=[[Wikimedia Foundation]] |date=2023-10-23 |accessdate=2023-12-27 |url-status=live |archive-date=2024-10-08 |archive-url=https://web.archive.org/web/20241008212455/https://wikimediafoundation.org/news/2023/10/23/7-reasons-you-should-donate-to-wikipedia/ }}</ref> Η Βικιπαίδεια έν’ το μεγαλύτερον και το πλέον διαβασμένον [[έργον αναφοράς]] σην ιστορίαν τη ανθρωπότητας.<ref name="Wiki20">{{en}} {{cite web |date=2021-01-09 |title=Wikipedia is 20, and its reputation has never been higher |url=https://www.economist.com/international/2021/01/09/wikipedia-is-20-and-its-reputation-has-never-been-higher |url-access=subscription |url-status=live |archive-url=https://web.archive.org/web/20210107165356/https://www.economist.com/international/2021/01/09/wikipedia-is-20-and-its-reputation-has-never-been-higher |archive-date=2021-01-07 |accessdate=2021-02-25 |website=[[The Economist]]}}</ref><ref>{{en}} {{cite web |last1=Anderson |first1=Chris |date=2006-05-08 |title=Jimmy Wales – The 2006 Time 100 |url=https://content.time.com/time/specials/packages/article/0,28804,1975813_1975844_1976488,00.html|url-status=live |website=[[Time (περιοδικόν)|Time]]|archive-url=https://web.archive.org/web/20221012001311/https://content.time.com/time/specials/packages/article/0,28804,1975813_1975844_1976488,00.html|archive-date=2022-10-12 |accessdate=2017-11-11 |authorlink1=Κρις Άντερσον (συγγραφεύς)}}</ref>
Στην αρχήν έτον μοναχά στα [[αγγλικόν λαλίαν|αγγλικά]], αλλά σήμερα η Βικιπαίδεια εμεγάλωσεν και γράφεται σε πλέον ασά 300 γλώσσας, ανάμεσα σ’ ατά και στα [[ποντιακόν λαλίαν|ποντιακά]]. Έν' ένας ασάν ιστότοπους με την περισσότερην επισκεψιμότητα σον κόσμον. Η [[Αγγλική Βικιπαίδεια|αγγλική η Βικιπαίδεια]], με πλέον από 7 εκατομμύρια λήμματα, επέμνεν το μεγαλύτερον κομμάτι. Όλας τα γλώσσας μαζί έχουν πλέον από 68 εκατομμύρια λήμματα, και μαζεύκνε πάνω από 1,5 δισεκατομμύριο επισκέψεις ασάν υπολογιστές και τηλέφωνα κάθε μήνα.<ref name="Wikimedia_Stats">{{en}} {{cite web |title=Wikistats – Statistics For Wikimedia Projects |url=https://stats.wikimedia.org/#/all-wikipedia-projects|accessdate=2023-08-08 |website=[[Wikimedia Foundation]]|archive-date=2020-07-11 |archive-url=https://web.archive.org/web/20200711051858/https://stats.wikimedia.org/#/all-wikipedia-projects|url-status=live}}</ref> Πάνω από το 25% τη κίνησης έρχεται ασά Ηνωμένα τα Πολιτείας τη Αμερικής, κοντά στο 7% ασήν Ιαπωνίαν, και κοντά σο 5% ασόν Ηνωμένον το Βασίλειον, την Γερμανίαν και την Ρωσίαν.<ref>{{en}} {{cite web |title=wikipedia.org |url=https://www.similarweb.com/website/wikipedia.org/#geography |url-status=live |archive-url=https://web.archive.org/web/20200605091241/https://www.similarweb.com/website/wikipedia.org#geography |archive-date=2020-06-05 |accessdate=2026-01-09 |website=Similarweb}}</ref>
Πολλοί επανούσαν την Βικιπαίδειαν για τον τρόπον ντο δουλεύ’ και για τον [[εκδημοκρατισμός τη γνώσης|εκδημοκρατισμόν τη γνώσης]], αλλά και επειδή γράφει για πολλά και διάφορα θέματα. Όμως, μερικά κράτη έπαυσαν και έκλεισαν την Βικιπαίδειαν (γιά ολόκληρον γιά μερικάς σελίδας), επειδή εκατηγόρησεν τις κυβερνήσεις ατουν γιά επειδή έγραφεν πράγματα ντο εθεώρησαν βλαστήμιαν.<ref>{{en}} {{cite web |last1=Treisman |first1=Rachel |date=2022-04-01 |title=Russia threatens to fine Wikipedia if it doesn't remove some details about the war |website=[[NPR]] |url=https://www.npr.org/2022/04/01/1090279187/russia-wikipedia-fine|url-status=live|accessdate=2023-01-22|archive-url=https://web.archive.org/web/20221202215844/https://www.npr.org/2022/04/01/1090279187/russia-wikipedia-fine|archive-date=2022-12-02}}</ref><ref name="Skipper-2015">{{en}} {{cite web |last1=Skipper |first1=Ben |date=2015-12-07 |title=China's government has blocked Wikipedia in its entirety again |website=International Business Times UK |url=https://www.ibtimes.co.uk/chinas-government-has-blocked-wikipedia-its-entirety-again-1532138|url-status=live|accessdate=2018-05-02|archive-url=https://web.archive.org/web/20180503111142/https://www.ibtimes.co.uk/chinas-government-has-blocked-wikipedia-its-entirety-again-1532138|archive-date=2018-05-03}}</ref> Η εγκυκλοπαίδεια εδέχθεν κριτικήν και για συστημικά λάθη, όπως έν’ η μεροληψία κατά των γυναικών γιά κατά των χωρών τη [[Παγκόσμιος Νότος|Παγκόσμιου τη Νότου]].<ref>{{en}} {{cite web |last1=Noor |first1=Poppy |title=Wikipedia biases |url=https://www.theguardian.com/technology/2018/jul/29/the-five-wikipedia-biases-pro-western-male-dominated |website=[[The Guardian]] |accessdate=2024-05-31 |date=2018-07-29 |authorlink1=Πόπι Νουρ |archive-date=2020-11-09 |archive-url=https://web.archive.org/web/20201109040056/https://www.theguardian.com/technology/2018/jul/29/the-five-wikipedia-biases-pro-western-male-dominated |url-status=live }}</ref><ref>{{en}} {{cite web |last1=Hern |first1=Alex |title=Wikipedia's view of the world is written by the west |url=https://www.theguardian.com/technology/2015/sep/15/wikipedia-view-of-the-world-is-still-written-by-the-west |website=The Guardian |accessdate=2024-05-31 |date=2015-09-15}}</ref> Σα χρόνια του 2000, πολλοί ’κ επίστευαν την αξιοπιστίαν ατ’ς, αλλά ασόν 2010 και μετά ο κόσμον την επαινεί περισσότερον.<ref name="Wiki20" /><ref name="Econ21">{{en}} {{cite web |date=2021-01-09 |title=Happy Birthday, Wikipedia |website=[[The Economist]] |url=https://www.economist.com/leaders/2021/01/09/happy-birthday-wikipedia|url-access=subscription|accessdate=2023-01-22 |archive-url=https://web.archive.org/web/20230101031816/https://www.economist.com/leaders/2021/01/09/happy-birthday-wikipedia|archive-date=2023-01-01}}</ref><ref name="Last best">{{en}} {{cite web |last1=Cooke |first1=Richard |date=2020-02-17 |title=Wikipedia Is the Last Best Place on the Internet |website=[[Wired (περιοδικόν)|Wired]] |url=https://www.wired.com/story/wikipedia-online-encyclopedia-best-place-internet/|url-access=limited|accessdate=2020-10-13 |archive-url=https://web.archive.org/web/20221217081500/https://www.wired.com/story/wikipedia-online-encyclopedia-best-place-internet/|archive-date=2022-12-17}}</ref> Τα λήμματα για τα [[έκτακτα νέα|έκτακτα τα νέα]] διαβάζουνται πολλά συχνά απ’ όλο τον κόσμον για φρέσκον ενημέρωσιν.<ref>{{en}} {{cite web |last1=Kelly |first1=Samantha Murphy |date=2022-05-20 |title=Meet the Wikipedia editor who published the Buffalo shooting entry minutes after it started |url=https://www.cnn.com/2022/05/20/tech/wikipedia-editors-breaking-news/index.html|url-status=live|archive-url=https://web.archive.org/web/20221012001310/https://www.cnn.com/2022/05/20/tech/wikipedia-editors-breaking-news/index.html|archive-date=2022-10-12|accessdate=2022-05-24|website=[[CNN]]}}</ref><ref>{{en}} {{cite web |last1=McNamee |first1=Kai |date=2022-09-15 |title=Fastest 'was' in the West: Inside Wikipedia's race to cover the queen's death |website=[[NPR]] |url=https://www.npr.org/2022/09/15/1122943829/wikipedia--queen-elizabeth-ii-death-deaditors-editors-article |url-status= live| accessdate=2023-01-22 |archive-url= https://web.archive.org/web/20230115033202/https://www.npr.org/2022/09/15/1122943829/wikipedia--queen-elizabeth-ii-death-deaditors-editors-article |archive-date=2023-01-15}}</ref>
== Αναφοράντας ==
<references />
[[Κατηγορίαν:Βικιπαίδεια|*]]
j0fx3415ammt4unh009l48d5n44t8gq
37735
37734
2026-08-03T18:54:12Z
Εὐθυμένης
2777
37735
wikitext
text/x-wiki
[[Αρχείον:Wikipedia-logo-v2.svg|μικρογραφία|upright=0.68|Μιαν μισοτελειωμένη σφαίρα πορεμένη ασά μεγάλα, τα λευκά τα κομμάτια τη παζλ. Κάθε κομμάτι έχ’ απάν’ έναν γράμμαν ασό κάθε διαφορετικόν το σύστημαν γραφής, και κάθε γράμμαν έν’ γραμμένον με μαύρον χρώμα.]]
Η '''Βικιπαίδεια''' (αγγλ.: ''Wikipedia'') έν' μιαν ελεύθερη διαδικτυακή [[εγκυκλοπαίδεια]]. Γράφνε και συντηρούνε ατέ εθελοντές ασ' όλες τον κόσμον, ντο λέγουνταν [[Βικιπαιδιστές]], μέσα ασήν ανοιχτήν συνεργασίαν και με το λογισμικόν [[MediaWiki]]. Εθεμελίωσαν ατέ ο [[Τζίμι Γουέιλς]] και ο [[Λάρι Σάνγκερ]] το 2001. Ασόν 2003 και ύστερα, την Βικιπαίδειαν φιλοξενεί το [[Ίδρυμα Wikimedia]], έναν αμερικανικόν [[μη κερδοσκοπικόν σωματείον]] ντο ζει κυρίως ασά λεφτά ντο δίνουνε οι αναγνώστες.<ref name=WF10.23.23>{{en}} {{cite web |title=7 reasons you should donate to Wikipedia |url=https://wikimediafoundation.org/news/2022/11/03/7-reasons-you-should-donate-to-wikipedia/ |last1=Seitz-Gruwell |first1=Lisa |authorlink1=Λίζα Ζάιτς-Γκρούβελ |website=[[Wikimedia Foundation]] |date=2023-10-23 |accessdate=2023-12-27 |url-status=live |archive-date=2024-10-08 |archive-url=https://web.archive.org/web/20241008212455/https://wikimediafoundation.org/news/2023/10/23/7-reasons-you-should-donate-to-wikipedia/ }}</ref> Η Βικιπαίδεια έν’ το μεγαλύτερον και το πλέον διαβασμένον [[έργον αναφοράς]] σην ιστορίαν τη ανθρωπότητας.<ref name="Wiki20">{{en}} {{cite web |date=2021-01-09 |title=Wikipedia is 20, and its reputation has never been higher |url=https://www.economist.com/international/2021/01/09/wikipedia-is-20-and-its-reputation-has-never-been-higher |url-access=subscription |url-status=live |archive-url=https://web.archive.org/web/20210107165356/https://www.economist.com/international/2021/01/09/wikipedia-is-20-and-its-reputation-has-never-been-higher |archive-date=2021-01-07 |accessdate=2021-02-25 |website=[[The Economist]]}}</ref><ref>{{en}} {{cite web |last1=Anderson |first1=Chris |date=2006-05-08 |title=Jimmy Wales – The 2006 Time 100 |url=https://content.time.com/time/specials/packages/article/0,28804,1975813_1975844_1976488,00.html|url-status=live |website=[[Time (περιοδικόν)|Time]]|archive-url=https://web.archive.org/web/20221012001311/https://content.time.com/time/specials/packages/article/0,28804,1975813_1975844_1976488,00.html|archive-date=2022-10-12 |accessdate=2017-11-11 |authorlink1=Κρις Άντερσον (συγγραφεύς)}}</ref>
Στην αρχήν έτον μοναχά στα [[αγγλικόν λαλίαν|αγγλικά]], αλλά σήμερα η Βικιπαίδεια εμεγάλωσεν και γράφεται σε πλέον ασά 300 γλώσσας, ανάμεσα σ’ ατά και στα [[ποντιακόν λαλίαν|ποντιακά]]. Έν' ένας ασάν ιστότοπους με την περισσότερην επισκεψιμότητα σον κόσμον. Η [[Αγγλική Βικιπαίδεια|αγγλική η Βικιπαίδεια]], με πλέον από 7 εκατομμύρια λήμματα, επέμνεν το μεγαλύτερον κομμάτι. Όλας τα γλώσσας μαζί έχουν πλέον από 68 εκατομμύρια λήμματα, και μαζεύκνε πάνω από 1,5 δισεκατομμύριο επισκέψεις ασάν υπολογιστές και τηλέφωνα κάθε μήνα.<ref name="Wikimedia_Stats">{{en}} {{cite web |title=Wikistats – Statistics For Wikimedia Projects |url=https://stats.wikimedia.org/#/all-wikipedia-projects|accessdate=2023-08-08 |website=[[Wikimedia Foundation]]|archive-date=2020-07-11 |archive-url=https://web.archive.org/web/20200711051858/https://stats.wikimedia.org/#/all-wikipedia-projects|url-status=live}}</ref> Πάνω από το 25% τη κίνησης έρχεται ασά Ηνωμένα τα Πολιτείας τη Αμερικής, κοντά στο 7% ασήν Ιαπωνίαν, και κοντά σο 5% ασόν Ηνωμένον το Βασίλειον, την Γερμανίαν και την Ρωσίαν.<ref>{{en}} {{cite web |title=wikipedia.org |url=https://www.similarweb.com/website/wikipedia.org/#geography |url-status=live |archive-url=https://web.archive.org/web/20200605091241/https://www.similarweb.com/website/wikipedia.org#geography |archive-date=2020-06-05 |accessdate=2026-01-09 |website=Similarweb}}</ref>
Πολλοί επανούσαν την Βικιπαίδειαν για τον τρόπον ντο δουλεύ’ και για τον [[εκδημοκρατισμός τη γνώσης|εκδημοκρατισμόν τη γνώσης]], αλλά και επειδή γράφει για πολλά και διάφορα θέματα. Όμως, μερικά κράτη έπαυσαν και έκλεισαν την Βικιπαίδειαν (γιά ολόκληρον γιά μερικάς σελίδας), επειδή εκατηγόρησεν τις κυβερνήσεις ατουν γιά επειδή έγραφεν πράγματα ντο εθεώρησαν βλαστήμιαν.<ref>{{en}} {{cite web |last1=Treisman |first1=Rachel |date=2022-04-01 |title=Russia threatens to fine Wikipedia if it doesn't remove some details about the war |website=[[NPR]] |url=https://www.npr.org/2022/04/01/1090279187/russia-wikipedia-fine|url-status=live|accessdate=2023-01-22|archive-url=https://web.archive.org/web/20221202215844/https://www.npr.org/2022/04/01/1090279187/russia-wikipedia-fine|archive-date=2022-12-02}}</ref><ref name="Skipper-2015">{{en}} {{cite web |last1=Skipper |first1=Ben |date=2015-12-07 |title=China's government has blocked Wikipedia in its entirety again |website=International Business Times UK |url=https://www.ibtimes.co.uk/chinas-government-has-blocked-wikipedia-its-entirety-again-1532138|url-status=live|accessdate=2018-05-02|archive-url=https://web.archive.org/web/20180503111142/https://www.ibtimes.co.uk/chinas-government-has-blocked-wikipedia-its-entirety-again-1532138|archive-date=2018-05-03}}</ref> Η εγκυκλοπαίδεια εδέχθεν κριτικήν και για συστημικά λάθη, όπως έν’ η μεροληψία κατά των γυναικών γιά κατά των χωρών τη [[Παγκόσμιος Νότος|Παγκόσμιου τη Νότου]].<ref>{{en}} {{cite web |last1=Noor |first1=Poppy |title=Wikipedia biases |url=https://www.theguardian.com/technology/2018/jul/29/the-five-wikipedia-biases-pro-western-male-dominated |website=[[The Guardian]] |accessdate=2024-05-31 |date=2018-07-29 |authorlink1=Πόπι Νουρ |archive-date=2020-11-09 |archive-url=https://web.archive.org/web/20201109040056/https://www.theguardian.com/technology/2018/jul/29/the-five-wikipedia-biases-pro-western-male-dominated |url-status=live }}</ref><ref>{{en}} {{cite web |last1=Hern |first1=Alex |title=Wikipedia's view of the world is written by the west |url=https://www.theguardian.com/technology/2015/sep/15/wikipedia-view-of-the-world-is-still-written-by-the-west |website=The Guardian |accessdate=2024-05-31 |date=2015-09-15}}</ref> Σα χρόνια του 2000, πολλοί ’κ επίστευαν την αξιοπιστίαν ατ’ς, αλλά ασόν 2010 και μετά ο κόσμον την επαινεί περισσότερον.<ref name="Wiki20" /><ref name="Econ21">{{en}} {{cite web |date=2021-01-09 |title=Happy Birthday, Wikipedia |website=[[The Economist]] |url=https://www.economist.com/leaders/2021/01/09/happy-birthday-wikipedia|url-access=subscription|accessdate=2023-01-22 |archive-url=https://web.archive.org/web/20230101031816/https://www.economist.com/leaders/2021/01/09/happy-birthday-wikipedia|archive-date=2023-01-01}}</ref><ref name="Last best">{{en}} {{cite web |last1=Cooke |first1=Richard |date=2020-02-17 |title=Wikipedia Is the Last Best Place on the Internet |website=[[Wired (περιοδικόν)|Wired]] |url=https://www.wired.com/story/wikipedia-online-encyclopedia-best-place-internet/|url-access=limited|accessdate=2020-10-13 |archive-url=https://web.archive.org/web/20221217081500/https://www.wired.com/story/wikipedia-online-encyclopedia-best-place-internet/|archive-date=2022-12-17}}</ref> Τα λήμματα για τα [[έκτακτα νέα|έκτακτα τα νέα]] διαβάζουνται πολλά συχνά απ’ όλο τον κόσμον για φρέσκον ενημέρωσιν.<ref>{{en}} {{cite web |last1=Kelly |first1=Samantha Murphy |date=2022-05-20 |title=Meet the Wikipedia editor who published the Buffalo shooting entry minutes after it started |url=https://www.cnn.com/2022/05/20/tech/wikipedia-editors-breaking-news/index.html|url-status=live|archive-url=https://web.archive.org/web/20221012001310/https://www.cnn.com/2022/05/20/tech/wikipedia-editors-breaking-news/index.html|archive-date=2022-10-12|accessdate=2022-05-24|website=[[CNN]]}}</ref><ref>{{en}} {{cite web |last1=McNamee |first1=Kai |date=2022-09-15 |title=Fastest 'was' in the West: Inside Wikipedia's race to cover the queen's death |website=[[NPR]] |url=https://www.npr.org/2022/09/15/1122943829/wikipedia--queen-elizabeth-ii-death-deaditors-editors-article |url-status= live| accessdate=2023-01-22 |archive-url= https://web.archive.org/web/20230115033202/https://www.npr.org/2022/09/15/1122943829/wikipedia--queen-elizabeth-ii-death-deaditors-editors-article |archive-date=2023-01-15}}</ref>
== Αναφοράντας ==
<references />
[[Κατηγορίαν:Βικιπαίδεια|*]]
a0ugthmun0md0tkhyal34qru1zmrqz9
Καλάτσεμαν:Βικιπαίδεια
1
716
37736
33935
2026-08-03T18:54:58Z
Εὐθυμένης
2777
37736
wikitext
text/x-wiki
{{delete|empty page (nonsense)}}
.
3m1k36h9h6wnye8xg7e9dhsblj1uyhw
Κατηγορίαν:Σελίδες για γρήγορη διαγραφή
14
1595
37737
31746
2026-08-03T18:58:05Z
Εὐθυμένης
2777
37737
wikitext
text/x-wiki
__NOGALLERY__
{{hiddencat}}
{{κενή κατηγορία}}
[[Κατηγορίαν:Διαγραφή σελίδων|Γρηγορη διαγραφη]]
675gksg6qc28bw0s0g9x4a419n98lf1
Καθαρεύουσαν
0
3789
37719
2026-08-03T12:35:44Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '[[Αρχείον:Adamantios_Korais.jpg|μικρογραφία|δεξιά|Adamantios Korais, the conceiver of Katharevousa]] Η '''καθαρεύουσαν''' (νεοελλ.: ''καθαρεύουσα'', κυριολεκτικά: «''γλώσσα ντο καθαρίζ’''») έν' μια [[conservative (language)|συντηρητική]] μορφή τη [[Νεοελλενικόν γλώσσα|νεοελλενικής γλώσσας]]. Εγεννή...'
37719
wikitext
text/x-wiki
[[Αρχείον:Adamantios_Korais.jpg|μικρογραφία|δεξιά|Adamantios Korais, the conceiver of Katharevousa]]
Η '''καθαρεύουσαν''' (νεοελλ.: ''καθαρεύουσα'', κυριολεκτικά: «''γλώσσα ντο καθαρίζ’''») έν' μια [[conservative (language)|συντηρητική]] μορφή τη [[Νεοελλενικόν γλώσσα|νεοελλενικής γλώσσας]]. Εγεννήθεν σα τέλη τη 18ου αιώνα ως [[λογοτεχνική γλώσσα]] και ως ένας συμβιβασμός ανάμεσα σην [[Αρχαίον ελλενικόν γλώσσα|αρχαίαν ελληνικήν γλώσσαν]] και την γλώσσαν ντο ελάλνεν ο λαός, τη [[Δημοτικόν ελλενικόν γλώσσα|δημοτικήν]]. Στην αρχήν, εχρησιμοποίναν ατέ ευρέως σα επίσημα τα χαρτία και σην λογοτεχνίαν, αλλά ολίγον στα καθημερινά τα καλατσίας. Σον 20όν τον αιώνα, εγένετον η επίσημος η γλώσσα τη κράτους, ώσπου το 1976 ο υπουργός Παιδείας [[Γεώργιος Ράλλης]] καθιέρωσεν την δημοτικήν ως την επίσημην γλώσσαν τη Ελλάδας. Το 1982, ο πρωθυπουργός [[Ανδρέας Παπανδρέου]] έπαυσεν το πολυτονικόν σύστημα γραφής για τη δημοτικήν και για την καθαρεύουσα.
Την ιδέαν τη καθαρεύουσας εσκέφτεν ο μεγάλος δάσκαλος τη γένους και επαναστάτης [[Αδαμάντιος Κοραής]] (1748-1833).<ref>{{en}} {{cite journal |last=Skendi |first=Stavro |date=1975 |title=Language as a Factor of National Identity in the Balkans of the Nineteenth Century |journal=Proceedings of the American Philosophical Society |volume=119 |issue=2 |pages=186–189 |jstor=986634}}</ref> Ατός εσπούδασεν σο [[Πανεπιστήμιον τη Μονπελιέ]] και έζησεν το πλείστον τη ζωής ατ' εξόριστος σο [[Παρίσι]]. Έτον κλασικός επιστήμονας ντο έβαλεν τα θεμέλια τη [[νεοελληνική λογοτεχνία|νεοελληνικής λογοτεχνίας]] και έτον ασά κυριότερα πρόσωπα τη [[Νεοελληνικός Διαφωτισμός|Νεοελληνικού Διαφωτισμού]]. Ο Κοραής κι εθέλκεν την [[Βυζαντινή Αυτοκρατορία|βυζαντινήν]] επίδρασην σην ελληνικήν κοινωνίαν, και εκατηγόρησεν σκληρά τον κλήρον για την υποταγήν ατ' σην [[Οθωμανική Αυτοκρατορία|Οθωμανικήν Αυτοκρατορίαν]].<ref>{{el}} {{cite book|last1=Κοραής|first1=Αδαμάντιος|title=Αδελφική Διδασκαλία |url=http://invenio.lib.auth.gr/record/56228/files/arc-2006-23343.pdf|location=Ρώμη|page=3}}</ref> Επίστευεν ότι η μόρφωση έτον το πρώτον το πράμαν για να [[Ελληνική Επανάσταση του 1821|ελευθερωθεί η Ελλάδα]].
Ένας ασάν σκοπούς τη καθαρεύουσας έτον να βρεθεί μια μέση λύση σον πόλεμον ανάμεσα σε εκείνους ντο εθέλναν την πλήρη επιστροφήν σην αρχαίαν ελληνικήν γλώσσαν («αρχαϊστές») και σε εκείνους ντο εθέλναν τη γλώσσαν τη λαού («εκσυγχρονιστές»).
== Αναφοράντας ==
<references />
[[Κατηγορίαν:Ελλάδα]]
7vtxj4d04fd9w7tx2g3zr2154szpkbu
37720
37719
2026-08-03T12:39:07Z
Εὐθυμένης
2777
37720
wikitext
text/x-wiki
[[Αρχείον:Adamantios_Korais.jpg|μικρογραφία|δεξιά|Ο Αδαμάντιος Κοραής, ατός ντο εσκέφτεν την καθαρεύουσαν.]]
Η '''καθαρεύουσαν''' (νεοελλ.: ''καθαρεύουσα'', κυριολεκτικά: «''γλώσσα ντο καθαρίζ’''») έν' μια [[συντηρητική γλώσσαν|συντηρητική]] μορφή τη [[Νεοελλενικόν γλώσσα|νεοελλενικής γλώσσας]]. Εγεννήθεν σα τέλη τη 18ου αιώνα ως [[λογοτεχνική γλώσσα]] και ως ένας συμβιβασμός ανάμεσα σην [[Αρχαίον ελλενικόν γλώσσα|αρχαίαν ελληνικήν γλώσσαν]] και την γλώσσαν ντο ελάλνεν ο λαός, τη [[Δημοτικόν ελλενικόν γλώσσα|δημοτικήν]]. Στην αρχήν, εχρησιμοποίναν ατέ ευρέως σα επίσημα τα χαρτία και σην λογοτεχνίαν, αλλά ολίγον στα καθημερινά τα καλατσίας. Σον 20όν τον αιώνα, εγένετον η επίσημος η γλώσσα τη κράτους, ώσπου το 1976 ο υπουργός Παιδείας [[Γεώργιος Ράλλης]] καθιέρωσεν την δημοτικήν ως την επίσημην γλώσσαν τη Ελλάδας. Το 1982, ο πρωθυπουργός [[Ανδρέας Παπανδρέου]] έπαυσεν το πολυτονικόν σύστημα γραφής για τη δημοτικήν και για την καθαρεύουσα.
Την ιδέαν τη καθαρεύουσας εσκέφτεν ο μεγάλος δάσκαλος τη γένους και επαναστάτης [[Αδαμάντιος Κοραής]] (1748-1833).<ref>{{en}} {{cite journal |last=Skendi |first=Stavro |date=1975 |title=Language as a Factor of National Identity in the Balkans of the Nineteenth Century |journal=Proceedings of the American Philosophical Society |volume=119 |issue=2 |pages=186–189 |jstor=986634}}</ref> Ατός εσπούδασεν σο [[Πανεπιστήμιον τη Μονπελιέ]] και έζησεν το πλείστον τη ζωής ατ' εξόριστος σο [[Παρίσι]]. Έτον κλασικός επιστήμονας ντο έβαλεν τα θεμέλια τη [[νεοελληνική λογοτεχνία|νεοελληνικής λογοτεχνίας]] και έτον ασά κυριότερα πρόσωπα τη [[Νεοελληνικός Διαφωτισμός|Νεοελληνικού Διαφωτισμού]]. Ο Κοραής κι εθέλκεν την [[Βυζαντινή Αυτοκρατορία|βυζαντινήν]] επίδρασην σην ελληνικήν κοινωνίαν, και εκατηγόρησεν σκληρά τον κλήρον για την υποταγήν ατ' σην [[Οθωμανική Αυτοκρατορία|Οθωμανικήν Αυτοκρατορίαν]].<ref>{{el}} {{cite book|last1=Κοραής|first1=Αδαμάντιος|title=Αδελφική Διδασκαλία |url=http://invenio.lib.auth.gr/record/56228/files/arc-2006-23343.pdf|location=Ρώμη|page=3}}</ref> Επίστευεν ότι η μόρφωση έτον το πρώτον το πράμαν για να [[Ελληνική Επανάσταση του 1821|ελευθερωθεί η Ελλάδα]].
Ένας ασάν σκοπούς τη καθαρεύουσας έτον να βρεθεί μια μέση λύση σον πόλεμον ανάμεσα σε εκείνους ντο εθέλναν την πλήρη επιστροφήν σην αρχαίαν ελληνικήν γλώσσαν («αρχαϊστές») και σε εκείνους ντο εθέλναν τη γλώσσαν τη λαού («εκσυγχρονιστές»).
== Αναφοράντας ==
<references />
[[Κατηγορίαν:Ελλάδα]]
c857e1j35d74h3edvnox986r5rb6nqi
37721
37720
2026-08-03T12:41:45Z
Εὐθυμένης
2777
37721
wikitext
text/x-wiki
[[Αρχείον:Adamantios_Korais.jpg|μικρογραφία|δεξιά|Ο Αδαμάντιος Κοραής, ατός ντο εσκέφτεν την καθαρεύουσαν.]]
Η '''καθαρεύουσαν''' (νεοελλ.: ''καθαρεύουσα'', κυριολεκτικά: «''γλώσσα ντο καθαρίζ’''») έν' μια [[συντηρητική γλώσσαν|συντηρητική]] μορφή τη [[Νεοελλενικόν γλώσσα|νεοελλενικής γλώσσας]]. Εγεννήθεν σα τέλη τη 18ου αιώνα ως [[λογοτεχνική γλώσσα]] και ως ένας συμβιβασμός ανάμεσα σην [[Αρχαίον ελλενικόν γλώσσα|αρχαίαν ελληνικήν γλώσσαν]] και την γλώσσαν ντο ελάλνεν ο λαός, τη [[Δημοτικόν ελλενικόν γλώσσα|δημοτικήν]]. Στην αρχήν, εχρησιμοποίναν ατέ ευρέως σα επίσημα τα χαρτία και σην λογοτεχνίαν, αλλά ολίγον στα καθημερινά τα καλατσίας. Σον 20όν τον αιώνα, εγένετον η επίσημος η γλώσσα τη κράτους, ώσπου το 1976 ο υπουργός Παιδείας [[Γεώργιος Ράλλης]] καθιέρωσεν την δημοτικήν ως την επίσημην γλώσσαν τη Ελλάδας. Το 1982, ο πρωθυπουργός [[Ανδρέας Παπανδρέου]] έπαυσεν το πολυτονικόν σύστημα γραφής για την δημοτικήν και για την καθαρεύουσαν.
Την ιδέαν τη καθαρεύουσας εσκέφτεν ο μεγάλος δάσκαλος τη γένους και επαναστάτης [[Αδαμάντιος Κοραής]] (1748-1833).<ref>{{en}} {{cite journal |last=Skendi |first=Stavro |date=1975 |title=Language as a Factor of National Identity in the Balkans of the Nineteenth Century |journal=Proceedings of the American Philosophical Society |volume=119 |issue=2 |pages=186–189 |jstor=986634}}</ref> Ατός εσπούδασεν σο [[Πανεπιστήμιον τη Μονπελιέ]] και έζησεν το πλείστον τη ζωής ατ' εξόριστος σο [[Παρίσι]]. Έτον κλασικός επιστήμονας ντο έβαλεν τα θεμέλια τη [[νεοελληνική λογοτεχνία|νεοελληνικής λογοτεχνίας]] και έτον ασά κυριότερα πρόσωπα τη [[Νεοελληνικός Διαφωτισμός|Νεοελληνικού Διαφωτισμού]]. Ο Κοραής κι εθέλκεν την [[Βυζαντινή Αυτοκρατορία|βυζαντινήν]] επίδρασην σην ελληνικήν κοινωνίαν, και εκατηγόρησεν σκληρά τον κλήρον για την υποταγήν ατ' σην [[Οθωμανική Αυτοκρατορία|Οθωμανικήν Αυτοκρατορίαν]].<ref>{{el}} {{cite book|last1=Κοραής|first1=Αδαμάντιος|title=Αδελφική Διδασκαλία |url=http://invenio.lib.auth.gr/record/56228/files/arc-2006-23343.pdf|location=Ρώμη|page=3}}</ref> Επίστευεν ότι η μόρφωση έτον το πρώτον το πράμαν για να [[Ελληνική Επανάσταση του 1821|ελευθερωθεί η Ελλάδα]].
Ένας ασάν σκοπούς τη καθαρεύουσας έτον να βρεθεί μια μέση λύση σον πόλεμον ανάμεσα σε εκείνους ντο εθέλναν την πλήρη επιστροφήν σην αρχαίαν ελληνικήν γλώσσαν («αρχαϊστές») και σε εκείνους ντο εθέλναν τη γλώσσαν τη λαού («εκσυγχρονιστές»).
== Αναφοράντας ==
<references />
[[Κατηγορίαν:Ελλάδα]]
eggxiftjtqgxj4m5ygvikveysg1r03c
Module:Footnotes
828
3790
37722
2026-08-03T13:49:34Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με 'require('strict'); local getArgs = require ('Module:Arguments').getArgs; --[[--------------------------< A R G S _ D E F A U L T >------------------------------------------------------ a table to specify initial values. ]] local args_default = { group = '', bracket_left = '', bracket_right = '', bracket_year_left = '', bracket_year_right = '', postscript = '', page = '', pages = '', location = '', page_sep = ", p. ", pages_s...'
37722
Scribunto
text/plain
require('strict');
local getArgs = require ('Module:Arguments').getArgs;
--[[--------------------------< A R G S _ D E F A U L T >------------------------------------------------------
a table to specify initial values.
]]
local args_default = {
group = '',
bracket_left = '',
bracket_right = '',
bracket_year_left = '',
bracket_year_right = '',
postscript = '',
page = '',
pages = '',
location = '',
page_sep = ", p. ",
pages_sep = ", pp. ",
ref = '',
template = 'harv', -- if template name not provided in {{#invoke:}} use this
};
--[[--------------------------< T A R G E T _ C H E C K >------------------------------------------------------
look for anchor_id (CITEREF name-list and year or text from |ref=) in anchor_id_list
the 'no target' error may be suppressed with |ignore-err=yes when target cannot be found because target is inside
a template that wraps another template; 'multiple targets' error may not be suppressed
]]
local function target_check (anchor_id, args)
local namespace = mw.title.getCurrentTitle().namespace;
local anchor_id_list_module = mw.loadData ('Module:Footnotes/anchor_id_list');
local anchor_id_list = anchor_id_list_module.anchor_id_list;
local article_whitelist = anchor_id_list_module.article_whitelist;
local template_list = anchor_id_list_module.template_list;
local citeref_patterns = anchor_id_list_module.citeref_patterns
local whitelist_module = mw.loadData ('Module:Footnotes/whitelist');
local whitelist = whitelist_module.whitelist;
local tally = anchor_id_list[anchor_id]; -- nil when anchor_id not in list; else a tally
local msg;
local category;
if not tally then
if args.ignore then
return ''; -- if ignore is true then no message, no category
end
if article_whitelist and article_whitelist[anchor_id] then -- if an article-local whitelist and anchor ID is in it
return ''; -- done
end
local wl_anchor_id = anchor_id; -- copy to be modified to index into the whitelist
if args.year then -- for anchor IDs created by this template (not in |ref=) that have a date
if args.year:match ('%d%l$') or -- use the date value to determine if we should remove the disambiguator
args.year:match ('n%.d%.%l$') or
args.year:match ('nd%l$') then
wl_anchor_id = wl_anchor_id:gsub ('%l$', ''); -- remove the disambiguator
end
end
local t_tbl = whitelist[wl_anchor_id]; -- get list of templates associated with this anchor ID
if t_tbl then -- when anchor ID not whitelisted t_tbl is nil
for _, t in ipairs (t_tbl) do -- spin through the list of templates associated with this anchor ID
if template_list[t] then -- if associated template is found in the list of templates in the article
return ''; -- anchor ID is whitlisted and article has matching template so no error
end
end
end
for _, pattern in ipairs(citeref_patterns) do -- load patterns for wrapper templates on this page
if anchor_id:match(pattern) then -- spin through the special patterns and try to match
return ''
end
end
msg = 'no target: ' .. anchor_id; -- anchor_id not found
mw.log(msg)
if namespace == 10 and not args.show then -- do not generate error message in template namespace
return ''
end
category = '[[Category:Harv and Sfn no-target errors]]';
elseif 1 < tally then
msg = 'multiple targets (' .. tally .. '×): ' .. anchor_id; -- more than one anchor_id in this article
mw.log(msg)
if namespace == 10 and not args.show then -- do not generate error message in template namespace
return ''
end
category = 0 == namespace and '[[Category:Harv and Sfn multiple-target errors]]' or ''; -- only categorize in article space
return '<span class="error harv-error" style="display: inline; font-size:100%"> ' .. args.template .. ' error: ' .. msg .. ' ([[:Category:Harv and Sfn template errors|help]])</span>' .. category;
end
-- category = 0 == namespace and '[[Category:Harv and Sfn template errors]]' or ''; -- only categorize in article space
category = 0 == namespace and category or ''; -- only categorize in article space
-- display based on args.show (no display by default)
local display = args.show and 'inline' or 'none'
return msg and '<span class="error harv-error" style="display: '..display..'; font-size:100%"> ' .. args.template .. ' error: ' .. msg .. ' ([[:Category:Harv and Sfn template errors|help]])</span>' .. category or '';
end
--[[--------------------------< I S _ Y E A R >----------------------------------------------------------------
evaluates param to see if it is one of these forms with or without lowercase letter disambiguator:
YYYY
n.d.
nd
c. YYYY
YYYY–YYYY (separator is endash)
YYYY–YY (separator is endash)
return true when param has a recognized form; false else
]]
local patterns_date= {
'^%d%d%d%d?%l?$',
'^n%.d%.%l?$',
'^nd%l?$',
'^c%. %d%d%d%d?%l?$',
'^%d%d%d%d–%d%d%d%d%l?$',
'^%d%d%d%d–%d%d%l?$',
}
local function is_year (param, args)
args.year = ''; -- used for harv error;
for _, pattern in ipairs (patterns_date) do
if mw.ustring.match (param, pattern) then
args.year = param; -- used for harv error;
return true;
end
end
end
--[[--------------------------< C O R E >----------------------------------------------------------------------
returns an anchor link (CITEREF) formed from one to four author names, year, and insource location (|p=, |pp=, loc=)
]]
local function core( args )
local result;
local err_msg = ''
if args.P5 ~= '' then
if is_year (args.P5, args) then
result = table.concat ({args.P1, ' et al. ', args.bracket_year_left, args.P5, args.bracket_year_right});
else
args.P5 = ''; -- when P5 not a year don't include in anchor
result = table.concat ({args.P1, ' et al.'}); -- and don't render it
end
elseif args.P4 ~= '' then
if is_year (args.P4, args) then
result = table.concat ({args.P1, ', ', args.P2, ' & ', args.P3, ' ', args.bracket_year_left, args.P4, args.bracket_year_right}); -- three names and a year
else
result = table.concat ({args.P1, ' et al.'}); -- four names
end
elseif args.P3 ~= '' then
if is_year (args.P3, args) then
result = table.concat ({args.P1, ' & ', args.P2, ' ', args.bracket_year_left, args.P3, args.bracket_year_right}); -- two names and a year
else
result = table.concat ({args.P1, ', ', args.P2, ' ', ' & ', args.P3}); -- three names
end
elseif args.P2 ~= '' then
if is_year (args.P2, args) then
result = table.concat ({args.P1, ' ', args.bracket_year_left, args.P2, args.bracket_year_right}); -- one name and year
else
result = table.concat ({args.P1, ' & ', args.P2}); -- two names
end
else
result = args.P1; -- one name
end
-- when author-date result ends with a dot (typically when the last positional parameter holds 'n.d.')
-- and when no in-source location (no |p=, |pp=, or |loc=)
-- and when the first or only character in args.postscript is a dot
-- remove the author-date result trailing dot
-- the author-date result trailing dot will be replaced later with the content of args.postscript (usually a dot)
if ('.' == result:sub(-1)) and ('.' == args.postscript:sub(1)) and ('' == args.page) and ('' == args.pages) and ('' == args.location) then
result = result:gsub ('%.$', '');
end
if args.ref ~= 'none' then
local anchor_id;
if args.ref ~= '' then
anchor_id = mw.uri.anchorEncode (args.ref);
err_msg = target_check (anchor_id, args);
result = table.concat ({'[[#', anchor_id, '|', result, ']]'});
else
anchor_id = mw.uri.anchorEncode (table.concat ({'CITEREF', args.P1, args.P2, args.P3, args.P4, args.P5}));
err_msg = target_check (anchor_id, args);
result = table.concat ({'[[#', anchor_id, '|', result, ']]'});
end
end
if args.page ~= '' then
result = table.concat ({result, args.page_sep, args.page});
elseif args.pages ~= ''then
result = table.concat ({result, args.pages_sep, args.pages});
end
if args.location ~= '' then
result = table.concat ({result, ', ', args.location});
end
result = table.concat ({args.bracket_left, result, args.bracket_right, args.postscript}):gsub ('%s+', ' '); -- strip redundant spaces
return result .. err_msg;
end
--[[--------------------------< H Y P H E N _ T O _ D A S H >--------------------------------------------------
Converts a hyphen to a dash under certain conditions. The hyphen must separate
like items; unlike items are returned unmodified. These forms are modified:
letter - letter (A - B)
digit - digit (4-5)
digit separator digit - digit separator digit (4.1-4.5 or 4-1-4-5)
letterdigit - letterdigit (A1-A5) (an optional separator between letter and
digit is supported – a.1-a.5 or a-1-a-5)
digitletter - digitletter (5a - 5d) (an optional separator between letter and
digit is supported – 5.a-5.d or 5-a-5-d)
any other forms are returned unmodified.
str may be a comma- or semicolon-separated list
This code copied from Module:Citation/CS1. The only modification is to require Module:Citation/CS1/Utilities
so that it has access to the functions is_set() and has_accept_as_written()
]]
local function hyphen_to_dash( str )
local utilities = require ('Module:Citation/CS1/Utilities'); -- only modification so that this function has access to is_set() and has_accept_as_written()
if not utilities.is_set (str) then
return str;
end
local accept; -- Boolean
str = str:gsub ('&[nm]dash;', {['–'] = '–', ['—'] = '—'}); -- replace — and – entities with their characters; semicolon mucks up the text.split
str = str:gsub ('-', '-'); -- replace HTML numeric entity with hyphen character
str = str:gsub (' ', ' '); -- replace entity with generic keyboard space character
local out = {};
local list = mw.text.split (str, '%s*[,;]%s*'); -- split str at comma or semicolon separators if there are any
for _, item in ipairs (list) do -- for each item in the list
item, accept = utilities.has_accept_as_written (item); -- remove accept-this-as-written markup when it wraps all of item
if not accept and mw.ustring.match (item, '^%w*[%.%-]?%w+%s*[%-–—]%s*%w*[%.%-]?%w+$') then -- if a hyphenated range or has endash or emdash separators
if item:match ('^%a+[%.%-]?%d+%s*%-%s*%a+[%.%-]?%d+$') or -- letterdigit hyphen letterdigit (optional separator between letter and digit)
item:match ('^%d+[%.%-]?%a+%s*%-%s*%d+[%.%-]?%a+$') or -- digitletter hyphen digitletter (optional separator between digit and letter)
item:match ('^%d+[%.%-]%d+%s*%-%s*%d+[%.%-]%d+$') or -- digit separator digit hyphen digit separator digit
item:match ('^%d+%s*%-%s*%d+$') or -- digit hyphen digit
item:match ('^%a+%s*%-%s*%a+$') then -- letter hyphen letter
item = item:gsub ('(%w*[%.%-]?%w+)%s*%-%s*(%w*[%.%-]?%w+)', '%1–%2'); -- replace hyphen, remove extraneous space characters
else
item = mw.ustring.gsub (item, '%s*[–—]%s*', '–'); -- for endash or emdash separated ranges, replace em with en, remove extraneous whitespace
end
end
table.insert (out, item); -- add the (possibly modified) item to the output table
end
local temp_str = ''; -- concatenate the output table into a comma separated string
temp_str, accept = utilities.has_accept_as_written (table.concat (out, ', ')); -- remove accept-this-as-written markup when it wraps all of concatenated out
if accept then
temp_str = utilities.has_accept_as_written (str); -- when global markup removed, return original str; do it this way to suppress boolean second return value
return temp_str;
else
return temp_str; -- else, return assembled temp_str
end
end
--[[--------------------------< A R G S _ F E T C H >---------------------------------------------------------
Because all of the templates share a common set of parameters, a single common function to fetch those parameters
from frame and parent frame.
]]
local function args_fetch (frame, ps)
local args = args_default; -- create a copy of the default table
local pframe = frame:getParent(); -- point to the template's parameter table
for k, v in pairs (frame.args) do -- override defaults with values provided in the #invoke: if any
args[k] = v;
end
args.postscript = pframe.args.postscript or pframe.args.ps or ps;
if 'none' == args.postscript then
args.postscript = '';
end
args.group = pframe.args.group or '';
args.page = pframe.args.p or pframe.args.page or '';
args.pages = pframe.args.pp or pframe.args.pages or '';
args.pages = ('' ~= args.pages) and hyphen_to_dash (args.pages) or '';
args.location = pframe.args.at or pframe.args.loc or '';
args.ref = pframe.args.ref or pframe.args.Ref or '';
args.ignore = ('yes' == pframe.args['ignore-false-positive']) or ('yes' == pframe.args['ignore-err']);
for i, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- loop through the five positional parameters and trim if set else empty string
args[v] = (pframe.args[i] and mw.text.trim (pframe.args[i])) or '';
end
if args.P5 and not is_year (args.P5, args) then
local i = 6; -- initialize the indexer to the sixth positional parameter
while pframe.args[i] do -- in case there are too many authors loop through the authors looking for a year
local v = mw.text.trim (pframe.args[i]); -- trim
if is_year (v, args) then -- if a year
args.P5 = v; -- overwrite whatever was in args.P5 with year
break; -- and abandon the search
end
i = i + 1; -- bump the indexer
end
end
return args;
end
--[[--------------------------< H A R V A R D _ C I T A T I O N >----------------------------------------------
common entry point for:
{{harvard citation}} aka {{harv}}
{{Harvard citation no brackets}} aka {{harvnb}}
{{harvcol}}
{{harvcolnb}}
{{harvcoltxt}}
{{Harvard citation text}} aka {{harvtxt}}
{{Harvp}}
Distinguishing features (brackets and page separators) are specified in this module's {{#invoke}} in the respective templates.
]]
local function harvard_citation (frame)
local args = args_fetch (frame, ''); -- get the template and invoke parameters; default postscript is empty string
return core (args);
end
--[[--------------------------< S T R I P _ U R L >------------------------------------------------------------
used by sfn() and sfnm(). This function fixes an issue with reference tooltip gadget where the tooltip is not displayed
when an insource locator (|p=, |pp=, |loc=) has an external wikilink that contains a # character
strip uri-reserved characters from urls in |p=, |pp-, and |loc= parameters The researved characters are:
!#$&'()*+,/:;=?@[]
]]
local function strip_url (pages)
local escaped_uri;
if not pages or ('' == pages) then
return pages;
end
for uri in pages:gmatch ('%[(%a[%w%+%.%-]*://%S+)') do -- for each external link get the uri
escaped_uri = uri:gsub ("([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ); -- save a copy with lua pattern characters escaped
uri = uri:gsub ("[!#%$&'%(%)%*%+,/:;=%?@%[%]%.%%]", ''); -- remove reserved characters and '%' because '%20' (space character) is a lua 'invalid capture index'
pages = pages:gsub (escaped_uri, uri, 1); -- replace original uri with the stripped version
end
return pages;
end
--[[--------------------------< S F N >------------------------------------------------------------------------
entry point for {{sfn}} and {{sfnp}}
]]
local function sfn (frame)
local args = args_fetch (frame, '.'); -- get the template and invoke parameters; default postscript is a dot
local result = core (args); -- go make a CITEREF anchor
-- put it all together and then strip redundant spaces
local name = table.concat ({'FOOTNOTE', args.P1, args.P2, args.P3, args.P4, args.P5, strip_url (args.page), strip_url (args.pages), strip_url (args.location)}):gsub ('%s+', ' ');
return frame:extensionTag ({name='ref', args={group=args.group, name=name}, content=result});
end
--[[--------------------------< S F N M >----------------------------------------------------------------------
common entry point for {{sfnm}} and {{sfnmp}}
Distinguishing features (brackets) are specified in this module's {{#invoke}} in the respective templates.
]]
local function sfnm (frame)
local args = args_default; -- create a copy of the default table
local pframe = frame:getParent(); -- point to the template's parameter table
local n = 1; -- index of source; this is the 'n' in na1, ny, etc
local first_pnum = 1; -- first of a pair of positional parameters
local second_pnum = 2; -- second of a pair of positional parameters
local last_ps = 0; -- index of the last source with |nps= set
local last_index = 0; -- index of the last source; these used to determine which of |ps= or |nps= will terminate the whole rendering
local out = {}; -- table to hold rendered sources
local footnote = {'FOOTNOTE'}; -- all author, date, insource location stuff becomes part of the reference's footnote id; added as we go
for k, v in pairs (frame.args) do -- override defaults with values provided in the #invoke: if any
args[k] = v;
end
while true do
if not pframe.args[table.concat ({n, 'a1'})] and not pframe.args[first_pnum] then
break; -- no na1 or matching positional parameter so done
end
if pframe.args[table.concat ({n, 'a1'})] then -- does this source use named parameters?
for _, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- initialize for this source
args[v] = '';
end
for i, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- extract author and year parameters for this source
args[v] = pframe.args[table.concat ({n, 'a', i})] or ''; -- attempt to assign author name
if '' == args[v] then -- when there wasn't an author name
args[v] = pframe.args[table.concat ({n, 'y'})] or ''; -- attempt to assign year
break; -- done with author/date for this source
end
end
else -- this source uses positional parameters
args.P1 = mw.text.trim (pframe.args[first_pnum]); -- yes, only one author supported
args.P2 = (pframe.args[second_pnum] and mw.text.trim (pframe.args[second_pnum])) or ''; -- when positional author, year must also be positional
for _, v in ipairs ({'P3', 'P4', 'P5'}) do -- blank the rest of these for this source
args[v] = '';
end
first_pnum = first_pnum + 2; -- source must use positional author and positional year
second_pnum = first_pnum + 1; -- bump these for possible next positional source
end
args.postscript = pframe.args[table.concat ({n, 'ps'})] or '';
if 'none' == args.postscript then -- this for compatibility with other footnote templates; does nothing
args.postscript = '';
end
args.group = pframe.args.group or ''; -- reference group
args.ref = pframe.args[table.concat ({n, 'ref'})] or ''; -- alternate reference for this source
args.page = pframe.args[table.concat ({n, 'p'})] or ''; -- insource locations for this source
args.pages = pframe.args[table.concat ({n, 'pp'})] or '';
args.pages = ('' ~= args.pages) and hyphen_to_dash (args.pages) or '';
args.location = pframe.args[table.concat ({n, 'loc'})] or pframe.args[table.concat ({n, 'at'})] or '';
args.ignore = ('yes' == pframe.args[table.concat ({n, 'ignore-false-positive'})]) or ('yes' == pframe.args[table.concat ({n, 'ignore-err'})]);
table.insert (out, core (args)); -- save the rendering of this source
for k, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- create the FOOTNOTE id
if '' ~= args[v] then
table.insert (footnote, args[v]);
end
end
for k, v in ipairs ({'page', 'pages', 'location'}) do -- these done separately so that we can strip uri-reserved characters from extlinked page numbers
if '' ~= args[v] then
table.insert (footnote, strip_url (args[v]))
end
end
last_index = n; -- flags used to select terminal postscript from nps or from end_ps
if '' ~= args.postscript then
last_ps = n;
end
n = n+1; -- bump for the next one
end
local name = table.concat (footnote):gsub ('%s+', ' '); -- put the footnote together and strip redundant space
args.end_ps = pframe.args.postscript or pframe.args.ps or '.'; -- this is the postscript for the whole not for the individual sources
if 'none' == args.end_ps then -- not an original sfnm parameter value; added for compatibility with other footnote templates
args.end_ps = '';
end
local result = table.concat ({table.concat (out, '; '), (last_index == last_ps) and '' or args.end_ps});
return frame:extensionTag ({name='ref', args={group=args.group, name=name}, content=result});
end
--[[--------------------------< S F N R E F >------------------------------------------------------------------
implements {{sfnref}}
]]
local function sfnref (frame)
local args = getArgs (frame);
local out = {};
for i=1, 5 do -- get the first five args if there are five args
if args[i] then
out[i] = args[i];
else
break; -- less than 5 args break out
end
end
if 5 == #out then -- when we have seen five args there may bemore
local i = 6; -- initialize the indexer to the sixth positional parameter
while args[i] do -- in case there are too many authors loop through the authors looking for a year
if is_year (args[i], args) then -- if a year
out[5] = args[i]; -- overwrite whatever was in args[5] with year
break; -- and abandon the search
end
i = i + 1; -- bump the indexer
end
end
return mw.uri.anchorEncode ('CITEREF' .. table.concat (out));
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
harvard_citation = harvard_citation,
sfn = sfn,
sfnm = sfnm,
sfnref = sfnref,
target_check = target_check,
};
3ecgpqdblqy50cj0ke12x56x7g6qre8
37727
37722
2026-08-03T15:24:39Z
Εὐθυμένης
2777
37727
Scribunto
text/plain
require('strict');
local getArgs = require ('Module:Arguments').getArgs;
--[[--------------------------< A R G S _ D E F A U L T >------------------------------------------------------
a table to specify initial values.
]]
local args_default = {
group = '',
bracket_left = '',
bracket_right = '',
bracket_year_left = '',
bracket_year_right = '',
postscript = '',
page = '',
pages = '',
location = '',
page_sep = ", p. ",
pages_sep = ", pp. ",
ref = '',
template = 'harv', -- if template name not provided in {{#invoke:}} use this
};
--[[--------------------------< T A R G E T _ C H E C K >------------------------------------------------------
look for anchor_id (CITEREF name-list and year or text from |ref=) in anchor_id_list
the 'no target' error may be suppressed with |ignore-err=yes when target cannot be found because target is inside
a template that wraps another template; 'multiple targets' error may not be suppressed
]]
local function target_check (anchor_id, args)
local namespace = mw.title.getCurrentTitle().namespace;
local anchor_id_list_module = mw.loadData ('Module:Footnotes/anchor_id_list');
local anchor_id_list = anchor_id_list_module.anchor_id_list;
local article_whitelist = anchor_id_list_module.article_whitelist;
local template_list = anchor_id_list_module.template_list;
local citeref_patterns = anchor_id_list_module.citeref_patterns
local whitelist_module = mw.loadData ('Module:Footnotes/whitelist');
local whitelist = whitelist_module.whitelist;
local tally = anchor_id_list[anchor_id]; -- nil when anchor_id not in list; else a tally
local msg;
local category;
if not tally then
if args.ignore then
return ''; -- if ignore is true then no message, no category
end
if article_whitelist and article_whitelist[anchor_id] then -- if an article-local whitelist and anchor ID is in it
return ''; -- done
end
local wl_anchor_id = anchor_id; -- copy to be modified to index into the whitelist
if args.year then -- for anchor IDs created by this template (not in |ref=) that have a date
if args.year:match ('%d%l$') or -- use the date value to determine if we should remove the disambiguator
args.year:match ('n%.d%.%l$') or
args.year:match ('nd%l$') then
wl_anchor_id = wl_anchor_id:gsub ('%l$', ''); -- remove the disambiguator
end
end
local t_tbl = whitelist[wl_anchor_id]; -- get list of templates associated with this anchor ID
if t_tbl then -- when anchor ID not whitelisted t_tbl is nil
for _, t in ipairs (t_tbl) do -- spin through the list of templates associated with this anchor ID
if template_list[t] then -- if associated template is found in the list of templates in the article
return ''; -- anchor ID is whitlisted and article has matching template so no error
end
end
end
for _, pattern in ipairs(citeref_patterns) do -- load patterns for wrapper templates on this page
if anchor_id:match(pattern) then -- spin through the special patterns and try to match
return ''
end
end
msg = 'no target: ' .. anchor_id; -- anchor_id not found
mw.log(msg)
if namespace == 10 and not args.show then -- do not generate error message in template namespace
return ''
end
elseif 1 < tally then
msg = 'multiple targets (' .. tally .. '×): ' .. anchor_id; -- more than one anchor_id in this article
mw.log(msg)
if namespace == 10 and not args.show then -- do not generate error message in template namespace
return ''
end
category = 0 == namespace and '[[Category:Harv and Sfn multiple-target errors]]' or ''; -- only categorize in article space
return '<span class="error harv-error" style="display: inline; font-size:100%"> ' .. args.template .. ' error: ' .. msg .. ' ([[:Category:Harv and Sfn template errors|help]])</span>' .. category;
end
-- category = 0 == namespace and '[[Category:Harv and Sfn template errors]]' or ''; -- only categorize in article space
category = 0 == namespace and category or ''; -- only categorize in article space
-- display based on args.show (no display by default)
local display = args.show and 'inline' or 'none'
return msg and '<span class="error harv-error" style="display: '..display..'; font-size:100%"> ' .. args.template .. ' error: ' .. msg .. ' ([[:Category:Harv and Sfn template errors|help]])</span>' .. category or '';
end
--[[--------------------------< I S _ Y E A R >----------------------------------------------------------------
evaluates param to see if it is one of these forms with or without lowercase letter disambiguator:
YYYY
n.d.
nd
c. YYYY
YYYY–YYYY (separator is endash)
YYYY–YY (separator is endash)
return true when param has a recognized form; false else
]]
local patterns_date= {
'^%d%d%d%d?%l?$',
'^n%.d%.%l?$',
'^nd%l?$',
'^c%. %d%d%d%d?%l?$',
'^%d%d%d%d–%d%d%d%d%l?$',
'^%d%d%d%d–%d%d%l?$',
}
local function is_year (param, args)
args.year = ''; -- used for harv error;
for _, pattern in ipairs (patterns_date) do
if mw.ustring.match (param, pattern) then
args.year = param; -- used for harv error;
return true;
end
end
end
--[[--------------------------< C O R E >----------------------------------------------------------------------
returns an anchor link (CITEREF) formed from one to four author names, year, and insource location (|p=, |pp=, loc=)
]]
local function core( args )
local result;
local err_msg = ''
if args.P5 ~= '' then
if is_year (args.P5, args) then
result = table.concat ({args.P1, ' et al. ', args.bracket_year_left, args.P5, args.bracket_year_right});
else
args.P5 = ''; -- when P5 not a year don't include in anchor
result = table.concat ({args.P1, ' et al.'}); -- and don't render it
end
elseif args.P4 ~= '' then
if is_year (args.P4, args) then
result = table.concat ({args.P1, ', ', args.P2, ' & ', args.P3, ' ', args.bracket_year_left, args.P4, args.bracket_year_right}); -- three names and a year
else
result = table.concat ({args.P1, ' et al.'}); -- four names
end
elseif args.P3 ~= '' then
if is_year (args.P3, args) then
result = table.concat ({args.P1, ' & ', args.P2, ' ', args.bracket_year_left, args.P3, args.bracket_year_right}); -- two names and a year
else
result = table.concat ({args.P1, ', ', args.P2, ' ', ' & ', args.P3}); -- three names
end
elseif args.P2 ~= '' then
if is_year (args.P2, args) then
result = table.concat ({args.P1, ' ', args.bracket_year_left, args.P2, args.bracket_year_right}); -- one name and year
else
result = table.concat ({args.P1, ' & ', args.P2}); -- two names
end
else
result = args.P1; -- one name
end
-- when author-date result ends with a dot (typically when the last positional parameter holds 'n.d.')
-- and when no in-source location (no |p=, |pp=, or |loc=)
-- and when the first or only character in args.postscript is a dot
-- remove the author-date result trailing dot
-- the author-date result trailing dot will be replaced later with the content of args.postscript (usually a dot)
if ('.' == result:sub(-1)) and ('.' == args.postscript:sub(1)) and ('' == args.page) and ('' == args.pages) and ('' == args.location) then
result = result:gsub ('%.$', '');
end
if args.ref ~= 'none' then
local anchor_id;
if args.ref ~= '' then
anchor_id = mw.uri.anchorEncode (args.ref);
err_msg = target_check (anchor_id, args);
result = table.concat ({'[[#', anchor_id, '|', result, ']]'});
else
anchor_id = mw.uri.anchorEncode (table.concat ({'CITEREF', args.P1, args.P2, args.P3, args.P4, args.P5}));
err_msg = target_check (anchor_id, args);
result = table.concat ({'[[#', anchor_id, '|', result, ']]'});
end
end
if args.page ~= '' then
result = table.concat ({result, args.page_sep, args.page});
elseif args.pages ~= ''then
result = table.concat ({result, args.pages_sep, args.pages});
end
if args.location ~= '' then
result = table.concat ({result, ', ', args.location});
end
result = table.concat ({args.bracket_left, result, args.bracket_right, args.postscript}):gsub ('%s+', ' '); -- strip redundant spaces
return result .. err_msg;
end
--[[--------------------------< H Y P H E N _ T O _ D A S H >--------------------------------------------------
Converts a hyphen to a dash under certain conditions. The hyphen must separate
like items; unlike items are returned unmodified. These forms are modified:
letter - letter (A - B)
digit - digit (4-5)
digit separator digit - digit separator digit (4.1-4.5 or 4-1-4-5)
letterdigit - letterdigit (A1-A5) (an optional separator between letter and
digit is supported – a.1-a.5 or a-1-a-5)
digitletter - digitletter (5a - 5d) (an optional separator between letter and
digit is supported – 5.a-5.d or 5-a-5-d)
any other forms are returned unmodified.
str may be a comma- or semicolon-separated list
This code copied from Module:Citation/CS1. The only modification is to require Module:Citation/CS1/Utilities
so that it has access to the functions is_set() and has_accept_as_written()
]]
local function hyphen_to_dash( str )
local utilities = require ('Module:Citation/CS1/Utilities'); -- only modification so that this function has access to is_set() and has_accept_as_written()
if not utilities.is_set (str) then
return str;
end
local accept; -- Boolean
str = str:gsub ('&[nm]dash;', {['–'] = '–', ['—'] = '—'}); -- replace — and – entities with their characters; semicolon mucks up the text.split
str = str:gsub ('-', '-'); -- replace HTML numeric entity with hyphen character
str = str:gsub (' ', ' '); -- replace entity with generic keyboard space character
local out = {};
local list = mw.text.split (str, '%s*[,;]%s*'); -- split str at comma or semicolon separators if there are any
for _, item in ipairs (list) do -- for each item in the list
item, accept = utilities.has_accept_as_written (item); -- remove accept-this-as-written markup when it wraps all of item
if not accept and mw.ustring.match (item, '^%w*[%.%-]?%w+%s*[%-–—]%s*%w*[%.%-]?%w+$') then -- if a hyphenated range or has endash or emdash separators
if item:match ('^%a+[%.%-]?%d+%s*%-%s*%a+[%.%-]?%d+$') or -- letterdigit hyphen letterdigit (optional separator between letter and digit)
item:match ('^%d+[%.%-]?%a+%s*%-%s*%d+[%.%-]?%a+$') or -- digitletter hyphen digitletter (optional separator between digit and letter)
item:match ('^%d+[%.%-]%d+%s*%-%s*%d+[%.%-]%d+$') or -- digit separator digit hyphen digit separator digit
item:match ('^%d+%s*%-%s*%d+$') or -- digit hyphen digit
item:match ('^%a+%s*%-%s*%a+$') then -- letter hyphen letter
item = item:gsub ('(%w*[%.%-]?%w+)%s*%-%s*(%w*[%.%-]?%w+)', '%1–%2'); -- replace hyphen, remove extraneous space characters
else
item = mw.ustring.gsub (item, '%s*[–—]%s*', '–'); -- for endash or emdash separated ranges, replace em with en, remove extraneous whitespace
end
end
table.insert (out, item); -- add the (possibly modified) item to the output table
end
local temp_str = ''; -- concatenate the output table into a comma separated string
temp_str, accept = utilities.has_accept_as_written (table.concat (out, ', ')); -- remove accept-this-as-written markup when it wraps all of concatenated out
if accept then
temp_str = utilities.has_accept_as_written (str); -- when global markup removed, return original str; do it this way to suppress boolean second return value
return temp_str;
else
return temp_str; -- else, return assembled temp_str
end
end
--[[--------------------------< A R G S _ F E T C H >---------------------------------------------------------
Because all of the templates share a common set of parameters, a single common function to fetch those parameters
from frame and parent frame.
]]
local function args_fetch (frame, ps)
local args = args_default; -- create a copy of the default table
local pframe = frame:getParent(); -- point to the template's parameter table
for k, v in pairs (frame.args) do -- override defaults with values provided in the #invoke: if any
args[k] = v;
end
args.postscript = pframe.args.postscript or pframe.args.ps or ps;
if 'none' == args.postscript then
args.postscript = '';
end
args.group = pframe.args.group or '';
args.page = pframe.args.p or pframe.args.page or '';
args.pages = pframe.args.pp or pframe.args.pages or '';
args.pages = ('' ~= args.pages) and hyphen_to_dash (args.pages) or '';
args.location = pframe.args.at or pframe.args.loc or '';
args.ref = pframe.args.ref or pframe.args.Ref or '';
args.ignore = ('yes' == pframe.args['ignore-false-positive']) or ('yes' == pframe.args['ignore-err']);
for i, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- loop through the five positional parameters and trim if set else empty string
args[v] = (pframe.args[i] and mw.text.trim (pframe.args[i])) or '';
end
if args.P5 and not is_year (args.P5, args) then
local i = 6; -- initialize the indexer to the sixth positional parameter
while pframe.args[i] do -- in case there are too many authors loop through the authors looking for a year
local v = mw.text.trim (pframe.args[i]); -- trim
if is_year (v, args) then -- if a year
args.P5 = v; -- overwrite whatever was in args.P5 with year
break; -- and abandon the search
end
i = i + 1; -- bump the indexer
end
end
return args;
end
--[[--------------------------< H A R V A R D _ C I T A T I O N >----------------------------------------------
common entry point for:
{{harvard citation}} aka {{harv}}
{{Harvard citation no brackets}} aka {{harvnb}}
{{harvcol}}
{{harvcolnb}}
{{harvcoltxt}}
{{Harvard citation text}} aka {{harvtxt}}
{{Harvp}}
Distinguishing features (brackets and page separators) are specified in this module's {{#invoke}} in the respective templates.
]]
local function harvard_citation (frame)
local args = args_fetch (frame, ''); -- get the template and invoke parameters; default postscript is empty string
return core (args);
end
--[[--------------------------< S T R I P _ U R L >------------------------------------------------------------
used by sfn() and sfnm(). This function fixes an issue with reference tooltip gadget where the tooltip is not displayed
when an insource locator (|p=, |pp=, |loc=) has an external wikilink that contains a # character
strip uri-reserved characters from urls in |p=, |pp-, and |loc= parameters The researved characters are:
!#$&'()*+,/:;=?@[]
]]
local function strip_url (pages)
local escaped_uri;
if not pages or ('' == pages) then
return pages;
end
for uri in pages:gmatch ('%[(%a[%w%+%.%-]*://%S+)') do -- for each external link get the uri
escaped_uri = uri:gsub ("([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ); -- save a copy with lua pattern characters escaped
uri = uri:gsub ("[!#%$&'%(%)%*%+,/:;=%?@%[%]%.%%]", ''); -- remove reserved characters and '%' because '%20' (space character) is a lua 'invalid capture index'
pages = pages:gsub (escaped_uri, uri, 1); -- replace original uri with the stripped version
end
return pages;
end
--[[--------------------------< S F N >------------------------------------------------------------------------
entry point for {{sfn}} and {{sfnp}}
]]
local function sfn (frame)
local args = args_fetch (frame, '.'); -- get the template and invoke parameters; default postscript is a dot
local result = core (args); -- go make a CITEREF anchor
-- put it all together and then strip redundant spaces
local name = table.concat ({'FOOTNOTE', args.P1, args.P2, args.P3, args.P4, args.P5, strip_url (args.page), strip_url (args.pages), strip_url (args.location)}):gsub ('%s+', ' ');
return frame:extensionTag ({name='ref', args={group=args.group, name=name}, content=result});
end
--[[--------------------------< S F N M >----------------------------------------------------------------------
common entry point for {{sfnm}} and {{sfnmp}}
Distinguishing features (brackets) are specified in this module's {{#invoke}} in the respective templates.
]]
local function sfnm (frame)
local args = args_default; -- create a copy of the default table
local pframe = frame:getParent(); -- point to the template's parameter table
local n = 1; -- index of source; this is the 'n' in na1, ny, etc
local first_pnum = 1; -- first of a pair of positional parameters
local second_pnum = 2; -- second of a pair of positional parameters
local last_ps = 0; -- index of the last source with |nps= set
local last_index = 0; -- index of the last source; these used to determine which of |ps= or |nps= will terminate the whole rendering
local out = {}; -- table to hold rendered sources
local footnote = {'FOOTNOTE'}; -- all author, date, insource location stuff becomes part of the reference's footnote id; added as we go
for k, v in pairs (frame.args) do -- override defaults with values provided in the #invoke: if any
args[k] = v;
end
while true do
if not pframe.args[table.concat ({n, 'a1'})] and not pframe.args[first_pnum] then
break; -- no na1 or matching positional parameter so done
end
if pframe.args[table.concat ({n, 'a1'})] then -- does this source use named parameters?
for _, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- initialize for this source
args[v] = '';
end
for i, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- extract author and year parameters for this source
args[v] = pframe.args[table.concat ({n, 'a', i})] or ''; -- attempt to assign author name
if '' == args[v] then -- when there wasn't an author name
args[v] = pframe.args[table.concat ({n, 'y'})] or ''; -- attempt to assign year
break; -- done with author/date for this source
end
end
else -- this source uses positional parameters
args.P1 = mw.text.trim (pframe.args[first_pnum]); -- yes, only one author supported
args.P2 = (pframe.args[second_pnum] and mw.text.trim (pframe.args[second_pnum])) or ''; -- when positional author, year must also be positional
for _, v in ipairs ({'P3', 'P4', 'P5'}) do -- blank the rest of these for this source
args[v] = '';
end
first_pnum = first_pnum + 2; -- source must use positional author and positional year
second_pnum = first_pnum + 1; -- bump these for possible next positional source
end
args.postscript = pframe.args[table.concat ({n, 'ps'})] or '';
if 'none' == args.postscript then -- this for compatibility with other footnote templates; does nothing
args.postscript = '';
end
args.group = pframe.args.group or ''; -- reference group
args.ref = pframe.args[table.concat ({n, 'ref'})] or ''; -- alternate reference for this source
args.page = pframe.args[table.concat ({n, 'p'})] or ''; -- insource locations for this source
args.pages = pframe.args[table.concat ({n, 'pp'})] or '';
args.pages = ('' ~= args.pages) and hyphen_to_dash (args.pages) or '';
args.location = pframe.args[table.concat ({n, 'loc'})] or pframe.args[table.concat ({n, 'at'})] or '';
args.ignore = ('yes' == pframe.args[table.concat ({n, 'ignore-false-positive'})]) or ('yes' == pframe.args[table.concat ({n, 'ignore-err'})]);
table.insert (out, core (args)); -- save the rendering of this source
for k, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- create the FOOTNOTE id
if '' ~= args[v] then
table.insert (footnote, args[v]);
end
end
for k, v in ipairs ({'page', 'pages', 'location'}) do -- these done separately so that we can strip uri-reserved characters from extlinked page numbers
if '' ~= args[v] then
table.insert (footnote, strip_url (args[v]))
end
end
last_index = n; -- flags used to select terminal postscript from nps or from end_ps
if '' ~= args.postscript then
last_ps = n;
end
n = n+1; -- bump for the next one
end
local name = table.concat (footnote):gsub ('%s+', ' '); -- put the footnote together and strip redundant space
args.end_ps = pframe.args.postscript or pframe.args.ps or '.'; -- this is the postscript for the whole not for the individual sources
if 'none' == args.end_ps then -- not an original sfnm parameter value; added for compatibility with other footnote templates
args.end_ps = '';
end
local result = table.concat ({table.concat (out, '; '), (last_index == last_ps) and '' or args.end_ps});
return frame:extensionTag ({name='ref', args={group=args.group, name=name}, content=result});
end
--[[--------------------------< S F N R E F >------------------------------------------------------------------
implements {{sfnref}}
]]
local function sfnref (frame)
local args = getArgs (frame);
local out = {};
for i=1, 5 do -- get the first five args if there are five args
if args[i] then
out[i] = args[i];
else
break; -- less than 5 args break out
end
end
if 5 == #out then -- when we have seen five args there may bemore
local i = 6; -- initialize the indexer to the sixth positional parameter
while args[i] do -- in case there are too many authors loop through the authors looking for a year
if is_year (args[i], args) then -- if a year
out[5] = args[i]; -- overwrite whatever was in args[5] with year
break; -- and abandon the search
end
i = i + 1; -- bump the indexer
end
end
return mw.uri.anchorEncode ('CITEREF' .. table.concat (out));
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
harvard_citation = harvard_citation,
sfn = sfn,
sfnm = sfnm,
sfnref = sfnref,
target_check = target_check,
};
pgu0x3rb09rwnpg7qxawyx282lg0uw4
Module:Footnotes/anchor id list
828
3791
37723
2026-08-03T13:50:52Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με 'require('strict'); local data = mw.loadData ('Module:Footnotes/anchor id list/data'); local whitelist = mw.loadData ('Module:Footnotes/whitelist'); local Lang_obj = mw.language.getContentLanguage(); -- used by template_list_add() to uppercase first letter of template name TODO: better way to do that? local redirects_date = { ['date'] = true, ['datetomos'] = true, ['formatdate'] = true, ['isotodmymdy'] = true, ['isotomos'] = true, } lo...'
37723
Scribunto
text/plain
require('strict');
local data = mw.loadData ('Module:Footnotes/anchor id list/data');
local whitelist = mw.loadData ('Module:Footnotes/whitelist');
local Lang_obj = mw.language.getContentLanguage(); -- used by template_list_add() to uppercase first letter of template name TODO: better way to do that?
local redirects_date = {
['date'] = true,
['datetomos'] = true,
['formatdate'] = true,
['isotodmymdy'] = true,
['isotomos'] = true,
}
local redirects_patent = { -- special case cs1-like templates because uses different parameters for name and date in anchor ID
['Cite patent'] = true,
['Citeref patent'] = true,
['Ref patent'] = true,
}
local redirects_sfnref = {
['sfnref'] = true,
['harvid'] = true,
}
local aliases_author = { -- these use pseudo-patterns in the same way as cs1|2; '#' represents 1 or more enumerator digits
'last#',
'author#',
'surname#',
'author-last#',
'author#-last',
'subject#',
'host#',
}
local aliases_contributor = {
'contributor#',
'contributor-last#',
'contributor#-last',
'contributor-surname#',
'contributor#-surname',
}
local aliases_editor = {
'editor#',
'editor-last#',
'editor#-last',
'editor-surname#',
'editor#-surname',
}
local aliases_harvc_author = {
'last#',
'author#',
}
local aliases_inventor = { -- cite patent
'inventor#',
'inventor-last#',
'inventor#-last',
'inventor-surname#',
'inventor#-surname',
'invent#',
'invent-#',
}
local alias_patterns_date = { -- normal lua patterns for most cs1|2-like templates
'|%s*year%s*=%s*',
'|%s*date%s*=%s*',
'|%s*publication%-?date%s*=%s*',
'|%s*air%-?date%s*=%s*',
}
local alias_patterns_harvc_date = { -- normal lua patterns for harvc template
'|%s*anchor%-year%s*=%s*',
'|%s*year%s*=%s*',
}
local alias_patterns_patent_date = { -- normal lua patterns for cite patent templates
'|%s*issue%-date%s*=%s*',
'|%s*gdate%s*=%s*',
'|%s*publication%-date%s*=%s*',
'|%s*pubdate%s*=%s*',
}
local patterns_date = { -- normal lua patterns
-- '(%d%d%d%d–%d%d%d%d%l?)$', -- YYYY–YYYY four-digit year range at end (Season YYYY–YYYY); with or without dab
'(%d%d%d%d)%D+(%d%d%d%d%l?)$', -- any range with four-digit years; with or without dab; not two captures
'^(%d%d%d%d–%d%d%l?)$', -- YYYY–YY two-digit year range; with or without dab
'^(c%. %d%d%d%d?%l?)$', -- three- or four-digit circa year; with or without dab
'(%d%d%d%d?%l?)$', -- three- or four-digit year at end of date (dmy or mdy); with or without dab
'^(%d%d%d%d?%l?)', -- three- or four-digit year at beginning of date (ymd or YYYY); with or without dab
'^(n%.d%.%l?)$', -- 'no date' with dots; with or without dab
'^(nd%l?)$', -- 'no date' without dots; with or without dab
}
local patterns_tags = {
'<nowiki>.-</nowiki>',
'<!%-%-.-%-%->',
'<pre>.-</pre>',
'<syntaxhighlight.->.-</syntaxhighlight>',
'<source.->.-</source>', -- deprecated alias of syntaxhighlight tag
}
local template_skip = { -- templates to be skipped for whatever reason; mostly because they resemble cs1-like templates
['Citation-attribution'] = true,
}
local global_article_content = nil
local global_anchor_id_list = nil -- exported tables
local global_template_list = nil
local global_article_whitelist = nil
--[[--------------------------< A R T I C L E _ C O N T E N T _ G E T >----------------------------------------
get article content, remove certain html-like tags and their content so that this code doesn't include any citation
templates inside the tags as valid tagets; they are not.
]]
local function article_content_get ()
if global_article_content then return global_article_content end
local article_content = mw.title.getCurrentTitle():getContent() or ''; -- get the content of the article or ''; new pages edited w/ve do not have 'content' until saved; ve does not preview; phab:T221625
for _, tag in ipairs (patterns_tags) do
article_content = article_content:gsub (tag, ''); -- remove certain html-like tags and their content
end
global_article_content = article_content
return article_content
end
--[[--------------------------< S F N R E F _ G E T >----------------------------------------------------------
make an anchor id from the contents of {{sfnref}} or {{harvid}}. this function assumes that {{sfnref}} and {{harvid}}
are correctly formed.
]]
local function sfnref_get (template)
template = template:gsub ('{{%s*(.-)%s*}}', '%1'); -- strip bounding template markup and trim
local parts = mw.text.split (template, '%s*|%s*'); -- split at the pipe and remove extraneous space characters
local anchor_id = {};
if redirects_sfnref[parts[1]:lower()] then
anchor_id[1] = 'CITEREF';
else
return nil; -- not an sfnref or harvid template
end
local i = 2; -- indexer into parts{} table
local j = 2; -- indexer into anchor_id{} table which already has 'CITEREF' at [1]
while parts[i] and 7 > j do -- loop through what should be just positional parameters for names and year (2-6 four names and a date)
if not parts[i]:find ('=') then -- look for equal sign (named paraneter in a template that doesn't support named parameters)
anchor_id[j] = parts[i]; -- positional parameters are saved
j = j+1; -- bump the anchor_id{} indexer
end
i = i+ 1; -- bump the parts{} indexer
end
return table.concat (anchor_id, '');
end
--[[--------------------------< D A T E _ G E T >--------------------------------------------------------------
extract year from one of |year=, |date=, |publicationdate=, or |publication-date in that order. Does not error
check (that is left to the cs1|2 templates to do)
also gets date from |<date alias>={{date|...}}
]]
local function date_get (template, aliases)
local rvalue;
for _, pattern in ipairs (aliases) do -- spin through the date alias patterns
rvalue = tostring(template):match (pattern); -- is this |<date alias>= used (tostring() because something makes match() think template is a table)
if rvalue then
rvalue = tostring(template):match (pattern .. '(%b{})'); -- is rvalue a template?
if rvalue then
rvalue = rvalue:gsub ('{{%s*(.-)%s*}}', '%1'); -- strip bounding template markup and trim
local parts = mw.text.split (rvalue, '%s*|%s*'); -- split at the pipe and remove extraneous space characters
if redirects_date[parts[1]:lower()] then -- if parts[1] names {{date}} or redirect
rvalue = parts[2]; -- assume that date template is properly formed, first positional parameter is the date
else
return ''; -- |date= holds some other template than {{date}} or redirect
end
else
rvalue = template:match (pattern .. '([^|}]+)');
if rvalue then -- if rvalue is something
rvalue = mw.text.trim (rvalue); -- trim it
end
if not rvalue or '' == rvalue then -- if rvale was nothing or trimed to nothing
rvalue = nil; -- ensure that it is unset so we can try the next parameter in the list
end
end
if rvalue then
for _, pattern in ipairs (patterns_date) do -- spin through the recognized date formats
-- date = rvalue:match (pattern); -- attempt to extract year portion according to the pattern
local date, date2 = rvalue:match (pattern); -- attempt to extract year portion according to the pattern; <date2> gets second year in any range
if date then
if date2 then -- when a second year
date = table.concat ({date, '–', date2}); -- build a date range
end
return date; -- matched so return;
end
end
break; -- found a date but it was malformed so abandon
end
end
end
return ''; -- no date param or date param doesn't hold a recognized date; empty string for concatenation
end
--[[--------------------------< V N A M E S _ G E T >----------------------------------------------------------
extract names from |vauthors= or |veditors=; there is no |vcontributors= parameter.
splits the v parameter value at the comma; correctly handles accept-as-witten markup when used to wrap a comma-
separated names (corporate)
]]
local function vnames_get (params, vparam)
local vnames = {}; -- first four author or editor names go here
local split = {}; -- temp table to assist in decoding accept-as-witten-markup
if params[vparam] then -- test for |vauthors= or |veditor=
split = mw.text.split (params[vparam], '%s*,%s*'); -- this will separate portions of ((Black, Brown, White, an Co.))
local i = 1; -- an indexer
while split[i] do
if split[i]:match ('^%(%(.*[^%)][^%)]$') then -- first segment of comma-separated accept-as-witten; this segment has the opening doubled parens
local name = split[i];
i=i+1; -- bump indexer to next segment
while split[i] do
name = name .. ', ' .. split[i]; -- concatenate with previous segments
if split[i]:match ('^.*%)%)$') then -- if this table member has the closing doubled parens
break; -- and done reassembling so
end
i=i+1; -- bump indexer
end
table.insert (vnames, name); -- and add accept-as-witten name to the vnames table
else
table.insert (vnames, split[i]); -- and add name to the vnames table
end
i=i+1; -- bump indexer
if 5 == i then break; end -- limit to four names
end
for i, vname in ipairs (vnames) do
if not vname:match ('%(%(.-%)%)') then -- without accept-this-value-as-written markup
vnames[i] = vname:gsub ('(.-)%s+%u+$', '%1'); -- extract and save surname(s)
end
end
for i, vname in ipairs (vnames) do -- repeat, this time for accept-this-value-as-written markup
vnames[i] = vname:gsub ('%(%((.-)%)%)', '%1'); -- remove markup if present and save the whole name
end
end
return 0 ~= #vnames and table.concat (vnames) or nil -- return a concatenation of the vnames; nil else
end
--[[--------------------------< N A M E S _ G E T >------------------------------------------------------------
cs1|2 makes anchor id from contributor, author, or editor name-lists in that order
get the names from the cs1|2 template; if there are no contributor names, try author names, then try editor names.
returns concatenated names in enumeration order when successful; nil else
empty name (nameholding parameter n is present without value) and missing name (nameholding parameter n is not
present) are included as empty string with all other names
]]
local function names_get (params, aliases_list)
local names = {}; -- first four author or editor names go here
local enum_alias; -- alias with '#' replaced with a digit
for enum=1, 4 do -- four names only
for i, alias in ipairs (aliases_list) do
if not names[enum] then -- hanven't found a previous alias with this [enum]? see if we can find this alias with this enum
enum_alias = alias:gsub ('#', enum); -- replace '#' to make 'lastn'
if 1 == enum then -- because |last= and last1= are exact aliases
if params[enum_alias] then -- test |last1= first
names[enum] = params[enum_alias]; -- found so save the value assigned to |last1=
break; -- next enum
else
enum_alias = alias:gsub ('#', ''); -- replace '#' to make 'last'
if params[enum_alias] then
names[enum] = params[enum_alias]; -- found so save the value assigned to |last=
break; -- next enum
end
end
else -- here for enum 2, 3, 4
if params[enum_alias] then
names[enum] = params[enum_alias]; -- found so save the value assigned to |lastn=
break; -- next enum
end
end
end
end
end
for enum=1, 4 do -- spin through the names table and
local name = names[enum];
if not name then -- when nameholding parameter n is not present (nil)
name = ''; -- convert to empty string for concatenation
end
name = name:gsub('%(%((.-)%)%)', '%1'); -- remove accept-as-written markup if present
names[enum] = name; -- save the modified name
end
local name_str = table.concat (names); -- concatenate the names
return '' ~= name_str and name_str or nil; -- return the concatenation if not empty string; nil else
end
--[[--------------------------< T E M P L A T E _ S T R I P >--------------------------------------------------
removes the citation or havrc template's {{ and }} markup then removes, in whole, any templates found inside the
citation or harvc template.
Templates are not allowed in parameters that are made part of COinS metadata; yet, they will appear. cs1|2 does
not see the template markup but instead sees the result of the template as html. cs1|2 strips the html which
leaves the displayed value for the anchor id. We can't do that here so, because templates aren't allowed in
parameters, we simply discard any templates found in the cs1|2 template.
this may leave a |lastn= parameter empty which will be treated as if it were really empty as cs1|2 do (three authors,
|last2= empty -> CITEREFLast1Last3YYYY (the harv and sfn render: 'Last1, & Last3 YYYY' with CITEREFLast1Last3YYYY).
]]
local function template_strip (template)
template = template:gsub ('^{{%s*', ''):gsub ('%s*}}$', '', 1); -- remove outer {{ and }} (cs1|2 template delimiters with trailing/leading whitespace)
template = template:gsub ('%b{}', ''); -- remove any templates from the cs1|2 template
return template;
end
--[[--------------------------< E S C A P E _ L U A _ M A G I C _ C H A R S >----------------------------------
Returns a string where all of lua's magic characters have been escaped. This is important because functions like
string.gsub() treat their pattern and replace strings as patterns, not literal strings.
]]
local function escape_lua_magic_chars (argument)
argument = argument:gsub("%%", "%%%%"); -- replace % with %%
argument = argument:gsub("([%^%$%(%)%.%[%]%*%+%-%?])", "%%%1"); -- replace all other lua magic pattern characters
return argument;
end
--[=[-------------------------< W I K I L I N K _ S T R I P >--------------------------------------------------
Wikilink markup does not belong in an anchor id and can / does confuse the code that parses apart citation and
harvc templates so here we remove any wiki markup:
[[link|label]] -> label
[[link]] -> link
]=]
local function wikilink_strip (template)
for wikilink in template:gmatch ('%[%b[]%]') do -- get a wikilink
template = template:gsub ('%[%b[]%]', '__57r1P__', 1); -- install a marker
if wikilink:match ('%[%[.-|(.-)%]%]') then
wikilink = wikilink:match ('%[%[.-|(.-)%]%]'); -- extract label from complex [[link|label]] wikilink
else
wikilink = wikilink:match ('%[%[(.-)%]%]'); -- extract link from simple [[link]] wikilinks
end
wikilink = escape_lua_magic_chars (wikilink); -- in case there are lua magic characters in wikilink
template = template:gsub ('__57r1P__', wikilink, 1); -- replace the marker with the appropriate text
end
return template;
end
--[[--------------------------< T E M P L A T E _ N A M E _ G E T >--------------------------------------------
return the citation or harvc template's name; convert to lower case and trim leading and trailing whitespace;
when the template is a sandbox the subpage portion of the template name is omitted from the returned template name
{{Cite book/new |...}} returns cite book
]]
local function template_name_get (template)
local template_name = template:match ('^{{%s*([^/|}]+)'); -- get template name; ignore subpages ~/new, ~/sandbox; parser functions
if not template_name or template_name:match ('^#') then -- parser functions, magic words don't count as templates
return nil; -- could not get template name from (possibly corrupt) template; extraneous opening { mid template can cause this;
end;
template_name = template_name:gsub ('%s*$', ''); -- trim trailing whitespace; leading whitespace already removed
return Lang_obj:ucfirst (template_name); -- first character in template name must be uppercase (same as canonical template name) TODO: better way to do this?
end
--[[--------------------------< T E M P L A T E _ P A R A M S _ G E T >----------------------------------------
parse apart a template's parameters and store in the params table where key is the parameter's name and value is
the parameter's value; empty parameters are not saved
]]
local function template_params_get (template, params_t)
template = wikilink_strip (template); -- because piped wikilinks confuse code that builds params_t{} and because wikilinks not allowed in an anchor id
-- strip templates after getting |ref= value because |ref={{sfnref}} and |ref={{harvid}} are allowed
template = template_strip (template); -- because template markup can confuse code that builds params_t{} and because templates in name parameters are not allowed
local temp_t = mw.text.split (template, '%s*|%s*'); --split on the pipe
for _, param in ipairs (temp_t) do
if param:find ('=', 1, true) then -- a named parameter?
local k, v = param:match ('%s*([^=]-)%s*=%s*([^|}]+)');
if v then -- there must be a value
if '' ~= v and not v:match ('^%s$') then -- skip when value is empty string or only whitespace
params_t[k] = mw.text.trim (v); -- add trimmed value else
end
end
end
end
end
--[[--------------------------< C I T E R E F _ M A K E _ H A R V C >------------------------------------------
makes anchor_id from {{harvc}} or redirects
]]
local function anchor_id_make_harvc (template)
local date = date_get (template, alias_patterns_harvc_date); -- get date; done here because might be in {{date}}; return date if valid; empty string else
local anchor_id;
local params = {}; -- table of harvc parameters
local id; -- custom anchor id for this {{harvc}} template
id = template:match ('|%s*id%s*=%s*(%b{})'); -- in case |id={{sfnref}}; done here because templates will be stripped
template_params_get (template, params); -- build a table of template parameters and their values; this strips wikilinks and templates
if id then -- when set is {{sfnref}} or {{harvid}} template
return sfnref_get (id); -- returns content of {{sfnref}} or {{harvid}}; nil else
end
if params.id then -- custom anchor for this {{harvc}} template (text)
return params.id; -- |id= value as written
end
anchor_id = names_get (params, aliases_harvc_author); -- get the harvc contributor names
if anchor_id then -- if names were gotten
return 'CITEREF' .. anchor_id .. date;
end
return nil; -- no names; no anchor_id
end
--[[--------------------------< A N C H O R _ I D _ M A K E _ W R A P P E R >----------------------------------
for wrapper templates
inspect externally visible |ref= to decide what to do:
|ref= - empty or missing: get names and date from whitelist defaults; override defaults from externally visible template parameters
|ref=harv - same as empty or missing
|ref={{SfnRef|name|name|name|name|year}} - assemble an anchor id from {{sfnref}} positional parameters
|ref={{Harvid|name|name|name|name|year}} - assemble an anchor id from {{harvid}} positional parameters
|ref=none - skip; do nothing because an anchor id intentionally suppressed; TODO: keep with a type code of '0'?
|ref=<text> - save param value because may match an anchor id override value in {{harv}} template |ref= parameter or {{harvc}} |id= parameter
]]
local function anchor_id_make_wrapper (template)
local ref; -- content of |ref=
local template_name; -- name of the template
local anchor_id; -- the assembled anchor id from this template
local date;
local name_default;
local date_default;
local vol;
local params = {}; -- table of template parameters
template_name = template_name_get (template); -- get first char uppercase trimmed template name; ignore subpages ~/new, ~/sandbox
if not template_name or template_skip[template_name] then
return nil; -- could not extract template name from (possibly corrupted) template (extraneous opening { in the template will cause this)
end
date = date_get (template, alias_patterns_date); -- get date; done here because might be in {{date}}
-- if '' == date then
-- date = whitelist.wrapper_templates[template_name][2] or ''; -- no externally visible date so get default date
-- end
ref = template:match ('|%s*ref%s*=%s*(%b{})'); -- first look for |ref={{sfnref}} or |ref={{harvid}} because we will strip templates from the wrapper template
if not ref then
if template:match ('|%s*ref%s*=([^|}]+)') then -- |ref={{template}} not found; if there is a |ref= param with an assigned value
ref = template:match ('|%s*ref%s*=([^|}]+)'); -- get the value; whitespace is a 'value'
if ref then -- nil when |ref=|... or when |ref=}} (no spaces between assignment operator and pipe or closing brace)
ref = mw.text.trim (ref); -- something, could be just whitespace, so trim leading / trailing whitespace
if '' == ref then -- trimming a string of whitespace makes an empty string
ref = nil; -- make empty ref same as missing ref
end
end
end
end
template_params_get (template, params); -- build a table of template parameters and their values
local wrap_data = whitelist.wrapper_templates[template_name]
if wrap_data[1] then -- is this wrapper a simple-default wrapper?
name_default = wrap_data[1]; -- get the default names
date_default = wrap_data[2]; -- get the default date
else
vol = params['volume'] or 'default';
local fascicle = params['fascicle'] -- some templates use "fascicle" to mean "subvolume"
if fascicle then
local subvol = vol..'/'..fascicle -- if fascicle is used, subvolume = "vol/fascicle"
if wrap_data[subvol] then -- if subvolume exists, use it, otherwise fall back to volume
vol = subvol
end
end
if not wrap_data[vol] then -- make sure this volume exists
vol = 'default'; -- doesn't exist, use default volume
end
name_default = wrap_data[vol][1]; -- get the default names
date_default = wrap_data[vol][2]; -- get the default date
end
if 'harv' == ref or not ref then -- |ref=harv specified or |ref= missing or empty
anchor_id = names_get (params, aliases_contributor) or -- get contributor, author, or editor names
names_get (params, aliases_author) or
vnames_get (params, 'vauthors') or -- |vauthors=
names_get (params, aliases_editor) or
vnames_get (params, 'veditors') or -- |veditors=
name_default; -- default names from whitelist
-- whitelist.wrapper_templates[template_name][1]; -- default names from whitelist
if '' == date then -- if date not provided in the template
date = date_default; -- use the default date from whitelist
end
if anchor_id then -- if names were gotten
anchor_id = 'CITEREF' .. anchor_id .. date;
end
elseif ref:match ('%b{}') then -- ref holds a template
anchor_id = sfnref_get (ref); -- returns content of {{sfnref}} or {{harvid}}; nil else
elseif 'none' == ref then -- |ref=none
return nil; -- anchor id expicitly suppressed
else
anchor_id = ref; -- |ref=<text> may match an anchor id override value in {{harv}} template |ref= parameter
end
return anchor_id; -- anchor_id text; nil else
end
--[[--------------------------< A N C H O R _ I D _ M A K E _ C S 1 2 >----------------------------------------
for cs1|2 template and cs1-like templates
inspect |ref= to decide what to do:
|ref= - empty or missing: get names and date from template parameters; all cs1|2 create CITEREF anchor IDs
|ref=harv - get names and date from template parameters
|ref={{SfnRef|name|name|name|name|year}} - assemble an anchor id from {{sfnref}} positional parameters
|ref={{Harvid|name|name|name|name|year}} - assemble an anchor id from {{harvid}} positional parameters
|ref=none - skip; do nothing because an anchor id intentionally suppressed; TODO: keep with a type code of '0'?
|ref=<text> - save param value because may match an anchor id override value in {{harv}} template |ref= parameter or {{harvc}} |id= parameter
]]
local function anchor_id_make_cs12 (template)
local ref; -- content of |ref=
local template_name; -- name of the template
local anchor_id; -- the assembled anchor id from this template
local date;
local params = {}; -- table of template parameters
template_name = template_name_get (template); -- get first char uppercase trimmed template name; ignore subpages ~/new, ~/sandbox
if not template_name or template_skip[template_name] then
return nil; -- could not extract template name from (possibly corrupted) template (extraneous opening { in the template will cause this)
end
if redirects_patent[template_name] then
date = date_get (template, alias_patterns_patent_date); -- get date; done here because might be in {{date}}
else
date = date_get (template, alias_patterns_date);
end
ref = template:match ('|%s*ref%s*=%s*(%b{})'); -- first look for |ref={{sfnref}} or |ref={{harvid}} because we will strip templates from the cs1|2 template
if not ref then
if template:match ('|%s*ref%s*=([^|}]+)') then -- |ref={{template}} not found; if there is a |ref= param with an assigned value
ref = template:match ('|%s*ref%s*=([^|}]+)'); -- get the value; whitespace is a 'value'
if ref then -- nil when |ref=|... or when |ref=}} (no spaces between assignment operator and pipe or closing brace)
ref = mw.text.trim (ref); -- something, could be just whitespace, so trim leading / trailing whitespace
if '' == ref then -- trimming a string of whitespace makes an empty string
ref = nil; -- make empty ref same as missing ref
end
end
end
end
template_params_get (template, params); -- build a table of template parameters and their values
if 'harv' == ref or not ref then -- |ref=harv specified or |ref= missing or empty
if redirects_patent[template_name] then -- if this is a cite patent template
anchor_id = names_get (params, aliases_inventor); -- inventor names only
else -- cs1|2 template
anchor_id = names_get (params, aliases_contributor) or -- get contributor, author, or editor names
names_get (params, aliases_author) or
vnames_get (params, 'vauthors') or -- |vauthors=
names_get (params, aliases_editor) or
vnames_get (params, 'veditors'); -- |veditors=
end
if anchor_id then -- if names were gotten
anchor_id = 'CITEREF' .. anchor_id .. date;
end
elseif ref:match ('%b{}') then -- ref holds a template
anchor_id = sfnref_get (ref); -- returns content of {{sfnref}} or {{harvid}}; nil else
elseif 'none' == ref and not redirects_patent[template_name] then -- |ref=none; not supported by cite patent
return nil; -- anchor id expicitly suppressed
else
anchor_id = ref; -- |ref=<text> may match an anchor id override value in {{harv}} template |ref= parameter
end
return anchor_id; -- anchor_id text; nil else
end
--[[--------------------------< L I S T _ A D D >--------------------------------------------------------------
adds an <item> to <list> table; for anchor IDs, the boolean <encode> argument must be set true; no return value
]]
local function list_add (item, list, encode)
if item then -- if there was an item
if encode then -- for anchor IDs ...
item = mw.uri.anchorEncode (item); -- encode to remove wikimarkup, convert spaces to underscores etc
end
if not list[item] then -- if not already saved
list[item] = 1; -- save it
else -- here when this item already saved
list[item] = list[item] + 1; -- to indicate that there are multiple items
end
end
end
--[[--------------------------< A N C H O R _ I D _ M A K E _ A N C H O R >------------------------------------
make anchor IDs from {{anchor}}; there may be more than one because {{anchor}} is not limited to the number of
anchors it may hold.
]]
local function anchor_id_make_anchor (template, anchor_id_list)
template = template:gsub ('^{{[^|]+|', ''):gsub ('}}$', '', 1); -- remove outer {{ and }} and template name
template = wikilink_strip (template); -- strip any wikilink markup (there shouldn't be any but just in case)
local params = {};
local anchor_id;
for param in template:gmatch ('%b{}') do -- loop through the template; remove and save templates (presumed to be sfnref or harvid)
table.insert (params, param); -- save it
template = template:gsub ('%b{}', '', 1); -- remove it from source template
end
for _, t in ipairs (params) do -- spin through the templates in params
anchor_id = sfnref_get (t); -- attempt to decode {{sfnref}} and {{harvid}}
if anchor_id then -- nil when not {{sfnref}} or {{harvid}}
list_add (anchor_id, anchor_id_list, true); -- add anchor ID to the list
end
end
template = template:gsub ('|%s*|', '|'); -- when pipe follows pipe with or without white space, remove extraneous pipe
template = template:gsub ('^|', ''):gsub('|$', ''); -- remove extraneous leading and trailing pipes
params = mw.text.split (template, '%s*|%s*'); -- split at the pipe and remove extraneous space characters
for _, t in ipairs (params) do -- spin through the anchor IDs
anchor_id = mw.text.trim (t); -- trim white space
if '' ~= anchor_id then -- should always have something
list_add (anchor_id, anchor_id_list, true); -- add anchor ID to the list
end
end
end
--[[--------------------------< T E M P L A T E _ L I S T _ A D D >--------------------------------------------
makes a list of templates use in the article.
]]
local function template_list_add (template, template_list)
local template = template:match ('{{%s*(.-)[|}]'); -- keep the case of the template - this is different from template_name_get()
if template and not template:match ('^#') then -- found a template or magic word; ignore magic words
template=mw.text.trim (template); -- trim whitespace
template = Lang_obj:ucfirst (template); -- first character in template name must be uppercase (same as canonical template name) TODO: better way to do this?
list_add (template, template_list); -- add to list with (unused) tally
end
end
--[[--------------------------< A N C H O R _ I D _ L I S T _ M A K E >----------------------------------------
makes a list of anchor ids from cs1|2, cs1|2-like, vcite xxx, harvc, anchor, wikicite templates
Because cs1|2 wrapper templates can, and often do, hide the author and date parameters inside the wrapper,
these parameters are not available in the article's wikisource so {{harv}}, {{sfn}}, and {{harvc}} templates that
link correctly to those wrapper templates will incorrectly show error messages. Use |ignore-err=yes in the {{harv}},
{{sfn}}, and {{harvc}} templates to supress the error message.
creates a list of templates used in the article for use with the whitelist
creates a list of article-local whitelisted anchor IDs from {{sfn whitelist}}
]]
local function anchor_id_list_make ()
local anchor_id_list = {}
local template_list = {}
local article_whitelist = {}
local article_content = article_content_get (); -- attempt to get this article's content
if article_content == '' then -- when there is no article content
return ''; -- no point in continuing
end
local template; -- place to hold the template that we found
local template_name;
local anchor_id; -- place to hold an anchor id as it is extracted / decoded
local find_pattern = '%f[{]{{[^{]';
local tstart, tend = article_content:find (find_pattern); -- find the first template; do not find template variables: {{{template var|}}}
while tstart do
template = article_content:match ('%b{}', tstart); -- get the whole template
if not template then
break; -- template is nil for some reason (last template missing closing }} for example) so declare ourselves done
end
template_name = template_name_get (template); -- get first char uppercase trimmed template name; ignore subpages ~/new, ~/sandbox
template_list_add (template, template_list); -- add this template's name to the list
if data.known_templates_cs12 [template_name] then
anchor_id = anchor_id_make_cs12 (template); -- extract an anchor id from this template
list_add (anchor_id, anchor_id_list, true)
elseif data.known_templates_vcite [template_name] then
local ref = template:match ('|%s*ref%s*=%s*(%b{})'); -- first look for |ref={{sfnref}} or |ref={{harvid}} because we will strip templates from the vcite template
if ref then -- |ref={{template}}
anchor_id = sfnref_get (ref); -- returns content of {{sfnref}} or {{harvid}}; nil else
list_add (anchor_id, anchor_id_list, true);
else
local params = {};
template_params_get (template, params); -- build a table of template parameters and their values
anchor_id = params['ref']; -- when both set, vcite uses value from |ref=
if not anchor_id and params['harvid'] then
anchor_id = 'CITEREF' .. params['harvid']; -- in vcite, |harvid= auto-adds 'CITEREF' prefix to the value in |harvid=
end
list_add (anchor_id, anchor_id_list, true);
end
elseif data.known_templates_harvc [template_name] then
anchor_id = anchor_id_make_harvc (template); -- extract an anchor id from this template
list_add (anchor_id, anchor_id_list, true);
elseif data.known_templates_wikicite [template_name] then
local ref = template:match ('|%s*ref%s*=%s*(%b{})'); -- first look for |ref={{sfnref}} or |ref={{harvid}}
if ref then
anchor_id = sfnref_get (ref);
elseif template:match ('|%s*ref%s*=([^|}]+)') then
anchor_id = template:match ('|%s*ref%s*=([^|}]+)'); -- plain-text
elseif template:match ('|%s*id%s*=%s*(%b{})') then
ref = template:match ('|%s*id%s*=%s*(%b{})');
anchor_id = 'Reference-' .. sfnref_get (ref);
elseif template:match ('|%s*id%s*=([^|}]+)') then
anchor_id = 'Reference-' .. template:match ('|%s*id%s*=([^|}]+)'); -- plain-text
else
anchor_id = nil; -- no matches, ensure that anchor_id has no value
end
if anchor_id then
list_add (anchor_id, anchor_id_list, true);
end
elseif data.known_templates_anchor [template_name] then
anchor_id_make_anchor (template, anchor_id_list); -- extract anchor ids from this template if any
elseif data.known_templates_sfn_whitelist [template_name] then
template = template:gsub ('^{{[^|]+|', ''):gsub ('}}$', '', 1); -- remove outer {{ and }} and template name
template = mw.text.trim (template, '%s|'); -- trim leading trailing white space and pipes
template = mw.text.split (template, '%s*|%s*'); -- make a table of the template's parameters
for _, anchor_id in ipairs (template) do -- spin through this template's parameter
if '' ~= anchor_id and not article_whitelist[anchor_id] then
anchor_id = mw.uri.anchorEncode (anchor_id)
article_whitelist[anchor_id] = 1; -- add to the whitelist
end
end
elseif template_name and whitelist.wrapper_templates[template_name] then
anchor_id = anchor_id_make_wrapper (template); -- extract an anchor id from this template if possible
list_add (anchor_id, anchor_id_list, true);
elseif template_name and template_name:match ('^Cit[ea]') then -- not known, not known wrapper; last gasp, try as cs1-like
anchor_id = anchor_id_make_cs12 (template); -- extract an anchor id from this template if possible
list_add (anchor_id, anchor_id_list, true);
end
tstart, tend = article_content:find (find_pattern, tend); -- search for another template; begin at end of last search
end
mw.logObject (anchor_id_list, 'anchor_id_list');
mw.logObject (template_list, 'template_list');
mw.logObject (article_whitelist, 'article_whitelist');
global_anchor_id_list = anchor_id_list
global_template_list = template_list
global_article_whitelist = article_whitelist
end
--[[--------------------------< C I T E R E F _ P A T T E R N S _ M A K E >--------------------------------------------
Scans template_list to look for wrapper templates that generate citerefs that require Lua patterns.
This scan is only done once per page load, to save time
]]
local function citeref_patterns_make()
if not global_template_list then return end
local citeref_patterns = {}
local template_patterns = whitelist.wrapper_template_patterns
for _, p in ipairs(template_patterns) do
for _, t in ipairs(p[1]) do -- loop through list of template wrappers
if global_template_list[t] then -- if wrapper is found in article, record corresponding patterns
for _, pat in ipairs(p[2]) do
table.insert(citeref_patterns, pat)
end
break
end
end
end
mw.logObject(citeref_patterns,'citeref_patterns')
return citeref_patterns
end
--[[--------------------------< E X P O R T E D _ T A B L E S >------------------------------------------------
]]
-- First create global_anchor_id_list, global_template_list, global_article_whitelist
anchor_id_list_make()
-- Then stuff them (and derived tables) into return table
return {
anchor_id_list = global_anchor_id_list or {}, -- table of anchor ids available in this article
article_whitelist = global_article_whitelist or {}, -- table of anchor ids with false-positive error message to be suppressed
template_list = global_template_list or {}, -- table of templates used in this article
citeref_patterns = citeref_patterns_make() or {} -- table of Lua patterns to search for citeref from wrappers
}
0orpdb6kvjbedhkjrp2xgq9fc8lbvmb
Module:Footnotes/anchor id list/data
828
3792
37724
2026-08-03T13:51:42Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '-- copied from Module:Ref info/data - maybe overkill here? -- for this application make lists from the redirect lists and force all template names first character uppercase require('strict'); --[[--------------------------< C S 1 _ T E M P L A T E _ P A T T E R N S >------------------------------------ These are patterns for cs1 templates and their redirects. These patterns exclude redirects that are vcite-like which redirects should be deleted...'
37724
Scribunto
text/plain
-- copied from Module:Ref info/data - maybe overkill here?
-- for this application make lists from the redirect lists and force all template names first character uppercase
require('strict');
--[[--------------------------< C S 1 _ T E M P L A T E _ P A T T E R N S >------------------------------------
These are patterns for cs1 templates and their redirects. These patterns exclude redirects that are vcite-like
which redirects should be deleted because vcite is not cs1.
]]
local cs1_template_patterns = { -- lua patterns of the cannonical names and redirects
'[Cc]ite ar[Xx]iv', -- arXiv is the canonical name
'[Cc]ite ArXiv',
'[Cc]ite AV media', -- canonical
'[Cc]ite audio', '[Cc]ite AV', '[Cc]ite AV ?Media', '[Cc]ite av media',
'[Cc]ite cd', '[Cc]ite DVD', '[Cc]ite dvd', '[Cc]ite film',
'[Cc]ite image', '[Cc]ite media', '[Cc]ite movie',
'[Cc]ite music video', '[Cc]ite radio', '[Cc]ite song',
'[Cc]ite ?video', '[Cc]ite visual', '[Cc]ite You[Tt]ube',
'[Cc]ita vídeo', -- non-English redirect; TODO: tally separately?
'[Cc]ite AV media notes', -- canonical
'[Cc]ite album[ %-]notes', '[Cc]ite av media notes',
'[Cc]ite DVD[ %-]notes', '[Cc]ite dvd%-notes', '[Cc]ite liner notes',
'[Cc]ite music release notes', '[Ll]iner notes',
'[Cc]ite bio[Rr]xiv', -- bioRxiv is the canonical form
'[Cc]ite [Bb]ook', -- book is the canonical form
'[Bb]ook cite', '[Bb]ook reference', '[Bb]ook reference url',
'[Cc] book', '[Cc]it book', '[Cc]ite books', '[Cc]ite chapter',
'[Cc]ite ebook', '[Cc]ite manual', '[Cc]ite page',
'[Cc]ite publication', '[Cc]ite score',
'[Cc]ite work', '[Cc]ite%-?book',
'[Bb]okref', '[Cc]itace monografie', '[Cc]itar livro', -- non-English redirects; TODO: tally separately?
'[Cc]iteer boek', '[Oo]uvrage', '[Rr]ef%-llibre', '서적 인용',
'[Cc]ite citeseerx', -- canonical
'[Cc]ite conference', -- canonical
'[Cc]ita conferenza', '[Cc]ite proceedings', '[Cc]onference reference', -- cita conferenza is non-English; TODO: tally separately?
'[Cc]ite ?encyclopedia', -- cite encyclopedia is the canonical name
'[Cc]ite contribution', '[Cc]ite dic', '[Cc]ite dictionary',
'[Cc]ite encyclopaedia', '[Cc]ite encyclopædia', '[Ee]ncyclopedia',
'[Cc]ite [Ee]pisode', -- episode is the canonical form
'[Cc]ite show',
'[Cc]ite interview', -- canonical
'[Cc]ite ?journal', -- cite journal is the canonical form
'[Cc] journal', '[Cc]itation journal', '[Cc]ite abstract',
'[Cc]ite document', '[Cc]ite Journal', '[Cc]ite journal zh',
'[Cc]ite ?paper', '[Vv]cite2 journal',
'[Cc]ita pubblicazione', '[Cc]itace periodika', '[Cc]itar jornal', -- non-English redirects; TODO: tally separately?
'[Cc]itar publicació', '[Cc]ytuj pismo', '[Tt]idskriftsref',
'Навод из стручног часописа', '저널 인용',
'[Cc]ite [Mm]agazine', -- magazine is the canonical form
'[Cc]ite mag', '[Cc]ite magazine article', '[Cc]ite newsletter',
'[Cc]ite periodical',
'[Cc]ite mailing ?list', -- mailing list is the canonical form
'[Cc]ite list',
'[Cc]ite maps?', -- map is the canonical form
'[Cc]ite[ %-]?news', -- cite news is the canonical form
'[Cc] news', '[Cc]it news', '[Cc]itation news', '[Cc]ite article',
'[Cc]ite n', '[Cc]ite new', '[Cc]ite newspaper', '[Cc]ite News',
'[Cc]ite news%-q', '[Cc]ite news2', '[Cc]itenewsauthor', '[Cc]ute news',
'[Cc]itar notícia', '[Hh]aber kaynağı', '[Tt]idningsref', 'استشهاد بخبر', -- non-English redirects; TODO: tally separately?
'뉴스 인용',
'[Cc]ite newsgroup', -- canonical
'[Cc]ite usenet',
'[Cc]ite podcast', -- canonical
'[Cc]ite [Pp]ress release', -- press release is the canonical form
'[Cc]ite media release', '[Cc]ite news release', '[Cc]ite pr',
'[Cc]ite press', '[Cc]ite press release%.', '[Cc]ite press[%-]?release',
'[Cc]ite report', -- canonical
'[Cc]ite serial', -- canonical
'[Cc]ite sign', -- canonical
'[Cc]ite plaque',
'[Cc]ite speech', -- canonical
'[Cc]ite ssrn', -- canonical
'[Cc]ite SSRN',
'[Cc]ite tech ?report', -- techreport is the canonical form
'[Cc]ite standard', '[Cc]ite technical report', '[Tt]echrep reference',
'[Cc]ite thesis', -- canonical
'[Cc]ite dissertation',
'[Cc]itar tese', -- non-English redirect; TODO: tally separately?
'[Cc]ite [Ww]eb', -- web is the canonical form
'[Cc] web', '[Cc]it web', '[Cc]ite blog', '[Cc]ite URL', '[Cc]ite url',
'[Cc]ite w', '[Cc]ite wb', '[Cc]ite we', '[Cc]ite web%.',
'[Cc]ite webpage', '[Cc]ite website', '[Cc]ite website article', '[Cc]ite web archived',
'[Cc]ite%-?web', '[Cc]itweb', '[Cc]w', '[Rr]ef web', '[Ww]eb citation',
'[Ww]eb cite', '[Ww]eb link', '[Ww]eb[ %-]reference', '[Ww]eblink',
'[Cc]hú thích web', '[Cc]ita web', '[Cc]itace elektronické monografie', -- non-English redirects; TODO: tally separately?
'[Cc]itat web', 'مرجع ويب', 'یادکرد وب', '웹 인용',
}
--[[--------------------------< C S 2 _ T E M P L A T E _ P A T T E R N S >------------------------------------
These are patterns for cs2 templates redirects.
]]
local cs2_template_patterns = { -- lua patterns of the cannonical names and redirects
'[Cc]itation',
'[Cc]ite', '[Cc]ite citation', '[Cc]ite study',
'[Cc]ite [Tt]echnical standard',
}
--[[--------------------------< V C I T E _ T E M P L A T E _ P A T T E R N S >--------------------------------
These are patterns for Vcite-family templates and their redirects.
]]
local vcite_template_patterns = {
'[Vv]cite book', -- canonical
'[Vv]ancite book', '[Vv]ancite report', '[Vv]cite encyclopedia',
'[Vv]cite report',
'[Vv]cite journal', -- canonical
'[Cc]it journal', '[Cc]it paper', '[Vv]ancite journal', '[Vv]cite paper',
'[Vv]cite news', -- canonical
'[Vv]ancite news',
'[Vv]cite web', -- canonical
'[Vv]ancite web',
}
--[[--------------------------< H A R V C _ T E M P L A T E _ P A T T E R N S >--------------------------------
These are patterns for the harvc template and its redirects.
]]
local harvc_template_patterns = {
'[Hh]arvc', -- canonical
'[Cc]itec',
}
--[[--------------------------< C S 1 _ L I K E _ T E M P L A T E _ P A T T E R N S >--------------------------
These are patterns for miscellaneous templates and their redirects that 'look like' cs1 templates (begin with cite ...)
Because they 'look like' cs1 templates they are handled as if they were cs1 templates. These templates are NOT
wrapper templates; names and dates are always to be extracted from the article instantiation of the template.
]]
local cs1_like_template_patterns = {
}
--[[--------------------------< W I K I C I T E _ T E M P L A T E _ P A T T E R N S >--------------------------
These are patterns for the wikicite template and its redirects.
]]
local wikicite_template_patterns = {
'[Ww]ikicite', -- canonical
}
--[[--------------------------< A N C H O R _ T E M P L A T E _ P A T T E R N S >------------------------------
These are patterns for the anchor template and its redirects.
]]
local anchor_template_patterns = {
'[Aa]nchors?', -- anchor is canonical form
'[Aa]nchor for redirect',
'[Aa]nchro',
'[Aa]ncor',
}
--[[--------------------------< S F N _ W H I T E L I S T _ P A T T E R N S >----------------------------------
These are patterns for the anchor template and its redirects.
]]
local sfn_whitelist_patterns = {
'[Ss]fn whitelist', -- canonical
'[Hh]arv whitelist',
}
--[[--------------------------< K N O W N _ T E M P L A T E S >------------------------------------------------
These tables are created from the *_template_patterns tables. To make these tables, entries in the source tables
are evaluated to replace lua patterns with the appropriate characters to create names for the output tables.
First charqacter is always uppercase
For example:
[Cc]ite ar[Xx]iv
becomes
Cite arXiv
Cite arxiv
]]
local known_templates_cs12 = {}; -- the exported tables
local known_templates_vcite = {};
local known_templates_harvc = {};
local known_templates_wikicite = {};
local known_templates_anchor = {};
local known_templates_sfn_whitelist = {};
local function add_stripped (list, name)
if not list[name] then
list[name] = true;
end
end
local function pattern_convert (pattern, list)
local lead, tail, c, l, name;
local first_char_patterns = {
'^%[(%a)%a%]', -- leading character (usually uppercase)
'^%[%a(%a)%]', -- leading character (usually lowercase)
}
c = tostring (pattern:match ('%u')); -- tostring() required because I don't know why; lua chokes complaining that c is not a string
name = pattern:gsub ('^%[%a%a%]', c); -- replace bracketed first character [Xx] with selected character from the match
if name:match ('(.-)%[(%a)(%a)%](.*)') then -- mixed case optional letters
lead, c, l, tail = name:match ('(.-)%[(%a)(%a)%](.*)');
add_stripped (list, lead .. c .. tail); -- uppercase
add_stripped (list, lead .. l .. tail); -- lowercase
elseif name:match ('^([^%[]+)(%[ %%%-%]%?)(.+)$') then -- [ %-]?
lead, c, tail = name:match ('^([^%[]+)(%[ %%%-%]%?)(.+)$');
add_stripped (list, lead .. tail); -- neither char
add_stripped (list, lead .. ' ' .. tail); -- space
add_stripped (list, lead .. '-' .. tail); -- hyphen
elseif name:match ('^([^%[]+)(%[%%%-%]%?)(.+)$') then -- [%-]?
lead, c, tail = name:match ('^([^%[]+)(%[%%%-%]%?)(.+)$');
add_stripped (list, lead .. tail); -- no hyphen
add_stripped (list, lead .. '-' .. tail); -- hyphen
elseif name:match ('^([^%[]+)(%[ %%%-%])(.+)$') then -- [ %-]
lead, c, tail = name:match ('^([^%[]+)(%[ %%%-%])(.+)$');
add_stripped (list, lead .. ' ' .. tail); -- space
add_stripped (list, lead .. '-' .. tail); -- hyphen
elseif name:match ('^([^%?]+)(%%%-%?)(.+)$') then -- %-?
lead, c, tail = name:match ('^([^%?]+)(%%%-%?)(.+)$');
add_stripped (list, lead .. tail); -- no hyphen
add_stripped (list, lead .. '-' .. tail); -- hyphen
elseif name:match ('^(.-)(%%%-)(.+)$') then -- %-
lead, c, tail = name:match ('^(.-)(%%%-)(.+)$');
add_stripped (list, lead .. '-' .. tail); -- hyphen
elseif name:match ('^(.-)(.)%?(.*)$') then -- .?
lead, c, tail = name:match ('^(.-)(.)%?(.*)$');
add_stripped (list, lead .. tail); -- no character
add_stripped (list, lead .. c .. tail); -- character
else
add_stripped (list, name); -- no patterns so save as is
end
end
for _, t in ipairs ({
{cs1_template_patterns, known_templates_cs12},
{cs2_template_patterns, known_templates_cs12},
{cs1_like_template_patterns, known_templates_cs12},
{vcite_template_patterns, known_templates_vcite},
{harvc_template_patterns, known_templates_harvc},
{wikicite_template_patterns, known_templates_wikicite},
{anchor_template_patterns, known_templates_anchor},
{sfn_whitelist_patterns, known_templates_sfn_whitelist},
}) do
for _, pattern in ipairs (t[1]) do -- for each patern in *_template_patterns
pattern_convert (pattern, t[2]) -- convert and store in known_templates_*
end
end
--[[--------------------------< E X P O R T S >----------------------------------------------------------------
]]
return
{
known_templates_anchor = known_templates_anchor,
known_templates_cs12 = known_templates_cs12,
known_templates_harvc = known_templates_harvc,
known_templates_vcite = known_templates_vcite,
known_templates_wikicite = known_templates_wikicite,
known_templates_sfn_whitelist = known_templates_sfn_whitelist,
}
ac2kk9di798tezmbw1dis0wrp2b139q
Module:Footnotes/whitelist
828
3793
37725
2026-08-03T13:52:48Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '--[[--------------------------< W R A P P E R _ T E M P L A T E _ D E F A U L T S >---------------------------- A list of wrapper templates by their canonical names – spelling and capitalization is important. Each wrapper template has a table of two values: [1] is the wrapper's default name-list as it is used in an anchor ID; [2] is the default year. This table is indexed indirectly through the wrapper_templates table. This table is not avail...'
37725
Scribunto
text/plain
--[[--------------------------< W R A P P E R _ T E M P L A T E _ D E F A U L T S >----------------------------
A list of wrapper templates by their canonical names – spelling and capitalization is important. Each wrapper
template has a table of two values: [1] is the wrapper's default name-list as it is used in an anchor ID; [2] is
the default year. This table is indexed indirectly through the wrapper_templates table.
This table is not available externally.
]]
local wrapper_template_defaults = { -- keys are canonical template names
['Americana'] = {'Rines', '1920'}, -- tables with default name and default year
['Cite bryonames'] = {'BrindaAtwood', ''},
['Cite EB1911'] = {'Chisholm', '1911'}, -- tables with default name and default year
['Encyclopaedia Islamica'] = {'Islamica', ''},
['EB1911'] = {'Chisholm', '1911'},
['EI3'] = {'FleetKrämerMatringeNawas', ''},
['FEIS'] = {'', ''},
['Jepson eFlora'] = {'Jepson_Flora_Project', ''},
['Cite Merriam-Webster'] = {'Merriam-Webster', ''},
['Cite NatureServe'] = {'NatureServe', ''},
['ODNB'] = {'', ''}, -- there is no default anchor ID; this forces evaluation of {{cite ODNB}} redirects
['PLANTS'] = {'NRCS', ''},
['Silvics'] = {'BurnsHonkala', '1990'}
}
--[[--------------------------< W R A P P E R _ T E M P L A T E _ D E F A U L T S _ V O L >--------------------
For wrapper templates that use |volume= to specify default name (often editor names) and year. Wrapper templates
are indexed by their canonical names – spelling and capitalization is important. Each wrapper template has a table
of values for every volume. Volumes may be indexed by Arabic or Roman numerals. Each volume index has a table of
twp values" [1] is the wrapper's default name-list as it is used in an anchor ID; [2] is the default year. Each
wrapper template in this table must have a ['default'] key for those occasions when |volume= is omitted or empty.
This table is indexed indirectly through the wrapper_templates table.
This table is not available externally.
]]
-- Helper function to create Encyclopedia Iranica volume table
local iranica_years = {
['1'] = 1985,
['1/1'] = 1982, ['1/2'] = 1982, ['1/3'] = 1983, ['1/4'] = 1983, ['1/5'] = 1983, ['1/6'] = 1984, ['1/7'] = 1984,
['2'] = 1987,
['2/1'] = 1985, ['2/2'] = 1985, ['2/3'] = 1986, ['2/4'] = 1986, ['2/5'] = 1986, ['2/6'] = 1986,
['3'] = 1989,
['3/1'] = 1987, ['3/2'] = 1987, ['3/3'] = 1988, ['3/4'] = 1988, ['3/5'] = 1988, ['3/6'] = 1988, ['3/7'] = 1988, ['3/8'] = 1988,
['4'] = 1990,
['4/1'] = 1989, ['4/2'] = 1989, ['4/3'] = 1989, ['4/4'] = 1989, ['4/5'] = 1989, ['4/6'] = 1990, ['4/7'] = 1990, ['4/8'] = 1989,
['5'] = 1992,
['5/1'] = 1990, ['5/2'] = 1990, ['5/3'] = 1991, ['5/4'] = 1991, ['5/5'] = 1991, ['5/6'] = 1991,
['6'] = 1993,
['6/1'] = 1992, ['6/2'] = 1992,
['7'] = 1996,
['7/1'] = 1994, ['7/2'] = 1994, ['7/3'] = 1994, ['7/4'] = 1995, ['7/5'] = 1995, ['7/6'] = 1995,
['8'] = 1998,
['8/1'] = 1997, ['8/2'] = 1997, ['8/3'] = 1997,
['9'] = 1999,
['9/1'] = 1998,
['10'] = 2001,
['10/1'] = 1999, ['10/2'] = 2000, ['10/3'] = 2000, ['10/4'] = 2000,
['11'] = 2003,
['11/1'] = 2001, ['11/2'] = 2002, ['11/3'] = 2002, ['11/4'] = 2002, ['11/5'] = 2002,
['12'] = 2004,
['12/1'] = 2003, ['12/2'] = 2003, ['12/3'] = 2003,
['13'] = 2006,
['13/1'] = 2004, ['13/2'] = 2004, ['13/3'] = 2004, ['13/4'] = 2004,
['14'] = 2008,
['14/1'] = 2007, ['14/2'] = 2007, ['14/3'] = 2007,
['15'] = 2011,
['15/1'] = 2009, ['15/2'] = 2009, ['15/3'] = 2009, ['15/4'] = 2010, ['15/5'] = 2010, ['15/6'] = 2011,
['16'] = 2020,
['16/1'] = 2012, ['16/2'] = 2013, ['16/3'] = 2017,
['default'] = '1982–2021'
}
local iranica_volumes = {}
for k, yr in pairs(iranica_years) do
iranica_volumes[k] = {'Yarshater', tostring(yr)}
end
-- Helper function to create "TDV Encyclopedia of Islam" volume table
local TDV_years = {
['1'] = '1988', ['2'] = '1989', ['3'] = '1991', ['4'] = '1991', ['5'] = '1992',
['6'] = '1992', ['7'] = '1993', ['8'] = '1993', ['9'] = '1994', ['10'] = '1994',
['11'] = '1995', ['12'] = '1995', ['13'] = '1996', ['14'] = '1996', ['15'] = '1997',
['16'] = '1997', ['17'] = '1998', ['18'] = '1998', ['19'] = '1999', ['20'] = '1999',
['21'] = '2000', ['22'] = '2000', ['23'] = '2001', ['24'] = '2001', ['25'] = '2002',
['26'] = '2002', ['27'] = '2003', ['28'] = '2003', ['29'] = '2004', ['30'] = '2005',
['31'] = '2006', ['32'] = '2006', ['33'] = '2007', ['34'] = '2007', ['35'] = '2008',
['36'] = '2009', ['37'] = '2009', ['38'] = '2010', ['39'] = '2010', ['40'] = '2011',
['41'] = '2012', ['42'] = '2012', ['43'] = '2013', ['44'] = '2013',
['Supplement 1'] = '2016', ['Supplement 2'] = '2016', ['default'] = '1988–2016'
}
local TDV_volumes = {}
for k, yr in pairs(TDV_years) do
TDV_volumes[k] = {'TDVIA', yr}
end
local wrapper_template_defaults_vol = { -- primary keys are canonical template names; TODO: do these keys have to be canonical template names?
['Cite Catholic Encyclopedia'] = { -- secondary keys are volume
['1'] = {'Herbermann', '1907'},
['2'] = {'Herbermann', '1907'},
['3'] = {'Herbermann', '1908'},
['4'] = {'Herbermann', '1908'},
['5'] = {'Herbermann', '1909'},
['6'] = {'Herbermann', '1909'},
['7'] = {'Herbermann', '1910'},
['8'] = {'Herbermann', '1910'},
['9'] = {'Herbermann', '1910'},
['10'] = {'Herbermann', '1911'},
['11'] = {'Herbermann', '1911'},
['12'] = {'Herbermann', '1911'},
['13'] = {'Herbermann', '1912'},
['14'] = {'Herbermann', '1912'},
['15'] = {'Herbermann', '1912'},
['default'] = {'Herbermann', '1913'},
},
['Cite EB9'] = {
['1'] = {'Baynes', '1878'}, ['I'] = {'Baynes', '1878'},
['2'] = {'Baynes', '1878'}, ['II'] = {'Baynes', '1878'},
['3'] = {'Baynes', '1878'}, ['III'] = {'Baynes', '1878'},
['4'] = {'Baynes', '1878'}, ['IV'] = {'Baynes', '1878'},
['5'] = {'Baynes', '1878'}, ['V'] = {'Baynes', '1878'},
['6'] = {'Baynes', '1878'}, ['VI'] = {'Baynes', '1878'},
['7'] = {'Baynes', '1878'}, ['VII'] = {'Baynes', '1878'},
['8'] = {'Baynes', '1878'}, ['VIII'] = {'Baynes', '1878'},
['9'] = {'Baynes', '1879'}, ['IX'] = {'Baynes', '1879'},
['10'] = {'Baynes', '1879'}, ['X'] = {'Baynes', '1879'},
['11'] = {'BaynesSmith', '1880'}, ['XI'] = {'BaynesSmith', '1880'},
['12'] = {'BaynesSmith', '1881'}, ['XII'] = {'BaynesSmith', '1881'},
['13'] = {'BaynesSmith', '1881'}, ['XIII'] = {'BaynesSmith', '1881'},
['14'] = {'BaynesSmith', '1882'}, ['XIV'] = {'BaynesSmith', '1882'},
['15'] = {'BaynesSmith', '1883'}, ['XV'] = {'BaynesSmith', '1883'},
['16'] = {'BaynesSmith', '1883'}, ['XVI'] = {'BaynesSmith', '1883'},
['17'] = {'BaynesSmith', '1884'}, ['XVII'] = {'BaynesSmith', '1884'},
['18'] = {'BaynesSmith', '1885'}, ['XVIII'] = {'BaynesSmith', '1885'},
['19'] = {'BaynesSmith', '1885'}, ['XIX'] = {'BaynesSmith', '1885'},
['20'] = {'BaynesSmith', '1886'}, ['XX'] = {'BaynesSmith', '1886'},
['21'] = {'BaynesSmith', '1886'}, ['XXI'] = {'BaynesSmith', '1886'},
['22'] = {'BaynesSmith', '1887'}, ['XXII'] = {'BaynesSmith', '1887'},
['23'] = {'BaynesSmith', '1888'}, ['XXIII'] = {'BaynesSmith', '1888'},
['24'] = {'BaynesSmith', '1888'}, ['XXIV'] = {'BaynesSmith', '1888'},
['default'] = {'Baynes', '1875–1889'},
},
['The Cambridge History of Iran'] = {
['1'] = {'Fischer', '1968'},
['2'] = {'Gershevitch', '1985'},
['3a'] = {'Yarshater', '1983'},
['3b'] = {'Yarshater', '1983'},
['4'] = {'Frye', '1975'},
['5'] = {'Boyle', '1968'},
['6'] = {'LockhartJackson', '1986'},
['7'] = {'AveryHamblyMelville', '1991'},
['default'] = {'', '1968–1991'}
},
['Encyclopædia Iranica'] = iranica_volumes,
['Encyclopaedia of Islam, New Edition'] = {
['1'] = {'GibbKramersLévi-ProvençalSchacht', '1960'},
['2'] = {'LewisPellatSchacht', '1965'},
['3'] = {'LewisMénagePellatSchacht', '1971'},
['4'] = {'van_DonzelLewisPellatBosworth', '1978'},
['5'] = {'Bosworthvan_DonzelLewisPellat', '1986'},
['6'] = {'Bosworthvan_DonzelPellat', '1991'},
['7'] = {'Bosworthvan_DonzelHeinrichsPellat', '1993'},
['8'] = {'Bosworthvan_DonzelHeinrichsLecomte', '1995'},
['9'] = {'Bosworthvan_DonzelHeinrichsLecomte', '1997'},
['10'] = {'BearmanBianquisBosworthvan_Donzel', '2000'},
['11'] = {'BearmanBianquisBosworthvan_Donzel', '2002'},
['12'] = {'BearmanBianquisBosworthvan_Donzel', '2004'},
['atlas'] = {'Brice', '1981'},
['abridged'] = {'van_Donzel', '1994'},
['default'] = {'BearmanBianquisBosworthvan_Donzel', '1960–2005'},
},
['TDV Encyclopedia of Islam'] = TDV_volumes,
['New Cambridge Medieval History'] = {
['1'] = {'Fouracre', '2005'},
['2'] = {'McKitterick', '1995'},
['3'] = {'Reuter', '2000'},
['4a'] = {'LuscombeRiley-Smith', '2004'},
['4b'] = {'LuscombeRiley-Smith', '2004'},
['5'] = {'Abulafia', '1999'},
['6'] = {'Jones', '2000'},
['7'] = {'Allmand', '1998'},
['default'] = {'', '1995–2005'},
},
['The History of al-Tabari'] = {
['1'] = {'Rosenthal', '1989'},
['2'] = {'Brinner', '1986'},
['3'] = {'Brinner', '1991'},
['4'] = {'Perlmann', '1987'},
['5'] = {'Bosworth', '1999'},
['6'] = {'WattMcDonald', '1989'},
['7'] = {'McDonald', '1987'},
['8'] = {'Fishbein', '1997'},
['9'] = {'Poonawala', '1990'},
['10'] = {'Donner', '1993'},
['11'] = {'Blankinship', '1993'},
['12'] = {'Friedmann', '1992'},
['13'] = {'Juynboll', '1989'},
['14'] = {'Smith', '1994'},
['15'] = {'Humphreys', '1990'},
['16'] = {'Brockett', '1997'},
['17'] = {'Hawting', '1996'},
['18'] = {'Morony', '1987'},
['19'] = {'Howard', '1990'},
['20'] = {'Hawting', '1989'},
['21'] = {'Fishbein', '1990'},
['22'] = {'Rowson', '1989'},
['23'] = {'Hinds', '1990'},
['24'] = {'Powers', '1989'},
['25'] = {'Blankinship', '1989'},
['26'] = {'Hillenbrand', '1989'},
['27'] = {'Williams', '1985'},
['28'] = {'McAuliffe', '1995'},
['29'] = {'Kennedy', '1990'},
['30'] = {'Bosworth', '1989'},
['31'] = {'Fishbein', '1992'},
['32'] = {'Bosworth', '1987'},
['33'] = {'Bosworth', '1991'},
['34'] = {'Kraemer', '1989'},
['35'] = {'Saliba', '1985'},
['36'] = {'Waines', '1992'},
['37'] = {'Fields', '1987'},
['38'] = {'Rosenthal', '1985'},
['39'] = {'Landau-Tasseron', '1998'},
['40'] = {'Popovkin', '2007'},
['default'] = {'Yarshater', '1985–2007'},
},
}
--[[--------------------------< W R A P P E R _ T E M P L A T E S >--------------------------------------------
A list of wrapper templates and their redirects – spelling and capitalization is important; first character is
always uppercase. Each wrapper template gets its value from a k/v pair in the wrapper_template_defaults table.
article reader queries this table to see if template_name is a wrapper template
]]
local wrapper_templates = { -- keys are names of wrapper templates and their redirects
['Americana'] = wrapper_template_defaults['Americana'], -- canonical name; this template calls Cite Americana
['Cite bryonames'] = wrapper_template_defaults['Cite bryonames'],
['Catholic Encyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['1913Catholic'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Catholic'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Catholic encyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CatholicEncyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CE13'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CE1913'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite Americana'] = wrapper_template_defaults['Americana'], -- canonical name
['Cite Catholic Encyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CathEncy'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite Catholic Encyclopædia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite CE1913'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite EB1911'] = wrapper_template_defaults['Cite EB1911'], -- canonical name
['1911EB'] = wrapper_template_defaults['Cite EB1911'], -- redirects
['EB1911 cite'] = wrapper_template_defaults['Cite EB1911'],
['Wikisource1911Enc Citation'] = wrapper_template_defaults['Cite EB1911'],
['Wikisource1911Enc citation'] = wrapper_template_defaults['Cite EB1911'],
['Cite EB9'] = wrapper_template_defaults_vol['Cite EB9'], -- canonical
['Eb9'] = wrapper_template_defaults_vol['Cite EB9'],
['The Cambridge History of Iran'] = wrapper_template_defaults_vol['The Cambridge History of Iran'],
['Cambridge History of Iran'] = wrapper_template_defaults_vol['The Cambridge History of Iran'],
['Encyclopædia Iranica'] = wrapper_template_defaults_vol['Encyclopædia Iranica'],
['Encyclopædia Iranica Online'] = wrapper_template_defaults_vol['Encyclopædia Iranica'],
['Encyclopaedia Iranica'] = wrapper_template_defaults_vol['Encyclopædia Iranica'],
['Cite Encyclopædia Iranica Online'] = wrapper_template_defaults_vol['Encyclopædia Iranica'],
['Encyclopaedia Islamica'] = wrapper_template_defaults['Encyclopaedia Islamica'],
['TDV Encyclopedia of Islam'] = wrapper_template_defaults_vol['TDV Encyclopedia of Islam'],
['TDV İslâm Ansiklopedisi'] = wrapper_template_defaults_vol['TDV Encyclopedia of Islam'],
['Cite ODNB'] = wrapper_template_defaults['ODNB'], -- canonical
['Cite odnb'] = wrapper_template_defaults['ODNB'],
['DNBweb'] = wrapper_template_defaults['ODNB'],
['OBDNweb'] = wrapper_template_defaults['ODNB'],
['ODNB'] = wrapper_template_defaults['ODNB'],
['ODNBref'] = wrapper_template_defaults['ODNB'],
['ODNBweb'] = wrapper_template_defaults['ODNB'],
['EB1911'] = wrapper_template_defaults['EB1911'], -- canonical name; this template calls Cite EB1911
['1911'] = wrapper_template_defaults['EB1911'], -- redirects
['1911s'] = wrapper_template_defaults['EB1911'],
['Britannica 1911'] = wrapper_template_defaults['EB1911'],
['Encyclopedia Britannica 1911'] = wrapper_template_defaults['EB1911'],
['Encyclopædia Britannica 1911'] = wrapper_template_defaults['EB1911'],
['EB9'] = wrapper_template_defaults_vol['Cite EB9'], -- canonical; this template calls Cite EB9
['Encyclopaedia of Islam, New Edition'] = wrapper_template_defaults_vol['Encyclopaedia of Islam, New Edition'], -- canonical
['EI2'] = wrapper_template_defaults_vol['Encyclopaedia of Islam, New Edition'],
['Encyclopaedia of Islam, THREE'] = wrapper_template_defaults['EI3'], -- canonical
['EI3'] = wrapper_template_defaults['EI3'],
['FEIS'] = wrapper_template_defaults['FEIS'],
['Jepson eFlora'] = wrapper_template_defaults['Jepson eFlora'],
['Cite Jepson eFlora'] = wrapper_template_defaults['Jepson eFlora'],
['Cite NatureServe'] = wrapper_template_defaults['Cite NatureServe'],
['New Cambridge Medieval History'] = wrapper_template_defaults_vol['New Cambridge Medieval History'], -- canonical
['Cite Merriam-Webster'] = wrapper_template_defaults['Cite Merriam-Webster'],
['Merriam-Webster'] = wrapper_template_defaults['Cite Merriam-Webster'],
['MW'] = wrapper_template_defaults['Cite Merriam-Webster'],
['MerriamWebsterDictionary'] = wrapper_template_defaults['Cite Merriam-Webster'],
['Cite MW'] = wrapper_template_defaults['Cite Merriam-Webster'],
['M-W'] = wrapper_template_defaults['Cite Merriam-Webster'],
['PLANTS'] = wrapper_template_defaults['PLANTS'],
['NRCS Plant Profile'] = wrapper_template_defaults['PLANTS'],
['NRCS Plants Profile'] = wrapper_template_defaults['PLANTS'],
['Cite PLANTS'] = wrapper_template_defaults['PLANTS'],
['Cite usda plants'] = wrapper_template_defaults['PLANTS'],
['The History of al-Tabari'] = wrapper_template_defaults_vol['The History of al-Tabari'], -- canonical
['The History of Al-Tabari'] = wrapper_template_defaults_vol['The History of al-Tabari'], -- redirects
['The History of al-Ṭabarī'] = wrapper_template_defaults_vol['The History of al-Tabari'], -- redirects
['Silvics'] = wrapper_template_defaults['Silvics'],
}
--[[--------------------------< T E M P L A T E _ N A M E S >--------------------------------------------------
This table holds the names of templates and the names of their redirects. Template names must be written exactly
as they are named at their templatespace page. This same also applies to redirects.
The indexes in this table are not critical but should be short and concise.
]]
local template_names = {
['ADB'] = {'Allgemeine Deutsche Biographie', 'Cite ADB'},
['Butt_Stations'] = {'Butt-Stations', 'Butt-stations'},
['Cam_Hist_Iran'] = {'Cambridge History of Iran', 'The Cambridge History of Iran'},
['DNB'] = {'Cite DNB', 'DNB', 'DNB Cite', 'Cite DNBSupp', 'DNBSupp', 'Cite DNB12', 'Cite DNBIE', 'DNB12', 'DNBIE', 'DNBfirst'},
['EI2'] = {'Encyclopaedia of Islam, New Edition','EI2'},
['ME-ref'] = {'ME-ref', 'Me-ref'},
['ODB'] = {'ODB', 'Oxford Dictionary of Byzantium'},
['ODLA'] = {'ODLA', 'Oxford Dictionary of Late Antiquity'},
['NDB'] = {'Cite NDB', 'NDB'},
['Iranica'] = {'Encyclopædia Iranica Online', 'Encyclopædia Iranica', 'Encyclopaedia Iranica', 'Cite Encyclopædia Iranica Online'},
['Tabari'] = {'The History of al-Tabari','The History of al-Ṭabarī'}
}
--[[--------------------------< W R A P P E R _ T E M P L A T E _ P A T T E R N S >----------------------------
A list of pairs: each pair is a (list of wrapper templates, list of corresponding whitelisted patterns).
The main code will sweep through the list of wrapper templates, checking if they are used, the match against corresponding whitelisted patterns.
]]
local wrapper_template_patterns = {
{{'Acad','Alumni Cantabrigienses','Venn'},{'ACAD%u%u%u?%u?%d+%u%u?'}},
{{'Cite AHD','Australian Heritage Database'},{'AHD%d+'}},
{{'Cite Austrian gazette'},{'[BR]GBl_[12]%d%d%d%-?I?I?%/%d+','StGBl_[12]%d%d%d%/%d+','GBlÖ_[12]%d%d%d%/%d+'}},
{{'Cite Bach Digital harvard','BDh'},{'[%d%a_%pöüäß→]+_at_Bach_Digital'}},
{{'Cite DNB', 'DNB', 'DNB Cite', 'Cite DNBSupp', 'DNBSupp', 'Cite DNB12', 'Cite DNBIE', 'DNB12', 'DNBIE', 'DNBfirst'},
{'CITEREF%a[%a%-_\']*188[5-9]', -- 1885–1889
'CITEREF%a[%a%-_\']*189%d', -- 1890–1899
'CITEREF%a[%a%-_\']*190[0-1]', -- 1900–1901
'CITEREF%a[%a%-_\']*1903', -- 1903 IE
'CITEREF%a[%a%-_\']*1912', -- 1912 supplement
}},
{{'Cite gnis2','GNIS 0'},{'%a.*_USGS$'}},
{{'Coflein'},{'RCAHMW[%s_]*%d+'}},
{{'Historic Environment Scotland','HEScotland'},{'Historic_Environment_Scotland%u%u%u?%u?%d'}},
{{'London Gazette'},{'Gazette%d+'}},
{template_names['ME-ref'],{'Tolkien19%d%d'}},
{{'National Heritage List for England','Images of England','IoEEntry','Heritage Gateway',
'NHLE','English Heritage List entry','IoE','National Heritage List for England entry','Historic England',
'Historic England research records','Cite PastScape','PastScape','HERR'},{'Historic_England%d+'}},
{{'Cite QHR','Cite CHIMS'},{'QHR%d+'}}
}
local noDefault = {'', ''}
-- ensure that all templates with patterns are classified as wrapper templates
for _, wtp in ipairs(wrapper_template_patterns) do
for _, t in ipairs(wtp[1]) do
if not wrapper_templates[t] then
wrapper_templates[t] = noDefault
end
end
end
--[[--------------------------< W H I T E L I S T >------------------------------------------------------------
This is a list of anchor IDs known to be associated with specific wrapper templates. The anchor ID serves as an
index into the table. The assigned value is another table that lists the associated template and any redirects.
Except for year disambiguators, anchor IDs must have the same form as the anchor creator makes; must be the
anchor-encoded form. Remove the year disambiguator.
Template names must be written exactly as they are named at their templatespace page. This same also applies to
redirects. Module:Footnotes reads the template names left to right so most-commonly-used template or redirect name
should appear first. When there are more than one name and when those templates have various anchor IDs the template
namelist should be added to the template_names{} table.
Note that references to Template:EB1911 are listed under "E" in the alphabetical list below to keep them organized.
]]
local whitelist = {
----------< # >----------
['CITEREF2013_Statistical_Yearbook_of_the_Republic_of_Croatia'] = {'Croatia Yearbook 2013'},
----------< A >----------
['CITEREFAGA_1884–1897'] = {'Schubert\'s compositions (references)'},
['CITEREFATOC2009'] = {'ATOCConnectingCommunitiesReportS10'},
['CITEREFAbramowitzStegun1983'] = {'Abramowitz Stegun ref'},
['CITEREFAbulafia1999'] = {'New Cambridge Medieval History'},
['CITEREFActa_Lipsiensium1723'] = {'Bach\'s compositions (sources)'},
['CITEREFAdamsFranzosa2009'] = {'Adams Franzosa Introduction to Topology Pure and Applied'},
['CITEREFAdaschErnstKeim1978'] = {'Adasch Topological Vector Spaces'},
['CITEREFAffleck1978'] = {'Affleck-On Track'},
['CITEREFAhlgrimm1969'] = {'Bach\'s compositions (sources)'},
['CITEREFAhrons1927'] = {'Book-Ahrons-British Steam Railway Locomotive'},
['CITEREFAl-Kindi1912'] = {'The Governors and Judges of Egypt'},
['CITEREFAlbert_Schumann1886'] = {'Cite ADB'},
['CITEREFAlden1916'] = {'Shakespeare sonnets bibliography'},
['CITEREFAldrich1969'] = {'Aldrich-LocosGER7'},
['CITEREFAleksidze2018'] = template_names['ODLA'],
['CITEREFAlexiou2010'] = {'Cite flatiron'},
['CITEREFAliprantisBorder2006'] = {'Aliprantis Border Infinite Dimensional Analysis A Hitchhiker\'s Guide Third Edition'},
['CITEREFAllamaniPanagiotopoulou1978'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFAllcockDaviesle_FlemingMaskelyne1951'] = {'RCTS-LocosGWR-1'},
['CITEREFAllcockDaviesle_FlemingMaskelyne1968'] = {'RCTS-LocosGWR-1'},
['CITEREFAllenBoddyBrownFry1970'] = {'RCTS-LocosLNER-8A', 'RCTS-LocosLNER'},
['CITEREFAllenBoddyBrownFry1971'] = {'RCTS-LocosLNER-8B', 'RCTS-LocosLNER'},
['CITEREFAllenBoddyBrownFry1983'] = {'RCTS-LocosLNER-8A', 'RCTS-LocosLNER'},
['CITEREFAllmand1998'] = {'New Cambridge Medieval History'},
['CITEREFAmerican_Railway_Association1922'] = {'1922 Locomotive Cyclopedia'},
['CITEREFAnderson1952'] = {'Naval Wars in the Levant 1559–1853'},
['CITEREFAngelov2018'] = template_names['ODLA'],
['CITEREFApostol1976'] = {'Apostol IANT'},
['CITEREFArkhangel'skiiPonomarev1984'] = {'Arkhangel\'skii Ponomarev Fundamentals of General Topology Problems and Exercises'},
['CITEREFArrey_von_Dommer1875'] = {'Cite ADB'},
['CITEREFAsmus1966'] = template_names['NDB'],
['CITEREFAspreas1929'] = {'Great Military and Naval Encyclopaedia'},
['CITEREFAtkins2007'] = {'Shakespeare sonnets bibliography'},
['CITEREFAudiKondevWangHuang2017'] = {'NUBASE2016'},
['CITEREFAvdoyan2018'] = template_names['ODLA'],
['CITEREFAwdry1990'] = {'Awdry-RailCo', 'Carnarvonshire Railway'},
['CITEREFRamelli2018'] = {'Oxford Dictionary of Late Antiquity'},['CITEREFA_History_of_the_Crusades'] = {'Setton-A History of the Crusades'},
----------< B >----------
['CITEREFBabinger1962'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFBabinger1978'] = {'Mehmed the Conqueror and His Time'},
['CITEREFBabinger1992'] = {'Mehmed the Conqueror and His Time'},
['CITEREFBachAgricola1754'] = {'Bach\'s compositions (sources)'},
['CITEREFBadura-SkodaBranscombe2008'] = {'Schubert\'s compositions (references)'},
['CITEREFBagley1999'] = {'Cite Cambridge History of China'},
['CITEREFBaldwin1969'] = {'Setton-A History of the Crusades'},
['CITEREFBaldwin1985'] = {'Setton-A History of the Crusades'},
['CITEREFBaldwin1991'] = template_names['ODB'],
['CITEREFBaldwinKazhdan1991'] = template_names['ODB'],
['CITEREFBaldwinTalbot1991'] = template_names['ODB'],
['CITEREFBaltzer1916'] = {'Baltzer-Kolonialbahnen'},
['CITEREFBanach1932'] = {'Banach Théorie des Opérations Linéaires'},
['CITEREFBangFrankKowanskiVondrak2007'] = {'Forgotten Railroads Through Westchester County'},
['CITEREFBartusis1991'] = template_names['ODB'],
['CITEREFBaxter1971'] = {'Baxter-BritishLocoCat1'},
['CITEREFBaxter1977'] = {'Baxter-BritishLocoCat1', 'Baxter: British Locomotive Catalogue 1825–1923'},
['CITEREFBaxter1978'] = {'Baxter-BritishLocoCat2A', 'Baxter: British Locomotive Catalogue 1825–1923'},
['CITEREFBaxter1979'] = {'Baxter-BritishLocoCat2B', 'Baxter: British Locomotive Catalogue 1825–1923'},
['CITEREFBaxter1982'] = {'Baxter-BritishLocoCat3A', 'Baxter-BritishLocoCat3B', 'Baxter: British Locomotive Catalogue 1825–1923'},
['CITEREFBaxter1982a'] = {'Baxter-BritishLocoCat3A', 'Baxter: British Locomotive Catalogue 1825–1923'},
['CITEREFBaxter1984'] = {'Baxter-BritishLocoCat4', 'Baxter: British Locomotive Catalogue 1825–1923'},
['CITEREFBaxter1986'] = {'Baxter-BritishLocoCat5A', 'Baxter: British Locomotive Catalogue 1825–1923'},
['CITEREFBaxter1988'] = {'Baxter-BritishLocoCat5B', 'Baxter: British Locomotive Catalogue 1825–1923'},
['CITEREFBaxter2012'] = {'Baxter-BritishLocoCat6', 'Baxter: British Locomotive Catalogue 1825–1923'},
['CITEREFBeißwenger1991'] = {'Bach\'s compositions (sources)'},
['CITEREFBek2001'] = {'Cite Grove'},
['CITEREFBelke1996'] = {'Tabula Imperii Byzantini'},
['CITEREFBelkeMersisch1990'] = {'Tabula Imperii Byzantini'},
['CITEREFBelkeRestle1984'] = {'Tabula Imperii Byzantini'},
['CITEREFBellini2008'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFBernhard_von_Poten1889'] = template_names['ADB'],
['CITEREFBernhard_von_Poten1898'] = template_names['ADB'],
['CITEREFBezilla1980'] = {'Bezilla-PRR-Electric-Traction'},
['CITEREFBianquis1998'] = {'The Cambridge History of Egypt', 'Cambridge History of Egypt'},
['CITEREFBierstedt1988'] = {'Bierstedt An Introduction to Locally Convex Inductive Limits'},
['CITEREFBirken1976'] = {'Die Provinzen des Osmanischen Reiches'},
['CITEREFBirtchnell1972'] = {'A Short History of Berkhamsted'},
['CITEREFBlake1966'] = {'DisraeliRef'},
['CITEREFBlanken2019'] = {'Bach\'s compositions (sources)'},
['CITEREFBlankinship1994'] = {'The End of the Jihâd State', 'The End of the Jihad State'},
['CITEREFBlautSchulze2008'] = {'Bach\'s compositions (sources)'},
['CITEREFBloom2007'] = {'Cite Routledge Broadway', 'Cite Broadway Routledge', 'Cite Routledge Guide to Broadway', 'Routledge Guide to Broadway'},
['CITEREFBoatner1988'] = {'Civil War Dictionary'},
['CITEREFBock1978'] = {'Audie-bock-directors'},
['CITEREFBodde1986'] = {'Cite Cambridge History of China'},
['CITEREFBoddyBrownFryHennigan1968'] = {'RCTS-LocosLNER-4', 'RCTS-LocosLNER'},
['CITEREFBoddyBrownFryHennigan1975'] = {'RCTS-LocosLNER-2B', 'RCTS-LocosLNER'},
['CITEREFBoddyBrownFryHennigan1977'] = {'RCTS-LocosLNER-9A', 'RCTS-LocosLNER-9B', 'RCTS-LocosLNER'},
['CITEREFBoddyBrownFryHennigan1979'] = {'RCTS-LocosLNER-3A', 'RCTS-LocosLNER'},
['CITEREFBoddyBrownHenniganHoole1984'] = {'RCTS-LocosLNER-6C', 'RCTS-LocosLNER'},
['CITEREFBoddyBrownHenniganNeve1981'] = {'RCTS-LocosLNER-3B', 'RCTS-LocosLNER'},
['CITEREFBoddyBrownNeveYeadon1983'] = {'RCTS-LocosLNER-6B', 'RCTS-LocosLNER'},
['CITEREFBoddyFryHenniganHoole1988'] = {'RCTS-LocosLNER-10A', 'RCTS-LocosLNER'},
['CITEREFBoddyFryHenniganHoole1990'] = {'RCTS-LocosLNER-10B', 'RCTS-LocosLNER'},
['CITEREFBoddyFryHenniganProud1963'] = {'RCTS-LocosLNER-1', 'RCTS-LocosLNER'},
['CITEREFBoddyNeveTeeYeadon1982'] = {'RCTS-LocosLNER-6A', 'RCTS-LocosLNER'},
['CITEREFBoddyNeveYeadon1973'] = {'RCTS-LocosLNER-2A', 'RCTS-LocosLNER'},
['CITEREFBody1989'] = {'Body-Railways-Vol2'},
['CITEREFBon1969'] = {'La Morée franque'},
['CITEREFBonner2010'] = {'New Cambridge History of Islam'},
['CITEREFBonnett2005'] = {'Bonnett Practical Rail Engineering'},
['CITEREFBonporti1712'] = {'Bach\'s compositions (sources)'},
['CITEREFBooth2000'] = {'Shakespeare sonnets bibliography'},
['CITEREFBorsari1964'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFBossert1914'] = {'Schaff-Herzog'},
['CITEREFBottoMitchell2002'] = {'Cite ATT Broadway', 'Cite At This Theatre Broadway', 'Cite Broadway At This Theatre', 'Cite Broadway ATT'},
['CITEREFBourbaki1987'] = {'Bourbaki Topological Vector Spaces', 'Bourbaki Topological Vector Spaces Part 1 Chapters 1–5'},
['CITEREFBourbaki1989'] = {'Bourbaki General Topology Part I Chapters 1-4', 'Bourbaki General Topology Part II Chapters 5-10', 'Bourbaki Algebra I Chapters 1-3 Springer'},
['CITEREFBourbaki1994'] = {'Bourbaki EHM'},
['CITEREFBournoutian2018'] = {'Cite Armenia and Imperial Decline'},
['CITEREFBowen1928'] = {'The Life and Times of Ali ibn Isa'},
['CITEREFBowmanCameronGarnsey2005'] = {'Cambridge Ancient History'},
['CITEREFBoyd1970'] = {'Boyd-MidWales'},
['CITEREFBoyd1975'] = {'Boyd-FR1'},
['CITEREFBoyd1985'] = {'Boyd-NCaerns2Penrhyn'},
['CITEREFBoyd1986'] = {'Boyd-NCaerns3Dinorwic'},
['CITEREFBoyd1988'] = {'Boyd-SCaerns1'},
['CITEREFBoyd1989'] = {'Boyd-SCaerns2'},
['CITEREFBoyd1990'] = {'Boyd-NCaerns1'},
['CITEREFBradshaw1968'] = {'Bradshaw-1910April'},
['CITEREFBradshaw1985'] = {'Bradshaw-1922July'},
['CITEREFBradshaw2011'] = {'Bradshaw-1895December'},
['CITEREFBradshaw2012'] = {'Bradshaw-1850March'},
['CITEREFBrand1968'] = {'Byzantium Confronts the West'},
['CITEREFBrand1991'] = {'DBI', 'ODB', 'Oxford Dictionary of Byzantium'},
['CITEREFBray2010'] = {'Bray-SDJR'},
['CITEREFBrett2010'] = {'New Cambridge History of Islam'},
['CITEREFBrown2008'] = {'The Cambridge History of the Byzantine Empire'},
['CITEREFBrown2021'] = {'Cite Gaia EDR3'},
['CITEREFBryan1886'] = {'Bryan (3rd edition)'},
['CITEREFBryan1889'] = {'Bryan (3rd edition)'},
['CITEREFBützerJeker1980'] = {'Grosser Eisenbahn-Atlas Schweiz'},
['CITEREFBuhle1909'] = {'Bach\'s compositions (sources)'},
['CITEREFBunbury1857'] = {'DGRG'},
['CITEREFBurant1987'] = {'Cite DCB'},
['CITEREFBurch1911'] = {'Burch Electric Traction'},
['CITEREFBurke1866'] = {'O\'Donnell family tree'},
['CITEREFBurrowsWallace1999'] = {'Cite gotham'},
['CITEREFBury1911'] = {'The Imperial Administrative System of the Ninth Century'},
['CITEREFButcherNicholson2018'] = template_names['ODLA'],
['CITEREFButt1995'] = template_names['Butt_Stations'],
----------< C >----------
['CITEREFCIC1983'] = {'CIC1983bib'},
['CITEREFCalifornia1988'] = {'CA-Rail Passenger Development Plan-1988'},
['CITEREFCallwell1999'] = {'Muni Chronology'},
['CITEREFCaltrans1984'] = {'Countrystudy'},
['CITEREFCameronWard-PerkinsWhitby2000'] = {'Cambridge Ancient History'},
['CITEREFCanepa2018'] = template_names['ODLA'],
['CITEREFCanny2008'] = {'O\'Donnell family tree'},
['CITEREFCappelCutlerKazhdan1991'] = template_names['ODB'],
['CITEREFCarl_von_Prantl1879'] = {'Cite ADB'},
['CITEREFCarlson2010'] = {'Dlmf'},
['CITEREFCaro1974'] = {'Cite Power Broker'},
['CITEREFCarpenter1977'] = template_names['ME-ref'],
['CITEREFCarpenter1981'] = template_names['ME-ref'],
['CITEREFCarpenter2023'] = template_names['ME-ref'],
['CITEREFCarra_de_VauxHodgson1965'] = {'EI2'},
['CITEREFCarter2006'] = {'Carter-RailwaysMotivePowerArgentina'},
['CITEREFCasserley1968'] = {'Casserley-joint'},
['CITEREFCasserleyJohnston1966'] = {'Casserley-LocoGrouping3'},
['CITEREFCasserleyJohnston1974'] = {'Casserley-LocoGrouping3', 'Casserley-LocoGrouping2', '0-7110-0554-0'},
['CITEREFCasway1984'] = {'O\'Donnell family tree'},
['CITEREFCavanna_Ciappina2001'] = {'DBI'},
['CITEREFCaveBucklandBeardsell2002'] = {'Cave-First Fifty'},
['CITEREFCawley2001'] = {'Medieval Lands by Charles Cawley', 'MLCC'},
['CITEREFCawley2001'] = {'Medieval Lands by Charles Cawley'},
['CITEREFCawley2010'] = {'MLCC'},
['CITEREFCawley2011'] = {'MLCC'},
['CITEREFCawley2012'] = {'Medieval Lands by Charles Cawley'},
['CITEREFChaffeeTwitchett2015'] = {'Cite Cambridge History of China'},
['CITEREFChaléardChanson-JabeurBéranger2006'] = {'Chaléard-Le cdf en Afrique'},
['CITEREFChambers1728'] = {'Cyclopaedia 1728'},
['CITEREFChasiotis1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFCheyneBlack1899'] = {'Biblica', 'Cite Biblica'},
['CITEREFCheyneBlack1899–1903'] = {'Cite Biblica'},
['CITEREFCheyneBlack1901'] = {'Cite Biblica'},
['CITEREFCheyneBlack1902'] = {'Cite Biblica'},
['CITEREFCheyneBlack1903'] = {'Cite Biblica'},
['CITEREFChisholm1911'] = {'Cite EB1911','EB1911','1911EB','EB1911 cite','1911','1911s','Britannica 1911','Encyclopedia Britannica 1911','Encyclopædia Britannica 1911','Wikisource1911Enc Citation','Wikisource1911Enc citation'},
['CITEREFChisholm1922'] = {'EB1922', 'Cite EB1922'},
['CITEREFChoniates1984'] = {'O City of Byzantium'},
['CITEREFChrista_Jost1999'] = template_names['NDB'],
['CITEREFChung1994'] = {'Country study'},
['CITEREFChurchmanHurst2001'] = {'Churchman & Hurst Railways of New Zealand'},
['CITEREFChurchman_&_Hurst2001'] = {'Churchman & Hurst Railways of New Zealand'},
['CITEREFChurella2013'] = {'Churella-PRR-1'},
['CITEREFClementsMcMahon2008'] = {'ClementsMcMahon-GSR Locomotives'},
['CITEREFClinker1978'] = {'Clinker-Stations'},
['CITEREFClinker1988'] = {'Clinker-Stations'},
['CITEREFCoates1990'] = {'Coates-Reading'},
['CITEREFColbyWilliams1916'] = {'New International Encyclopedia', 'NIE'},
['CITEREFColledgeWarlow2006'] = {'Colledge', 'Cite Colledge2006'},
['CITEREFColledgeWarlow2010'] = {'Cite Colledge2010'},
['CITEREFCollins2016'] = {'Cite Collins 2016'},
['CITEREFColvin1947'] = {'Colvin1947'},
['CITEREFConolly1998'] = {'IanAllan-PreGroup-Atlas1998'},
['CITEREFConway1990'] = {'Conway A Course in Functional Analysis'},
['CITEREFCookZimmermann1992'] = {'Cook-Western Maryland'},
['CITEREFCosentino2008'] = {'DBI'},
['CITEREFCotsonis2020'] = {'Catalogue of Byzantine Seals at Dumbarton Oaks and in the Fogg Museum of Art'},
['CITEREFCoulthard-Clark2002'] = {'Australian Dictionary of Biography'},
['CITEREFCousin1910'] = {'A Short Biographical Dictionary of English Literature', 'Cite SBDEL'},
['CITEREFCoverdale_&_Colpitts1946'] = {'Coverdale & Colpitts 1', 'Coverdale & Colpitts 2', 'Coverdale & Colpitts 3', 'Coverdale & Colpitts 4'},
['CITEREFCox1967'] = {'Cox-Upper Darby'},
['CITEREFCox2011'] = {'Cox-Dixie'},
['CITEREFCrevier1993'] = {'Crevier 1993'},
['CITEREFCrockett2007'] = {'Australian Dictionary of Biography'},
['CITEREFCroke2018'] = template_names['ODLA'],
['CITEREFCrone1980'] = {'Slaves on Horses'},
['CITEREFCrone2003'] = {'Slaves on Horses'},
['CITEREFCroughtonKidnerYoung1982'] = {'Croughton-PrivateStations'},
['CITEREFCruickshanks1970'] = {'HistoryofParliament'},
['CITEREFCsászár1978'] = {'Császár General Topology'},
['CITEREFCudahy2002'] = {'Cudahy-Hudson'},
['CITEREFCudahy2003'] = {'Cudahy-Subways'},
['CITEREFCurta2006'] = {'Southeastern Europe in the Middle Ages, 500–1250'},
----------< D >----------
['CITEREFDBI'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFDZS2015'] = {'Croatia Yearbook 2015'},
['CITEREFDadelsen1957'] = {'Bach\'s compositions (sources)'},
['CITEREFDaftary1990'] = {'Daftary-The Ismailis'},
['CITEREFDaftary2007'] = {'Daftary-The Ismailis'},
['CITEREFDaniel2010'] = {'New Cambridge History of Islam'},
['CITEREFDanielsDench1963'] = {'Daniels-NoMore'},
['CITEREFDanielsDench1973'] = {'Daniels-NoMore'},
['CITEREFDarleyCanepa2018'] = {'Oxford Dictionary of Late Antiquity'},
['CITEREFDaryaee2018'] = template_names['ODLA'],
['CITEREFDaryaeeCanepa2018'] = template_names['ODLA'],
['CITEREFDavid1961'] = {'Bach\'s compositions (sources)'},
['CITEREFDavidson2010'] = {'HistoryofParliament'},
['CITEREFDavidsonThrush2010'] = {'HistoryofParliament'},
['CITEREFDavies1956'] = {'RCTS-LocosGWR-11'},
['CITEREFDavies1996'] = {'Davies-PLMLocoList'},
['CITEREFDavies1997'] = {'Davies-NordLocoList'},
['CITEREFDavies2001'] = {'Davies-EstLocoList3', 'Davies-ÉtatLocoList'},
['CITEREFDavies2003'] = {'Davies-SNCFLocoList'},
['CITEREFDaviesFirthLuckingThomas1966'] = {'RCTS-LocosGWR-10'},
['CITEREFDe_Negri1997'] = {'DBI'},
['CITEREFDendy_MarshallKidner1982'] = {'Dendy Marshall-Southern Railway'},
['CITEREFDer_Matossian2020'] = {'Cite The First Republic of Armenia'},
['CITEREFDeutsch1951'] = {'Schubert\'s compositions (references)'},
['CITEREFDeutsch1978'] = {'Schubert\'s compositions (references)'},
['CITEREFDeutsche_Autos,_Band_2,2001'] = {'Deutsche Autos-2'},
['CITEREFDeutsche_Autos,_Band_3,2001'] = {'Deutsche Autos-3'},
['CITEREFDeutsche_Autos,_Band_4,2001'] = {'Deutsche Autos-4'},
['CITEREFDeutsche_Autos,_Band_5,2001'] = {'Deutsche Autos-5'},
['CITEREFDeutsche_Autos,_Band_6,2001'] = {'Deutsche Autos-6'},
['CITEREFDewick2005'] = {'Dewick-Atlas'},
['CITEREFDiamonstein-Spielvogel2011'] = {'Cite landmarks'},
['CITEREFDickens2018'] = template_names['ODLA'],
['CITEREFDienKnapp2019'] = {'Cite Cambridge History of China'},
['CITEREFDirksen1998'] = {'Bach\'s compositions (sources)'},
['CITEREFDirksen2010'] = {'Bach\'s compositions (sources)'},
['CITEREFDirksen2016'] = {'Bach\'s compositions (sources)'},
['CITEREFDixmier1984'] = {'Dixmier General Topology'},
['CITEREFDoganis1930'] = {'Great Military and Naval Encyclopaedia'},
['CITEREFDoleckiMynard2016'] = {'Dolecki Mynard Convergence Foundations Of Topology'},
['CITEREFDolkart1998'] = {'Cite morningside'},
['CITEREFDonaghy1972'] = {'Donaghy-LMR'},
['CITEREFDonohue2003'] = {'The Buwayhid Dynasty in Iraq'},
['CITEREFDorin1972'] = {'Dorin-North Western'},
['CITEREFDow1985'] = {'Dow-GC1', 'Dow-GC2', 'Dow-GC3'},
['CITEREFDowney2007'] = {'Downey-Chicago'},
['CITEREFDrummond1964'] = {'HistoryofParliament'},
['CITEREFDrury1985'] = {'Drury Historical Guide 1985'},
['CITEREFDrury1993'] = {'Drury-North American Steam'},
['CITEREFDugundji1966'] = {'Dugundji Topology'},
['CITEREFDuke1995'] = {'Duke-Santa Fe-1'},
['CITEREFDukeKeilty1990'] = {'Duke-RDC'},
['CITEREFDumbarton_Oaks_Hagiography_Database'] = {'Dumbarton Oaks Hagiography Database'},
['CITEREFDunbar1969'] = {'Dunbar-Railroads'},
['CITEREFDuncan-Jones2010'] = {'Shakespeare sonnets bibliography'},
['CITEREFDunlop1895'] = {'O\'Donnell family tree'},
['CITEREFDunn2013'] = {'Dunn-Comeng-5'},
['CITEREFDurham1998'] = {'California\'s Geographic Names'},
['CITEREFDurrant1972'] = {'Durrant-Steam Locos Eastern Europe'},
['CITEREFDurrant1981'] = {'Durrant-Garratt-Rev'},
['CITEREFDurrantLewisJorgensen1981'] = {'Durrant-SteamAfrica'},
['CITEREFDömlingKohlhase1971'] = {'Bach\'s compositions (sources)'},
['CITEREFDürr1952'] = {'Bach\'s compositions (sources)'},
['CITEREFDürr1954'] = {'Bach\'s compositions (sources)'},
['CITEREFDürr1987'] = {'Bach\'s compositions (sources)'},
['CITEREFDürrJones2006'] = {'Bach\'s compositions (sources)'},
['CITEREFDürrKobayashi1998'] = {'Bach\'s compositions (sources)'},
----------< E >----------
['CITEREFEarle2018'] = {'Gymnosperm Database'},
['CITEREFEaston1897'] = {'Eastons', 'EBD'},
['CITEREFEbata2019'] = {'BDh'},
['CITEREFEbata2020'] = {'BDh'},
['CITEREFEdwards1995'] = {'Edwards Functional Analysis Theory and Applications'},
['CITEREFEichberg1976'] = {'Bach\'s compositions (sources)'},
['CITEREFEl-Hibri2010'] = {'New Cambridge History of Islam'},
['CITEREFEl-Hibri2021'] = {'The Abbasid Caliphate: A History'},
['CITEREFEldredgeHorenstein2014'] = {'Cite concrete'},
['CITEREFElsholz1982'] = {'Schubert\'s compositions (references)'},
['CITEREFEppstein1966'] = {'Bach\'s compositions (sources)'},
['CITEREFEppstein1982'] = {'Bach\'s compositions (sources)'},
['CITEREFEquasis'] = {'Csr', 'Cite ship register'},
['CITEREFEuDaly2009'] = {'Complete Book of North American Railroading'},
['CITEREFEuDalySchaferJessupBoyd2009'] = {'Complete Book of North American Railroading'},
----------< F >----------
['CITEREFFairbank1978'] = {'Cite Cambridge History of China'},
['CITEREFFairbank1983'] = {'Cite Cambridge History of China'},
['CITEREFFairbankFeuerwerker1986'] = {'Cite Cambridge History of China'},
['CITEREFFairbankLiu1980'] = {'Cite Cambridge History of China'},
['CITEREFFang1943'] = {'Cite ECCP'},
['CITEREFFarinella2001'] = {'DBI'},
['CITEREFFeder1958'] = {'Bach\'s compositions (sources)'},
['CITEREFFederal_Writers'_Project1939'] = {'Cite fednyc'},
['CITEREFFernandez1983'] = {'Fernandez1983'},
['CITEREFFerneyhough1980'] = {'Ferneyhough-LMR'},
['CITEREFFiaccadori1991'] = template_names['ODB'],
['CITEREFFine1991'] = {'The Early Medieval Balkans'},
['CITEREFFine1994'] = {'The Late Medieval Balkans'},
['CITEREFFitzpatrickLink1960'] = {'Nebraska Place-Names'},
['CITEREFFleetKrämerMatringeNawas'] = {'Encyclopaedia of Islam, THREE','EI3'},
['CITEREFFletcher,_Great_Tank_Scandal'] = {'Book-Fletcher-Great Tank Scandal'},
['CITEREFFletcher,_Universal_Tank'] = {'Book-Fletcher-Universal Tank'},
['CITEREFFlora_of_China'] = {'EFloras'},
['CITEREFFlora_of_North_America'] = {'EFloras'},
['CITEREFFlora_of_North_America2009'] = {'EFloras'},
['CITEREFFluckMarshallWilson1996'] = {'FluMarWil-LocRailCR'},
['CITEREFFonstad1991'] = template_names['ME-ref'],
['CITEREFFordCrowther1922'] = {'Ford1922'},
['CITEREFForkelTerry1920'] = {'Bach\'s compositions (sources)'},
['CITEREFFornaçon,_Siegfried1957'] = template_names['NDB'],
['CITEREFForrestal1999'] = {'Forrestal-Wineries'},
['CITEREFForster1990'] = {'Cite DCB'},
['CITEREFFoss1991'] = template_names['ODB'],
['CITEREFFoster1971'] = template_names['ME-ref'],
['CITEREFFoster1996'] = {'Foster-Field Guide'},
['CITEREFFouracre2005'] = {'New Cambridge Medieval History'},
['CITEREFFrailey2010'] = {'Frailey-Twilight'},
['CITEREFFranke1994'] = {'Cite Cambridge History of China', 'The Cambridge History of China'},
['CITEREFFranke1994'] = {'Cite Cambridge History of China'},
['CITEREFFrankeTwitchett1994'] = {'Cite Cambridge History of China'},
['CITEREFFranz_Schnorr_von_Carolsfeld1883'] = {'Cite ADB'},
['CITEREFFriedrich_Wilhelm_Bautz1975'] = {'BBKL'},
['CITEREFFriedrich_Wilhelm_Bautz1990'] = {'BBKL'},
['CITEREFFry1964'] = {'RCTS-LocosLNER-7', 'RCTS-LocosLNER'},
['CITEREFFry1966'] = {'RCTS-LocosLNER-5', 'RCTS-LocosLNER'},
['CITEREFFryHooleMannersNeve1981'] = {'RCTS-LocosLNER-3C', 'RCTS-LocosLNER'},
['CITEREFFubini2012'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFFudenbergTirole1991'] = {'Cite Fudenberg Tirole 1991'},
['CITEREFFultonHarris1991'] = {'Fulton-Harris'},
----------< G >----------
['CITEREFGaines2008'] = {'Cite Gaines 2008'},
['CITEREFGardner2005'] = {'MSW3 Microbiotheria'},
['CITEREFGardoni2015'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFGareyJohnson1979'] = {'Garey-Johnson'},
['CITEREFGarth2003'] = template_names['ME-ref'],
['CITEREFGeanakoplos1959'] = {'Emperor Michael Palaeologus and the West'},
['CITEREFGeorg_von_Dadelsen1953'] = template_names['NDB'],
['CITEREFGiannasi1975'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFGibb1923'] = {'The Arab Conquests in Central Asia'},
['CITEREFGibbs1964'] = {'Gibbs-Graveyard'},
['CITEREFGil1997'] = {'A History of Palestine, 634-1099', 'A History of Palestine, 634–1099'},
['CITEREFGillham1988'] = {'Gillham-Electric'},
['CITEREFGillham2001'] = {'Gillham-Waterloo-City'},
['CITEREFGilliland1969'] = {'Gilliland'},
['CITEREFGilliland1994'] = {'Pop Chronicles 40s'},
['CITEREFGilliverMarshallWeiner2006'] = template_names['ME-ref'],
['CITEREFGilmanPeckColby1905'] = {'Cite NIE', 'New International Encyclopedia', 'NIE'},
['CITEREFGilmanPeckColby1916'] = {'New International Encyclopedia', 'NIE'},
['CITEREFGleaves1921'] = {'Gleaves'},
['CITEREFGlischinski1997'] = {'Glischinski-Santa Fe'},
['CITEREFGlöckner1983'] = {'Bach\'s compositions (sources)'},
['CITEREFGoldberg1981'] = {'Goldberg-Amtrak'},
['CITEREFGordon2001'] = {'Gordon-The Breaking of a Thousand Swords'},
['CITEREFGraham1974'] = {'Cite DCB'},
['CITEREFGrant1994'] = {'Grant-Death'},
['CITEREFGrant2010'] = {'Grant-Twilight'},
['CITEREFGrant2017'] = {'Grant-RailCo'},
['CITEREFGreenlaw2007'] = {'Greenlaw-Via Rail'},
['CITEREFGreenwoodEarnshaw1997'] = {'Greenwood&Earnshaw2nd'},
['CITEREFGregory1991'] = template_names['ODB'],
['CITEREFGregoryKazhdan1991'] = template_names['ODB'],
['CITEREFGregoryŠevčenko1991'] = template_names['ODB'],
['CITEREFGrete_Schemann1957'] = template_names['NDB'],
['CITEREFGrey2002'] = {'Australian Dictionary of Biography'},
['CITEREFGrierson1903'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGrierson1908'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGrierson1919'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGrierson1967'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGriffith1991'] = template_names['ODB'],
['CITEREFGriffithsSmith1999'] = {'Griffiths-Sheds1'},
['CITEREFGriffithsSmith2000'] = {'Griffiths-Sheds2'},
['CITEREFGrothendieck1955'] = {'Grothendieck Produits Tensoriels Topologiques et Espaces Nucléaires'},
['CITEREFGrothendieck1973'] = {'Grothendieck Topological Vector Spaces'},
['CITEREFGrothendieckDieudonné1960'] = {'EGA'},
['CITEREFGrothendieckDieudonné1961'] = {'EGA'},
['CITEREFGrothendieckDieudonné1963'] = {'EGA'},
['CITEREFGrothendieckDieudonné1964'] = {'EGA'},
['CITEREFGrothendieckDieudonné1965'] = {'EGA'},
['CITEREFGrothendieckDieudonné1966'] = {'EGA'},
['CITEREFGrothendieckDieudonné1967'] = {'EGA'},
['CITEREFGrothendieckDieudonné1971'] = {'EGA'},
['CITEREFGroves2005'] = {'MSW3 Primates', 'MSW3 Groves'},
['CITEREFGrubb2005'] = {'MSW3 Artiodactyla'},
['CITEREFGuilland1967'] = {'Recherches sur les institutions byzantines'},
['CITEREFGulino2005'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFGunzburg1984'] = {'Gunzburg-History WAGR Steam'},
['CITEREFGunzburg1989'] = {'Gunzburg-MRWA Locomotives'},
----------< H >----------
['CITEREFHaarer2018'] = template_names['ODLA'],
['CITEREFHaldon1999'] = {'Warfare, State and Society in the Byzantine World, 565–1204'},
['CITEREFHalliday1985'] = {'Halliday-AustWineCompend'},
['CITEREFHalliday2008'] = {'Halliday-JHWAtlasAust2008'},
['CITEREFHalliday2009'] = {'Halliday-AustWineEncyc'},
['CITEREFHalm1991'] = {'Das Reich des Mahdi'},
['CITEREFHalm2003'] = {'Die Kalifen von Kairo'},
['CITEREFHalm2014'] = {'Kalifen und Assassinen'},
['CITEREFHalmos1982'] = {'Halmos A Hilbert Space Problem Book 1982'},
['CITEREFHalpenny1990'] = {'Canadabio'},
['CITEREFHammondAnderson1993'] = template_names['ME-ref'],
['CITEREFHammondScull1995'] = template_names['ME-ref'],
['CITEREFHammondScull2005'] = template_names['ME-ref'],
['CITEREFHammondScull2006'] = template_names['ME-ref'],
['CITEREFHans_Heinrich_Borcherdt1955'] = template_names['NDB'],
['CITEREFHans_Knudsen1972'] = template_names['NDB'],
['CITEREFHansen1988'] = {'Book-Hansen-US Nuclear Weapons'},
['CITEREFHartshorne1977'] = {'Hartshorne AG'},
['CITEREFHasumi2003'] = {'Hasumi-shiguehiko-ozu-2003'},
['CITEREFHaswell-Smith2004'] = {'Haswell-Smith'},
['CITEREFHaugic1908'] = {'Schaff-Herzog'},
['CITEREFHawting1987'] = {'The First Dynasty of Islam'},
['CITEREFHawting2000'] = {'The First Dynasty of Islam'},
['CITEREFHaynes2011'] = {'RubberBible92nd'},
['CITEREFHeinichen1728'] = {'Bach\'s compositions (sources)'},
['CITEREFHeinrich_Welti1890'] = {'Cite ADB'},
['CITEREFHelgen2005'] = {'MSW3 Scandentia'},
['CITEREFHellmann1965'] = {'Bach\'s compositions (sources)'},
['CITEREFHenderson2004'] = {'Cite History of New York Playhouses'},
['CITEREFHenrici1725'] = {'Bach\'s compositions (sources)'},
['CITEREFHenryOrsmond1928'] = {'Raiatea family tree'},
['CITEREFHermann_Palm1876'] = {'Cite ADB'},
['CITEREFHerr2000'] = {'Herr-LN'},
['CITEREFHeschel2007'] = {'Encyclopaedia Judaica', 'Cite EJ', 'Cite Encyclopaedia Judaica'},
['CITEREFHidyHidyScottHofsummer2004'] = {'Hidy-Great Northern'},
['CITEREFHildHellenkemper1990'] = {'Tabula Imperii Byzantini'},
['CITEREFHildHellenkemper1994'] = {'Tabula Imperii Byzantini'},
['CITEREFHildRestle1981'] = {'Tabula Imperii Byzantini'},
['CITEREFHills,_Power_from_Steam'] = {'Book-Hills-Power from Steam'},
['CITEREFHills1989'] = {'Book-Hills-Power from Steam'},
['CITEREFHilmarJestremski2004'] = {'Schubert\'s compositions (references)'},
['CITEREFHilton1980'] = {'Hilton-Amtrak'},
['CITEREFHilton1990'] = {'Hilton Narrow Gauge'},
['CITEREFHiltonDue1960'] = {'Hilton-Interurban'},
['CITEREFHinton1986'] = {'HistoryofParliament'},
['CITEREFHirsch1906'] = {'Cite JE1906'},
['CITEREFHistoric_England'] = {'NHLE', 'National Heritage List for England'},
['CITEREFHistoric_England_Benty_Grange'] = {'NHLE'},
['CITEREFHistoric_Environment_Scotland'] = {'Canmore'},
['CITEREFHistoric_Environment_Scotland1972'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_Scotland1976'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_Scotland2020'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_Scotland:_Rusco_Tower2020'] = {'Historic Environment Scotland'},
['CITEREFHob.'] = {'Schubert\'s compositions (references)'},
['CITEREFHoffmanSmith2005'] = {'MSW3 Lagomorpha'},
['CITEREFHoffmann1738'] = {'Bach\'s compositions (sources)'},
['CITEREFHofmann1983'] = {'Bach\'s compositions (sources)'},
['CITEREFHofmann1987'] = {'Bach\'s compositions (sources)'},
['CITEREFHofmann1999'] = {'Bach\'s compositions (sources)'},
['CITEREFHolland1972'] = {'Holland-Vol 2'},
['CITEREFHolland1988'] = {'Cite DCB'},
['CITEREFHolland1989'] = {'Holland1989'},
['CITEREFHolland2001'] = {'Holland-Classic'},
['CITEREFHollingsworth1980'] = {'Hollingsworth-Atlas-Rigby'},
['CITEREFHollingsworth1991'] = template_names['ODB'],
['CITEREFHollingsworthCutler1991'] = template_names['ODB'],
['CITEREFHolmgren2003'] = {'EFloras'},
['CITEREFHoltBiddle1986'] = {'Holt-NorthWest'},
['CITEREFHolton1989'] = {'Holton-Reading-1'},
['CITEREFHonigmann1935'] = {'Byzance et les Arabes'},
['CITEREFHopley1983'] = {'Australian Dictionary of Biography'},
['CITEREFHort1911'] = {'DCBL'},
['CITEREFHorváth1966'] = {'Horváth Topological Vector Spaces and Distributions Volume 1 1966'},
['CITEREFHounshell1984'] = {'Hounshell1984'},
['CITEREFHovannisian1967'] = {'Cite Armenia on the Road to Independence'},
['CITEREFHovannisian1971'] = {'Cite The Republic of Armenia Volume 1'},
['CITEREFHovannisian1982'] = {'Cite The Republic of Armenia Volume 2'},
['CITEREFHovannisian1996'] = {'Cite The Republic of Armenia Volume 3', 'Cite The Republic of Armenia Volume 4'},
['CITEREFHowes1995'] = {'Howes Modern Analysis and Topology 1995'},
['CITEREFHudson1997'] = {'Country study'},
['CITEREFHughes1979'] = {'Hughes-SteamLocosIndia3'},
['CITEREFHughes1990'] = {'Hughes-IndianLocos1'},
['CITEREFHughes1992'] = {'Hughes-IndianLocos2'},
['CITEREFHughes1994'] = {'Hughes-IndianLocos3'},
['CITEREFHughes1996'] = {'Hughes-IndianLocos4'},
['CITEREFHummel1943'] = {'Cite ECCP'},
['CITEREFHumphreys2018'] = template_names['ODLA'],
['CITEREFHunter-Crawley2018'] = template_names['ODLA'],
['CITEREFHunter1949'] = {'Hunter-Steamboats-1949'},
['CITEREFHunter1993'] = {'Hunter-Steamboats-1993'},
['CITEREFHunter2008'] = {'Country study'},
['CITEREFHunter2012'] = {'Cite HGOC', 'Cite Hunter'},
['CITEREFHutterer2005'] = {'MSW3 Soricomorpha'},
['CITEREFHütter2012'] = {'Hütter-50bis53'},
['CITEREFHütter2015'] = {'Hütter-54bis59'},
['CITEREFHütter2021'] = {'Hütter-60bis91'},
----------< I >----------
['CITEREFIacocca1984'] = {'Iacocca1984'},
['CITEREFIbn_Khallikan1843'] = {'Ibn Khallikan\'s Biographical Dictionary'},
['CITEREFImber2002'] = {'Imber-The Ottoman Empire, 1300–1650'},
['CITEREFInalcik1989'] = {'Setton-A History of the Crusades'},
['CITEREFIshino1998'] = {'Teishajo'},
['CITEREFIvey1919'] = {'Ivey-Marquette'},
----------< J >----------
['CITEREFJackson1908'] = {'Schaff-Herzog'},
['CITEREFJackson1995'] = {'Cite enc-nyc'},
['CITEREFJackson2010'] = {'Cite enc-nyc2'},
['CITEREFJacobs1904'] = {'Cite Jewish Encyclopedia'},
['CITEREFJarchow1981'] = {'Jarchow Locally Convex Spaces'},
['CITEREFJohn_O'Donovan1856'] = {'Cite AFM'},
['CITEREFJohnson1906'] = {'BDA1906', 'Cite BDA1906'},
['CITEREFJohnstonWelshSchafer2001'] = {'Johnston-Streamliner'},
['CITEREFJones2000'] = {'New Cambridge Medieval History'},
['CITEREFJones2011'] = {'Cite EPD'},
['CITEREFJordan2002'] = {'Jordan-WineWABest'},
['CITEREFJoshi1983'] = {'Joshi Introduction to General Topology'},
['CITEREFJoslen2003'] = {'Joslen-OOB'},
['CITEREFJowett1867'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFJowett1989'] = {'Jowett-Atlas', 'Carnarvonshire Railway'},
['CITEREFJowett2000'] = {'Jowett-Nationalised'},
['CITEREFJullien2018'] = template_names['ODLA'],
['CITEREFJupp1986'] = {'HistoryofParliament'},
----------< K >----------
['CITEREFK.'] = {'Schubert\'s compositions (references)'},
['CITEREFKadinsky2016'] = {'Cite Hidden Waters NYC'},
['CITEREFKaegi1991'] = template_names['ODB'],
['CITEREFKalla-Bishop1986'] = {'Kalla-Bishop-FS-Steam'},
['CITEREFKamp1981'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFKang2008'] = {'Country study'},
['CITEREFKarl_Frohnmeyer1953'] = template_names['NDB'],
['CITEREFKarnow1989'] = {'Cite-Karnow'},
['CITEREFKartesz2014'] = {'BONAP'},
['CITEREFKazemzadeh1951'] = {'Cite The Struggle for Transcaucasia'},
['CITEREFKazemzadeh1951'] = {'The Struggle for Transcaucasia'},
['CITEREFKazhdan1991'] = template_names['ODB'],
['CITEREFKazhdanCutler1991'] = template_names['ODB'],
['CITEREFKazhdanJeffreys1991'] = template_names['ODB'],
['CITEREFKazhdanŠevčenko1991'] = template_names['ODB'],
['CITEREFKeefe2006'] = {'Schubert\'s compositions (references)'},
['CITEREFKeightley1999'] = {'Cite Cambridge History of China'},
['CITEREFKeller1937'] = {'Bach\'s compositions (sources)'},
['CITEREFKelley1975'] = {'Kelley General Topology'},
['CITEREFKelly1988'] = {'Cite GEIL'},
['CITEREFKellyBurrage1920'] = {'Cite AMB1920'},
['CITEREFKennedy1998'] = {'The Cambridge History of Egypt', 'Cite Kennedy 1998', 'Cambridge History of Egypt'},
['CITEREFKennedy2001'] = {'Kennedy-The Armies of the Caliphs'},
['CITEREFKennedy2004'] = {'The Prophet and the Age of the Caliphates'},
['CITEREFKennedy2007'] = {'Kennedy-The Great Arab Conquests'},
['CITEREFKennedy2016'] = {'The Prophet and the Age of the Caliphates'},
['CITEREFKenyon2011'] = {'Bach\'s compositions (sources)'},
['CITEREFKerrigan1995'] = {'Shakespeare sonnets bibliography'},
['CITEREFKhaleelulla1982'] = {'Khaleelulla Counterexamples in Topological Vector Spaces'},
['CITEREFKhan2012'] = {'Cite Banglapedia'},
['CITEREFKim1994'] = {'Country study'},
['CITEREFKirnberger1774'] = {'Bach\'s compositions (sources)'},
['CITEREFKirnberger1780'] = {'Bach\'s compositions (sources)'},
['CITEREFKlein2006'] = {'Klein-UP-2'},
['CITEREFKobayashi1978'] = {'Bach\'s compositions (sources)'},
['CITEREFKoderHild1976'] = {'Tabula Imperii Byzantini'},
['CITEREFKoderSoustalKoder1998'] = {'Tabula Imperii Byzantini'},
['CITEREFKoeppel2015'] = {'Cite citygrid'},
['CITEREFKofos1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFKohler1902'] = {'Cite Jewish Encyclopedia'},
['CITEREFKolde1914'] = {'Schaff-Herzog'},
['CITEREFKoliopoulos1978'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFKolmogorovFomin1957'] = {'Kolmogorov Fomin Elements of the Theory of Functions and Functional Analysis'},
['CITEREFKonrad_Ameln1985'] = template_names['NDB'],
['CITEREFKorkotyan1932'] = {'Cite The Population of Soviet Armenia'},
['CITEREFKoska2011'] = {'Bach\'s compositions (sources)'},
['CITEREFKratville1962'] = {'Kratville-SSL'},
['CITEREFKretzschmar1910'] = {'Bach\'s compositions (sources)'},
['CITEREFKube2009'] = {'Schubert\'s compositions (references)'},
['CITEREFKubrusly2011'] = {'Kubrusly The Elements of Operator Theory 2nd Edition 2011'},
['CITEREFKulp1972'] = {'Kulp-Lehigh and New England'},
['CITEREFKuznik2008'] = {'Bach\'s compositions (sources)'},
['CITEREFKöthe1969'] = {'Köthe Topological Vector Spaces I'},
['CITEREFKöthe1979'] = {'Köthe Topological Vector Spaces II'},
['CITEREFKöthe1983'] = {'Köthe Topological Vector Spaces I'},
['CITEREFKülzer2008'] = {'Tabula Imperii Byzantini'},
----------< L >----------
['CITEREFLa_Porta2018'] = template_names['ODLA'],
['CITEREFLacourcière1974'] = {'Cite DCB'},
['CITEREFLadefogedMaddieson1996'] = {'SOWL'},
['CITEREFLandau-Tasseron2010'] = {'New Cambridge History of Islam'},
['CITEREFLandauCondit1996'] = {'Cite nysky'},
['CITEREFLandmann1907'] = {'Bach\'s compositions (sources)'},
['CITEREFLang2002'] = {'Lang Algebra'},
['CITEREFLane1973'] = {'Venice: A Maritime Republic'},
['CITEREFLaërtius1925'] = {'Cite Lives of the Eminent Philosophers', 'Cite LotEP'},
['CITEREFLe_Quien1740'] = {'Oriens Christianus'},
['CITEREFLe_Strange1900'] = {'Baghdad During the Abbasid Caliphate'},
['CITEREFLe_Strange1905'] = {'Lands of the Eastern Caliphate'},
['CITEREFLe_Strange1922'] = {'Baghdad During the Abbasid Caliphate'},
['CITEREFLeblanc1979'] = {'Cite DCB'},
['CITEREFLee1903'] = {'Cite DNBIE'},
['CITEREFLee2018'] = template_names['ODLA'],
['CITEREFLegifrance'] = {'Cite Legifrance', 'Cite Légifrance'},
['CITEREFLeisingerWollny1993'] = {'Bach\'s compositions (sources)'},
['CITEREFLev1999'] = {'Saladin in Egypt'},
['CITEREFLevitan2001'] = {'Springer'},
['CITEREFLewin1925'] = {'Lewin-EarlyRail'},
['CITEREFLewis1969'] = {'Setton-A History of the Crusades'},
['CITEREFLewis1986'] = {'Lewis-Shortline-1986'},
['CITEREFLewis1991'] = {'Lewis-Shortline-1991'},
['CITEREFLewis1996'] = {'Lewis-Shortline-1996'},
['CITEREFLi2002'] = {'Cite Cambridge History of China'},
['CITEREFLiederNet_Archive'] = {'Schubert\'s compositions (references)'},
['CITEREFLighthouses_of_Australia_Inc'] = {'Cite loa'},
['CITEREFLilieLudwigPratschZielke1998–2013'] = {'Prosopographie der mittelbyzantinischen Zeit'},
['CITEREFLilieLudwigPratschZielke1999'] = {'Prosopographie der mittelbyzantinischen Zeit', 'PMBZ'},
['CITEREFLilieLudwigPratschZielke2000'] = {'Prosopographie der mittelbyzantinischen Zeit'},
['CITEREFLilieLudwigPratschZielke2001'] = {'Prosopographie der mittelbyzantinischen Zeit'},
['CITEREFLilieLudwigPratschZielke2002'] = {'Prosopographie der mittelbyzantinischen Zeit'},
['CITEREFLilieLudwigPratschZielke2009'] = {'Prosopographie der mittelbyzantinischen Zeit'},
['CITEREFLilieLudwigPratschZielke2013'] = {'Prosopographie der mittelbyzantinischen Zeit'},
['CITEREFLind1986'] = {'Lind-Limiteds'},
['CITEREFLindsay1968'] = {'Lindsay-CanalScot'},
['CITEREFLittle1974'] = {'Cite DCB'},
['CITEREFLoeweShaughnessy1999'] = {'Cite Cambridge History of China'},
['CITEREFLohrThielmann1988'] = {'Lohr-EFA2.7'},
['CITEREFLongnon1969'] = {'Setton-A History of the Crusades'},
['CITEREFLoverance2018'] = template_names['ODLA'],
['CITEREFLukonin1983'] = {'Cambridge History of Iran'},
['CITEREFLurie'] = {'Lurie-HA'},
['CITEREFLuscombeRiley-Smith2004'] = {'New Cambridge Medieval History'},
['CITEREFLuttrell1975'] = {'Setton-A History of the Crusades'},
['CITEREFLuttrell1987'] = {'DBI'},
['CITEREFLynch2004'] = {'Lynch-Penn Central'},
['CITEREFLynch2005'] = {'Lynch-New Haven passenger'},
['CITEREFLynch2018'] = template_names['ODLA'],
['CITEREFLéger1990'] = {'Cite DCB'},
['CITEREFle_Fleming1953'] = {'RCTS-LocosGWR-8'},
['CITEREFle_Fleming1954'] = {'RCTS-LocosGWR-7'},
['CITEREFle_Fleming1958'] = {'RCTS-LocosGWR-5'},
['CITEREFle_Fleming1960'] = {'RCTS-LocosGWR-8'},
['CITEREFle_Fleming1962'] = {'RCTS-LocosGWR-9'},
----------< M >----------
['CITEREFMacDermot1927'] = {'Infobox GWR'},
['CITEREFMacDermot1931'] = {'Infobox GWR'},
['CITEREFMacFarquharFairbank1987'] = {'Cite Cambridge History of China'},
['CITEREFMacFarquharFairbank1991'] = {'Cite Cambridge History of China'},
['CITEREFMachinery's_Handbook1996'] = {'MachinerysHandbook25e'},
['CITEREFMacMullen1970'] = {'MacMullen-Paddle-Wheel'},
['CITEREFMadelung1978'] = {'EI2'},
['CITEREFMagdalino2002'] = {'The Empire of Manuel I Komnenos'},
['CITEREFMaiken1989'] = {'Maiken-Night Trains'},
['CITEREFMailer2004'] = {'Mailer-Omaha Road'},
['CITEREFManfred_Knedlik2007'] = {'BBKL'},
['CITEREFMarre1995'] = {'Marre-diesel-50'},
['CITEREFMarshall1823'] = {'Cite RNB1823'},
['CITEREFMarshall1824'] = {'Cite RNB1823'},
['CITEREFMarshall1825'] = {'Cite RNB1823'},
['CITEREFMarshall1827'] = {'Cite RNB1823'},
['CITEREFMarshall1828'] = {'Cite RNB1823'},
['CITEREFMarshall1829'] = {'Cite RNB1823'},
['CITEREFMarshall1830'] = {'Cite RNB1823'},
['CITEREFMarshall1831'] = {'Cite RNB1823'},
['CITEREFMarshall1832'] = {'Cite RNB1823'},
['CITEREFMarshall1833'] = {'Cite RNB1823'},
['CITEREFMarshall1835'] = {'Cite RNB1823'},
['CITEREFMarshall1969'] = {'Lancashire & Yorkshire Railway 1'},
['CITEREFMarshall1970'] = {'Lancashire & Yorkshire Railway 2'},
['CITEREFMarshall1972'] = {'Lancashire & Yorkshire Railway 3'},
['CITEREFMarshall2001'] = {'Marshall-INGSR'},
['CITEREFMartin_Persch1992'] = {'BBKL'},
['CITEREFMartin_Persch1993'] = {'BBKL'},
['CITEREFMartin_Persch1996'] = {'BBKL'},
['CITEREFMartindale1980'] = {'Prosopography of the Later Roman Empire', 'PLRE'},
['CITEREFMartindale1992'] = {'Prosopography of the Later Roman Empire', 'PLRE'},
['CITEREFMartindaleJonesMorris1971'] = {'Prosopography of the Later Roman Empire', 'PLRE'},
['CITEREFMaul2005'] = {'Bach\'s compositions (sources)'},
['CITEREFMayGray2006'] = {'MayGray-WAGRPassCar'},
['CITEREFMcArthurMcArthur2003'] = {'Cite ogn', 'Cite OGN', 'Cite Oregon Geographic Names'},
['CITEREFMcCorduck2004'] = {'McCorduck 2004'},
['CITEREFMcCurdyRogers1902'] = {'Cite Jewish Encyclopedia'},
['CITEREFMcDonnell2015'] = {'McDonnell-Locomotives-2nd'},
['CITEREFMcGeerNesbittOikonomides2001'] = {'Catalogue of Byzantine Seals at Dumbarton Oaks and in the Fogg Museum of Art'},
['CITEREFMcGeerNesbittOikonomides2005'] = {'Catalogue of Byzantine Seals at Dumbarton Oaks and in the Fogg Museum of Art'},
['CITEREFMcGhee2008'] = {'Cite McGhee 2008'},
['CITEREFMcKitterick1995'] = {'New Cambridge Medieval History'},
['CITEREFMeiningen1704'] = {'Bach\'s compositions (sources)'},
['CITEREFMeints1992'] = {'Meints-Companies'},
['CITEREFMeints2005'] = {'Meints-Lines'},
['CITEREFMelamed1988'] = {'Bach\'s compositions (sources)'},
['CITEREFMelamed1995'] = {'Bach\'s compositions (sources)'},
['CITEREFMennell1892'] = {'Dictionary of Australasian Biography'},
['CITEREFMetcalfe2009'] = {'The Muslims of Medieval Italy'},
['CITEREFMiddleton1961'] = {'Middleton-Interurban'},
['CITEREFMiddleton2001'] = {'Middleton-Electrified-2nd'},
['CITEREFMiddleton2002'] = {'Middleton-PRR-Under-Wire'},
['CITEREFMiddletonSmerkDiehl2007'] = {'Encyclopedia of North American Railroads'},
['CITEREFMillar2011'] = {'NZR Steam Locomotive'},
['CITEREFMiller1908'] = {'The Latins in the Levant', 'Latins in the Levant'},
['CITEREFMiller1921'] = {'Essays on the Latin Orient'},
['CITEREFMills1977'] = {'Mills-Columbia'},
['CITEREFMinnich2008'] = {'Country study'},
['CITEREFMiramar_Ship_Index'] = {'Csr', 'Cite ship register'},
['CITEREFMitchell1965'] = {'Mitchell TOC'},
['CITEREFMittermeierKonstantHawkinsLouis2006'] = {'LoM2'},
['CITEREFMittermeierLouisRichardsonSchwitzer2010'] = {'LoM3'},
['CITEREFMittermeierTattersallKonstantMeyers1994'] = {'LoM1'},
['CITEREFMoore1875'] = {'Cite CEM'},
['CITEREFMorana1993'] = {'Bach\'s compositions (sources)'},
['CITEREFMorrison1999'] = {'Cite Morrison Broadway'},
['CITEREFMoschonas1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFMoteTwitchett1988'] = {'Cite Cambridge History of China'},
['CITEREFMozartHaydnHaydn2008'] = {'Schubert\'s compositions (references)'},
['CITEREFMullié1852'] = {'Cite Mullié', 'Mullié'},
['CITEREFMunkres1974'] = {'Munkres Topology'},
['CITEREFMunkres2000'] = {'Munkres Topology'},
['CITEREFMurray2006'] = {'Murray-Illinois Central'},
['CITEREFMusserCarleton2005'] = {'MSW3 Muroidea'},
['CITEREFMyersWang2002'] = {'Cite Cambridge History of China'},
['CITEREFMyrick1992'] = {'Railroads of Nevada and Eastern California 1', 'Railroads of Nevada and Eastern California 2'},
['CITEREFMüller,_Hans-Christian1966'] = template_names['NDB'],
----------< N >----------
['CITEREFNSA_II,_15'] = {'Schubert\'s compositions (references)'},
['CITEREFNSA_scores'] = {'Schubert\'s compositions (references)'},
['CITEREFNSA_website'] = {'Schubert\'s compositions (references)'},
['CITEREFNariciBeckenstein2011'] = {'Narici Beckenstein Topological Vector Spaces'},
['CITEREFNemiroffBonnell1998'] = {'Cite APOD'},
['CITEREFNemiroffBonnell2004'] = {'Cite APOD'},
['CITEREFNemiroffBonnell2005'] = {'Cite APOD'},
['CITEREFNemiroffBonnell2006'] = {'Cite APOD'},
['CITEREFNemiroffBonnell2007'] = {'Cite APOD'},
['CITEREFNersessian2018'] = template_names['ODLA'],
['CITEREFNesbittMorrisson2009'] = {'Catalogue of Byzantine Seals at Dumbarton Oaks and in the Fogg Museum of Art'},
['CITEREFNesbittOikonomides1991'] = {'Catalogue of Byzantine Seals at Dumbarton Oaks and in the Fogg Museum of Art'},
['CITEREFNesbittOikonomides1994'] = {'Catalogue of Byzantine Seals at Dumbarton Oaks and in the Fogg Museum of Art'},
['CITEREFNesbittOikonomides1996'] = {'Catalogue of Byzantine Seals at Dumbarton Oaks and in the Fogg Museum of Art'},
['CITEREFNestruev2020'] = {'Nestruev Smooth Manifolds and Observables 2020'},
['CITEREFNeukirch1999'] = {'Neukirch ANT'},
['CITEREFNeukirchSchmidtWingberg2000'] = {'Neukirch et al. CNF'},
['CITEREFNew_Cambridge_Medieval_History'] = {'New Cambridge Medieval History'},
['CITEREFNew_York_City_Landmarks_Preservation_CommissionDolkartPostal2009'] = {'Cite nycland'},
['CITEREFNewbould1999'] = {'Schubert\'s compositions (references)'},
['CITEREFNicholson2018'] = template_names['ODLA'],
['CITEREFNicholsonCanepaDaryaee2018'] = template_names['ODLA'],
['CITEREFNicol1968'] = {'The Byzantine Family of Kantakouzenos'},
['CITEREFNicol1984'] = {'The Despotate of Epiros, 1267–1479'},
['CITEREFNicol1988'] = {'Byzantium and Venice: A Study in Diplomatic and Cultural Relations'},
['CITEREFNicol1992'] = {'The Immortal Emperor: The Life and Legend of Constantine Palaiologos, Last Emperor of the Romans'},
['CITEREFNicol1993'] = {'The Last Centuries of Byzantium, 1261–1453', 'The Last Centuries of Byzantium'},
['CITEREFNicol1994'] = {'The Byzantine Lady: Ten Portraits, 1250–1500'},
['CITEREFNock1974'] = {'Nock-EustonGlasgow'},
----------< O >----------
['CITEREFO'Byrne1849'] = {'Cite NBD1849'},
['CITEREFO'ConnorRobertson'] = {'MacTutor Biography', 'MacTutor'},
['CITEREFO'ConnorRobertson1996'] = {'MacTutor Biography', 'MacTutor'},
['CITEREFO'ConnorRobertson2000'] = {'MacTutor Biography', 'MacTutor'},
['CITEREFO'ConnorRobertson2004'] = {'MacTutor Biography', 'MacTutor'},
['CITEREFO'Donoghue1897'] = {'Cite DNB'},
['CITEREFODB'] = template_names['ODB'],
['CITEREFODLA'] = template_names['ODLA'],
['CITEREFOdisheli2018'] = template_names['ODLA'],
['CITEREFOfficial_Army_Register1865'] = {'Official Army Register of the Volunteer Force of the United States Army'},
['CITEREFOfficial_Army_Register1867'] = {'Official Army Register of the Volunteer Force of the United States Army'},
['CITEREFOfficial_Guide_of_the_Railways1950'] = {'Official Guide of the Railways'},
['CITEREFOgorek2012'] = {'Ogorek-South Shore'},
['CITEREFOikonomides1991'] = template_names['ODB'],
['CITEREFOikonomou1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFOrmsby1982'] = {'Cite DCB'},
----------< P >----------
['CITEREFPLP'] = {'Prosopographisches Lexikon der Palaiologenzeit', 'PLP'},
['CITEREFPalmer1875'] = {'Cite ADB'},
['CITEREFPalmerStewart1965'] = {'Palmer & Stewart'},
['CITEREFParkhouse,_BRHIC,_Vol_1'] = {'Book-Parkhouse-BRHIC-1'},
['CITEREFPatience1996'] = {'Patience-SteamTwilight'},
['CITEREFPatton2005'] = {'MSW3 Geomyidae'},
['CITEREFPawson1979'] = {'Pawson-Delaware Valley'},
['CITEREFPaxtonBourne1985'] = {'Paxton-Bourne'},
['CITEREFPeck1898'] = {'HDCA'},
['CITEREFPerlis2001'] = {'Springer'},
['CITEREFPerreault2004'] = {'Bach\'s compositions (sources)'},
['CITEREFPeterson2002'] = {'Cite Cambridge History of China'},
['CITEREFPeterson2016'] = {'Cite Cambridge History of China'},
['CITEREFPetropoulosKoumarianou1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFPetrucci1982'] = {'DBI'},
['CITEREFPfau2008'] = {'Bach\'s compositions (sources)'},
['CITEREFPikros1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFPinkepank1973'] = {'Pinkepank diesel spotters guide 2'},
['CITEREFPlantlist2016'] = {'Plantlist'},
['CITEREFPlaten1976'] = {'Bach\'s compositions (sources)'},
['CITEREFPloumidisAlexiou1974'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFPmbZ'] = {'Prosopographie der mittelbyzantinischen Zeit', 'PMBZ'},
['CITEREFPolemis1968'] = {'Polemis-The Doukai'},
['CITEREFPope2007'] = {'Encyclopaedia Judaica', 'Cite EJ', 'Cite Encyclopaedia Judaica'},
['CITEREFPopplewell'] = {'Popplewell-Gazetteer'},
['CITEREFPopplewell1989'] = {'Popplewell-Gazetteer'},
['CITEREFPotts2018'] = template_names['ODLA'],
['CITEREFPottsCanepa2018'] = template_names['ODLA'],
['CITEREFPourshariati2017'] = {'Encyclopædia Iranica Online'},
['CITEREFPozza1992'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFPrawer1985'] = {'Setton-A History of the Crusades'},
['CITEREFPritsak1991'] = template_names['ODB'],
['CITEREFProsopographie_der_mittelbyz._Zeit'] = {'Prosopographie der mittelbyzantinischen Zeit'},
----------< Q >----------
['CITEREFQuick2009'] = {'Quick-Stations'},
['CITEREFQuick2019'] = {'Quick-stations-5'},
['CITEREFQuick2020'] = {'Quick-stations-5'},
['CITEREFQuick2022'] = {'Quick-stations-5'},
['CITEREFQuick2023'] = {'Quick-stations-5.05'},
----------< R >----------
['CITEREFRailway_Atlas2010'] = {'Eisenbahnatlas Italien'},
['CITEREFRailway_Atlas2012'] = {'Eisenbahnatlas Schweiz'},
['CITEREFRailway_Atlas2020'] = {'Eisenbahnatlas Deutschland'},
['CITEREFRailway_Atlas2021'] = {'Eisenbahnatlas Österreich'},
['CITEREFRailway_Atlas2024'] = {'Eisenbahnatlas Schweiz 2024'},
['CITEREFRamaer1974'] = {'Ramaer-SteamLocosEAR'},
['CITEREFRansome-Wallis1971'] = {'Ransome-Wallis 1'},
['CITEREFRansome-Wallis2001'] = {'Ransome-Wallis Encyclopedia'},
['CITEREFRateliff2007'] = template_names['ME-ref'],
['CITEREFRavegnano2000'] = {'DBI'},
['CITEREFReed1953'] = {'RCTS-LocosGWR-2'},
['CITEREFReed1956'] = {'RCTS-LocosGWR-3'},
['CITEREFReed1975'] = {'Reed-Streamline era'},
['CITEREFReed1997'] = {'Schubert\'s compositions (references)'},
['CITEREFReinhard_Tenberg1990'] = {'BBKL'},
['CITEREFRettinghaus2020'] = {'BDh'},
['CITEREFReuter2000'] = {'New Cambridge Medieval History'},
['CITEREFReynolds1921'] = {'Cite Collier\'s', 'Collier\'s'},
['CITEREFReynoldsOroszi2000'] = {'Reynolds-BO'},
['CITEREFRezakhani2018'] = template_names['ODLA'],
['CITEREFRichter2018'] = {'BDh'},
['CITEREFRigo2005'] = template_names['ODB'],
['CITEREFRines1920'] = {'Americana','Cite Americana'},
['CITEREFRipleyDana1863'] = {'New American Cyclopedia'},
['CITEREFRipleyDana1864'] = {'New American Cyclopedia'},
['CITEREFRipleyDana1879'] = {'Cite AmCyc'},
['CITEREFRistaino1988'] = {'Country study'},
['CITEREFRobert_Eitner1891'] = {'Cite ADB'},
['CITEREFRobertson1983'] = {'Robertson-OriginScot'},
['CITEREFRobertson1998'] = {'Robertson-Western Railroad-4'},
['CITEREFRobins2017'] = {'Cite New York Art Deco'},
['CITEREFRockafellarWets2009'] = {'Rockafellar Wets Variational Analysis 2009 Springer'},
['CITEREFRoe1916'] = {'Roe1916'},
['CITEREFRoe1937'] = {'Roe1937'},
['CITEREFRolt1965'] = {'Rolt1965'},
['CITEREFRoltKichenside1982'] = {'Rolt-Red'},
['CITEREFRose1857'] = {'Cite Newgenbio'},
['CITEREFRosenfeld1974'] = template_names['NDB'],
['CITEREFRosenzweigBlackmar1992'] = {'Cite Central Park History', 'Cite Central Park history'},
['CITEREFRowe2002'] = {'Cite Cambridge History of China'},
['CITEREFRowledge1975'] = {'Rowledge-Engines of the LMS'},
['CITEREFRowledge1993'] = {'Rowledge-Irish Steam Register'},
['CITEREFRowlett'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowlett2007'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowlett2012'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowlett2013'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowlett2016'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowlett2017'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowling1997'] = {'HP1ref'},
['CITEREFRowling1998'] = {'HP2ref'},
['CITEREFRowling1999'] = {'HP3ref'},
['CITEREFRowling2000'] = {'HP4ref'},
['CITEREFRowling2003'] = {'HP5ref'},
['CITEREFRowling2005'] = {'HP6ref'},
['CITEREFRowling2007'] = {'HP7ref'},
['CITEREFRudin1973'] = {'Rudin Walter Functional Analysis'},
['CITEREFRudin1991'] = {'Rudin Walter Functional Analysis'},
['CITEREFRunciman1951'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1951–1954'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1952'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1954'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1989'] = {'Runciman-A History of the Crusades'},
['CITEREFRussell1985'] = {'Setton-A History of the Crusades', 'Encyclopædia Iranica Online', 'Encyclopædia Iranica', 'Encyclopaedia Iranica', 'Cite Encyclopædia Iranica Online'},
['CITEREFRussellNorvig2003'] = {'Russell Norvig 2003'},
['CITEREFRybczynski2000'] = {'Rybczynski2000'},
----------< S >----------
['CITEREFSR_staff2013'] = {'Houston family tree'},
['CITEREFSalo2004'] = template_names['ME-ref'],
['CITEREFSanders1998'] = {'The Cambridge History of Egypt', 'Cambridge History of Egypt'},
['CITEREFSanders2003'] = {'Sanders-Indiana'},
['CITEREFSanders2006'] = {'Sanders-Heartland'},
['CITEREFSanders2007'] = {'Sanders-Akron'},
['CITEREFSarikakis1974'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFSaunders2001'] = {'Saunders-Merging Lines'},
['CITEREFSaunders2013'] = {'Saunders-Giants of the Seas'},
['CITEREFSavadaShaw1992'] = {'Country study'},
['CITEREFSchaeferWolff1999'] = {'Schaefer Wolff Topological Vector Spaces'},
['CITEREFSchafer1991'] = {'All Aboard Amtrak'},
['CITEREFSchafer1996'] = {'Schafer-Classic-Railroads-1'},
['CITEREFSchafer1998'] = {'Schafer-Vintage Diesel'},
['CITEREFSchafer2000'] = {'Schafer-More-Classic'},
['CITEREFSchafer2003'] = {'Schafer-Classic-Railroads-3'},
['CITEREFSchaferSolomon1997'] = {'Schafer-Pennsylvania'},
['CITEREFSchaferWelsh1997'] = {'Schafer-Classic'},
['CITEREFSchaferWelsh2002'] = {'Schafer-Streamliners'},
['CITEREFSchaferWelshHolland2001'] = {'Schafer-American passenger train'},
['CITEREFSchaff-Herzog'] = {'Schaff-Herzog'},
['CITEREFScharf1996'] = {'Scharf-History'},
['CITEREFSchechter1996'] = {'Schechter Handbook of Analysis and Its Foundations'},
['CITEREFScheide1960'] = {'Bach\'s compositions (sources)'},
['CITEREFSchicht1805'] = {'Bach\'s compositions (sources)'},
['CITEREFSchilling1997'] = {'Schilling-pop-culture'},
['CITEREFSchlitter2005'] = {'MSW3 Tubulidentata'},
['CITEREFSchmieder1950'] = {'Bach\'s compositions (sources)'},
['CITEREFSchmieder1990'] = {'Bach\'s compositions (sources)'},
['CITEREFSchmitz1870'] = {'Cite DGRBM'},
['CITEREFSchnabel1987'] = {'Schnabel-EFA2.5'},
['CITEREFSchneider1907'] = {'Bach\'s compositions (sources)'},
['CITEREFSchneider1912'] = {'Bach\'s compositions (sources)'},
['CITEREFScholze1736'] = {'Bach\'s compositions (sources)'},
['CITEREFSchroeter1961'] = {'Schroeter-Eisenbahnen'},
['CITEREFSchroeterRamaer1993'] = {'Schroeter-Ramaer-Eisenbahnen'},
['CITEREFSchubert-online'] = {'Schubert\'s compositions (references)'},
['CITEREFSchubert1968'] = {'Schubert Topology'},
['CITEREFSchulenberg2010'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulenberg2013'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulze1980'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulze1983'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulze1984'] = {'Bach\'s compositions (sources)'},
['CITEREFSchwieterman2001'] = {'Schwieterman-Leaves-Eastern'},
['CITEREFSchwieterman2004'] = {'Schwieterman-Leaves-Western'},
['CITEREFScottNegus2011'] = {'Scott-Negus-Cellar Door'},
['CITEREFScribbins1970'] = {'Scribbins-Hiawatha'},
['CITEREFScribbins2007'] = {'Scribbins-Hiawatha-2007'},
['CITEREFScribbins2008'] = {'Scribbins-400-2008', 'Scribbins-Remembered'},
['CITEREFSearle'] = {'Cite sslidx'},
['CITEREFSearle1980'] = {'Searle 1980'},
['CITEREFSemmensGoldfinch2003'] = {'Book-Semmens-Goldfinch-How Steam Locomotives Really Work'},
['CITEREFSetton1975'] = {'Setton-A History of the Crusades'},
['CITEREFSetton1976'] = {'The Papacy and the Levant'},
['CITEREFSetton1978'] = {'The Papacy and the Levant'},
['CITEREFSetton1984'] = {'The Papacy and the Levant'},
['CITEREFSettonHazard1975'] = {'Setton-A History of the Crusades'},
['CITEREFSfyroeras1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFShaughnessy1997'] = {'Shaughnessy-DH'},
['CITEREFShaw1978'] = {'Shaw-RailroadAccidents'},
['CITEREFShiji'] = {'Cite Shiji'},
['CITEREFShindo2004'] = {'Kaneto-shindo-shinario-jinsei'},
['CITEREFShippey2001'] = template_names['ME-ref'],
['CITEREFShippey2005'] = template_names['ME-ref'],
['CITEREFShoshani2005'] = {'MSW3 Shoshani'},
['CITEREFShtern2001'] = {'Springer', 'SpringerEOM'},
['CITEREFSiegele1957'] = {'Bach\'s compositions (sources)'},
['CITEREFSilanos2014'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFSilke2006'] = {'O\'Donnell family tree'},
['CITEREFSima'] = {'Cite Shiji'},
['CITEREFSimaSima'] = {'Cite Shiji'},
['CITEREFSimmons2005'] = {'MSW3 Chiroptera'},
['CITEREFSimon1966'] = {'Simon-Wines Australia'},
['CITEREFSimonWarner2011'] = {'Amtrak By the Numbers'},
['CITEREFSimonWarnerEuDaly2023'] = {'Amtrak by the Numbers 2'},
['CITEREFSinclair1911'] = {'DCBL'},
['CITEREFSinger1905'] = {'Jewish Encyclopedia'},
['CITEREFSix1934'] = {'Cite Six', 'Cite six'},
['CITEREFSkjærvø2018'] = template_names['ODLA'],
['CITEREFSkoulatos1980'] = {'Les personnages byzantins de l\'Alexiade'},
['CITEREFSloan1964'] = {'Sloan1964'},
['CITEREFSmid2008'] = {'Smid2008'},
['CITEREFSmid2010'] = {'Smid2010'},
['CITEREFSmith1854'] = {'Cite DGRG', 'DGRG'},
['CITEREFSmith1870'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith1873'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith1876'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith1880'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith2010'] = {'Smith-Cruise Ships-2010'},
['CITEREFSmithJohnstonAlvesHackländer2018'] = {'Lagomorphs2018'},
['CITEREFSolomentsev2001'] = {'Springer', 'SpringerEOM'},
['CITEREFSolomon2000'] = {'Solomon-American Diesel', 'Solomon-UP'},
['CITEREFSolomon2003'] = {'Solomon-Masterpieces'},
['CITEREFSolomon2004'] = {'Solomon-Amtrak'},
['CITEREFSolomon2005'] = {'Solomon-CSX', 'Solomon-SP-Passenger'},
['CITEREFSolomon2006'] = {'Solomon-EMD Locomotives'},
['CITEREFSolomon2007'] = {'Solomon-SP'},
['CITEREFSolomon2011'] = {'Solomon-Modern Diesel', 'Solomon-Electro-Motive'},
['CITEREFSolomon2012'] = {'Solomon-North American Locomotives'},
['CITEREFSolomon2014'] = {'Solomon-GE and EMD'},
['CITEREFSolomonSchafer2007'] = {'Solomon-New York Central'},
['CITEREFSolopova2009'] = template_names['ME-ref'],
['CITEREFSorensen1956'] = {'Sorensen1956'},
['CITEREFSoustal1991'] = {'Tabula Imperii Byzantini'},
['CITEREFSoustalKoder1981'] = {'Tabula Imperii Byzantini'},
['CITEREFSpielhoff1991'] = {'Spielhoff-EL'},
['CITEREFSpitta1894'] = {'Bach\'s compositions (sources)'},
['CITEREFSpitta1899'] = {'Bach\'s compositions (sources)'},
['CITEREFSpringirth2016'] = {'Springirth-Philadelphia'},
['CITEREFSpyropoulos1928'] = {'Great Military and Naval Encyclopaedia'},
['CITEREFStagner1993'] = {'Stagner-Transition'},
['CITEREFStansfield1999'] = {'Stansfield-AyrRenfrew'},
['CITEREFStatistical_Yearbook_of_the_Republic_of_Croatia_2015'] = {'Croatia Yearbook 2015'},
['CITEREFStaufer1993'] = {'Staufer-Pennsy_III'},
['CITEREFStauferPennypacker1962'] = {'Staufer-Pennsy'},
['CITEREFStauferPennypacker1968'] = {'Staufer-Pennsy Power II'},
['CITEREFStaunton1988'] = {'Australian Dictionary of Biography'},
['CITEREFSternFishmanTilove2006'] = {'Cite New York 2000', 'Cite NY2000', 'Cite ny2000', 'Cite NY 2000', 'Cite ny 2000', 'Stern: New York' },
['CITEREFSternGilmartinMassengale1983'] = {'Cite New York 1900', 'Cite NY1900', 'Cite NY1900', 'Cite ny1900', 'Cite ny 1900', 'Stern: New York'},
['CITEREFSternGilmartinMellins1987'] = {'Cite New York 1930', 'Cite NY 1930', 'Cite NY1930', 'Cite ny1930', 'Cite ny 1930', 'Stern: New York'},
['CITEREFSternMellinsFishman1995'] = {'Cite New York 1960', 'Cite NY1960', 'Cite NY 1960', 'Cite ny1960', 'Cite ny 1960', 'Stern: New York'},
['CITEREFSternMellinsFishman1999'] = {'Cite New York 1880', 'Cite NY1880', 'Cite NY 1880', 'Cite ny1880', 'Cite ny 1880', 'Stern: New York'},
['CITEREFStevens1907'] = {'Cite TCOF02'},
['CITEREFStewart1974'] = {'When Steam Was King'},
['CITEREFStrachey1981'] = template_names['ME-ref'],
['CITEREFStrickland1983'] = {'Strickland Locomotive Directory'},
['CITEREFStähelin1909'] = {'Schaff-Herzog'},
['CITEREFStorrer1993'] = {'cite Wright Companion'},
['CITEREFSuetin2001'] = {'Springer', 'SpringerEOM'},
['CITEREFSusanne_Schurr1992'] = {'BBKL'},
['CITEREFSusanne_Siebert1992'] = {'BBKL'},
['CITEREFSvolopoulos1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFSwartz1992'] = {'Swartz An Introduction to Functional Analysis'},
----------< T >----------
['CITEREFLondon_Gazette'] = {'London Gazette'},
['CITEREFTaber1977'] = {'Taber-DLW-19th'},
['CITEREFTaberTaber1980'] = {'Taber-DLW-20th-1'},
['CITEREFTaberTaber1981'] = {'Taber-DLW-20th-2'},
['CITEREFTabor1956'] = {'RCTS-LocosGWR-4'},
['CITEREFTabor1959'] = {'RCTS-LocosGWR-6'},
['CITEREFTalbot1991'] = template_names['ODB'],
['CITEREFTalbotKazhdan1991'] = template_names['ODB'],
['CITEREFTao2009'] = {'Cite Cambridge History of China', 'The Cambridge History of China'},
['CITEREFTao2009'] = {'Cite Cambridge History of China'},
['CITEREFTauranac1985'] = {'Cite Elegant New York'},
['CITEREFTer-Ghewondyan1976'] = {'The Arab Emirates in Bagratid Armenia'},
['CITEREFThe_London_Gazette1950'] = {'London Gazette'},
['CITEREFThe_London_Gazette_26_September_1919'] = {'London Gazette'},
['CITEREFThielemann2012'] = {'Bach\'s compositions (sources)'},
['CITEREFThomas1970'] = {'HistoryofParliament'},
['CITEREFThomas1971'] = {'Thomas-History-VI'},
['CITEREFThrush2010'] = {'HistoryofParliament'},
['CITEREFTikhomirov2001'] = {'Springer'},
['CITEREFTittel1966'] = {'Bach\'s compositions (sources)'},
['CITEREFTodt1996'] = {'BBKL'},
['CITEREFTodtVest2014'] = {'Tabula Imperii Byzantini'},
['CITEREFTolkien2007'] = template_names['ME-ref'],
['CITEREFTolkien2014'] = template_names['ME-ref'],
['CITEREFTolkien2015'] = template_names['ME-ref'],
['CITEREFTolkien2017'] = template_names['ME-ref'],
['CITEREFTolkien2018'] = template_names['ME-ref'],
['CITEREFTolkien2024'] = template_names['ME-ref'],
['CITEREFTolkienSwann1978'] = template_names['ME-ref'],
['CITEREFTolkienSwann2002'] = {'ME-ref'},
['CITEREFTolkienTolkien1992'] = template_names['ME-ref'],
['CITEREFTonks1988'] = {'Tonks ironstone'},
['CITEREFTonks1989'] = {'Tonks ironstone'},
['CITEREFTonks1992'] = {'Tonks ironstone'},
['CITEREFTopping1975'] = {'Setton-A History of the Crusades', 'Wisconsin History of the Crusades'},
['CITEREFTorri2013'] = {'Bach\'s compositions (sources)'},
['CITEREFTougher2018'] = template_names['ODLA'],
['CITEREFTourret1995'] = {'Tourret-Allied Military Locomotives'},
['CITEREFTrapp1991'] = template_names['ODB'],
['CITEREFTrappBeyerSturm-Schnabl1983'] = {'Prosopographisches Lexikon der Palaiologenzeit'},
['CITEREFTrappWaltherBeyer1976'] = {'Prosopographisches Lexikon der Palaiologenzeit'},
['CITEREFTrappWaltherBeyerSturm-Schnabl1978'] = {'Prosopographisches Lexikon der Palaiologenzeit'},
['CITEREFTreadgold1988'] = {'The Byzantine Revival, 780–842'},
['CITEREFTreadgold1997'] = {'A History of the Byzantine State and Society'},
['CITEREFTrèves2006'] = {'Trèves François Topological vector spaces, distributions and kernels'},
['CITEREFTsutsiev2014'] = {'Cite Atlas of the Ethno-Political History of the Caucasus'},
['CITEREFTurim1998'] = {'Turim-oshima'},
['CITEREFTuring1950'] = {'Turing 1950'},
['CITEREFTwitchett1979'] = {'Cite Cambridge History of China'},
['CITEREFTwitchettLoewe1986'] = {'Cite Cambridge History of China'},
['CITEREFTwitchettMote1988'] = {'Cite Cambridge History of China'},
['CITEREFTwitchettSmith2009'] = {'Cite Cambridge History of China'},
----------< U >----------
['CITEREFUS-NHub_Music_Deposit_31_(Klavierbüchlein_für_W._F._Bach)_at_Bach_Digital'] = {'Bach\'s compositions (sources)'},
['CITEREFUwe_Eckardt2001'] = {'BBKL'},
['CITEREFunknown_author1881'] = {'Cite ADB'},
['CITEREFunknown_author1882'] = {'Cite ADB'},
----------< V >----------
['CITEREFVakalopoulos1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFVan_Cleve1969'] = {'Setton-A History of the Crusades'},
['CITEREFVan_Hoorickx1971'] = {'Schubert\'s compositions (references)'},
['CITEREFVan_Hoorickx_1974–1976'] = {'Schubert\'s compositions (references)'},
['CITEREFVan_Lint2018'] = template_names['ODLA'],
['CITEREFVan_Riemsdijk,_Compound_Locomotives'] = {'Book-Van Riemsdijk-Compound Locomotives'},
['CITEREFVan_Riemsdijk1994'] = {'Book-Van Riemsdijk-Compound Locomotives'},
['CITEREFVan_Tricht2011'] = {'The Latin Renovatio of Byzantium'},
['CITEREFVandenberghen1989'] = {'Vandenberghen-SNCB12.2'},
['CITEREFVarzos1984'] = {'Η Γενεαλογία των Κομνηνών', 'Varzos-Genealogy of the Komnenoi'},
['CITEREFVasiliev1935'] = {'Byzance et les Arabes'},
['CITEREFVasiliev1968'] = {'Byzance et les Arabes'},
['CITEREFVenables1911'] = {'DCBL'},
['CITEREFVendler1997'] = {'Shakespeare sonnets bibliography'},
['CITEREFVenn1954'] = {'VennAC'},
['CITEREFVentura1963'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFVetter1713'] = {'Bach\'s compositions (sources)'},
['CITEREFVevainaCanepa2018'] = template_names['ODLA'],
['CITEREFVeysey1958'] = {'Veysey-PE-1958'},
['CITEREFVischer1912'] = {'Schaff-Herzog'},
['CITEREFVolkmer1991'] = {'Volkmer-Pennsy-Electric'},
['CITEREFvan_Leyden1956'] = {'Bach\'s compositions (sources)'},
['CITEREFvan_Lint2018'] = template_names['ODLA'],
['CITEREFvon_Prantl1879'] = {'Cite ADB'},
----------< W >----------
['CITEREFWagnerBäzoldZschechLüderitz1990'] = {'Wagner-EFA2.3.2'},
['CITEREFWallace2017'] = {'Cite greater'},
['CITEREFWalter1967'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFWalter_Asmus1966'] = template_names['NDB'],
['CITEREFWarner1992'] = {'Generals in Blue'},
['CITEREFWayner1972'] = {'Wayner - Car names, numbers, consists'},
['CITEREFWayner1973'] = {'Wayner-Spotter-2nd'},
['CITEREFWebb2018'] = template_names['ODLA'],
['CITEREFWechsler1979'] = {'Cite Cambridge History of China', 'The Cambridge History of China'},
['CITEREFWechsler1979'] = {'Cite Cambridge History of China'},
['CITEREFWegman2008'] = {'Wegman-Illustrated'},
['CITEREFWeibel1994'] = {'Weibel IHA'},
['CITEREFWeinrebHibbertKeayKeay2008'] = {'London encyclopedia'},
['CITEREFWeisbrod1991'] = {'Weisbrod-EFA1.5'},
['CITEREFWeisbrodMüllerPetznik1978'] = {'Weisbrod-EFA1.2'},
['CITEREFWellhausen1927'] = {'The Arab Kingdom and its Fall'},
['CITEREFWells1982'] = {'Accents of English'},
['CITEREFWells1990'] = {'Cite LPD'},
['CITEREFWells2000'] = {'Cite LPD'},
['CITEREFWells2008'] = {'Cite LPD'},
['CITEREFWelsh2006'] = {'Welsh-Broadway'},
['CITEREFWelsh2008'] = {'Welsh-UP'},
['CITEREFWerner_Raupp2001'] = {'BBKL'},
['CITEREFWestcott1911'] = {'DCBL'},
['CITEREFWestermayer,_Georg1882'] = {'Cite ADB'},
['CITEREFWham1997'] = {'Wham-Ayrshire'},
['CITEREFWhishaw1842'] = {'Whishaw-RailofGB-2ndEd'},
['CITEREFWhishaw1969'] = {'Whishaw-RailofGB'},
['CITEREFWhite1985'] = {'White-Passenger-1985'},
['CITEREFWhite1993'] = {'White - American railroad freight car'},
['CITEREFWhiteWillenskyLeadon2010'] = {'Cite aia5'},
['CITEREFWhitehurst1973'] = {'Whitehurst GW Engines from 1940'},
['CITEREFWhittow1996'] = {'The Making of Byzantium, 600–1025'},
['CITEREFWickman1982'] = {'Country study'},
['CITEREFWiesehöfer2018'] = template_names['ODLA'],
['CITEREFWilansky2008'] = {'Wilansky Topology for Analysis 2008'},
['CITEREFWilansky2013'] = {'Wilansky Modern Methods in Topological Vector Spaces'},
['CITEREFWillard2004'] = {'Willard General Topology'},
['CITEREFWilliams1998'] = {'Williams-Philadelphia'},
['CITEREFWilliams2003'] = {'Bach\'s compositions (sources)'},
['CITEREFWillis1750'] = {'Cite Notitia Parliamentaria'},
['CITEREFWilson2017'] = {'Wilson-Guide'},
['CITEREFWilsonFiske1889'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
['CITEREFWilsonFiske1891'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
['CITEREFWilsonFiske1892'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
['CITEREFWilsonFiske1900'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
['CITEREFWilsonLacherMittermeier2016'] = {'HMW2016 Volume 6'},
['CITEREFWiltshire2000'] = {'Lloyd-Margaret River'},
['CITEREFWinfieldLyon2004'] = {'Winfield'},
['CITEREFWinkler1883'] = template_names['ADB'],
['CITEREFWitakowski2018'] = template_names['ODLA'],
['CITEREFWolff1969'] = {'Setton-A History of the Crusades'},
['CITEREFWollny2015'] = {'Bach\'s compositions (sources)'},
['CITEREFWood1907'] = {'Cite Nuttall', 'Nuttall'},
['CITEREFWoodsKilpatrick2005'] = {'MSW3 Hystricognathi'},
['CITEREFWorden2008'] = {'Country study'},
['CITEREFWortley2010'] = {'John Skylitzes: A Synopsis of Byzantine History, 811–1057'},
['CITEREFWozencraft2005'] = {'MSW3 Carnivora'},
['CITEREFWright1979'] = {'Cite Cambridge History of China', 'The Cambridge History of China'},
['CITEREFWright1979'] = {'Cite Cambridge History of China'},
['CITEREFWright2000'] = {'Bach\'s compositions (sources)'},
['CITEREFWrightWinter1922'] = {'1922 Locomotive Cyclopedia'},
['CITEREFWägliJacobi2010'] = {'Schienennetz Schweiz'},
----------< X >----------
----------< Y >----------
['CITEREFYenne2005'] = {'Yenne-Chiefs'},
['CITEREFYonge1990'] = {'Quail-4'},
['CITEREFYonge1994'] = {'Quail-5'},
['CITEREFYonge2002'] = {'Quail-5'},
['CITEREFYonge2008'] = {'Quail-5'},
['CITEREFYonge2016'] = {'Quail-2-2016'},
['CITEREFYongePadgettSzwenk2013'] = {'Quail-4-Paper-3rdEd'},
['CITEREFYu1986'] = {'Cite Cambridge History of China'},
----------< Z >----------
['CITEREFZahn1889–1893'] = {'Bach\'s compositions (sources)'},
['CITEREFZeiniWiesehöfer2018'] = template_names['ODLA'],
['CITEREFZekulich2000'] = {'Zekulich-WineWA'},
['CITEREFZimmermann2004'] = {'Zimmermann-Burlington'},
['CITEREFZimmermann2007'] = {'Zimmermann-GrandLuxe'},
['CITEREFZuccaric._1747'] = {'Bach\'s compositions (sources)'},
['CITEREFZălinescu2002'] = {'Zălinescu Convex Analysis in General Vector Spaces 2002'},
----------< OTHER >----------
['CITEREFΙστορία_του_Ελληνικού_Έθνους'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFΜεγάλη_Στρατιωτικὴ_καὶ_Ναυτικὴ_Ἐγκυκλοπαιδεία'] = {'Great Military and Naval Encyclopaedia'},
['CITEREFКавказский_календарь_на_1910_год'] = {'Cite Kavkazskiy Kalendar 1910'},
['CITEREFКавказский_календарь_на_1913_год'] = {'Cite Kavkazskiy Kalendar 1913'},
['CITEREFКавказский_календарь_на_1915_год'] = {'Cite Kavkazskiy Kalendar 1915'},
['CITEREFКавказский_календарь_на_1917_год'] = {'Cite Kavkazskiy Kalendar 1917'},
----------< UNSORTED >----------
}
-- Auto-classify templates mentioned in whitelist as wrapper templates
for _, tlist in pairs(whitelist) do
for _, t in ipairs(tlist) do
if not wrapper_templates[t] then
wrapper_templates[t] = noDefault
end
end
end
--[[--------------------------< S S T S I N T E G R A T I O N >----------------------------------------------
]]
local success, ssts_registry = pcall(require, 'Module:SST/registry')
if success and type(ssts_registry) == 'table' then
if ssts_registry.defaults then
for t_name, data in pairs(ssts_registry.defaults) do
wrapper_templates[t_name] = data
end
end
if ssts_registry.patterns then
for _, pattern_block in ipairs(ssts_registry.patterns) do
table.insert(wrapper_template_patterns, pattern_block)
end
end
end
--[[--------------------------< E X P O R T E D T A B L E S >------------------------------------------------
]]
return {
whitelist = whitelist,
wrapper_template_patterns = wrapper_template_patterns,
wrapper_templates = wrapper_templates
}
0z9x91xf5sczpo8728wqsica0bxx92q
Module:Footnotes/whitelist/sort
828
3794
37726
2026-08-03T15:20:32Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '--[[--------------------------< U N S O R T E D _ A D D >------------------------------------------------------ add members of the unsorted list based on first character(upper or lower case) following 'CITEREF'. If <index> is longer than one character (ODNB, UNSORTED, whatever), return without making any additions ]] local function unsorted_add (index, unsorted, temp) local pattern; if 1 < index:len() and 'OTHER' ~= index then -- only...'
37726
Scribunto
text/plain
--[[--------------------------< U N S O R T E D _ A D D >------------------------------------------------------
add members of the unsorted list based on first character(upper or lower case) following 'CITEREF'. If <index>
is longer than one character (ODNB, UNSORTED, whatever), return without making any additions
]]
local function unsorted_add (index, unsorted, temp)
local pattern;
if 1 < index:len() and 'OTHER' ~= index then -- only add citerefs to the single-character lists
return;
end
if '#' == index then
pattern = '%[\'CITEREF%d'; -- first character is a digit
else
pattern = '%[\'CITEREF[' .. index .. index:lower() .. ']';
end
for k, v in pairs (unsorted) do -- spin through the unsorted listing
if not k:match ('CITEREF') then -- <k> must have 'CITEREF'
return 'malformed key: ' .. k; -- return an error message
end
if v and k:match (pattern) and 'OTHER' ~= index then -- if not nil and matches the pattern
temp[k] = true; -- add to the alpha listing
unsorted[k] = nil; -- and then disable this one in the unsorted listing
end
if v and 'OTHER' == index then -- if not nil and OTHER index
if mw.ustring.match (k, '%[\'CITEREF%a') then
temp[k] = true; -- add to the OTHER listing
unsorted[k] = nil; -- and then disable this one in the unsorted listing
end
end
end
end
--[[--------------------------< L I S T _ P A R S E >----------------------------------------------------------
parse apart plain-text list of a key / value pair into a table where the plain-text k/v becomes the key in a lua
table with the assigned value true. Do this to catch multiples of the same k/v and to support the easy insertion
of k/v pairs from the unsorted list.
also normalize k/v format
]]
local function list_parse (index, list, temp)
for citeref in list[index]:gmatch ('\t*([^\r\n]+)') do
citeref = mw.text.trim (citeref);
citeref = citeref:gsub (' *%[ *\' *', '[\''); -- normalize opening sq brackets
citeref = citeref:gsub (' *\' *%] *', '\']'); -- normalize closing sq brackets
citeref = citeref:gsub (' *{ *\' *', '{\''); -- normalize opening braces
citeref = citeref:gsub (' *\' *} *', '\'}'); -- normalize closing braces
citeref = citeref:gsub ('([%]}]) *, *', '%1,'); -- normalize trailing comma
citeref = citeref:gsub (' *= *', ' = '); -- normalize assignment operator
if not temp[citeref] then
temp[citeref] = true; -- a constant value so that we can know if the 'key' already exists (avoid duplication)
end
end
end
--[[--------------------------< W H I T E L I S T _ S O R T >--------------------------------------------------
maintenance utility for Module:Footnotes/whitelist. The whitelist is segregated into sections according to the
section heading (single alpha character A-Z and '#'). This utility adds whitelist entries from the UNSORTED
heading to the correct alpha heading. After appropriate unsorted entries have been added to a section, the
section is sorted and then saved.
for this to work, the unsorted header name must be: UNSORTED
this utility take no arguments from frame. frame is provided only for expandTemplate()
]]
local function whitelist_sort(frame)
local headers = {}; -- headings are stored here and used for loop control
local list = {} -- table of tables of the plain-text citerefs
local unsorted = {}; -- table of k/v pairs where k is the unsorted citerefs and v is true or nil (after added to alpha list)
local result = {}; -- sorted and formatted section end up here
local temp, temp2 = {}, {};
local content = mw.title.new('Module:Footnotes/whitelist'):getContent(); -- read the module plain text
local find_pattern = '%s*local%s+whitelist%s+=%s+'; -- find the whitelist table
local tstart, tend = content:find (find_pattern);
content = content:match ('%b{}', tstart); -- get the content of the whitelist table
content = content:gsub ('^{[\r\n]+', ''); -- remove leading brace and newlines
content = content:gsub ('%s*}$', ''); -- remove whitespace and terminal brace
for header in content:gmatch ('%-+<([#%a%d%s]+)>%-+') do -- get pseudo-headers
table.insert (headers, mw.text.trim (header)); -- save the captures in the headers table
end
for i, header in ipairs (headers) do -- separate whitelist entries into individual alpha groupings
local pattern = '%-+<%s*' .. header .. '%s*>%-+';
tstart, tend = content:find (pattern); -- find this header
if tstart and headers[1+i] then -- if not the last header
list[header] = mw.text.trim (content:match ('([^<]-)%-+<', tend+1)); -- begin at end of header; +1 to leave-off the last '-' in the header
elseif tstart then -- must be the last header (usually UNSORTED)
list[header] = mw.text.trim (content:match ('.*', tend+1)); -- begin at end of header; +1 to leave-off the last '-' in the header
else
error ('shouldn\'t be here; header: ' .. header or '(nil or empty string)' .. '; tstart: ' .. tstart or '(nil or empty string)');
end
end
list_parse ('UNSORTED', list, unsorted); -- make a separate unsorted list
list['UNSORTED'] = ''; -- blank the unsorted source
for i, v in ipairs (headers) do
temp, temp2 = {}, {}; -- reinit temp & temp2
list_parse (v, list, temp); -- parse the list
local err_msg;
err_msg = unsorted_add (v, unsorted, temp); -- then add appropriate citerefs from the unsorted list
if err_msg then
return err_msg;
end
for k, v in pairs (temp) do -- get 'key' value from temp{} and make a sequence from it in temp2{} so it can be sorted
if v then
table.insert (temp2, k); -- unsorted listing gets 'emptied' by setting v nil; don't add nil citerefs to temp2
end
end
table.sort (temp2); -- sort this section
table.insert (result, '----------< ' .. v .. ' >----------\n\t' .. table.concat (temp2, '\n\t') .. '\n\n'); -- add a header, make a long string, and add to result{}
end
return frame:extensionTag {name="syntaxhighlight", content='local whitelist = {\n'.. table.concat (result) .. '\t}', args = {lang="lua"}};
end
--[[-------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
whitelist_sort = whitelist_sort,
}
1nbnf2zt8nx5gt8p42fuokw132rosd9
Module:SST/registry
828
3795
37728
2026-08-03T15:36:24Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '--[[--------------------------< S S T S _ R E G I S T R Y >---------------------------------------------- Specific-Source Template System registry (WP:SSTS) WARNING: DO NOT EDIT THIS MODULE This is an auto-generated compiled registry for the Specific-Source Template System (WP:SSTS). Any manual edits made to this page WILL BE OVERWRITTEN by a bot. If you need to correct an author, year, or citation pattern, you must edit the...'
37728
Scribunto
text/plain
--[[--------------------------< S S T S _ R E G I S T R Y >----------------------------------------------
Specific-Source Template System registry (WP:SSTS)
WARNING: DO NOT EDIT THIS MODULE
This is an auto-generated compiled registry for the Specific-Source Template System (WP:SSTS).
Any manual edits made to this page WILL BE OVERWRITTEN by a bot.
If you need to correct an author, year, or citation pattern, you must edit the
specific Lua shard (module) associated with that template (e.g., Module:SST/shards/...).
This registry will automatically update at least once daily to reflect those changes.
]]
local registry = {
defaults = {
['Hovannisian: Armenian Van-Vaspurakan'] = {'Hovannisian', '2000'},
['Armenian Van-Vaspurakan 2000'] = {'Hovannisian', '2000'},
['Kittler: Mercedes-Benz Personenwagen seit 1886'] = {'Kittler', '2008'},
['Brooklands: On Mercedes Sports & GT Cars 1970-1980'] = {'Clarke', '1980'},
['Brooklands-MBRTS>C70'] = {'Clarke', '1980'},
['Nixon: Racing the Silver Arrows'] = {'Nixon', '2003'},
['Cite Wright Companion'] = {'Storrer', '1993'},
['The World\'s Writing Systems'] = {'', '1996'},
['Anoar Ali: 150th Anniversary Memorial Book 1869-2019'] = {'Ali', ''},
['150th Anniversary Memorial Book 1869-2019'] = {'Ali', ''},
['Baaden: Das neue grosse Mercedes SL'] = {'BaadenRöcke', '2002'},
['Brooklands: Mercedes-Benz 190SL 300SL 300SLR'] = {'Clarke', '2011'},
['Weber: Porsche: The Essence of Performance'] = {'Weber', '2000'},
['Sugahara: Mercedes-Benz Grand Prix Race Cars 1934–1955'] = {'Sugahara', '2004'},
['Zekulich-SpiritSwan'] = {'Zekulich', '2014'},
['O City of Byzantium'] = {'Choniates', '1984'},
['Cranswick: Porsche 928, 924, 944 and 968'] = {'Cranswick', '2008'},
['Schneider: NSU: Automobile 1905–1977'] = {'Schneider', '2008'},
['John Skylitzes: A Synopsis of Byzantine History, 811–1057'] = {'Wortley', '2010'},
['Arth: NSU-Automobile'] = {'Arth', '2015'},
['Mellon: Mercedes: Coupes 1974-84 Repair Manual'] = {'', '2001'},
['Chilton-MCSW 1974-84'] = {'', '2001'},
['Nitskey: Mercedes-Benz Production Models Book 1946-1995'] = {'Nitske', '1995'},
['Shindo: 100 sai no ryugi'] = {'Shindo', '2012'},
['100sainoryugi'] = {'Shindo', '2012'},
['Malin 1976'] = {'Malin', '1976'},
['Wirth: Mercedes-Benz Supercars'] = {'Wirth', '2012'},
['Eckert-Buildings of Michigan'] = {'Eckert', '1993'},
['Meredith: Original Mercedes SL'] = {'Meredith', '1996'},
['Clarke-AustWineCompan'] = {'Clarke', '2004'},
['AIA Guide to Boston'] = {'SouthworthSouthworth', '2008'},
['Cite aiaboston'] = {'SouthworthSouthworth', '2008'},
['Henshaw: The Ultimate Guide to SUVs and Off-Road Vehicles'] = {'Henshaw', '2005'},
['Kennedy-The Armies of the Caliphs'] = {'Kennedy', '2001'},
['Hofner: Die S-Klasse von Mercedes-Benz'] = {'Hofner', '1997'},
['Walker: NSU: The Complete Story'] = {'Walker', '2009'},
['Fletcher: The Great Tank Scandal'] = {'Fletcher', '1989a'},
['Cite AIA4'] = {'WhiteWillensky', '2000'},
['Laban: Mercedes SL Series'] = {'Laban', '1992'},
['Cite OCSC'] = {'WondrichRothbaum', '2021'},
['Cite IPH'] = {'', '2017'},
['State and Society in Fatimid Egypt'] = {'Lev', '1991'},
['The Byzantine Lady: Ten Portraits, 1250–1500'] = {'Nicol', '1994'},
['Staud: Mercedes-Benz: The Grand Cabrios & Coupes'] = {'StaudLewandowski', '2016'},
['The Governors and Judges of Egypt'] = {'Al-Kindi', '1912'},
['Holmes: Ultimate Convertibles'] = {'Holmes', '2007'},
['Häußermann: Mercedes-Benz S-Class'] = {'Häußermann', '2006b'},
['Saunders: Giants of the Seas'] = {'Saunders', '2013'},
['Saunders-Giants of the Seas'] = {'Saunders', '2013'},
['Scott-Negus-Cellar Door'] = {'ScottNegus', '2011'},
['Sessler: Mercedes-Benz SL Series'] = {'Sessler', '2011'},
['Morgan: Original Porsche 924 944 968'] = {'Morgan', '1998'},
['Byzantium and Venice: A Study in Diplomatic and Cultural Relations'] = {'Nicol', '1988'},
['Das Reich des Mahdi'] = {'Halm', '1991'},
['The Buwayhid Dynasty in Iraq'] = {'Donohue', '2003'},
['The Oxford Guide to the Uralic Languages'] = {'Bakró-NagyLaaksoSkribnik', '2022'},
['Plowman: Australian Cruise Ships'] = {'Plowman', '2007'},
['Plowman-Aust Cruise Ships'] = {'Plowman', '2007'},
['Cárdenas: 66 petites histoires du Pays Catalan'] = {'Cárdenas', '2014'},
['66 PHPC'] = {'Cárdenas', '2014'},
['The Byzantine Revival, 780–842'] = {'Treadgold', '1988'},
['Brooklands: Mercedes AMG Gold Portfolio 1983-1999'] = {'Clarke', '2007'},
['Brooklands: On Audi & Auto Union 1980'] = {'Clarke', '1986'},
['Brooklands-AAURT80'] = {'Clarke', '1986'},
['The Arab Emirates in Bagratid Armenia'] = {'Ter-Ghewondyan', '1976'},
['Botto: At This Theatre'] = {'BottoMitchell', '2002'},
['Cite ATT Broadway'] = {'BottoMitchell', '2002'},
['Taylor: Mercedes-Benz S-Class 1972-2013'] = {'Taylor', '2014'},
['Smith: Cruise Ships 2014'] = {'Smith', '2014'},
['Smith-Cruise Ships-2014'] = {'Smith', '2014'},
['Bols: Mercedes-Benz Personenwagen'] = {'Bols', '2007'},
['The Despotate of Epiros, 1267–1479'] = {'Nicol', '1984'},
['Wood: Great Marques of Germany'] = {'Wood', '1985'},
['Wilhelms 1976'] = {'Wilhelms', '1976'},
['The End of the Jihâd State'] = {'Blankinship', '1994'},
['Austen: Porsche 924 944 968'] = {'Austen', '2013'},
['Thierry: Armenian Art'] = {'Thierry', '1989'},
['Armenian Art 1989'] = {'Thierry', '1989'},
['Staud: Faszination und Mythos'] = {'StaudKittler', '2001'},
['Vivian: Porsche 924 928 944 968'] = {'Vivian', '1993'},
['Kennedy-The Great Arab Conquests'] = {'Kennedy', '2007'},
['Simon-Wines Australia'] = {'Simon', '1966'},
['Wieder: The Great American Convertible'] = {'WiederHall', '1977'},
['Leffingwell: Porsche 70 Years'] = {'Leffingwell', '2017'},
['Pitt: Porsche 924 944 968'] = {'Pitt', '2006'},
['The Byzantine Family of Kantakouzenos'] = {'Nicol', '1968'},
['Zekulich-WineWA'] = {'Zekulich', '2000'},
['Schrader: Porsche 924 944 968'] = {'Schrader', '2018'},
['Cite AIA5'] = {'WhiteWillenskyLeadon', '2010'},
['Brooklands: On Mercedes 1952-1962'] = {'Clarke', '1987'},
['Brooklands-MBRT52'] = {'Clarke', '1987'},
['Smith: Cruise Ships 2010'] = {'Smith', '2010'},
['Smith-Cruise Ships-2010'] = {'Smith', '2010'},
['The Latin Renovatio of Byzantium'] = {'Tricht', '2011'},
['Schneider: NSU Autos und Motorräder 1900–1977'] = {'Schneider', '2011'},
['Bond-Pemberton'] = {'Bond', '2008'},
['Neate-High Asia'] = {'Neate', '1989'},
['Günther: Das grosse Mercedes-SL-Buch'] = {'GüntherHübner', '1990'},
['Lederer: Mercedes-Benz Ponton & Heckflosse'] = {'Lederer', '1997'},
['Bongers: Porsche Data Book'] = {'Bongers', '2006'},
['Taylor: Mercedes-Benz: Cars of the 1990s'] = {'Taylor', '2009'},
['Geiling: NSU: Fahrzeuge'] = {'Geiling', '2009'},
['Saladin in Egypt'] = {'Lev', '1999'},
['Bosworth-The New Islamic Dynasties'] = {'Bosworth', '1996'},
['Wood: Porsche: The Legend'] = {'Wood', '1997'},
['Lintelmann: Mercedes-Benz SL'] = {'Lintelmann', '2010'},
['Book-Ahrons-British Steam Railway Locomotive'] = {'Ahrons', '1927'},
['MacLaren-Mapper of Mountains'] = {'MacLaren', '2005'},
['MacMullen: Paddle-Wheel Days in California'] = {'MacMullen', '1970'},
['MacMullen-Paddle-Wheel'] = {'MacMullen', '1970'},
['Slade: Original Mercedes-Benz Coupes'] = {'Slade', '2004'},
['A History of the Byzantine State and Society'] = {'Treadgold', '1997'},
['Églises romanes oubliées du Roussillon'] = {'Mallet', '2003'},
['Chilton: Mercedes-Benz: 1968-73'] = {'Staff', '1974'},
['Chilton-MB 1968-73'] = {'Staff', '1974'},
['Bentley: Mercedes-Benz Technical Companion'] = {'America', '2005'},
['Bentley-MB Technical'] = {'America', '2005'},
['Brooklands: Mercedes-Benz SL SLK CLK Portfolio 1990-2003'] = {'Clarke', '2004'},
['A Short History of Berkhamsted'] = {'Birtchnell', '1972'},
['Strom Trask Guest 1975'] = {'StromTraskGuest', '1975'},
['Jordan-WineWABest'] = {'Jordan', '2002'},
['Brooklands: Mercedes 230SL'] = {'Clarke', '2010'},
['Halliday-AustWineEncyc'] = {'Halliday', '2009'},
['Emperor Michael Palaeologus and the West'] = {'Geanakoplos', '1959'},
['Bass: Mercedes-Benz Pagoda 230, 250 & 280 SL'] = {'Bass', '2007'},
['Noakes: Mercedes SL Series: The Complete Story'] = {'Noakes', '2004'},
['Noakes-MSL'] = {'Noakes', '2004'},
['Schneider: NSU 1873-1984'] = {'Schneider', '1988'},
['Engelen: Mercedes-Benz C-Klasse: 201-205'] = {'Engelen', '2020'},
['McComb: Mercedes-Benz V8s'] = {'McComb', '1980'},
['The Arab Conquests in Central Asia'] = {'Gibb', '1923'},
['Ghost Towns of California'] = {'Miller', '1978'},
['Meredith: Mercedes-Benz Saloons'] = {'Meredith', '2003'},
['Mills: Stern-wheelers up Columbia'] = {'Mills', '1977'},
['Mills-Columbia'] = {'Mills', '1977'},
['Blake: Disraeli'] = {'Blake', '1966'},
['DisraeliRef'] = {'Blake', '1966'},
['Larimer: Mercedes-Benz Buyer\'s Guide'] = {'Larimer', '2004'},
['Die Provinzen des Osmanischen Reiches'] = {'Birken', '1976'},
['Davies Dwornik Gault Strom 1978'] = {'DaviesDwornikGaultStrom', '1978'},
['Brooklands: Mercedes-Benz SLs & SLCs Ultimate Portfolio 1971-1989'] = {'Clarke', '2004'},
['The Abbasid Caliphate: A History'] = {'El-Hibri', '2021'},
['Les personnages byzantins de l\'Alexiade'] = {'Skoulatos', '1980'},
['Polemis-The Doukai'] = {'Polemis', '1968'},
['Ludvigsen: German Racing Silver'] = {'Ludvigsen', '2009'},
['Ghost Towns of Northern California'] = {'VarneySusan', '2001'},
['Meredith: Mercedes-Benz SL Sports Cars'] = {'Meredith', '1999'},
['Freeman: Mercedes-Benz: 1959-70'] = {'FreemanRiveleHallinger', '1983'},
['Gordon-The Breaking of a Thousand Swords'] = {'Gordon', '2001'},
['Halliday-AustWineCompend'] = {'Halliday', '1985'},
['Strom 1979'] = {'Strom', '1979'},
['Plowman: The SITMAR Liners'] = {'Plowman', '2004'},
['Plowman-Sitmar'] = {'Plowman', '2004'},
['Book-Semmens-Goldfinch-How Steam Locomotives Really Work'] = {'SemmensGoldfinch', '2000'},
['Brooklands: Mercedes SLs & SLCs Gold Portfolio 1971-1989'] = {'Clarke', '1990'},
['Forrestal-Wineries'] = {'Forrestal', '1999'},
['Parkhouse: West Gloucester & Wye Valley Lines'] = {'Parkhouse', '2013a'},
['Book-Parkhouse-BRHIC-1'] = {'Parkhouse', '2013a'},
['Koehling: Mercedes-Benz, The Modern SL Cars'] = {'Koehling', '2013'},
['Schlegelmilch: Mercedes'] = {'SchlegelmilchLehbrinkOsterroth', '2013'},
['Schlegelmilch-M-2013'] = {'SchlegelmilchLehbrinkOsterroth', '2013'},
['Venice: A Maritime Republic'] = {'Lane', '1973'},
['Lehbrink: Faszination Mercedes'] = {'Lehbrink', '2012'},
['Bock: Japanese Film Directors'] = {'Bock', '1978'},
['Audie-bock-directors'] = {'Bock', '1978'},
['Hirsch: The Last American Convertibles'] = {'HirschWeith', '1979'},
['Nebraska Place-Names'] = {'FitzpatrickLink', '1960'},
['Book-Hansen-US Nuclear Weapons'] = {'Hansen', '1988'},
['The Muslims of Medieval Italy'] = {'Metcalfe', '2009'},
['Chapman: SUV'] = {'Chapman', '2005'},
['Byzantium Confronts the West'] = {'Brand', '1968'},
['History of Yolo County'] = {'Gregory', '1913'},
['Brooklands: On Audi & Auto Union 1952-1980'] = {'Clarke', '1986'},
['Brooklands-AAURT52'] = {'Clarke', '1986'},
['Trask and Strom 1976'] = {'TraskStrom', '1976'},
['The Imperial Administrative System of the Ninth Century'] = {'BuryPhilotheus', '1911'},
['Nicholls-The Establishment Boys'] = {'Nicholls', '2021'},
['Brooklands: On Mercedes 1963-1970'] = {'Clarke', '1987'},
['Brooklands-MBRT63'] = {'Clarke', '1987'},
['Cotton: Porsche 924, 944 & 968'] = {'Cotton', '2000'},
['Gibbs: Pacific Graveyard'] = {'Gibbs', '1992'},
['Gibbs-Graveyard'] = {'Gibbs', '1992'},
['Jackson: Japanese Super Cars'] = {'Jackson', '1992'},
['Die Kalifen von Kairo'] = {'Halm', '2003'},
['Bradsher: High and Mighty'] = {'Bradsher', '2002'},
['Vieweg: Alles über die Mercedes'] = {'Vieweg', '2000'},
['Essays on the Latin Orient'] = {'Miller', '1921'},
['Trask and Guest 1975'] = {'TraskGuest', '1975'},
['Brooklands: Mercedes SLs Performance Portfolio 1989-1994'] = {'Clarke', '1996'},
['Book-Van Riemsdijk-Compound Locomotives'] = {'Riemsdijk', '1994'},
['Fletcher: Universal Tank'] = {'Fletcher', '1989b'},
['Book-Fletcher-Universal Tank'] = {'Fletcher', '1989b'},
['Naval Wars in the Levant 1559–1853'] = {'Anderson', '1952'},
['La Morée franque'] = {'Bon', '1969'},
['The Latins in the Levant'] = {'Miller', '1908'},
['A History of Palestine, 634–1099'] = {'Gil', '1997'},
['Caro: The Power Broker'] = {'Caro', '1974'},
['Cite Power Broker'] = {'Caro', '1974'},
['Smale: Porsche 924 928 944 968'] = {'Smale', '2015'},
['Hardy-AustWinePictAtlas'] = {'Hardy', '1997'},
['The Immortal Emperor: The Life and Legend of Constantine Palaiologos, Last Emperor of the Romans'] = {'Nicol', '1992'},
['Oswald: Mercedes-Benz Personenwagen 1886-1986'] = {'Oswald', '2018'},
['Arizona SHS Interactive Map'] = {'Division', ''},
['ADOT SHS'] = {'Division', ''},
['Rybczynski2000'] = {'Rybczynski', '2000'},
['Alexander-Four Bishops'] = {'Alexander', '1957'},
['Hansen: Swords of Armageddon'] = {'Hansen', '2007'},
['Book-Hansen-Swords of Armageddon'] = {'Hansen', '2007'},
['The Late Medieval Balkans'] = {'Fine', '1994'},
['Bruno: Mercedes Benz Personenwagen 1886–1980'] = {'Bruno', '2014'},
['The Arab Kingdom and its Fall'] = {'Wellhausen', '1927'},
['Niemann: Personenwagen von Mercedes-Benz'] = {'Niemann', '2006'},
['Bass: Mercedes-Benz 280-560SL & SLC: W107 series'] = {'Bass', '2017'},
['Cole: The Classic Car Adventure'] = {'Cole', '2017'},
['Langworth: The Great American Convertible'] = {'Langworth', '1988'},
['Rocke: Das große Mercedes-S-Klasse-Buch'] = {'Röcke', '1991'},
['Schneider: Die NSU-Story'] = {'Schneider', '2012'},
['Sloniger: Porsche 924 928 944'] = {'Sloniger', '1987'},
['The Life and Times of Ali ibn Isa'] = {'Bowen', '1928'},
['Warfare, State and Society in the Byzantine World, 565–1204'] = {'Haldon', '1999'},
['Häußermann: Mercedes-Benz: The Large Coupes'] = {'Häußermann', '2006a'},
['Leffingwell: Porsche Legends'] = {'Leffingwell', '1993'},
['The Visual History of Type'] = {'McNeil', '2017'},
['Pitt: Mercedes-Benz SL & SLR'] = {'Pitt', '2009'},
['Hartmann: Das große Mercedes-Cabrio-Buch'] = {'Hartmann', '2017'},
['Cite The Age of the Galley'] = {'MorrisonGardiner', '1995'},
['Rocke: Das neue große Mercedes-S-Klasse-Buch'] = {'Röcke', '2003'},
['Genoa and the Genoese'] = {'Epstein', '1996'},
['Brooklands: Mercedes AMG Ultimate Portfolio 2000'] = {'Clarke', '2007'},
['Fuths: Porsche 924 944 968 928'] = {'Fuths', '2020'},
['Koehling: Mercedes-Benz the Early SL Cars'] = {'Koehling', '2014'},
['Steidl: NSU Personenwagen'] = {'Steidl', '2009'},
['Taylor: Factory-Original Mercedes SL'] = {'Taylor', '2013'},
['Bruse: NSU Fotoalbum 1906–1977'] = {'BruseStorz', '2010'},
['Brooklands: On Mercedes 1971-1979'] = {'Clarke', '1987'},
['Brooklands-MBRT71'] = {'Clarke', '1987'},
['The Geometrical Foundation of Natural Structure (book)'] = {'Williams', '1979'},
['Alfieri: Mercedes-Benz SL'] = {'Alfieri', '2016'},
['Kalifen und Assassinen'] = {'Halm', '2014'},
['Gault et al 1975'] = {'GaultGuestMurrayDzurisin', '1975'},
['Gault et al. 1975'] = {'GaultGuestMurrayDzurisin', '1975'},
['Brooklands: Mercedes 190 & 300'] = {'Clarke', '1989'},
['Lloyd-Margaret River'] = {'Wiltshire', '2000'},
['Venice, Austria, and the Turks in the Seventeenth Century'] = {'Setton', '1991'},
['Lands of the Eastern Caliphate'] = {'Strange', '1905'},
['Brooklands: On Mercedes 1980-1987'] = {'Clarke', '1987'},
['Brooklands-MBRT80'] = {'Clarke', '1987'},
['Book-Hills-Power from Steam'] = {'Hills', '1989'},
['Arth: NSU: Alle Automobile von 1905 bis 1977'] = {'Arth', '2016'},
['Lintelmann: NSU Personenwagen: Eine Chronik'] = {'Lintelmann', '1987'},
['The Making of Byzantium, 600–1025'] = {'Whittow', '1996'},
},
patterns = {
{
{'Stern: New York', 'Cite New York 1930', 'Cite NY 1930', 'Cite NY1930', 'Cite ny1930', 'Cite ny 1930', 'Cite New York 1900', 'Cite NY 1900', 'Cite NY1900', 'Cite ny 1900', 'Cite ny1900', 'Cite New York 1960', 'Cite NY 1960', 'Cite NY1960', 'Cite ny1960', 'Cite ny 1960', 'Cite NY 1880', 'Cite NY1880', 'Cite ny 1880', 'Cite ny1880', 'Cite New York 2000', 'Cite NY 2000', 'Cite NY2000', 'Cite ny2000', 'Cite ny 2000', 'Cite New York 1880', 'Cite New York'},
{'CITEREFSternFishmanTilove2006', 'CITEREFSternFishmanTilove2025', 'CITEREFSternGilmartinMassengale1983', 'CITEREFSternGilmartinMellins1987', 'CITEREFSternMellinsFishman1995', 'CITEREFSternMellinsFishman1999'}
},
{
{'The Cambridge History of Egypt'},
{'CITEREFDaly1998', 'CITEREFPetry1998'}
},
{
{'Cite AWH'},
{'CITEREF.*%d%d%d%d'}
},
{
{'Byzance et les Arabes'},
{'CITEREFCanard1950', 'CITEREFHonigmann1935', 'CITEREFVasiliev1935', 'CITEREFVasiliev1968'}
},
{
{'Standard Catalog of American Cars 1805-1942'},
{'CITEREFKimesJr1985', 'CITEREFKimesJr1989', 'CITEREFKimesJr1996'}
},
{
{'The Byzantine Empire, 1025–1204: A Political History'},
{'CITEREFAngold1984', 'CITEREFAngold1997'}
},
{
{'Hovannisian: The Republic of Armenia', 'Cite The Republic of Armenia Volume 1'},
{'CITEREFHovannisian1971', 'CITEREFHovannisian1982', 'CITEREFHovannisian1996a', 'CITEREFHovannisian1996b'}
},
{
{'Harry Potter reference'},
{'CITEREFRowling1997', 'CITEREFRowling1998', 'CITEREFRowling1999', 'CITEREFRowling2000', 'CITEREFRowling2001', 'CITEREFRowling2001a', 'CITEREFRowling2003', 'CITEREFRowling2005', 'CITEREFRowling2007'}
},
{
{'Census UK CoB', '2011CensusScotlandCoB', '2011CensusNICoB', '2021CensusEngWalCoB', '2021CensusNICoB', '2022CensusScotlandCoB', '2011CensusEngWalCoB'},
{'CITEREFNISRACOB2011', 'CITEREFNISRACOB2021', 'CITEREFNRSCOB2011', 'CITEREFNRSCOB2022', 'CITEREFONSCOB2011', 'CITEREFONSCOB2021'}
},
{
{'James Halliday\'s Wine Atlas of Australia'},
{'CITEREFHalliday2006', 'CITEREFHalliday2008', 'CITEREFHalliday2014'}
},
{
{'Catalogue of Byzantine Seals at Dumbarton Oaks and in the Fogg Museum of Art'},
{'CITEREFCotsonis2020', 'CITEREFMcGeerNesbittOikonomides2001', 'CITEREFMcGeerNesbittOikonomides2005', 'CITEREFNesbittMorrisson2009', 'CITEREFNesbittOikonomides1991', 'CITEREFNesbittOikonomides1994', 'CITEREFNesbittOikonomides1996'}
},
{
{'Cite Roman Missal'},
{'CITEREFSodiTriacca2012'}
},
{
{'Hunter: Steamboats on the Western Rivers', 'Hunter-Steamboats-1993', 'Hunter-Steamboats-1949'},
{'CITEREFHunter1949', 'CITEREFHunter1993'}
},
{
{'Scharf: History of the Confederate States Navy', 'Scharf-History'},
{'CITEREFScharf1887', 'CITEREFScharf1996'}
},
{
{'Magdalino-The Empire of Manuel I Komnenos'},
{'CITEREFMagdalino1993', 'CITEREFMagdalino2002'}
},
{
{'Amacad Book of Members'},
{'CITEREF.*%d%d%d%d'}
},
{
{'Slaves on Horses'},
{'CITEREFCrone1980', 'CITEREFCrone2003'}
},
{
{'The Cambridge History of Iran'},
{'CITEREFAveryHamblyMelville1991', 'CITEREFBoyle1968', 'CITEREFFischer1968', 'CITEREFFrye1975', 'CITEREFGershevitch1985', 'CITEREFLockhartJackson1986', 'CITEREFYarshater1983'}
},
{
{'Runciman-A History of the Crusades'},
{'CITEREFRunciman1951', 'CITEREFRunciman1952', 'CITEREFRunciman1954'}
},
{
{'Black and Bolton Biographical Register', 'Black and Bolton 2001'},
{'CITEREFBlackBolton2001a', 'CITEREFBlackBolton2001b'}
},
{
{'AF Cite Book'},
{'CITEREFColfer2001', 'CITEREFColfer2002', 'CITEREFColfer2003', 'CITEREFColfer2004', 'CITEREFColfer2005', 'CITEREFColfer2006', 'CITEREFColfer2007', 'CITEREFColfer2008', 'CITEREFColfer2010'}
},
{
{'The Breweries of Australia'},
{'CITEREFDeutsher1999', 'CITEREFDeutsher2012'}
},
{
{'Mehmed the Conqueror and His Time'},
{'CITEREFBabinger1978', 'CITEREFBabinger1992'}
},
{
{'London encyclopedia'},
{'CITEREFWeinrebHibbertKeayKeay1983', 'CITEREFWeinrebHibbertKeayKeay1993', 'CITEREFWeinrebHibbertKeayKeay2008'}
},
{
{'Canadian census corrections', '2021 Canadian census corrections', '2021CDNcc'},
{'CITEREF.*%d%d%d%d'}
},
{
{'Oswald: Mercedes-Benz Personenwagen', 'Mercedes-Benz Personenwagen'},
{'CITEREFEngelen2002', 'CITEREFEngelen2003', 'CITEREFOswald2001d', 'CITEREFOswald2001e'}
},
{
{'Bauer: Die Straßenbahnen in Ostdeutschland'},
{'CITEREFBauerKuschinski1993', 'CITEREFBauerKuschinski1994', 'CITEREFBauerKuschinski1995'}
},
{
{'The Prophet and the Age of the Caliphates'},
{'CITEREFKennedy1986', 'CITEREFKennedy2004', 'CITEREFKennedy2016', 'CITEREFKennedy2023'}
},
{
{'Barrett: Illustrated Buyer\'s Guide Mercedes-Benz', 'Barrett: llustrated Buyer\'s Guide Mercedes-Benz'},
{'CITEREFBarrett1994', 'CITEREFBarrett1998'}
},
{
{'Porsche: Excellence Was Expected'},
{'CITEREFExcellence_was_Expected,_Book_1,2019', 'CITEREFExcellence_was_Expected,_Book_2,2019', 'CITEREFExcellence_was_Expected,_Book_3,2019', 'CITEREFExcellence_was_Expected,_Book_4,2019', 'CITEREFExcellence_was_Expected,_Vol_1,2003', 'CITEREFExcellence_was_Expected,_Vol_2,2003', 'CITEREFExcellence_was_Expected,_Vol_3,2003'}
},
{
{'British Red Data Books'},
{'CITEREFBratton1991', 'CITEREFShirt1987', 'CITEREFWigginton1999'}
},
{
{'Parliamentary manuals', 'Cite parl'},
{'CITEREFDemeter1969', 'CITEREFMason2000', 'CITEREFRiddickButcher1985', 'CITEREFRobert1876', 'CITEREFRobert1893', 'CITEREFRobert1915', 'CITEREFRobert1943', 'CITEREFRobert1951', 'CITEREFRobert1970', 'CITEREFRobert1981', 'CITEREFRobert1990', 'CITEREFRobert2000', 'CITEREFSturgis1950', 'CITEREFSturgis1965', 'CITEREFSturgis1988', 'CITEREFSturgis2001'}
},
{
{'The Last Centuries of Byzantium, 1261–1453'},
{'CITEREFNicol1972', 'CITEREFNicol1993'}
},
{
{'Ιστορία του Ελληνικού Έθνους'},
{'CITEREFChristopoulosBastias1970', 'CITEREFChristopoulosBastias1971', 'CITEREFChristopoulosBastias1972', 'CITEREFChristopoulosBastias1973', 'CITEREFChristopoulosBastias1974', 'CITEREFChristopoulosBastias1975', 'CITEREFChristopoulosBastias1976', 'CITEREFChristopoulosBastias1977', 'CITEREFChristopoulosBastias1978', 'CITEREFChristopoulosBastias1979', 'CITEREFChristopoulosBastias1980', 'CITEREFChristopoulosBastias2000'}
},
{
{'Mercedes-Benz since 1945'},
{'CITEREFTaylor1985', 'CITEREFTaylor1986', 'CITEREFTaylor1994'}
},
{
{'Mercedes-Benz The 1960s'},
{'CITEREFKoehling2021'}
},
{
{'Beaulieu Encyclopedia of the Automobile'},
{'CITEREFGeorgano2001'}
},
{
{'Imber-The Ottoman Empire, 1300–1650'},
{'CITEREFImber2002', 'CITEREFImber2009', 'CITEREFImber2019'}
},
{
{'Wisconsin History of the Crusades'},
{'CITEREFSettonBaldwin1969', 'CITEREFSettonHazard1975', 'CITEREFSettonHazard1977', 'CITEREFSettonHazardZacour1989', 'CITEREFSettonWolffHazard1969', 'CITEREFSettonZacourHazard1985'}
},
{
{'Baghdad During the Abbasid Caliphate'},
{'CITEREFStrange1900', 'CITEREFStrange1922'}
},
{
{'Höltge: Straßen und Stadtbahnen in Deutschland'},
{'CITEREFHöltge1992', 'CITEREFHöltge1994', 'CITEREFHöltge1999', 'CITEREFHöltgeKochems2006', 'CITEREFHöltgeKöhler1992', 'CITEREFKochemsHöltge2011'}
},
{
{'Varzos-Genealogy of the Komnenoi', 'Η Γενεαλογία των Κομνηνών'},
{'CITEREFVarzos,_Vol._A1,1984', 'CITEREFVarzos,_Vol._A2,1984', 'CITEREFVarzos,_Vol._B,1984'}
},
{
{'Colledge: Ships RN', 'Cite Colledge2006', 'Cite Colledge2010', 'Colledge', 'Cite Colledge2020'},
{'CITEREFColledge1969', 'CITEREFColledge1970', 'CITEREFColledge1987', 'CITEREFColledge1989', 'CITEREFColledgeWarlow2003', 'CITEREFColledgeWarlow2006', 'CITEREFColledgeWarlow2010', 'CITEREFColledgeWarlowBush2020'}
},
{
{'Hofner: Mercedes-Benz Typenkunde', 'Mercedes-Benz Typenkunde'},
{'CITEREFHofner2010a', 'CITEREFHofner2010b', 'CITEREFHofner2011'}
},
{
{'The Papacy and the Levant', 'The Papacy and the Levant, 1204–1571', 'The Papacy and the Levant, 1204-1571'},
{'CITEREFSetton1976', 'CITEREFSetton1978', 'CITEREFSetton1984', 'CITEREFSetton1984a'}
},
{
{'Azerbaijani Soviet Encyclopedia'},
{'CITEREFАСЕ1976', 'CITEREFАСЕ1978', 'CITEREFАСЕ1979', 'CITEREFАСЕ1980', 'CITEREFАСЕ1981', 'CITEREFАСЕ1982', 'CITEREFАСЕ1983', 'CITEREFАСЕ1984', 'CITEREFАСЕ1986', 'CITEREFАСЕ1987'}
},
{
{'Unbegaun: Russian Surnames', 'Unbegaun'},
{'CITEREFUnbegaun1989', 'CITEREFUnbegaun1995'}
},
{
{'The First Dynasty of Islam'},
{'CITEREFHawting1987', 'CITEREFHawting2000'}
},
{
{'Canadian census designated place results', '1996 Canadian census designated place results', '1996CDNcdplr'},
{'CITEREF.*%d%d%d%d'}
},
{
{'Deutsche Autos', 'Oswald: Deutsche Autos'},
{'CITEREFKittler2001a', 'CITEREFKittler2001b', 'CITEREFKittler2005', 'CITEREFOswald2001a', 'CITEREFOswald2001b', 'CITEREFOswald2001c', 'CITEREFSchrader2002'}
},
{
{'Mercedes-Benz (Koch)'},
{'CITEREFKittler2002', 'CITEREFRohdeKoch2000'}
},
{
{'Biographical Dictionary of Women in Science', 'BDWS'},
{'CITEREFOgilvieHarvey2000'}
},
{
{'Barrington Atlas', 'Barrington', 'Cite Barrington'},
{'CITEREFTalbert,_Vol_12000', 'CITEREFTalbert,_Vol_22000', 'CITEREFTalbert2000'}
},
{
{'Canadian census unincorporated place results', '1951 Canadian census unincorporated place results', '2021CDNcuipr', '1956 Canadian census unincorporated place results', '1951CDNcuipr', '1956CDNcuipr', '1961 Canadian census unincorporated place results', '1966 Canadian census unincorporated place results', '1961CDNcuipr', '1966CDNcuipr', '1971 Canadian census unincorporated place results', '1971CDNcuipr', '1976 Canadian census unincorporated place results', '1976CDNcuipr', '1981 Canadian census unincorporated place results', '1981CDNcuipr', '1986 Canadian census unincorporated place results', '1986CDNcuipr', '1991 Canadian census unincorporated place results', '1991CDNcuipr', 'CDNcuipr'},
{'CITEREF.*%d%d%d%d'}
},
{
{'The Early Medieval Balkans'},
{'CITEREFFine1983', 'CITEREFFine1991'}
},
{
{'Daftary-The Ismailis'},
{'CITEREFDaftary1990', 'CITEREFDaftary2007'}
},
{
{'Baxter: British Locomotive Catalogue 1825–1923', 'Baxter-BritishLocoCat5A', 'Baxter-BritishLocoCat6', 'Baxter-BritishLocoCat3B', 'Baxter-BritishLocoCat3A', 'Baxter-BritishLocoCat4', 'Baxter-BritishLocoCat5B', 'Baxter-BritishLocoCat2B', 'Baxter-BritishLocoCat2A', 'Baxter-BritishLocoCat1', 'Baxter: British Locomotive Catalogue 1825-1923'},
{'CITEREFBaxter1977', 'CITEREFBaxter1978', 'CITEREFBaxter1979', 'CITEREFBaxter1982', 'CITEREFBaxter1982a', 'CITEREFBaxter1984', 'CITEREFBaxter1986', 'CITEREFBaxter1988', 'CITEREFBaxter2012'}
},
{
{'Standard Catalog of American Cars 1946–1975'},
{'CITEREFGunnell1982', 'CITEREFGunnell1987', 'CITEREFGunnell1992', 'CITEREFGunnell1997'}
},
{
{'Hofner: Mercedes-Benz Automobile'},
{'CITEREFHofnerSchrader2005'}
},
{
{'Eminent Scotsmen'},
{'CITEREFChambersThomson1857'}
},
{
{'Cite PHAK'},
{'CITEREF.*%d%d%d%d'}
},
}
}
return registry
0bpjvmi89k3ydtxn93vogy1zczluuf1
Module:SST
828
3796
37729
2026-08-03T15:37:17Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με 'require('strict') local p = {} --[[--------------------------< H O S T _ M A P >--------------------------------------------]] local host_map = { ['ia'] = { engine = 'IA', shard_key = 'ia' }, ['internetarchive'] = { engine = 'IA', shard_key = 'ia' }, ['hathi'] = { engine = 'Hathi', shard_key = 'hathi' }, ['hathitrust'] = { engine = 'Hathi', shard_key = 'hathi' }, ['guten']...'
37729
Scribunto
text/plain
require('strict')
local p = {}
--[[--------------------------< H O S T _ M A P >--------------------------------------------]]
local host_map = {
['ia'] = { engine = 'IA', shard_key = 'ia' },
['internetarchive'] = { engine = 'IA', shard_key = 'ia' },
['hathi'] = { engine = 'Hathi', shard_key = 'hathi' },
['hathitrust'] = { engine = 'Hathi', shard_key = 'hathi' },
['guten'] = { engine = 'Gutenberg', shard_key = 'guten' },
['gutenberg'] = { engine = 'Gutenberg', shard_key = 'guten' },
['wikisrc'] = { engine = 'Wikisource', shard_key = 'wikisrc' },
['wikisource'] = { engine = 'Wikisource', shard_key = 'wikisrc' },
['gbook'] = { engine = 'GBook', shard_key = 'gbook' },
['googlebooks'] = { engine = 'GBook', shard_key = 'gbook' },
['web'] = { engine = 'Web', shard_key = 'web' },
['physical'] = { engine = 'Physical', shard_key = 'physical' }
}
--[[--------------------------< P A R A M E T E R M A P >----------------------------------]]
-- SSTS Architecture Note:
-- The parameter_map is designed specifically for sub-divisions of a single work
-- (like individual chapters or dictionary entries).
-- To maintain the Single-Source Template (SSTS) philosophy, core identity
-- parameters like 'title', 'year', or 'isbn' are managed at the variant
-- level (creating a new library entry) rather than through this map.
local parameter_map_guardrail = {
['chapter'] = true,
['entry'] = true,
['article'] = true,
['section'] = true,
['part'] = true
}
local function apply_parameter_map(user_args, book_data, library)
-- Follow the pointer if an alias exists
local map_source = book_data
if book_data.parameter_map_alias and library and library[book_data.parameter_map_alias] then
map_source = library[book_data.parameter_map_alias]
end
if not map_source.parameter_map then return end
for param, map_table in pairs(map_source.parameter_map) do
if parameter_map_guardrail[param] then
local user_input = user_args[param]
if user_input then
-- Trim whitespace so "|chapter= 8 " matches key ['8']
local clean_input = mw.text.trim(tostring(user_input))
if map_table[clean_input] then
user_args[param] = map_table[clean_input]
end
end
end
end
end
--[[--------------------------< H E L P E R S >----------------------------------------------]]
local function error_msg(msg, tracking_category)
local err_text = string.format('<strong class="error">SSTS Error: %s</strong>', msg)
local title = mw.title.getCurrentTitle()
if title and (title.namespace == 0 or title.namespace == 118) then
if tracking_category then
return err_text .. '[[Category:' .. tracking_category .. ']]'
else
return err_text .. '[[Category:SSTS errors]]'
end
end
return err_text
end
--[[--------------------------< C O R E _ E X E C U T I O N >--------------------------------]]
-- Shared function to build the citation regardless of how it was routed
local function build_citation(frame, book_data, target_host, library)
if not target_host then return error_msg("No host defined for this record.") end
-- 1. Route to the correct Host/Engine
local host_info = host_map[string.lower(mw.text.trim(target_host))]
if not host_info then return error_msg("Unsupported host '" .. target_host .. "'") end
-- 2. Validate Host Data within the record
local host_data = book_data.hosts and book_data.hosts[host_info.shard_key]
if not host_data then
return error_msg("Host '" .. host_info.shard_key .. "' is not defined for this book.")
end
-- 3. Load the Hosts module
local success_engine, hosts_module = pcall(require, 'Module:SST/hosts')
if not success_engine then
return error_msg("Could not load Module:SST/hosts.")
end
local engine = hosts_module[host_info.engine]
if not engine then
return error_msg("Engine '" .. host_info.engine .. "' not found in hosts module.")
end
-- 4. Process Arguments & Apply ignore_args Filter
local ignore_list = {
['ignore_args'] = true,
['id'] = true,
['key'] = true,
['default'] = true
}
if frame.args['ignore_args'] then
for key in string.gmatch(frame.args['ignore_args'], '([^,]+)') do
ignore_list[mw.text.trim(key)] = true
end
end
local combined_args = {}
-- Grab parent args (user input), skipping ignored keys
for k, v in pairs(frame:getParent().args) do
if type(k) == 'string' and not ignore_list[k] then
combined_args[k] = v
elseif type(k) == 'number' and not ignore_list[tostring(k)] then
combined_args[k] = v
end
end
-- Grab current frame args (template overrides like our generated 'chapter')
for k, v in pairs(frame.args) do
if type(k) == 'string' and not ignore_list[k] then
combined_args[k] = v
end
end
-- ==========================================================
-- 4.5 APPLY PARAMETER MAP (Translate shorthand into full titles)
-- ==========================================================
apply_parameter_map(combined_args, book_data, library)
local citeArgs = {}
for k, v in pairs(book_data.cite_params or {}) do
citeArgs[k] = v
end
-- ==========================================================
-- 4.7 SILENT LOGIC TRAP (Inspect raw shard data for faults)
-- ==========================================================
local has_logic_fault = false
local t_type = citeArgs['_template'] or 'cite book'
if t_type == 'cite encyclopedia' then
-- Encyclopedia shards must use 'encyclopedia', not 'title' or specific entries.
-- They also cannot contain book or journal container names.
if citeArgs['title'] or citeArgs['title-link'] or citeArgs['article'] or citeArgs['entry'] then
has_logic_fault = true
elseif citeArgs['journal'] or citeArgs['magazine'] or citeArgs['work'] then
has_logic_fault = true
end
elseif t_type == 'cite journal' then
-- Journal shards must have a journal container.
-- They cannot be locked to specific chapters, nor contain book/encyclopedia containers.
if not citeArgs['journal'] and not citeArgs['work'] and not citeArgs['magazine'] then
has_logic_fault = true
end
if citeArgs['chapter'] or citeArgs['encyclopedia'] then
has_logic_fault = true
end
elseif t_type == 'cite book' then
-- Book shards cannot contain encyclopedia or journal container names.
if citeArgs['encyclopedia'] or citeArgs['journal'] or citeArgs['magazine'] or citeArgs['work'] then
has_logic_fault = true
end
end
-- 5. Pass execution to the Hosts module for parsing and link-building
if type(hosts_module.process) == "function" then
citeArgs = hosts_module.process(engine, host_data, citeArgs, combined_args)
else
return error_msg("System Error: hosts_module.process is missing.")
end
-- 6. Render standard Cite Book/Encyclopedia template
local template_name = citeArgs['_template'] or 'cite book'
citeArgs['_template'] = nil
if citeArgs['ref'] and mw.ustring.match(citeArgs['ref'], '^{{') then
local pre_ref = frame:preprocess(citeArgs['ref'])
citeArgs['ref'] = mw.ustring.gsub(pre_ref, " ", "_")
end
local citation = frame:expandTemplate{ title = template_name, args = citeArgs }
-- 7. Catch CS1/CS2 errors and inject silent tracking categories
local current_page = mw.title.getCurrentTitle()
if current_page and (current_page.namespace == 0 or current_page.namespace == 118) then
-- Catch native CS1 red errors
local has_cs1_error = string.find(citation, "cs1%-visible%-error") or
string.find(citation, "cs1%-hidden%-error") or
string.find(citation, "Category:CS1 errors")
if has_cs1_error then
citation = citation .. "[[Category:SSTS errors]]"
end
-- Catch parameter logical faults
if has_logic_fault then
citation = citation .. "[[Category:SSTS parameter logic faults]]"
end
end
return citation
end
--[[--------------------------< T H E B R I D G E >----------------------------------------]]
-- LEGACY ROUTER: Supports existing live templates. DO NOT DELETE until Phase 4.
function p.main(frame)
local raw_host = frame.args[1]
local book_key = frame.args[2]
if not raw_host then return error_msg("No host specified in #invoke.") end
if not book_key then return error_msg("No book key specified in #invoke.") end
local shard_letter = mw.ustring.upper(mw.ustring.sub(mw.text.trim(book_key), 1, 1))
local success_shard, library = pcall(mw.loadData, 'Module:SST/shards/' .. shard_letter)
if not success_shard then return error_msg("Could not load shard module '" .. shard_letter .. "'.") end
local book_data = library[mw.text.trim(book_key)]
if not book_data then return error_msg("Book key '" .. book_key .. "' not found.", "SSTS missing records") end
-- Smart Host Fallback
local final_host = book_data.host
if not final_host then
-- Fallback 1: Try to grab the first available host from the hosts table
if book_data.hosts and type(book_data.hosts) == 'table' then
for k, _ in pairs(book_data.hosts) do
final_host = k
break
end
end
-- Fallback 2: If still nothing, treat it as a physical book
if not final_host then
final_host = 'physical'
end
end
local output = build_citation(frame, book_data, final_host, library)
-- Only categorize in Main (0) and Template (10) namespaces to ignore sandboxes
local ns = mw.title.getCurrentTitle().namespace
if ns == 0 or ns == 10 then
output = output .. "[[Category:SSTS errors|*LEGACY]]"
end
return output
end
--[[--------------------------< A R C H I T E C T U R E >----------------------------]]
-- ROUTER: Single A-Z Books
function p.single(frame)
local base_id = frame.args.id
if not base_id then return error_msg("No id specified in #invoke.") end
local shard_letter = mw.ustring.upper(mw.ustring.sub(mw.text.trim(base_id), 1, 1))
local success_shard, library = pcall(mw.loadData, 'Module:SST/shards/' .. shard_letter)
if not success_shard then return error_msg("Could not load shard module '" .. shard_letter .. "'.") end
local book_data = library[mw.text.trim(base_id)]
if not book_data then return error_msg("Record '" .. base_id .. "' not found.", "SSTS missing records") end
-- Smart Host Fallback
local final_host = book_data.host
if not final_host then
if book_data.hosts and type(book_data.hosts) == 'table' then
for k, _ in pairs(book_data.hosts) do
final_host = k
break
end
end
if not final_host then final_host = 'physical' end
end
return build_citation(frame, book_data, final_host, library)
end
-- ROUTER: Multi-Volume Sets
function p.set(frame)
local base_id = frame.args.id
if not base_id then return error_msg("No id specified for the set in #invoke.") end
-- Determine target key (e.g. "1", "2", "ALL")
local raw_key = frame.args.key
local target_key
if not raw_key or mw.text.trim(raw_key) == "" then
target_key = frame.args.default or "ALL"
else
target_key = mw.text.trim(raw_key)
end
local prefix = base_id .. "_"
local lookup_id
-- Smart detection: Check if the editor accidentally passed the full book key instead of the short variant
if mw.ustring.sub(target_key, 1, mw.ustring.len(prefix)) == prefix then
lookup_id = target_key
-- Strip the prefix from target_key so error messages still look clean
target_key = mw.ustring.sub(target_key, mw.ustring.len(prefix) + 1)
else
lookup_id = prefix .. target_key
end
-- Route to dedicated /sets/ module
local success_shard, library = pcall(mw.loadData, 'Module:SST/shards/sets/' .. base_id)
if not success_shard then return error_msg("Could not load set module for '" .. base_id .. "'.") end
local book_data = library[lookup_id]
if not book_data then return error_msg("Part '" .. target_key .. "' not found in set '" .. base_id .. "'.", "SSTS missing records") end
-- Smart Host Fallback
local final_host = book_data.host
if not final_host then
if book_data.hosts and type(book_data.hosts) == 'table' then
for k, _ in pairs(book_data.hosts) do
final_host = k
break
end
end
if not final_host then final_host = 'physical' end
end
return build_citation(frame, book_data, final_host, library)
end
return p
s98io08i2vrraaql05k2scx5t5zg3lm
Ποντιακός πολιτισμός
0
3797
37730
2026-08-03T15:38:18Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '[[Αρχείον:Traditional Pontic costumes during a parade in Greece.jpg|μικρογραφία|upright=1.5|Ανθρώπ' ασόν ποντιακόν τον σύλλογον πορπατούνε στη σειράν, σ' έναν εορτασμόν σην Ελλάδα.]] Ο '''ποντιακός πολιτισμός''' περιλαμβάνει την παραδοσιακήν την μουσικήν, τους χορούς, την αρχιτεκτ...'
37730
wikitext
text/x-wiki
[[Αρχείον:Traditional Pontic costumes during a parade in Greece.jpg|μικρογραφία|upright=1.5|Ανθρώπ' ασόν ποντιακόν τον σύλλογον πορπατούνε στη σειράν, σ' έναν εορτασμόν σην Ελλάδα.]]
Ο '''ποντιακός πολιτισμός''' περιλαμβάνει την παραδοσιακήν την μουσικήν, τους χορούς, την αρχιτεκτονικήν, τα φορεσίας, τα χειροτεχνίας και τα θρησκευτικά τα έθιμα τη [[Πόντιοι|Ποντίων]] ή Ρωμαίων. Οι Πόντιοι έν' μιαν εθνική ομάδα ντο εγεννήθεν και έζησεν σο [[Πόντος|Πόντον]], σα σημερινά τα μέρη τη [[Τουρκία]]ς.{{sfn|Michailidis|2016|p=62}}{{sfn|Zografou|Pipyrou|2016|p=267}}{{sfn|Mackridge|1991|p=336}}<ref>{{en}} {{cite journal |last1=Travis |first1=Hannibal |title=The Cultural and Intellectual Property Interests of the Indigenous Peoples of Turkey and Iraq |journal=Texas Wesleyan Law Review |date=2009 |volume=15 |page=601 |doi=10.2139/ssrn.1549804 |s2cid=153304089 |url=https://scholarship.law.tamu.edu/txwes-lr/vol15/iss2/7 |quote=The U.N. Declaration on the Rights of Indigenous Peoples requires states to provide an effective remedy to indigenous peoples deprived of their cultural, religious, or intellectual property (IP) without their free, prior and informed consent. The Declaration could prove to be an important safeguard for the indigenous peoples of Iraq and Turkey, the victims for centuries of massacres, assaults on their religious and cultural sites, theft and deterioration of their lands and cultural objects, and forced assimilation. These peoples, among them the Armenians, Assyrians, Greeks, and Yezidis of Turkey and Turkish-occupied Cyprus, and the Armenians, Assyrians, Yezidis, and Mandaeans of Iraq, have lost more than two-thirds of their peak populations, most of their cultural and religious sites, and thousands of priceless artifacts and specimens of visual art.|url-access=subscription }}</ref><ref>{{en}} {{cite journal |last1=Travis |first1=Hannibal |title=The Cultural and Intellectual Property Interests of the Indigenous Peoples of Turkey and Iraq |journal=Texas Wesleyan Law Review |date=2009 |volume=15 |page=637 |doi=10.2139/ssrn.1549804 |s2cid=153304089 |url=https://scholarship.law.tamu.edu/txwes-lr/vol15/iss2/7 |quote=Prior to their conquests by Turkic peoples, the ancient Greeks were one of several indigenous peoples living in Anatolia, modern Asian Turkey.|url-access=subscription }}</ref> Εκεί έζαν για χιλιάδας χρόνια, ασόν 8ον αιώνα π.Χ. ακόμα.<ref>{{en}} {{cite book |last=Thomopoulos |first=Elaine |url=https://books.google.com/books?id=jlKheq6g3r8C&pg=PA107 |title=The History of Greece |date=2012 |publisher=ABC-CLIO |isbn=978-0-313-37511-8 |pages=107 |quote=The Pontians are believed to be descendants of Greeks who in the eighth century BC had moved from the Ionian cities located in the islands and shores of the Aegean Sea, in what is now Turkey, to the area of the Black Sea called Pontos (''pontos'' is an ancient Greek word for "sea".)}}</ref> Οι περισσότεροι εξεριζώθηκαν σαν αρχάς τη 20ού αιώνα, ασήν [[Γενοκτονία τη Ποντίων|Γενοκτονίαν τη Ποντίων]] και την [[Ανταλλαγήν των πληθυσμών ανάμεσα σην Ελλάδα και την Τουρκίαν]].{{sfn|Liddle|2016|p=54}} Σήμερα, οι πλείστοι Πόντιοι ζώνε ση διασποράν. Μικρά κομμάτια μουσουλμάνων Ποντίων επέμναν ακόμα σην Τουρκίαν. Αν και οι Πόντιοι καλατσέβνε πολλάς γλώσσας, η ποντιακή η γλώσσα, τα [[ρωμαίικα]], έν' πολλά σπουδαίον κομμάτ' τη πολιτισμού ατουν. Οι περισσότεροι Πόντιοι έν' [[Ελλενικόν Ορθόδοξος Εκκλησία|Χριστιανοί Ορθόδοξοι]], αλλά ολίγοι έν' [[Σουνιτικόν Ισλάμ|Μουσουλμάνοι Σουνίτες]] γιά κρατούνε άλλα χριστιανικά δόγματα. Οι παραδοσιακοί χοροί, όπως ο [[σέρρα]], τα μουσικά όργανα, όπως η [[ποντιακή λύρα|ποντιακή η λύρα]] (η κεμεντζέ), τα θρησκευτικά τα πανηγύρια, τα φορεσίας και η ίδια η πατρίδα επέμναν πολλά σπουδαία για την Ποντίους τη διασποράς.
Αν και ο πολιτισμός ατουν επήρεν πολλά στοιχεία ασόν [[ελληνικός πολιτισμός|ελληνικόν]] και τον [[τουρκικός πολιτισμός|τουρκικόν πολιτισμόν]], αέτς και ασάν άλλους λαούς τη Πόντου (όπως οι Αρμένιοι και οι Λαζοί), ο ποντιακός ο πολιτισμός έχει τα δικά ατ' τα ξεχωριστά χαρακτηριστικά. Η κουλτούρα τη κράτους όπου ζώνε οι Πόντιοι ση διασποράν, συνεχίζ' να αλλάζει τον πολιτισμόν ατουν. Για παράδειγμα, πολλοί Πόντιοι σην Ελλάδα καλατσέβνε μόνον τα νεοελληνικά και κι εξέρνε τα ρωμαίικα, ενώ οι [[Πόντιοι τη Σοβιετικής Ένωσης]] έμπασαν ρωσικά και ουκρανικά φαγητά σην κουζίναν ατουν. Οι ποντιακοί σύλλογοι σ' όλες τον κόσμον προσπαθούν να κρατούνε και να μαθαίνουνε σα νέα τα παιδία τα ποντιακά τα έθιμα, και κυρίως τους χορούς.
== Αναφοράντας ==
<references />
== Πηγές ==
* {{en}} {{cite book |last1=Liddle |first1=Valerie |editor1-last=Hemer |editor1-first=Susan R. |editor2-last=Dundon |editor2-first=Alison |title=Emotions, Senses, Spaces: Ethnographic Engagements and Intersections |date=2016 |publisher=University of Adelaide Press |isbn=9781925261271 |pages=49–65 |url=https://www.adelaide.edu.au/press/ua/media/124/uap-emotions-ebook.pdf |chapter=Pontic dance: Feeling the absence of homeland |ref=harv}}
* {{en}} {{cite journal |last1=Mackridge |first1=Peter |title=The Pontic Dialect: A Corrupt Version of Ancient Greek? |journal=Journal of Refugee Studies |date=October 1991 |volume=4 |issue=4 |pages=335–339 |doi=10.1093/jrs/4.4.335 |publisher=Oxford University Press |ref=harv}}
* {{en}} {{cite book |url=https://dataspace.princeton.edu/bitstream/88435/dsp014t64gq583/1 |last1=Michailidis |first1=Nikos |date=2016 |title=Soundscapes of Trabzon: Music, Memory, and Power in Turkey |publisher=[[Princeton University]] |ref=harv}}
* {{en}} {{cite book |last1=Zografou |first1=Magda |last2=Pipyrou |first2=Stavroula |editor1-last=Meglin |editor1-first=Joellen A. |editor2-last=Matluck Brooks |editor2-first=Lynn |title=Preserving Dance Across Time and Space |date=2016 |publisher=Taylor & Francis |isbn=9781134906383 |page=267 |chapter=Dance and Difference: Toward an Individualization of the Pontian Self |ref=harv}}
{{refend}}
[[Κατηγορίαν:Ελλενικόν ιστορίαν]]
[[Κατηγορίαν:Μαύρον Θάλασσα]]
[[Κατηγορίαν:Πολιτισμόν]]
7xsvnj2zr7xjp5dyks73qi36glwc62n
Ρωμαίικα
0
3798
37731
2026-08-03T15:40:01Z
Εὐθυμένης
2777
Ανακατεύθυνση στη σελίδα [[Ποντιακόν λαλίαν]]
37731
wikitext
text/x-wiki
#ΑΝΑΚΑΤΕΥΘΥΝΣΗ[[Ποντιακόν λαλίαν]]
hxfoag4tr83wgybz1id3zcyie1rirbq
Τσακωνική διάλεκτος
0
3799
37732
2026-08-03T16:05:28Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '[[Αρχείον:Leonidio-Tsakonian-sign.jpg|μικρογραφία|Δίγλωσσος ταμπέλα (σα τσακώνικα και σα νέα ελληνικά) σο [[Λεωνίδιον]]: «Τσακώνικα: Γρούσσα νάμου είνι τα Τσακώνικα. Ρωτήετε να νιούμ'αλήωι. Νέα ελληνικά: Η γλώσσα μας είναι τα τσακώνικα. Ρωτήστε να σας πουν.»]] Τα '''...'
37732
wikitext
text/x-wiki
[[Αρχείον:Leonidio-Tsakonian-sign.jpg|μικρογραφία|Δίγλωσσος ταμπέλα (σα τσακώνικα και σα νέα ελληνικά) σο [[Λεωνίδιον]]: «Τσακώνικα: Γρούσσα νάμου είνι τα Τσακώνικα. Ρωτήετε να νιούμ'αλήωι. Νέα ελληνικά: Η γλώσσα μας είναι τα τσακώνικα. Ρωτήστε να σας πουν.»]]
Τα '''τσακώνικα''' (νεοελλ.: ''τσακώνικα'' γιά ''τσακωνικά'', τσακων.: ''τσακώνικα'') έν' μιαν πολλά ξεχωριστή και [[Νεοελλενικά λαλίας|σύγχρονος μορφή τη ελληνικής γλώσσας]]. Ο κόσμον ελάλνεν ατέ σην περιοχήν τη [[Τσακωνία]]ς, σο [[Μορέας|Μορέαν]] ([[Πελοπόννησος]]) τη [[Ελλάδα]]ς. Αντίθετα με όλας τα άλλας τα ελληνικά τα λαλίας ντο υπάρχνε σήμερα, τα τσακώνικα κι έρχουνταν ασήν [[αττικόν ελλενικόν λαλίαν|αττικήν]]-[[ιωνικόν ελλενικόν λαλίαν|ιωνικήν]] γραμμήν, αλλά κρατούνε ασήν [[δωρικόν ελλενικόν λαλίαν|αρχαίαν την δωρικήν την γλώσσαν]].<ref>{{en}} {{cite web|url=http://linguistlist.org/forms/langs/LLDescription.cfm?code=tsd|archive-url=https://web.archive.org/web/20120315130854/http://linguistlist.org/forms/langs/LLDescription.cfm?code=tsd|archive-date=2012-03-15|title=The Tsakonian Language|website=The Linguist List}}</ref> Αν και οι περισσότεροι λένε ατά διάλεκτον τη ελληνικής,<ref>{{en}} {{cite book|last=Browning|first=Robert|title=Medieval and modern Greek|year=1983|page=124|location=Κέιμπριτζ|publisher=Cambridge University Press}}</ref><ref>{{en}} {{cite book|last=Horrocks|first=Geoffrey|title=Greek: A history of the language and its speakers|page=382|edition=2nd|location=Οξφόρδη|publisher=Blackwell|year=2010}}</ref><ref>{{en}} {{cite book|last1=Joseph|first1=Brian D.|last2=Terdanelis|first2=Georgios|chapter=Modern Greek|title=Variation typology: a typological handbook of European languages|editor-last=Roelcke|editor-first=Thorsten|pages=823–836|publisher=de Gruyter|location=Βερολίνο|year=2003}}</ref><ref>{{en}} {{cite book|last=Joseph|first=Brian D.|chapter=Lexical diffusion and the regular transmission of language chang in its sociohistorical context|page=411|title=Handbook of historical sociolinguistics|editor1-first=Juan Manuel|editor1-last=Hernández-Campoy|editor2-first=Juan Camilo|editor2-last=Conde-Silvestre|location=Οξφόρδη|publisher=Blackwell|year=2012}}</ref> μερικοί επιστήμονες γράφουν ότι έν' ξεχωριστή γλώσσα.<ref name="Moseley">{{en}} {{cite book|last=Moseley|first=Christopher|title=Encyclopedia of the world's endangered languages|year=2007|publisher=Routledge|location=Νέα Υόρκη|at=s.v. "Tsakonian"}}</ref> Τα τσακώνικα σήμερα [[Κρίσιμα κινδυνεύουσαν λαλίαν|κινδυνεύκνε πολλά να χάνουνται]], επειδή επέμναν μόνον ολίγα εκατοντάδας γιά χιλιάδας ανθρώπ' ντο καλατσέβνε ατά καλά, και οι πλείστοι έν' γεροντάδες.<ref name="Moseley" /> Αν και τα τσακώνικα και τα νέα τα ελληνικά έχουν την ίδιαν ρίζαν, οι άνθρωποι [[αμοιβαία κατανοητότητα|ντο καλατσέβνε το ένα κι εμπορούνε να νοούνε το άλλο]].<ref name=":0">{{en}} {{cite book |url=https://books.google.com/books?id=YUUUAQAAIAAJ |title=Encyclopedia of World Cultures: Europe (Central, Western, and Southeastern Europe) |date=1991 |publisher=G.K. Hall |isbn=978-0-8161-1808-3 |pages=269 |quote=Tsakonian is a dialect of Greek and is related to, though not mutually intelligible with, modern Greek.}}</ref>
== Αναφοράντας ==
<references />
[[Κατηγορίαν:Ελλάδα]]
iqe9d0d4vcbe91bwsrki2d6zbtdf4ji
Επιφώνημαν
0
3800
37733
2026-08-03T16:24:52Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με 'Το '''επιφώνημαν''' έν' μιαν λέξην γιά μια φράση ντο λέγεται μοναχή ατ' και φανερών' έναν ξαφνικόν συναίσθημα, μια κατάσταση γιά μια αντίδραση τη ανθρώπ'.<ref>{{en}} {{cite book| publisher = Holt| last = Bloomfield| first = Leonard| title = Language| url = https://archive.org/details/language0000unse_p0r2| url-access = registration...'
37733
wikitext
text/x-wiki
Το '''επιφώνημαν''' έν' μιαν λέξην γιά μια φράση ντο λέγεται μοναχή ατ' και φανερών' έναν ξαφνικόν συναίσθημα, μια κατάσταση γιά μια αντίδραση τη ανθρώπ'.<ref>{{en}} {{cite book| publisher = Holt| last = Bloomfield| first = Leonard| title = Language| url = https://archive.org/details/language0000unse_p0r2| url-access = registration| location = Νέα Υόρκη| date = 1933}}</ref><ref>{{en}} {{cite book|title=A dictionary of linguistics & phonetics|author=Crystal, David|date=2003|publisher=Blackwell Pub|isbn=9780631226642|edition= 5th|location=Μάλντεν, Μασαχουσέτη|oclc=49824714}}</ref> Έν' μια μεγάλη ομάδα με πολλά και διάφορα είδη, όπως έν' τα επιφωνήματα για τον πόνον γιά το θάμαν (''ώι!'', ''πώπο!''), τα [[Βλασφημία|αναθέματα]] (''ανάθεμά το!''), οι [[χαιρετισμός|χαιρετισμοί]] (''γεια'', ''χέρετε''), τα απαντήσεις (''καλά'', ''α'', ''εχέ''), τα σημάδια τη σκέψης και τη [[δισταγμόν|δισταγμού]] (''εμ'', ''αμ'') και άλλες λέξεις (''στάσου'', ''σώπα''). Επειδή έχ’ πολλά και διάφορα χαρακτηριστικά, η ομάδα τη επιφωνημάτων μπαίνει εν μέρει και σα χωράφια άλλων κατηγοριών, όπως έν' οι [[βλασφημία|βρισιές]], τα [[δείκτης λόγου|λόγια τη σύνδεσης]] και τα [[λέξεις πλήρωσης|γεμίσματα τη καλατσίας]]. Η χρήση και η επιστημονική συζήτηση για τα επιφωνήματα κρατεί αιώνες, ασήν εποχήν τη αρχαίων Ελλήνων και τη Λατίνων τη γραμματικών.
== Αναφοράντας ==
<references />
[[Κατηγορίαν:Γλωσσολογίαν]]
rtkms9xnjroziqnmsg8h3euroy8ojrt
Κατηγορίαν:Διαγραφή σελίδων
14
3801
37738
2026-08-03T18:58:40Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '[[Κατηγορίαν:Διαχείριση Βικιπαίδειας]]'
37738
wikitext
text/x-wiki
[[Κατηγορίαν:Διαχείριση Βικιπαίδειας]]
fgjtbb4va2sciz6zxjlkqtj82sjimsi
Δοβρουτσά
0
3802
37739
2026-08-03T19:27:25Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '[[Αρχείον:Dobrudja topographic map-en.svg|μικρογραφία|Φυσικός και ιστορικός χάρτης τη Δοβρουτσάς]] Η '''Δοβρουτσά''' (ρουμ.: ''Dobrogea'', βουλγ.: ''Добруджа'', τουρκ.: ''Dobruca'') έν' μιαν [[ιστορική περιοχή|ιστορική]] και [[γεωγραφίαν|γεωγραφική]] περιοχή σην Νοτιοανατολική Ευρώ...'
37739
wikitext
text/x-wiki
[[Αρχείον:Dobrudja topographic map-en.svg|μικρογραφία|Φυσικός και ιστορικός χάρτης τη Δοβρουτσάς]]
Η '''Δοβρουτσά''' (ρουμ.: ''Dobrogea'', βουλγ.: ''Добруджа'', τουρκ.: ''Dobruca'') έν' μιαν [[ιστορική περιοχή|ιστορική]] και [[γεωγραφίαν|γεωγραφική]] περιοχή σην [[Νοτιοανατολική Ευρώπην]]. Ασόν 19ο αιώνα και ύστερα, η περιοχή έν' μοιρασμένη ανάμεσα σην [[Βουλγαρία|Βουλγαρίαν]] και την [[Ρουμανία|Ρουμανίαν]]. Ευρίσκεται ανάμεσα σον κάτω ποταμόν [[Δούναβης|Δούναβην]] και σην [[Μαύρη Θάλασσα|Μαύρην Θάλασσαν]] και περιλαμβάνει το [[Δέλτα τη Δούναβη]], τα ρουμανικά τα παράλια και το βορειότερον κομμάτι τη [[Βουλγαρικόν Μαύρον Θάλασσαν|βουλγαρικής ακτής]]. Η γη τη Δοβρουτσάς χωρίζεται σην [[Βόρειον Δοβρουτσά]], ντο έν’ κομμάτι τη Ρουμανίας, και σην [[Νότιον Δοβρουτσά]], ντο έν’ κομμάτι τη Βουλγαρίας.
Το κομμάτι τη Ρουμανίας (''Δοβρογέα'') χωρίζεται σε δύο μεγάλας νομαρχίας, τη [[Νομός Κωνστάντζας|Κωνστάντζας]] και τη [[Νομός Τούλτσεας|Τούλτσεας]]. Όλη μαζί η έκταση ατουν έν' 15.588 τετραγωνικά χιλιόμετρα και ο κόσμον ντο ζει εκεί έν’ ολίγον λιγότερος ασά 850.000 ψυχάς. Τα κυριότερα τα πολιτείας έν’ η [[Κωνστάντζα]], η [[Tούλτσεα]], η [[Μετζίντια]] και η [[Μανγκάλια]]. Σο [[εθνόσημον τη Ρουμανίας|εθνικόν το έμβλημα τη Ρουμανίας]], την Δοβρουτσάν αντιπροσωπεύκνε τα [[δελφίν|δελφίνια]].
Το κομμάτι τη Βουλγαρίας (''Ντομπρούτζα'') χωρίζεται σαν επαρχίας τη [[Επαρχία Ντόμπριτς|Ντόμπριτς]] και τη [[Επαρχία Σιλίστρας|Σιλίστρας]]. Περιλαμβάνει επίσης και μερικά χωρία τη [[Επαρχία Ράζγκραντ|επαρχίας τη Ράζγκραντ]]: το Κόνεβο, το Ραΐνινο, το Τέρτερ και το Μάντρεβο, καθώς και το χωρίον Γκενεράλ Κανταρτζίεβο σην [[Επαρχία Βάρνας|Βάρναν]]. Όλο μαζί ατό το κομμάτι έχει έκταση 7.566 τετραγωνικά χιλιόμετρα και ο κόσμον ατ’ έν’ κοντά σα 250.000 ανθρώπ’. Τα κυριότερα τα πολιτείας εκεί έν’ το [[Ντόμπριτς]] και η [[Σιλίστρα]], ντο έν’ και τα διοικητικά κέντρα τη περιοχής..
[[Κατηγορίαν:Γεωγραφίαν]]
[[Κατηγορίαν:Ιστορίαν]]
szp5hm6uyvuh3sv73ajvu523c9y0seg
Πρότυπον:Google books
10
3803
37740
2026-08-03T20:41:32Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '{{#if:{{{plainurl|{{{plain-url|}}}}}}|https://books.google.com/books?id={{trim|{{{1|{{{id}}}}}}}}{{#if:{{{page|}}}|&pg=PA{{{page|}}}|{{#if:{{{pg|}}}|&pg={{{pg}}}}}}}{{#if:{{{text|}}}|&dq={{urlencode:"{{{text|}}}"}}}}{{#if:{{{keywords|}}}|&q={{urlencode:{{{keywords}}}}}}}|''[https://books.google.com/books?id={{trim|{{{1|{{{id}}}}}}}}{{#if:{{{page|}}}|&pg=PA{{{page|}}}|{{#if:{{{pg|}}}|&pg={{{pg}}}}}}}{{#if:{{{text|}}}|&dq={{urlencode:"{{{text|}}}"}}}...'
37740
wikitext
text/x-wiki
{{#if:{{{plainurl|{{{plain-url|}}}}}}|https://books.google.com/books?id={{trim|{{{1|{{{id}}}}}}}}{{#if:{{{page|}}}|&pg=PA{{{page|}}}|{{#if:{{{pg|}}}|&pg={{{pg}}}}}}}{{#if:{{{text|}}}|&dq={{urlencode:"{{{text|}}}"}}}}{{#if:{{{keywords|}}}|&q={{urlencode:{{{keywords}}}}}}}|''[https://books.google.com/books?id={{trim|{{{1|{{{id}}}}}}}}{{#if:{{{page|}}}|&pg=PA{{{page|}}}|{{#if:{{{pg|}}}|&pg={{{pg}}}}}}}{{#if:{{{text|}}}|&dq={{urlencode:"{{{text|}}}"}}}}{{#if:{{{keywords|}}}|&q={{urlencode:{{{keywords}}}}}}} {{{2|{{{title|{{PAGENAME}}}}}}}}]''{{#if:{{{page|}}}|, σελ. {{{page}}},}} σο [[Google Books]]}}<noinclude>{{τεκμηρίωση προτύπου}}</noinclude>
677dsvdybgh4cfu03laatavuufqsxo6
Πρότυπον:Trim
10
3804
37741
2026-08-03T20:42:19Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '<includeonly>{{safesubst:#if:1|{{{1|}}}}}</includeonly><noinclude> {{τεκμηρίωση προτύπου}} </noinclude>'
37741
wikitext
text/x-wiki
<includeonly>{{safesubst:#if:1|{{{1|}}}}}</includeonly><noinclude>
{{τεκμηρίωση προτύπου}}
</noinclude>
fxh9o0dqlk8wi703vyz3flnhyqcib3k
Συνθήκη
0
3805
37742
2026-08-03T21:17:27Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '[[Αρχείον:Treaty of Kadesh.jpg|μικρογραφία|δεξιά|Η [[Αιγυπτο-Χετταϊκή συνθήκη ειρήνης|ειρηνευτική η συνθήκη ανάμεσα σην Αιγυπτίους και την Χετταίους]], ντο ευρίσκεται σο Αρχαιολογικόν Μουσείον τη Κωνσταντινούπολης|Αρχαιολογικόν το Μουσείον τη Κωνσταντιν...'
37742
wikitext
text/x-wiki
[[Αρχείον:Treaty of Kadesh.jpg|μικρογραφία|δεξιά|Η [[Αιγυπτο-Χετταϊκή συνθήκη ειρήνης|ειρηνευτική η συνθήκη ανάμεσα σην Αιγυπτίους και την Χετταίους]], ντο ευρίσκεται σο [[Αρχαιολογικόν Μουσείον τη Κωνσταντινούπολης|Αρχαιολογικόν το Μουσείον τη Κωνσταντινούπολης]]. Έν' μιαν ασά πρώτα τα παραδείγματα γραμμένας διεθνούς συμφωνίας σην ιστορίαν.]]
Η '''συνθήκη''' έν' μιαν γραμμένη συμφωνία ανάμεσα σε [[ανεξάρτητον κράτος|ανεξάρτητα κράτη]] γιά σε άλλα πρόσωπα τη διεθνούς τη δικαίου (όπως έν' οι [[διεθνής οργανισμός|διεθνείς οργανισμοί]]), ντο ορίζεται ασό [[διεθνές δίκαιον|διεθνές το δίκαιον]].<ref>{{en}} {{cite web|url=https://treaties.un.org/doc/source/publications/thb/english.pdf|title=Treaty Handbook|website=United Nations}}</ref><ref>{{en}} {{cite book |last1=Hollis |first1=Duncan B. |chapter=Defining Treaties |year=2020 |title=The Oxford Guide to Treaties |page=11-45 |editor1-last=Hollis |editor1-first=Duncan B. |chapter-url=https://academic.oup.com/oxford-law-pro/book/56036/chapter/475025529 |edition=2η |publisher=Oxford University Press |doi=10.1093/law/9780198848349.003.0002 |isbn=978-0-19-884834-9 |chapter-url-access=subscription }}</ref> Μια συνθήκη εμπορεί να λέγεται και '''διεθνής συμφωνία''', '''πρωτόκολλον''', '''σύμφωνον''', '''σύμβαση''', '''πακτόν''' γιά '''ανταλλαγή γραμμάτων'''. Όμως, για το διεθνές το δίκαιον, τα συνθήκας θεωρούνται μοναχά τα χαρτία ντο δεσμεύκνε νομικά τα μέρη ντο υπογράφνε ατάς.<ref name="ShawIL5th">{{en}} Shaw, Malcolm. (2003). {{Google books|cc3XzkFt-IUC|''International Law'', σελ. 88-92.|page=88}}</ref> Τα συνθήκας εμπορούν να έν' διμερείς (ανάμεσα σε δύο κράτη) γιά πολυμερείς (όταν λαμβάννε μέρος πλέον από δύο κράτη).{{sfn|Gardiner|2008|p=20}}{{sfn|Brownlie|Crawford|2012|p=179}}
Τα διεθνείς τα συμφωνίας εχρησιμοπούνταν με διάφορους τρόπους ασά περισσότερα μεγάλα κράτη τη ιστορίας. Με τα χρόνια, σαν αρχάς τη σύγχρονης εποχής, έγιναν πλέον συχνές και πλέον σύνθετες.<ref>{{en}} {{cite web|title=History of diplomacy|url=https://www.britannica.com/topic/diplomacy/History-of-diplomacy|access-date=2022-01-10|website=Britannica|archive-date=2022-01-10|archive-url=https://web.archive.org/web/20220110032945/https://www.britannica.com/topic/diplomacy/History-of-diplomacy|url-status=live}}</ref> Σαν αρχάς τη 19ου αιώνα, η διπλωματία, η εξωτερική πολιτική και το διεθνές δίκαιον εμεγάλωσαν πολλά, και ατό εφαίνετο ασόν μεγάλον τον αριθμόν τη συνθηκών ντο υπογράφουνταν σε όλο τον κόσμον. Σον 20όν τον αιώναν, η [[Σύμβαση τη Βιέννης για το Δίκαιον των Συνθηκών]] έβαλεν σε σειράν όλας ατάς τα συνήθειας. Έγραψεν τους κανόνες για το πώς πρέπει να φτιάχκουνται, να αλλάζνε, να εξηγούνται και να τελειώννε τα συνθήκας, αλλά και για το πώς θα λύνουνταν οι παρεξηγήσεις και τα παρανομίας ανάμεσα σα κράτη.<ref>{{en}} {{cite book|last1=Malgosia|first1=Fitzmaurice|title=Max Planck Encyclopedia of Public International Law|year=2010|isbn=978-0-19-923169-0|chapter=Treaties|doi=10.1093/law:epil/9780199231690/e1481|chapter-url=https://opil.ouplaw.com/view/10.1093/law:epil/9780199231690/law-9780199231690-e1481|archive-date=2020-03-25|archive-url=https://web.archive.org/web/20200325150521/https://opil.ouplaw.com/view/10.1093/law:epil/9780199231690/law-9780199231690-e1481|url-status=live}}</ref><ref name=":12">{{en}} {{cite book |last1=Orakhelashvili |first1=Alexander |url=https://www.taylorfrancis.com/books/mono/10.4324/9780429439391/akehurst-modern-introduction-international-law-alexander-orakhelashvili |title=Akehurst's Modern Introduction to International Law |year=2018 |publisher=Routledge |page=251 |doi=10.4324/9780429439391 |isbn=978-0-429-43939-1}}</ref><ref>{{en}} {{cite journal |last1=Kearney |first1=Richard D. |last2=Dalton |first2=Robert E. |year=1970 |title=The Treaty on Treaties |url=https://www.cambridge.org/core/journals/american-journal-of-international-law/article/abs/treaty-on-treaties/B2CB9F70D34D7F86568172B864E3F544 |journal=American Journal of International Law |volume=64 |issue=3 |page=495-561 |doi=10.2307/2199203 |issn=0002-9300|url-access=subscription }}</ref>
Τα συνθήκας έχουν την ισχύν μέσα ασή νομικήν την αρχήν ''[[pacta sunt servanda]]'' (λατ.: «οι συμφωνίας πρέπει να κρατούνται»). Με ατέ την αρχήν, τα κράτη υποχρεούνται να κάννε τα χρέη ατουν και να τιμούνε την συμφωνίαν με [[καλήν πίστην (δίκαιον)|καλήν την πίστην]].{{sfn|Brownlie|Crawford|2012|p=9}}{{sfn|Klabbers|1996|p=38-40}} Γι' ατό, τα συνθήκας δεσμεύκνε μοναχά τα μέρη ντο υπογράφνε και επικυρώννε ατάς. Μια συνθήκη εμπορεί να χάσκ' την ισχύν ατ'ς και να ακυρώνεται αν πάει κόντρα σ' έναν ανώτερον διεθνή κανόναν (''jus cogens''), όπως έν’ για παράδειγμα αν επιτρέπει έναν επιθετικόν πόλεμον γιά εγκλήματα κατά τη ανθρωπότητας.<ref>{{en}} Vienna Convention on the Law of Treaties, Article 53, May 23, 1969, 1155 U.N.T.S 331, 8 ''International Legal Materials'' 679 (1969)</ref>
Τα συνθήκας έν' ασά κυριότερα θεμέλια τη διεθνούς δικαίου. Ασόν 20ό αιώνα και μετά, έβαλαν σε σειράν και καθιέρωσαν πολλούς διεθνείς κανόνες.<ref name=":3">{{en}} {{cite web|title=treaty {{!}} Definition, Examples, & Facts|url=https://www.britannica.com/topic/treaty|accessdate=2022-01-09|website=Britannica|archive-date=2020-11-28|archive-url=https://web.archive.org/web/20201128124813/https://www.britannica.com/topic/treaty|url-status=live}}</ref> Μια συνθήκη πρέπει να ορίζεται ασό διεθνές το δίκαιον, αλλά τα πλέον φορές εξηγούνε ατέ τα δικαστήρια τη κάθε κράτους.{{sfn|Gardiner|2008|p=21}}
Τα συνθήκας κι έχουνε έναν στάνταρ σχήμα. Διαφέρνε πολλά σο περιεχόμενον και σην δυσκολίαν ατουν.<ref name=":3" /> Εμπορούνε να φτιάχκουνται με πολλούς τρόπους και να ορίζνε πολλά και διάφορα θέματα, όπως έν’ η ασφάλεια, το εμπόριον, το περιβάλλον και τα δικαιώματα τη ανθρώπου. Επίσης, εχρησιμοποιούνταν για να χτίζκουνται διεθνή ιδρύματα, όπως το [[Διεθνές Ποινικόν Δικαστήριον]] και τα [[Ηνωμένα Έθνη]], και δίνουνε το πλαίσιο για να διοικούνται ατά. Ακόμα, τα συνθήκας διαφέρνε πολλά αναμεσάτουν σα εξής σημεία: ση δέσμευσιν (το πόσον πολύ δεσμεύκνε τα κράτη σα κανόνες ατουν), ση ακρίβειαν (το πόσον καθαροί και χωρίς μπερδέματα έν’ οι κανόνες) και ση ανάθεσιν (το πόσον δικαίωμα έχνε τρίτοι, όπως διεθνή δικαστήρια, να εξηγούνε, να εφαρμόζνε και να φτιάχνε κανόνες).<ref name=":4">{{en}} {{cite journal |last1=Simmons |first1=Beth |date=2010 |title=Treaty Compliance and Violation |journal=Annual Review of Political Science |volume=13 |issue=1 |page=273-296 |doi=10.1146/annurev.polisci.12.040907.132713 |issn=1094-2939 |doi-access=free}}</ref><ref>{{en}} {{cite journal |last1=Abbott |first1=Kenneth W. |last2=Keohane |first2=Robert O. |last3=Moravcsik |first3=Andrew |last4=Slaughter |first4=Anne-Marie |last5=Snidal |first5=Duncan |date=2000 |title=The Concept of Legalization |url=https://www.cambridge.org/core/journals/international-organization/article/abs/concept-of-legalization/EF6AA703676B5053168AC43C27BF45A4 |url-status=live |journal=International Organization |volume=54 |issue=3 |page=401-419 |doi=10.1162/002081800551271 |issn=1531-5088 |archive-url=https://web.archive.org/web/20220818163728/https://www.cambridge.org/core/journals/international-organization/article/abs/concept-of-legalization/EF6AA703676B5053168AC43C27BF45A4 |archive-date=2022-08-18 |url-access=subscription }}</ref>
== Αναφοράντας ==
<references />
== Πηγές ==
* {{en}} {{cite book |last1=Gardiner |first1=Richard K. |url=https://archive.org/details/treatyinterpreta0000gard/ |title=Treaty Interpretation |date=2008 |publisher=[[Oxford University Press]] |isbn=978-0-19-927791-9 |url-access=registration |ref=harv}}
* {{en}} {{cite book |last1=Brownlie |first1=Ian |url=https://archive.org/details/brownliesprincip0000craw |url-access=registration |title=Brownlie's Principles of Public International Law |last2=Crawford |first2=James |date=2012 |publisher=[[Oxford University Press]] |isbn=978-0-19-965417-8 |authorlink1=Ίαν Μπράουνλαϊ |authorlink2=Τζέιμς Κρόφορντ (νομικός) |ref=harv}}
* {{en}} {{cite book |last=Klabbers |first=Jan |url=https://books.google.com/books?id=RhTdGg1cenIC |title=The Concept of Treaty in International Law |date=1996 |publisher=[[Martinus Nijhoff Publishers]] |isbn=978-90-411-0244-7 |authorlink1=Γιάν Κλάμπερς |ref=harv}}
[[Κατηγορίαν:Δίκαιον]]
[[Κατηγορίαν:Πολιτικήν]]
8pnywdil6fip23e3inqbubon2u4jumf
Κατηγορίαν:Δίκαιον
14
3806
37743
2026-08-03T21:18:44Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '[[Κατηγορίαν:Δικαιοσύνην]]'
37743
wikitext
text/x-wiki
[[Κατηγορίαν:Δικαιοσύνην]]
nnv4ykjq20ygb6psd1ma18zp8xzjyks
Κατηγορίαν:Δικαιοσύνην
14
3807
37744
2026-08-03T21:19:57Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '{{commonscat}} {{catmain}} [[Κατηγορίαν:Ηθικήν]] [[Κατηγορίαν:Πολιτικήν]]'
37744
wikitext
text/x-wiki
{{commonscat}}
{{catmain}}
[[Κατηγορίαν:Ηθικήν]]
[[Κατηγορίαν:Πολιτικήν]]
cy4zimhf5gvmsqlmsvulcdivt4ko27b
37745
37744
2026-08-03T21:20:07Z
Εὐθυμένης
2777
37745
wikitext
text/x-wiki
{{commonscat}}
[[Κατηγορίαν:Ηθικήν]]
[[Κατηγορίαν:Πολιτικήν]]
glan9yz0fldanjqwb4yqxhxuc3kyk70
Κατηγορίαν:Ηθικήν
14
3808
37746
2026-08-03T21:21:31Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '{{commonscat}} [[Κατηγορίαν:Φιλοσοφίαν]]'
37746
wikitext
text/x-wiki
{{commonscat}}
[[Κατηγορίαν:Φιλοσοφίαν]]
5hnmj5zs615hs4o399cs1o8q55u8hqc
Μοναστήριον
0
3809
37747
2026-08-03T23:29:12Z
Εὐθυμένης
2777
Καινούρεον σελίδαν με '[[Αρχείον:Dechen Choekhor Mahavihara , Sarabai, Kullu ( Himachal Pradesh).jpg|μικρογραφία|Το Μοναστήρ’ σο Σαραμπάι (Χιματσάλ Πραντές).]] Το '''μοναστήριον''' γιά '''μοναστήρ’''' έν' έναν κτίριον γιά έναν σύνολον ασά κτίρια, όπου ζούνε και δουλεύκνε [[καλόγερος|καλόγεροι]] (μοναχοί) γιά...'
37747
wikitext
text/x-wiki
[[Αρχείον:Dechen Choekhor Mahavihara , Sarabai, Kullu ( Himachal Pradesh).jpg|μικρογραφία|Το Μοναστήρ’ σο Σαραμπάι (Χιματσάλ Πραντές).]]
Το '''μοναστήριον''' γιά '''μοναστήρ’''' έν' έναν κτίριον γιά έναν σύνολον ασά κτίρια, όπου ζούνε και δουλεύκνε [[καλόγερος|καλόγεροι]] (μοναχοί) γιά τα [[καλόγρια|καλόγριας]] (μοναχές). Ατοί εμπορεί να ζούνε όλοι μαζί ([[κοινόβιον]]) γιά μοναχέσα ατούνς ([[ερημίτες]]). Έναν μοναστήρ' έχει πάντα έναν τόπον για [[προσευχήν]], ντο εμπορεί να έν' [[παρεκκλήσ']], [[εκκλησία (κτίριο)|εκκλησία]] γιά [[ναός]]. Ανάμεσα σα κοινόβια, έναν μοναστήρ' εμπορεί να έν' έναν μικρόν κτίριον με έναν γέροντα και δύο-τρία νέα παιδία, αλλά εμπορεί να έν' και ολόκληρον πολιτεία με κτήματα, όπου ζούνε δεκάδες γιά εκατοντάδες καλόγεροι.
Έναν μεγάλον μοναστήρ' έχει πολλά κτίρια, όπως εκκλησία ([[καθολικόν]]), κοιτώνες (κελία), αυλή, τράπεζα (εκεί ντο τρώγνε), [[βιβλιοθήκη]], [[λουτρόν|λουτρά]] και [[νοσοκομείον|νοσοκομείο]]. Ανάλογα με το μέρος, το τάγμα και την δουλειάν ντο κάννε οι μοναχοί, το μοναστήρ’ εμπορεί να έχει και άλλα κτίρια για να ζει αυτόνομα και να βοηθεί τον κόσμον. Τέτοια έν' οι [[ξενών|ξενώνες]], τα [[σχολείον|σχολεία]], και διάφορα αγροτικά κτίρια, όπως τα αποθήκας, σιδηρουργεία γιά εργαστήρια για ποτά ([[ζυθοποιείον|ζυθοποιεία]]).
Σα [[Ευρώπην|ευρωπαϊκάς]] τα γλώσσας, όπως τα [[αγγλικόν λαλίαν|αγγλικά]], η λέξη «μοναστήριον» (''monastery'') εχρησιμοποιούταν στην αρχήν μοναχά για τους άντρες τους μοναχούς. Σήμερα, για τα γυναικεία τα μοναστήρια έχουν ξεχωριστήν λέξην, το «[[κονβέντο]]» (''convent''), κυρίως αν τα [[καλόγρια|καλόγριας]] μαθαίνουνε γράμματα σα παιδία γιά γιατρεύκνε αρρώστους. Παλαιότερα, η λέξη ατέ εσήμαινεν το σπίτ' τη μοναχών (''friars''). Η κάθε θρησκεία εμπορεί να μεταχειρίζεται ατάς τα λέξεις με τον δικόν ατ'ς τον ξεχωριστόν τον τρόπον.
== Συνδέζμ' σα εξ μερέαν ==
* {{commonscat-inline}}
[[Κατηγορίαν:Θρησκείαν]]
noqyd5d7iomxeqgkknc1ck40znvy245