├── .github
└── FUNDING.yml
├── .gitignore
├── .vscode
└── settings.json
├── LICENSE
├── README.md
├── about.html
├── css
├── about.css
├── app.ui.css
├── responsive.css
├── style.css
├── themes
│ ├── auto.css
│ ├── dark.css
│ └── light.css
└── wiki-fix.css
├── custom-style.md
├── index.html
├── js
├── app.js
├── app.ui.js
├── index.js
├── keyboard.js
├── share.js
└── themes.js
├── src
├── assets
│ ├── icons
│ │ ├── favicon-black.svg
│ │ ├── favicon-violet.svg
│ │ ├── favicon-white.svg
│ │ └── icon.png
│ ├── images
│ │ ├── 1.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── GitHub-Mark-Light-32px.png
│ │ ├── banner.png
│ │ ├── download.png
│ │ ├── inky-search.png
│ │ ├── not-found.png
│ │ └── share.png
│ └── resources
│ │ └── wikilist.json
└── libs
│ ├── google-fonts
│ └── fonts.css
│ ├── hotkeysjs
│ └── hotekeys.min.js
│ ├── jquery
│ └── jquery.js
│ ├── share-this
│ ├── share-this.css
│ ├── share-this.js
│ └── sharers
│ │ ├── email.js
│ │ ├── email.js.map
│ │ ├── facebook.js
│ │ ├── facebook.js.map
│ │ ├── linked-in.js
│ │ ├── linked-in.js.map
│ │ ├── reddit.js
│ │ ├── reddit.js.map
│ │ ├── speakers.js
│ │ ├── twitter.js
│ │ └── twitter.js.map
│ ├── sharer.js
│ └── sharer.js
│ └── wikifox
│ └── wikifox.js
└── wiki.html
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github:
4 | patreon: # Replace with a single Patreon username
5 | open_collective: wikifox
6 | ko_fi: harrytom
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: https://www.buymeacoffee.com/harrytom
13 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | test.js
2 | backup.js
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "svg.preview.background": "transparent",
3 | "cSpell.ignoreWords": [
4 | "Infobox",
5 | "Wikifox"
6 | ]
7 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Just Doodle
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # 🦊 Introducing [Wikifox!](https://wikifox.netlify.app/) 
4 |
5 | Wikifox (beta) is a clean and simplified version of the real Wikipedia! This works with official Wikipedia, so nothing to worry about!. It has a good and clean user interface with Dark, Light and custom themes! Check it out : https://wikifox.netlify.app/
6 |
7 | [](https://app.netlify.com/sites/wikifox/deploys)
8 |
9 | [ ](https://discord.gg/wdDXnFz3bm)
10 |
11 | # What's New
12 |
13 | - Fixed Shortcut bug [Issue#3](https://github.com/Wikifox/wikifox/issues/3)
14 | - Added Keyboard shortcuts. Press `k` or got to `options` to see what are the new shortcuts!
15 |
16 | # 💫 Features
17 |
18 | - 👍 Super-awesome and Clean UI
19 | - 🔍 Search any articles Easily
20 | - 🔖 Bookmark Articles
21 | - ☀️ Dark/Light theme + Custom CSS themes!
22 | - 📃 Endless list of languages
23 | - 🔽 Download articles
24 | - ⏩ Sharing
25 | - Share quotes (sentances)
26 | - Share the Whole article
27 | - 📢 Read aloud
28 | - 🦘 Quick Jump to headings
29 | - 🎲 Random Articles
30 | - ⌨️ Keyboard Shortcuts
31 | - 📱 Mobile Friendly
32 | - ℹ️ Infobox (beta)
33 | - 💫 And much more!
34 |
35 | # 🔔 Upcoming Features
36 |
37 | - More keyboard shortcuts
38 | - Comments
39 | - Reactions
40 |
41 | # ✂️ Few Screenshots
42 |
43 | | | |
44 | | ----------------------------------- | ----------------------------------- |
45 | | | |
46 |
47 | # 🧱 Made with
48 |
49 | - 🦊 [wikifox.js](https://github.com/harry260/wikifox.js) (modified)
50 | - 🍪 [Jquery](https://jquery.com/)
51 | - 📩 [MaxArt2501/share-this](https://github.com/MaxArt2501/share-this)
52 | - 🔤 [Google Fonts](https://fonts.google.com/)
53 | - 🅱️ [Bootstrap Icons](https://icons.getbootstrap.com/)
54 | - 🌍 [Official Wikipedia Api](https://wikipedia.org/)
55 | - ⌨️ [hotekeys-js](https://github.com/jaywcjlove/hotkeys)
56 |
57 | [](https://github.com/harry260/wikifox.js)
58 |
59 | # 😺 Featured on [Producthunt](https://www.producthunt.com/posts/wikifox)
60 |
61 |
62 |
63 |
64 | # Thanks
65 |
66 | Special Thanks for [@byothe](https://github.com/byothe) for finding a major bug [Issue#3](https://github.com/Wikifox/wikifox/issues/3)
67 |
68 | # 💪 Support
69 |
70 | Support this project by buying me a coffee and starring ⭐ this repo!
71 |
72 |
73 |
74 | | PROTIP: You can also customize the entire User Interface with the Custom CSS theme option (`OPTIONS` > `Appearance` > `Custom CSS`) |
75 | | ---------------------------------------------------------------------------------------------------------------------------------- |
76 |
--------------------------------------------------------------------------------
/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 | Wikifox - Wikipedia Re-imagined
12 |
13 |
17 |
21 |
22 |
23 |
24 |
25 |
29 |
30 |
31 |
32 |
33 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
56 |
57 |
58 |
91 |
92 |
93 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
Introducing Wikifox!
110 | BETA
111 |
112 |
113 | Wikifox (beta) is a clean and simplified version of the real
114 | Wikipedia! This works with official Wikipedia, so nothing to worry
115 | about!. It has a good and clean user interface with Dark, Light and
116 | custom themes!
117 |
118 |
119 |
120 |
121 |
122 |
123 |
Getting Started
124 |
125 | To get started, click the Launch button and Start searching! The
126 | Search features have awesome search suggestions and you can also
127 | search for a specific article. There is also Option to change theme.
128 | You can also Import custom css themes.
129 |
130 |
131 |
132 |
133 |
134 |
135 |
Features
136 |
137 | This also has some awesome small features such as : Searching
138 | articles, Bookmarking Articles, Downloading articles as PDF, Instant
139 | Sharing, Sharing Quotes, Social Sharing, Fully customizable UI +
140 | Themes and much more than you can imagine!
141 |
142 |
143 |
144 |
145 |
Proudly made with
146 |
160 |
161 |
162 |
175 |
176 |
177 |
182 |
183 |
--------------------------------------------------------------------------------
/css/about.css:
--------------------------------------------------------------------------------
1 | body{
2 | background-color: black;
3 | color: white;
4 | }
5 |
6 | .hero-header{
7 | width: 100%;
8 | padding: 10px;
9 | position: fixed;
10 | left: 0;
11 | top:0;
12 | background-color: rgba(0, 0, 0, 0.445);
13 | backdrop-filter: blur(20px);
14 | z-index: 99;
15 | border: 1px solid #242426;
16 | }
17 |
18 | .hero-header-inner{
19 | width: 90%;
20 | padding: 10px 0;
21 | justify-content: space-between;
22 | }
23 |
24 | .header-icon img{
25 | width: 50px;
26 | }
27 |
28 | .header-icon h1{
29 | color: white;
30 | letter-spacing: -3px;
31 | font-size: 30px;
32 | }
33 |
34 | .button-open{
35 | background-color: #0070f3;
36 | color: white;
37 | border-radius: 10px;
38 | cursor: pointer;
39 | }
40 |
41 | .button-open:hover{
42 | transform:scale(1.1);
43 | }
44 |
45 | .button-open h2{
46 | font-size: 15px;
47 | padding: 10px 20px;
48 | }
49 |
50 | .github-icon img{
51 | width: 40px;
52 | margin-left: 20px;
53 | border-radius: 50%;
54 | opacity: 0.5;
55 | }
56 |
57 | .github-icon img:hover{
58 | opacity: 1;
59 | cursor: pointer;
60 | }
61 |
62 | i,
63 | i::before {
64 | color: var(white);
65 | display: flex !important;
66 | }
67 |
68 | .icon-lc{
69 | margin-left: 5px;
70 | }
71 |
72 | .content{
73 | width: 600px;
74 | padding-top: 120px;
75 | }
76 |
77 | .banner-image img{
78 | width: 100%;
79 | border: 1px solid #242426;
80 | border-radius: 10px;
81 | margin-bottom: 30px;
82 | cursor: pointer;
83 | }
84 |
85 | .banner-image:hover{
86 | transform: scale(1.1);
87 | }
88 |
89 | .hero-nav a{
90 | color: gray;
91 | text-decoration: none;
92 | letter-spacing: 0px;
93 | margin: 0 5px;
94 | font-size: 15px;
95 | }
96 |
97 | .hero-nav a:hover{
98 | color: white;
99 | }
100 |
101 | .text-content h1{
102 | margin: 20px 0;
103 | }
104 |
105 | .text-content{
106 | margin-bottom: 50px;
107 | }
108 | .text-content p{
109 | font-size: 15px;
110 | color: rgb(131, 131, 131);
111 | }
112 |
113 | .tag{
114 | background-color: #0070f3;
115 | display: inline-flex;
116 | margin: 5px;
117 | padding: 5px;
118 | border-radius: 5px;
119 | margin-left: 10px;
120 | }
121 |
122 | hr{
123 | border: 1px solid #242426;
124 | }
125 |
126 | .powered-ul a{
127 | color: white;
128 | text-decoration: none;
129 | }
130 |
131 | .powered-ul a li{
132 | color: rgb(131, 131, 131);
133 | transition: 0ms;
134 | }
135 |
136 | .powered-ul a li:hover{
137 | transition: 0s;
138 | color: #0070f3;
139 | }
140 |
141 | .item-info{
142 | justify-content: space-between;
143 | }
144 |
145 | .item-people{
146 | width: 100%;
147 | background-color: #19191a;
148 | padding: 10px 20px;
149 | border-radius: 10px;
150 | }
151 |
152 | .item-people img{
153 | width: 30px;
154 | height: 30px;
155 | border-radius: 50%;
156 | margin-right: 10px;
157 | }
158 |
159 | .item-ppl-content h1{
160 | font-size: 15px;
161 | line-height: 5px;
162 | }
163 |
164 | .wtf{
165 | margin-left: 5px;
166 | font-size: 16px;
167 | }
168 |
169 | .open-profile{
170 | padding: 5px;
171 | font-size: 16px;
172 | color: white;
173 | border-radius: 5px;
174 | text-decoration: none;
175 | padding: 5px 10px;
176 | margin-left: 10px;
177 | }
178 |
179 | .footer{
180 | width: 100%;
181 | justify-content: space-between;
182 | padding: 20px 0px ;
183 | }
184 |
185 | .footer-inner{
186 | width: 90%;
187 | padding-bottom:15px;
188 | }
189 |
190 | .footer h1{
191 | font-size: 15px;
192 | display: inline-block;
193 | color: gray;
194 | letter-spacing: -1px;
195 | }
--------------------------------------------------------------------------------
/css/app.ui.css:
--------------------------------------------------------------------------------
1 | @import url("../src/libs/google-fonts/fonts.css");
2 | @import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css");
3 |
4 | *{
5 | padding: 0;
6 | margin: 0;
7 | box-sizing: border-box;
8 | outline-width: 0;
9 | font-family: "poppins", sans-serif;
10 | scroll-behavior: smooth;
11 | }
12 |
13 | .center{
14 | display: flex;
15 | align-items: center;
16 | justify-content: center;
17 | }
18 |
19 | .h-center{
20 | display: flex;
21 | justify-content: center;
22 | }
23 |
24 | .v-center{
25 | display: flex;
26 | align-items: center;
27 | }
28 |
29 | ::-webkit-scrollbar {
30 | width: 5px;
31 | }
32 |
33 | ::-webkit-scrollbar-track {
34 | background: transparent;
35 | padding: 0 5px;
36 | }
37 |
38 | /* Handle */
39 | ::-webkit-scrollbar-thumb {
40 | background: var(--primary-color);
41 | border-radius: 99999px;
42 | }
43 |
44 | /* Handle on hover */
45 | ::-webkit-scrollbar-thumb:hover {
46 | background: black;
47 | }
48 |
49 | .one-line{
50 | overflow: hidden !important;
51 | text-overflow: ellipsis !important;
52 | display: -webkit-box;
53 | -webkit-line-clamp: 1 !important;
54 | line-clamp: 1 !important;
55 | -webkit-box-orient: vertical !important;
56 | }
57 |
58 | .overlay{
59 | position: fixed !important;
60 | top: 0 !important;
61 | left: 0 !important;
62 | width: 100%;
63 | height: 100%;
64 | background: rgba(0,0,0,0.2);
65 | z-index: 99999;
66 | display: none;
67 | }
68 |
69 | .overlay-inner{
70 | width: 500px !important;
71 | height: 500px;
72 | box-shadow: var(--box-shadow-prime);
73 | background-color: var(--background);
74 | border: 1px solid var(--hairline);
75 | border-radius: 20px;
76 | }
77 |
78 | .ui-button{
79 | background-color: var(--button);
80 | color: white;
81 | border-radius: 10px;
82 | padding: 10px 15px;
83 | cursor: pointer;
84 | transition: 0.1s;
85 | }
86 |
87 | .ui-button:hover{
88 | background-color: var(--highlight);
89 | }
90 |
91 | .ui-button h1{
92 | font-size: 13px;
93 | margin-left: 10px;
94 | }
95 |
96 | .progress-container {
97 | --progressbar-height: 5px;
98 |
99 | min-width: 100% !important;
100 | min-height: var(--progressbar-height);
101 | position: fixed;
102 | bottom: 0;
103 | left: 0;
104 | z-index: 99999;
105 | }
106 |
107 | .progress-bar {
108 | min-height: var(--progressbar-height);
109 | background: var(--highlight);
110 | width: 0%;
111 | opacity: 0.9;
112 | }
113 |
114 | .progress-bar:hover{
115 | transform: scaleY(3);
116 | cursor: pointer;
117 | }
118 |
119 | .pa-t-70{
120 | padding-top: 70px !important;
121 | }
122 |
123 | .relative-div{
124 | position: relative;
125 | }
126 |
127 | .us{
128 | user-select: none;
129 | -moz-user-select: none;
130 | -khtml-user-select: none;
131 | -webkit-user-select: none;
132 | -o-user-select: none;
133 | }
--------------------------------------------------------------------------------
/css/responsive.css:
--------------------------------------------------------------------------------
1 | .mobile-view{
2 | display: none;
3 | }
4 |
5 | @media (max-width:1200px){
6 | .article-abstract, .page-content p{
7 | font-size: 15px
8 | }
9 | }
10 |
11 | @media (max-width:1100px){
12 | .bar-right{
13 | display: none;
14 | position: fixed;
15 | width: var(--sidebar-width);
16 | top:0;
17 | right: 0;
18 | box-shadow: var(--box-shadow-prime);
19 | border-top-left-radius: 10px;
20 | border-bottom-left-radius: 10px;
21 | z-index: 999;
22 | }
23 |
24 | .button-close-bar{
25 | display: flex;
26 | }
27 |
28 | .info-content{
29 | padding-top: 0!important;
30 | }
31 |
32 | .infobox-open{
33 | display: flex;
34 | }
35 | }
36 |
37 | @media (max-width:940px){
38 | .bar-left{
39 | display: none;
40 | }
41 |
42 | .content-header{
43 | width: 100%;
44 | left: 0;
45 | display: flex !important;
46 | }
47 |
48 | .content-wrap{
49 | padding-top: 100px;
50 | }
51 |
52 | .header-logo svg{
53 | display: flex;
54 | }
55 |
56 | .input-wrapper{
57 | display: none;
58 |
59 | }
60 |
61 | .download-pop{
62 | display: flex;
63 | }
64 | }
65 |
66 |
67 | @media (max-width: 700px) {
68 | .text-div{
69 | padding: 60px !important;
70 | }
71 |
72 | .sentance-hero{
73 | font-size: 30px !important;
74 | line-height: 30px !important;
75 | }
76 |
77 | .text-content h1{
78 | font-size: 25px;
79 | margin-bottom: 15px;
80 | }
81 |
82 | .text-content p{
83 | font-size: 13px;
84 | }
85 |
86 | .content{
87 | width: 100%;
88 | padding: 0 20px;
89 | padding-top: 150px;
90 | }
91 |
92 | .hero-nav{
93 | display: none;
94 | }
95 |
96 | .header-icon h1{
97 | display: none;
98 | }
99 | }
100 |
101 | @media (max-width:640px){
102 |
103 |
104 | .content-header{
105 | padding: 35px 20px;
106 | }
107 |
108 | .content-block{
109 | padding: 0 30px;
110 | }
111 |
112 | .image-block{
113 | padding:0;
114 | }
115 |
116 | .image-show{
117 | box-shadow: none;
118 | border-radius: 0;
119 | }
120 |
121 | .mobile-view{
122 | display: flex;
123 | }
124 |
125 | .header-navig-wrap{
126 | display: none;
127 | }
128 | }
129 |
130 | @media (max-width:540px){
131 | .index-header-nav{
132 | display: none;
133 | }
134 |
135 | .index-search-bar-active{
136 | position: fixed;
137 | top: -1px;
138 | left: -1px;
139 | right: -1px;
140 | border-radius: 0;
141 | min-width: 100%;
142 | }
143 |
144 | .hero-abs{
145 | width: 70%;
146 | font-size: 12px;
147 | }
148 |
149 | .index-wrapper{
150 | width: 100%;
151 | }
152 | }
153 |
154 | @media (max-width:440px){
155 |
156 | .index-search-bar{
157 | width: 90%;
158 | }
159 |
160 | .header-button{
161 | padding: auto 5px;
162 | }
163 |
164 | .overlay-inner{
165 | max-width: 100%;
166 | height: 80vh;
167 | max-height: none;
168 | min-width: auto;
169 | bottom: 0 !important;
170 | position: fixed;
171 | left: 0;
172 | bottom: 0;
173 | }
174 |
175 |
176 | }
--------------------------------------------------------------------------------
/css/style.css:
--------------------------------------------------------------------------------
1 | /* ___________________
2 | | |
3 | | [WIKI-PAGE] |
4 | |___________________|
5 | */
6 |
7 |
8 | #app, .app-wrapper{
9 | width: 100%;
10 | height: 100vh;
11 | background-color: var(--background);
12 | }
13 |
14 | .content-wrap{
15 | overflow-y: scroll;
16 | padding: 40px 0;
17 | height: 100vh;
18 | }
19 |
20 | .content-wrap::-webkit-scrollbar {
21 | width: 0px;
22 | background: transparent;
23 | }
24 |
25 | .content-block{
26 | margin: 50px 0;
27 | padding: 0 60px;
28 | }
29 |
30 | .content-block:nth-child(1){
31 | margin-top: 0;
32 | }
33 |
34 | .article-title{
35 | font-family: var(--serif);
36 | font-style: normal;
37 | font-weight: 900;
38 | font-size: 60px;
39 | line-height: 60px;
40 | margin-bottom: 20px;
41 | color: var(--primary-color);
42 | }
43 |
44 | .article-abstract, .article-summary, .page-content p{
45 | font-family: var(--primary-font);
46 | font-style: normal;
47 | font-weight: 500;
48 | font-size: 15px;
49 | width: 100%;
50 | color: var(--secondary-color);
51 | }
52 |
53 |
54 | .two-line{
55 | overflow: hidden !important;
56 | text-overflow: ellipsis !important;
57 | display: -webkit-box !important;
58 | -webkit-line-clamp: 2 !important;
59 | line-clamp: 2 !important;
60 | -webkit-box-orient: vertical !important;
61 | }
62 |
63 | .article-summary{
64 | font-family: var(--secondary-serif) !important;
65 | font-size: 22px;
66 | line-height: 28px;
67 | }
68 |
69 | .image-block *{
70 | transition: 0.4s;
71 | }
72 |
73 | .image-show{
74 | max-height: 500px;
75 | overflow: hidden;
76 | border-radius: 10px;
77 | box-shadow: var(--box-shadow-prime);
78 | background-color: white;
79 | }
80 |
81 | .image-show:hover .image-show-img{
82 | transform: scale(1.19) rotate(5deg);
83 | }
84 |
85 | .image-show-img{
86 | width: 100%;
87 | }
88 |
89 |
90 | .page-content h2 *{
91 | font-family: var(--serif);
92 | font-weight: 900;
93 | font-size: 40px;
94 | line-height: 42px;
95 | color: var(--primary-color);
96 | display: block;
97 | width: 100%;
98 | border-bottom: 1px solid var(--hairline);
99 | padding-bottom: 10px;
100 | color: var(--primary-color);
101 | margin-bottom: 15px;
102 | margin-top: 50px;
103 | }
104 |
105 | .page-content i{
106 | display: inline;
107 | }
108 |
109 | .page-content h3 *{
110 | margin-top: 30px;
111 | margin-bottom: 20px;
112 | display: block;
113 | font-size: 20px;
114 | font-weight: 500;
115 | font-family: var(--primary-font);
116 | color: var(--tertiary-color);
117 | font-weight: 600;
118 | }
119 |
120 |
121 | .page-content h4{
122 | display: inline-block;
123 | }
124 |
125 | .page-content h4 span{
126 | margin-bottom: 10px;
127 | display: block;
128 | margin-top: 20px;
129 | color: var(--secondary-color);
130 | }
131 |
132 | .page-content p{
133 | margin-bottom: 30px;
134 | line-height: 29px;
135 | font-size: 16px;
136 | }
137 |
138 | .page-content ul{
139 | margin: 20px 0;
140 | }
141 |
142 | .page-content ul li{
143 | margin-bottom: 10px;
144 | color: var(--secondary-color);
145 | }
146 |
147 | .gallery{
148 | display: none;
149 | }
150 |
151 | .page-content ol {
152 | padding: 1px !important;
153 | list-style-position: inside;
154 | }
155 |
156 | .summary-read-more{
157 | color: var(--primary-color);
158 | margin-top: 10px;
159 | display: block;
160 | text-decoration: none;
161 | font-size: 12px;
162 | color: var(--primary-color);
163 | }
164 |
165 | .quick-jump-overlay{
166 | display: none;
167 | }
168 |
169 | .quick-jump-wrap{
170 | display: flex;
171 | flex-direction: column;
172 | height: fit-content;
173 | max-height: 500px;
174 | background-color: var(--background);
175 | padding: 30px;
176 | }
177 |
178 | .quick-jump-wrap header h1{
179 | color: var(--secondary-color);
180 | font-weight: 900;
181 | letter-spacing: -1px;
182 | font-family: var(--serif);
183 | }
184 |
185 | .search-bar-jump{
186 | background-color: var(--secondary-background);
187 | padding: 8px 10px;
188 | margin: 20px 0;
189 | border-radius: 5px;
190 | }
191 |
192 | .search-bar-jump input{
193 | border: none;
194 | outline: none;
195 | background-color: transparent;
196 | color: var(--primary-color);
197 | font-size: 16px;
198 | font-weight: 500;
199 | font-family: var(--primary-font);
200 | width: 100%;
201 | color: var(--primary-color);
202 | }
203 |
204 | .toc-wrap{
205 | overflow-y: scroll;
206 | transition: 0.4s;
207 | height: 100%;
208 | padding: 0 10px;
209 | }
210 |
211 | .toc-wrap::-webkit-scrollbar{
212 | width: 3px;
213 | }
214 |
215 | .toc-wrap::-webkit-scrollbar-thumb{
216 | background-color:var(--secondary-background);
217 | }
218 |
219 | .toc-item, .toc-a{
220 | text-decoration: none;
221 | line-break: strict;
222 | }
223 |
224 | .toc-item-level-1, .toc-item-level-1 a{
225 | font-size: 20px;
226 | line-height: 20px;
227 | font-weight: 700;
228 | margin: 5.0px 0;
229 | color: var(--secondary-color);
230 | margin-bottom: 10px;
231 | }
232 |
233 | .toc-item-level-2, .toc-item-level-2 a{
234 | font-size: 12px;
235 | line-height: 15px;
236 | font-weight: 400;
237 | font-family:var(--primary-font);
238 | color: var(--secondary-color);
239 | border-radius: 5px;
240 | padding: 3px;
241 | margin-bottom: 2px;
242 | }
243 |
244 | .toc-item-level-2:hover{
245 | background-color: var(--secondary-background);
246 | }
247 |
248 | .sub-topic-active{
249 | display: block;
250 | }
251 |
252 | .search-preview img{
253 | width: 200px;
254 | margin: 0 auto;
255 | display: block;
256 | }
257 |
258 | .search-preview-info{
259 | font-size: 15px;
260 | width: 300px;
261 | text-align: center;
262 | color: var(--secondary-color);
263 | line-height: 14px;
264 | font-weight: 600;
265 | font-size: 12px;
266 | }
267 |
268 |
269 | .side-bar{
270 | height: 100vh;
271 | min-width: var(--sidebar-width);
272 | background-color: var(--background);
273 | }
274 |
275 | .bar-left{
276 | border-right: 1px solid var(--hairline);
277 | padding: 30px;
278 | padding-top: 60px;
279 | }
280 |
281 | .bar-right{
282 | /* border-left: 1px solid var(--hairline); */
283 | padding: 40px;
284 | padding-left: 0;
285 | }
286 |
287 | .logo-section img{
288 | width: 60px;
289 | }
290 |
291 | .logo-text{
292 | font-family: var(--serif);
293 | font-size: 20px;
294 | font-weight: 900;
295 | letter-spacing: -1px;
296 | color: var(--primary-color);
297 | }
298 |
299 | .option-list{
300 | list-style: none;
301 | margin-top: 50px;
302 | }
303 |
304 | .option-list li{
305 | padding: 5px 10px;
306 | font-size: 15px;
307 | font-weight: 600;
308 | color:var(--secondary-color);
309 | transition: 0.04s;
310 | }
311 |
312 | .option-list li:hover{
313 | background-color: var(--secondary-background);
314 | transform: scale(1.05);
315 | cursor: pointer;
316 | }
317 |
318 | .option-icon i{
319 | margin-right: 5px;
320 | }
321 |
322 | .x-l{
323 | text-decoration: none;
324 | }
325 |
326 | .download-button{
327 | position: absolute;
328 | bottom: 30px;
329 | }
330 |
331 | .prefix__fil0{
332 | fill: var(--primary-color);
333 | }
334 |
335 | .svg-logo{
336 | width: 60px;
337 | }
338 |
339 | .download-go-button{
340 | display: inline-flex;
341 | margin-top: 20px;
342 | }
343 |
344 | .download-overlay{
345 | display: none;
346 | }
347 |
348 | .right-bar{
349 | width: 250px !important;
350 | height: 100vh;
351 | background-color: bisque;
352 | }
353 |
354 | .info-content{
355 | overflow-y: scroll;
356 | }
357 |
358 | .content-header{
359 | width: calc(100% - var(--sidebar-width));
360 | height: 50px;
361 | position: fixed;
362 | left: var(--sidebar-width);
363 | top: 0;
364 | background-color: var(--semi-color);
365 | backdrop-filter: blur(20px);
366 | z-index: 99;
367 | box-shadow: var(--box-shadow-prime);
368 | border-bottom: 1px solid rgba(128, 128, 128, 0.164);
369 | padding: 0 40px;
370 | display: none;
371 | }
372 |
373 | .header-inner{
374 | width: calc(100%);
375 | justify-content: space-between;
376 | }
377 |
378 | .header-button{
379 | padding: 5px 8px;
380 | transition: 10ms;
381 | color: var(--secondary-color);
382 | }
383 |
384 | .header-button:hover{
385 | transform: scale(0.8);
386 | cursor: pointer;
387 | }
388 |
389 | .header-logo svg{
390 | width: 30px;
391 | margin-right: 10px;
392 | display:none;
393 | opacity: 0.8;
394 | }
395 |
396 | .search-input-art{
397 | border: none;
398 | background-color: transparent;
399 | width: 300px;
400 | font-size: 16px;
401 | font-weight: 500;
402 | color: var(--primary-color);
403 | }
404 |
405 | .search-suggessions{
406 | position: absolute;
407 | background-color: var(--background);
408 | box-shadow: var(--box-shadow-light);
409 | border-radius: 10px;
410 | margin-top: 10px;
411 | max-width: 500px;
412 | padding: 20px 0;
413 | max-height: 80vh;
414 | overflow-y: scroll;
415 | overflow-x: hidden;
416 | margin-left: -10px;
417 | border: 1px solid var(--hairline);
418 | }
419 |
420 | .search-suggessions::-webkit-scrollbar{
421 | display:none;
422 | }
423 |
424 | .search-suggessions ul{
425 | list-style: none;
426 | min-width: 160px;
427 | padding: 10px 0;
428 | }
429 |
430 | .search-suggessions ul li{
431 | padding: 2.5px 20px;
432 | }
433 |
434 |
435 | .search-item:hover{
436 | background-color: var(--secondary-background);
437 | cursor: pointer;
438 | }
439 |
440 | .search-item{
441 | padding: 20px 30px;
442 | width: 100%;
443 | }
444 |
445 | .search-info h1{
446 | font-size: 16px;
447 | margin-bottom: 10px;
448 | font-size: 20px;
449 | line-height: 20px;
450 | color: var(--primary-color);
451 | font-family: var(--serif);
452 | font-weight: 900;
453 | }
454 |
455 | .search-info h6{
456 | font-size: 11px;
457 | line-height: 13px;
458 | font-weight: 500;
459 | color: var(--secondary-color);
460 | }
461 |
462 | .search-image{
463 | display: none;
464 | }
465 |
466 | .search-image img{
467 | width: 60px;
468 | border-radius: 5px;
469 | box-shadow: var(--box-shadow-light);
470 | margin-left: 20px;
471 | }
472 |
473 |
474 | ::-moz-selection {
475 | color: white;
476 | background: var(--highlight);
477 | }
478 |
479 | ::selection {
480 | color: white;
481 | background: var(--highlight);
482 | }
483 |
484 | .bookmark-btn .bi-heart-fill, .bookmarks-item .bi-heart-fill{
485 | color: var(--highlight);
486 | }
487 |
488 | .share-buttons-wrap .ui-button{
489 | margin: 10px 2.5px;
490 | }
491 |
492 | .overlay-share{
493 | display: none;
494 | }
495 |
496 | .button-close-bar{
497 | position: fixed;
498 | top: calc(50% - 15px);
499 | right: calc(var(--sidebar-width) + 10px);
500 | padding: 5px;
501 | cursor: pointer;
502 | background-color: rgb(10, 10, 10);
503 | color: white;
504 | opacity: 1;
505 | border: var(--hairline);
506 | height: 30px;
507 | width: 30px;
508 | border-radius: 50%;
509 | display: none;
510 | }
511 |
512 | .infobox-open{
513 | display: none;
514 | }
515 |
516 | .menu-open i{
517 | font-size: 22px;
518 | }
519 |
520 |
521 | /* ___________________
522 | | |
523 | | [INDEX-PAGE] |
524 | |___________________|
525 | */
526 |
527 |
528 | .index-body::-webkit-scrollbar{
529 | display: none;
530 | }
531 |
532 | .index-wrapper{
533 | height: 100vh;
534 | scroll-snap-align: start;
535 | }
536 |
537 | .index-search-wrap{
538 | position: relative;
539 | padding-top: 60px;
540 | z-index: 9999;
541 | }
542 |
543 | .index-search-bar{
544 | background-color: var(--background);
545 | border: 1px solid var(--hairline);
546 | box-shadow: var(--box-shadow-prime);
547 | border-radius: 10px;
548 | width: 500px;
549 | overflow: hidden;
550 | margin: 0 auto;
551 | z-index: 9999;
552 | position: relative;
553 | }
554 |
555 | .index-search-bar-active{
556 | position: fixed;
557 | left: calc(50% - 250px);
558 | top:20px;
559 | }
560 |
561 | .index-search-bar input{
562 | background: transparent;
563 | border: none;
564 | outline: none;
565 | width: 100%;
566 | font-weight: 600;
567 | font-size: 15px;
568 | color: var(--secondary-color);
569 | }
570 |
571 | .svg-overhide svg{
572 | width: 150px;
573 | position: absolute;
574 | bottom: 0;
575 | z-index: -1;
576 | }
577 |
578 | .hero-abs{
579 | text-align: center;
580 | font-weight: bold;
581 | font-size: 15px;
582 | width: 100%;
583 | max-width: 310px;
584 | line-height: 110%;
585 | color: var(--secondary-color);
586 | margin-top: 20px;
587 | }
588 |
589 | .index-header{
590 | position:fixed;
591 | top: 0;
592 | left: 0;
593 | width: 100%;
594 | padding: 10px 0;
595 | backdrop-filter: blur(20px);
596 | z-index: 999;
597 | }
598 |
599 | .index-header-inner{
600 | width: 90%;
601 | justify-content: space-between;
602 | }
603 |
604 | .logo-text h1{
605 | font-size: 30px;
606 | font-family: var(--primary-font);
607 | letter-spacing: -2px;
608 | margin-right: 20px;
609 | font-style: italic;
610 | }
611 |
612 | .index-header-nav a{
613 | color: var(--secondary-color);
614 | font-weight: 500;
615 | text-decoration: none;
616 | margin-right: 5px;
617 | cursor: pointer;
618 | font-size: 12px;
619 | }
620 |
621 | .index-header-nav a:hover{
622 | color: var(--primary-color);
623 | }
624 |
625 | .option-pop-button{
626 | background: var(--primary-color);
627 | color: var(--background);
628 | padding: 3px 10px;
629 | border-radius: 20px;
630 | transition: 0.1s;
631 | cursor: pointer;
632 | }
633 |
634 | .option-pop-button:hover{
635 | background: var(--highlight);
636 | color: white;
637 | opacity: 1;
638 | transition: 0.4s;
639 | }
640 |
641 | .option-pop-button h1{
642 | font-size: 15px;
643 | margin-left: 5px;
644 | }
645 |
646 | .img-day-wrap{
647 | scroll-snap-align: start;
648 | padding: 50px;
649 | height: 100vh;
650 | position: relative;
651 | }
652 |
653 | .img-day-wrap img{
654 | width: 100%;
655 | border-radius: 20px;
656 | box-shadow: var(--box-shadow-prime);
657 | }
658 |
659 | .index-snap-layout{
660 | scroll-snap-type: mandatory;
661 | }
662 |
663 | .index-body{
664 | scroll-snap-type: y mandatory;
665 | height: 100vh;
666 | overflow-y: scroll;
667 | background: var(--background);
668 | }
669 |
670 | .go-to-bottom-btn{
671 | position: absolute;
672 | bottom: 20px;
673 | left: calc(50% - 20px);
674 | color: var(--secondary-color);
675 | font-size: 30px;;
676 | padding: 5px 10px;
677 | border-radius: 20px;
678 | transition: 0.1s;
679 | cursor: pointer;
680 | }
681 |
682 | .bottom-nav{
683 | margin-top: 10px;
684 | }
685 |
686 | .bottom-nav span{
687 | color: var(--secondary-color);
688 | margin: 0 5px;
689 | }
690 |
691 | .bottom-nav a{
692 | color: var(--secondary-color);
693 | font-size: 12px;
694 | }
695 |
696 | .go-to-bottom-btn:hover{
697 | color: var(--primary-color);
698 | }
699 |
700 | .random-article-dice{
701 | color: var(--secondary-color);
702 | }
703 |
704 | .random-article-dice:hover{
705 | transform: scale(1.1) rotate(360deg);
706 | transition: 0.3s;
707 | cursor: pointer;
708 | }
709 |
710 | .title-image{
711 | position: absolute;
712 | z-index: 99;
713 | color: white;
714 | top: 50px;
715 | font-size: 50px;
716 | letter-spacing: -5px;
717 | text-decoration: underline;
718 | }
719 |
720 | .index-sug-wrap{
721 | background-color: var(--background);
722 | max-height: 60vh;
723 | overflow-y: scroll;
724 | overflow-x: hidden;
725 | }
726 |
727 | .search-bar{
728 | padding: 18px;
729 | background-color: var(--background);
730 | }
731 |
732 | .sug-item{
733 | width: 100%;
734 | padding: 10px 20px;
735 | background-color: var(--background);
736 | }
737 |
738 | .sug-item:last-child{
739 | margin-bottom: 10px;
740 | }
741 |
742 | .sug-item:first-child{
743 | padding-top: 20px;
744 | }
745 |
746 | .sug-item:hover{
747 | background: var(--secondary-background);;
748 | color: var(--primary-color);
749 | transition: 0.3s;
750 | cursor: pointer;
751 | }
752 |
753 | .sug-item-img img{
754 | width: 50px;
755 | border-radius: 5px;
756 | margin-left: 20px;
757 | display: none;
758 | }
759 |
760 | .sug-item-text h1{
761 | font-size: 15px;
762 | margin-bottom: 5px;
763 | color: var(--secondary-color);
764 | font-family: var(--serif);
765 | font-weight: 900;
766 | }
767 |
768 | .sug-item-text p{
769 | font-size: 10px;
770 | line-height: 14px;
771 | color: var(--secondary-color);
772 | }
773 |
774 | .options-title{
775 | color: var(--secondary-color);
776 | font-weight: 900;
777 | letter-spacing: -1px;
778 | font-family: var(--serif);
779 | }
780 |
781 | .option-item h6{
782 | font-size: 18px;
783 | line-height: 15px;
784 | color: var(--secondary-color);
785 | margin-bottom: 15px;
786 | }
787 |
788 | .option-item span{
789 | font-size: 12px;
790 | line-height: 14px;
791 | margin-bottom: 15px;
792 | display: block;
793 | color: var(--secondary-color);
794 | }
795 |
796 | .option-item select, .css-file-ext{
797 | width: 100%;
798 | padding: 5px;
799 | border-radius: 5px;
800 | border: 1px solid var(--hairline);
801 | background-color: var(--secondary-background);
802 | color: var(--secondary-color);
803 | margin-bottom: 10px;
804 | }
805 |
806 | .options-inner{
807 | background-color: var(--background);
808 | padding: 40px;
809 | min-height: auto !important;
810 | height: auto;
811 | }
812 |
813 | .options-header{
814 | margin-bottom: 22px;
815 | }
816 |
817 | .option-item{
818 | margin-bottom: 20px;
819 | }
820 |
821 | .custom-css-wrap{
822 | display: none;
823 | }
824 |
825 | .custom-css-wrap a{
826 | font-size: 10px;
827 | color: var(--highlight);
828 | }
829 |
830 | .bookmarks-btn{
831 | border-radius: 50%;
832 | border: 2px solid var(--primary-color);
833 | padding: 5px;
834 | height: 30px;
835 | width: 30px;
836 | margin-right: 10px;
837 | color: var(--primary-color);
838 | }
839 |
840 | .bookmarks-btn:hover{
841 | background-color: var(--primary-color);
842 | color: var(--background) !important;
843 | cursor: pointer;
844 | }
845 |
846 | .bookmarks-btn i{
847 | font-size: 12px;
848 | }
849 |
850 | .bookmarks-bar{
851 | position: absolute;
852 | right: 0;
853 | top: 0;
854 | height: 100vh;
855 | width: 300px;
856 | z-index: 999;
857 | background-color: var(--background);
858 | box-shadow: var(--box-shadow-light);
859 | overflow-y: scroll;
860 | height: 100%;
861 | border-left: 1px solid var(--hairline);
862 | }
863 |
864 | a{
865 | text-decoration: none;
866 | }
867 |
868 | .bookmarks-header{
869 | padding: 20px 25px;
870 | }
871 |
872 | .bookmarks-header p{
873 | font-size: 12px;
874 | color: var(--secondary-color);
875 | line-height: 14px;
876 | margin-top: 20px;
877 | }
878 |
879 | .bookmarks-list{
880 | padding: 0 20px;
881 | }
882 |
883 | .bookmarks-item{
884 | padding: 10px 20px;
885 | cursor: pointer;
886 | justify-content: space-between;
887 | margin: 10px 0;
888 | border-radius: 5px;
889 | background-color: var(--secondary-background);
890 | }
891 |
892 | .bookmarks-item:hover{
893 | transform: scale(1.1) rotate(2deg);
894 | transition: 0.2s;
895 | }
896 |
897 | .bookmarks-item h4{
898 | font-size: 15px;
899 | color: var(--secondary-color);
900 | font-weight: 400;
901 | }
902 |
903 | .bookmarnk-404{
904 | padding: 50px;
905 | }
906 |
907 | .bookmarnk-404 img{
908 | width: 100%;
909 | }
910 |
911 | .loading-overlay{
912 | display: flex;
913 | background-color: var(--background);
914 | }
915 |
916 | .index-footer{
917 | bottom: 0;
918 | position: fixed;
919 | left: 0;
920 | width: 100%;
921 | padding-bottom: 20px;
922 | }
923 |
924 | .product-hunt-image{
925 | box-shadow: var(--box-shadow-prime);
926 | }
927 | .short-cuts-wrap{
928 | padding-top: 20px;
929 | }
930 |
931 |
932 | .key-code{
933 | background-color: var(--secondary-background);
934 | color: var(--secondary-color);
935 | padding: 3px;
936 | font-size: 15px;
937 | height: 30px;
938 | min-width: 30px;
939 | display: flex;
940 | font-weight: 900;
941 | border-radius: 5px;
942 | }
943 |
944 | .key-title{
945 | color: var(--secondary-color);
946 | margin-left: 10px;
947 | font-size: 13px;
948 | }
949 |
950 | .keyboard-shortcut-item{
951 | margin-bottom: 10px;
952 | display: flex;
953 | align-items: center;
954 | cursor: pointer;
955 | }
956 |
957 | .keyboard-shortcut-item:hover .key-code{
958 | color: var(--highlight);
959 | transform: scale(1.1);
960 | }
--------------------------------------------------------------------------------
/css/themes/auto.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/css/themes/auto.css
--------------------------------------------------------------------------------
/css/themes/dark.css:
--------------------------------------------------------------------------------
1 | :root{
2 |
3 | /* Theme Colors */
4 | --button: rgb(29, 29, 29);
5 | --highlight: #0070f3;
6 | --background: black;
7 | --secondary-background: #0e0e0e;
8 | --hairline: #3b3e3f;
9 |
10 | /* Fonts*/
11 | --primary-font: "Poppins", sans-serif;
12 | --serif: 'Playfair Display', serif;;
13 | --secondary-serif: 'Crimson Pro', serif;;
14 |
15 | /* Font Colors */
16 | --primary-color: whitesmoke;
17 | --secondary-color: #bebebe;
18 | --tertiary-color: rgb(211, 211, 211);
19 |
20 | /* Misc */
21 | --box-shadow-prime: rgba(50, 50, 93, 0.25) 0px 50px 100px -20px, rgba(0, 0, 0, 0.3) 0px 30px 60px -30px;
22 | --sidebar-width: 250px;
23 |
24 | --semi-color: rgba(19, 19, 19, 0.5)
25 | }
--------------------------------------------------------------------------------
/css/themes/light.css:
--------------------------------------------------------------------------------
1 | :root{
2 |
3 | /* Theme Colors */
4 | --button: #181818;
5 | --highlight: #0070f3;
6 | --background: #ffffff;
7 | --secondary-background: #f0f0f08e;
8 | --hairline: #d1dbe0;
9 |
10 | /* Fonts*/
11 | --primary-font: "Poppins", sans-serif;
12 | --serif: 'Playfair Display', serif;;
13 | --secondary-serif: 'Lora', serif;;
14 |
15 | /* Font Colors */
16 | --primary-color: rgb(48, 48, 48);
17 | --secondary-color: #6c757d;
18 | --tertiary-color: #365463;
19 |
20 | /* Misc */
21 | --box-shadow-prime: rgba(50, 50, 93, 0.25) 0px 50px 100px -20px, rgba(0, 0, 0, 0.3) 0px 30px 60px -30px;
22 | --box-shadow-light: rgba(17, 12, 46, 0.15) 0px 48px 100px 0px;
23 | --sidebar-width: 250px;
24 |
25 | --semi-color: rgba(250, 250, 250, 0.5);
26 | }
--------------------------------------------------------------------------------
/css/wiki-fix.css:
--------------------------------------------------------------------------------
1 | .info-content tbody{
2 | min-width: 300px;
3 | }
4 |
5 | .info-content tbody *{
6 | color: var(--secondary-color);
7 | font-size: 14px;
8 | line-height: 18px;
9 | }
10 |
11 | .info-content .infobox-title{
12 | display: none;
13 | }
14 |
15 | .info-content tr{
16 | display: flex;
17 | flex-direction: column;
18 | padding: 15px;
19 | margin: 10px;
20 | border-radius: 5px;
21 | border: 1px dashed var(--hairline);
22 | min-width: 100%;
23 | }
24 |
25 | .info-content td{
26 | width: 100%;
27 | }
28 |
29 | .info-content tbody *{
30 | text-align: left;
31 | text-decoration: none;
32 | }
33 |
34 | .info-content tbody img{
35 | width: 100%;
36 | height: auto;
37 | border-radius: 10px;
38 | }
39 |
40 | .info-content sup, .info-content .penicon, .info-content .infobox-caption{
41 | display: none;
42 | }
43 |
44 | .info-content ul{
45 | list-style: none;
46 | margin-block-start: 0;
47 | padding: 0;
48 | display: block !important;
49 | font-size: 10px;
50 | margin-top: 5px;
51 | }
52 |
53 | .info-content th *, .info-content th, .info-content .sidebar-list-title, .info-content .sidebar-list-title *{
54 | font-size: 19px;
55 | color: gray !important;
56 | font-family: var(--serif) !important;
57 | margin-bottom: 3px;
58 | }
59 |
60 |
61 | .info-content .infobox-data{
62 | font-size: 12px;
63 | line-height: 14px;
64 | margin-top: 5px
65 | }
66 |
67 | .info-content .infobox-data a{
68 | color: var(--secondary-color);
69 | text-decoration: underline;
70 | font-size: 12px;
71 | }
72 |
73 | .info-content .mbox-text-span{
74 | font-size: 12px;
75 | }
76 |
77 | .info-content .country-name{
78 | display: inline;
79 | }
80 |
81 | .info-content .ib-settlement-caption, .info-content .ib-settlement-caption-link{
82 | margin-top: 5px;
83 | font-size: 8px;
84 | }
85 |
86 | .info-content .mergedtoprow{
87 | display: none;
88 | }
89 |
90 | .mw-editsection{
91 | display: none !important;
92 | }
93 |
--------------------------------------------------------------------------------
/custom-style.md:
--------------------------------------------------------------------------------
1 | # Add your custom Theme
2 | Adding your own theme to wikifox is just simple as blinking your eyes. Follow the below step to acheive it!
3 |
4 | - Click the `options` button on the wikifox homepage
5 | - Under `Appearence`, Choose `Custom CSS`
6 | - Add the link to your hosted css file after creating it (see below)
7 | - Thats all you got it!
8 |
9 | # Template
10 | Modify this template according to your color sense!
11 |
12 | ```css
13 | :root{
14 |
15 | /* Theme Colors */
16 | --button: #181818;
17 | --highlight: #0070f3;
18 | --background: #ffffff;
19 | --secondary-background: #f0f0f08e;
20 | --hairline: #d1dbe0;
21 |
22 | /* Font Colors */
23 | --primary-color: rgb(48, 48, 48);
24 | --secondary-color: #6c757d;
25 | --tertiary-color: #365463;
26 |
27 | /* Misc */
28 | --box-shadow-prime: rgba(50, 50, 93, 0.25) 0px 50px 100px -20px, rgba(0, 0, 0, 0.3) 0px 30px 60px -30px;
29 | --box-shadow-light: rgba(17, 12, 46, 0.15) 0px 48px 100px 0px;
30 | }
31 | ```
32 | # Explaination
33 | | Variable | Description |
34 | |------------------------|-------------------------------------------------------------|
35 | | --button | The color of the buttons in the page |
36 | | --highlight | Some elements may highlight on hover, This may come in use! |
37 | | --background | Primary background of the page |
38 | | --secondary-background | Secondary elements, eg a search bar |
39 | | --hairline | Border colors |
40 | | --primary-color | Primary colors - Headings |
41 | | --secondary-color | Sub headings and content |
42 | | --tertiary-color | Rarely used in some parts (font color) |
43 | | --box-shadow-prime | Primary box shadow |
44 | | --box-shadow-light | Secondary box-shadow |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 |
23 |
24 | Wikifox - Wikipedia Re-imagined
25 |
26 |
30 |
34 |
35 |
36 |
37 |
38 |
39 |
43 |
44 |
45 |
46 |
47 |
48 |
52 |
53 |
54 |
55 |
67 |
68 |
70 |
71 |
72 |
73 |
96 |
97 |
98 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
125 |
129 |
133 |
134 |
135 |
136 |
137 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 | Wikifox is a clean and simplified version of the real Wikipedia!
153 |
154 |
155 |
156 | about
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
167 |
168 |
Appearance
169 |
Choose your preferred Theme, or create your own css theme! Pro-tip:
171 | Dark theme make people invincible!
173 |
174 | Light
175 | Dark
176 | Device
177 | Custom CSS
178 |
179 |
191 |
192 |
193 |
Language
194 | Choose your wikipedia from the endless list!
195 |
196 | Loading List..
197 |
198 |
199 |
200 |
201 |
Keyboard Shortcuts
202 |
Increase your productivity with Keyboard shortcuts!
203 |
204 |
205 |
View shortcuts
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 | Keyboard Shortcuts
216 |
217 |
222 |
223 |
224 |
225 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
263 |
264 |
265 |
--------------------------------------------------------------------------------
/js/app.js:
--------------------------------------------------------------------------------
1 | var AppComponents = {
2 | root: $("#app"),
3 | contentWrap: $(".content-wrap"),
4 | introWrap: $(".intro-block"),
5 | imageBlock: $(".image-block"),
6 | pageBlock: $(".page-block"),
7 | sideBar: $(".side-bar"),
8 | infobox: $(".info-content"),
9 | editLink: $(".edit-link"),
10 | wikiLink: $(".wiki-link")
11 | }
12 |
13 | const language = localStorage.getItem("lang") || "en"
14 | const wiki = new Wikipedia(language);
15 |
16 | var wikiPage = {
17 |
18 | getData: function (xtitle) {
19 |
20 | var title;
21 |
22 | window["wiki"] = {
23 | title: title
24 | }
25 |
26 |
27 | wiki.getSummary(xtitle).then((data) => {
28 |
29 |
30 | var data = data.data;
31 |
32 | AppComponents.introWrap.html(`
33 | ${data.title}
34 | ${data.content}
35 | Read More
36 | `)
37 |
38 | var readmoreButton = $(".summary-read-more");
39 | readmoreButton.on("click", function () {
40 |
41 | var status = $(this).attr("readmore"),
42 | abstract = $(".article-abstract");
43 |
44 | if (status === "true") {
45 | abstract.removeClass("two-line")
46 | $(this).attr("readmore", "false").html("Read Less ")
47 | }
48 | else {
49 | abstract.addClass("two-line")
50 | $(this).attr("readmore", "true").html("Read More ")
51 | }
52 | })
53 |
54 | window.wiki = {
55 | title: data.title,
56 | abstract: data.abstract
57 | }
58 |
59 | this.fetchContent(data.title);
60 |
61 | document.title = data.title + " - " + data.abstract + " - Wikifox";
62 |
63 | AppComponents.editLink.attr("href", `https://en.wikipedia.org/w/index.php?title=${data.title}&action=edit`);
64 | AppComponents.wikiLink.attr("href", `https://en.wikipedia.org/wiki/${data.title}`);
65 | appUI.setBookMarkState(data.title);
66 | })
67 |
68 | },
69 |
70 | fetchContent: function (title) {
71 |
72 | wiki.getThumbnail(title).then((data) => {
73 |
74 | if(data.status !== "failed"){
75 | AppComponents.imageBlock.html(`
76 |
77 |
78 |
`)
79 |
80 | }
81 |
82 | })
83 |
84 | wiki.getFullContent(title).then((data) => {
85 |
86 | AppComponents.pageBlock.html(`
87 |
88 | ${data.data.content}
89 |
`
90 | )
91 |
92 | $('#See_also').parent().nextAll('*').remove();
93 | $('#See_also').remove()
94 |
95 | $('#References').parent().remove()
96 | $('#External_links').parent().remove()
97 |
98 | this.generateTOC()
99 | })
100 |
101 | wiki.getInfoBox(title).then((data) => {
102 |
103 | if(data.status !== "failed"){
104 |
105 | AppComponents.infobox.append(data.content)
106 |
107 | if(data.content === undefined){
108 | AppComponents.infobox.remove()
109 | appUI.Elements.infoboxOpen.remove()
110 | }
111 |
112 | appUI.infoboxFix()
113 | }
114 | else{
115 | AppComponents.infobox.remove()
116 | }
117 |
118 | })
119 |
120 | appUI.hideLoader();
121 | },
122 |
123 | generateTOC: function () {
124 | var pageContent = $(".page-content");
125 | var headings = pageContent.find("h2, h3");
126 |
127 | var html = "";
128 |
129 | $('span').each(function () { // For each element
130 | if ($(this).text().trim() === '')
131 | $(this).remove(); // if it is empty, it removes it
132 | });
133 |
134 | for (let i = 0; i < headings.length; i++) {
135 |
136 | var text = $(headings[i]).find("span"),
137 | title = text.html(),
138 | href = text.attr("id"),
139 | level = text.parent().prop("tagName");
140 |
141 | if (title !== undefined && title !== "") {
142 | html += `
143 | <${level} class="toc-item toc-item-level-${parseInt(level.substr(1)) - 1} one-line">
144 |
145 | ${title}
146 |
147 | ${level}>
148 |
149 | `
150 | }
151 | }
152 |
153 | $(".toc-wrap").append(`
154 | ${html}
155 | `)
156 | groupList();
157 |
158 |
159 | function groupList() {
160 | var levelOne = $(".toc-item-level-1");
161 |
162 | for (let i = 0; i < levelOne.length; i++) {
163 | var item = $(levelOne[i]),
164 | itemText = safeCss(item.find("a").text().trim())
165 |
166 | item.nextUntil("h2").wrapAll(``)
167 | item.prependTo(`.item-box-${itemText}`).addClass("toc-top")
168 | }
169 |
170 | }
171 | $(".toc-wrap a").click(function () {
172 | appUI.OverlayHide();
173 | })
174 |
175 | },
176 | getPDFfile(){
177 | window.open("https://en.wikipedia.org/api/rest_v1/page/pdf/" + window.wiki.title)
178 | appUI.OverlayHide();
179 | }
180 | }
181 |
182 | function safeCss(str) {
183 | return str.replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~]/g, '').replace(/ /g, '-');
184 | }
185 |
186 | ShareThis({
187 | sharers: [ ShareThisViaTwitter, ShareThisViaReddit, ShareThisViaSpeakers, ShareThisViaFacebook, ShareThisViaEmail],
188 | selector: ".content-wrap",
189 | popoverClass: "action-hide share-this-popover"
190 | }).init();
191 |
192 | const search = pSearch = window.location.search;
193 | const urlParams = new URLSearchParams(search);
194 | const sQ = {
195 | article : urlParams.get('article'),
196 | a : urlParams.get('a'),
197 | w : urlParams.get('w'),
198 | wiki : urlParams.get('wiki'),
199 | cs: urlParams.get('cs'),
200 | }
201 |
202 | var title = sQ.article || sQ.a || sQ.w || sQ.wiki || search.substr(1) || "wikipedia"
203 | wikiPage.getData(title)
204 |
205 |
206 | if(sQ.cs === "dark"){
207 | $("#themefile").attr("href", "css/themes/dark.css")
208 | }
--------------------------------------------------------------------------------
/js/app.ui.js:
--------------------------------------------------------------------------------
1 | const appUI = {
2 |
3 | Elements: {
4 | searchInput: $('.jump-search-bar-input'),
5 | QuickSearch: $('.quick-jump-overlay'),
6 | QuickSearchPreview: $('.search-info-pv'),
7 | QuickSearchTOC: $('.toc-wrap'),
8 | QuickJumpBtn: $('.quick-jump-btn'),
9 | downloadGo: $(".download-go-button"),
10 | downloadOverlay: $(".download-overlay"),
11 | downloadButton: $(".download-pop"),
12 | contentHeader: $(".content-header"),
13 | searchSugWrap: $(".search-sug-wrap"),
14 | articelSearchInput: $(".search-input-art"),
15 | contentWrap: $(".content-wrap"),
16 | bookMarkBtn: $(".bookmark-btn"),
17 | shareGoBtn: $(".share-go-btn"),
18 | shareOverlay: $(".overlay-share"),
19 | infoboxOpen: $(".infobox-open"),
20 | infoboxClose: $(".infobox-close"),
21 | menuOpen: $(".menu-open"),
22 | menuNavig: $(".header-navig-wrap"),
23 | indexSearchBar: $(".index-search-bar")
24 | },
25 |
26 |
27 | OverlayHide: function () {
28 | $('.action-hide').fadeOut();
29 | try {
30 | this.Elements.indexSearchBar.removeClass("index-search-bar-active");
31 | } catch { }
32 | },
33 |
34 | hideLoader: function () {
35 | $(".loading-overlay").fadeOut();
36 | },
37 |
38 | QuickSearch: function () {
39 | this.Elements.QuickSearch.fadeIn(200).css('display', 'flex');
40 | this.Elements.QuickSearchPreview.show();
41 | this.Elements.QuickSearchTOC.hide();
42 | },
43 |
44 | DownloadPopup: function () {
45 | appUI.Elements.downloadOverlay.fadeIn().css('display', 'flex');
46 | },
47 |
48 | infoboxFix: function () {
49 |
50 |
51 | var removeItems = [
52 | $($(".infobox-image")[1]).parent(),
53 | //$(".reference").parent().parent(),
54 | $(".sidebar-title-with-pretitle").parent(),
55 | $(".sidebar-pretitle").parent(),
56 | $(".navbar-mini").parent().parent(),
57 | $(".infobox-subheader").parent(),
58 | ]
59 |
60 | for (let i = 0; i < removeItems.length; i++) {
61 | $(removeItems[i]).remove();
62 | }
63 |
64 | $("tbody * , page-content *").removeAttr("style")
65 |
66 | var barRight = $('.bar-right');
67 |
68 | if (!barRight.html().trim()) {
69 | barRight.remove();
70 | }
71 |
72 |
73 | $('tbody td').each(function () {
74 | if ($(this).text().trim() === '')
75 | $(this).parent().remove();
76 |
77 | $('tbody').each(function () {
78 | if ($(this).text().trim() === '')
79 | $(this).parent().remove();
80 | })
81 | });
82 |
83 | $(".info-content tr:empty").remove();
84 |
85 | $("tbody a").click(function () {
86 |
87 | var href = $(this).attr("href");
88 |
89 | if (href.startsWith("/wiki")) {
90 |
91 | var articleTitle = href.split("/");
92 | $(this).attr("href", "?wiki=" + articleTitle[articleTitle.length - 1]);
93 | }
94 |
95 | });
96 |
97 | setTimeout(function () {
98 | links = barRight.find('a');
99 |
100 | links.each(function () {
101 | var href = $(this).attr("href");
102 |
103 | if (href.startsWith("/wiki")) {
104 | var articleTitle = href.split("/");
105 | $(this).attr("href", "?wiki=" + articleTitle[articleTitle.length - 1]);
106 | }
107 | })
108 | }, 1000);
109 |
110 | },
111 |
112 | searchSuggessionRender: function (data) {
113 |
114 | var resultDataArr = Object.values(data.data.results);
115 |
116 | const sugs = Object.values(resultDataArr).map((item, index) => `
117 |
118 |
119 |
120 |
${item.title}
121 | ${item.snippet}
122 |
123 |
124 |
125 |
126 |
127 |
128 | `)
129 |
130 | this.Elements.searchSugWrap.html(`${sugs.join('')}
`);
131 |
132 |
133 | $(".wikilink").on("click", function () {
134 | var x = $(this).attr("wikititle");
135 | window.location.href = "?wiki=" + x;
136 | });
137 | },
138 |
139 | bookMarkArticle: function (title) {
140 | var bookMark = localStorage.getItem("bookmarks") || JSON.stringify([])
141 | var ParsedbookMark = JSON.parse(bookMark);
142 |
143 | if (ParsedbookMark.includes(title)) {
144 | ParsedbookMark.splice(ParsedbookMark.indexOf(title), 1);
145 | }
146 | else {
147 | ParsedbookMark.push(title);
148 | }
149 |
150 | localStorage.setItem("bookmarks", JSON.stringify(ParsedbookMark));
151 | this.setBookMarkState(title);
152 | },
153 |
154 |
155 |
156 | setBookMarkState: function (title) {
157 | var bookMark = localStorage.getItem("bookmarks") || JSON.stringify([]);
158 | var ParsedbookMark = JSON.parse(bookMark);
159 |
160 |
161 | var bookMarkBtn = this.Elements.bookMarkBtn;
162 |
163 | if (ParsedbookMark.includes(title)) {
164 |
165 | window.wiki.bookMarkArticle = true;
166 | bookMarkBtn.find("i").removeClass("bi-heart").addClass("bi-heart-fill");
167 | bookMarkBtn.attr("title", "Remove from Bookmarks");
168 |
169 | }
170 | else {
171 | window.wiki.bookMarkArticle = false;
172 | bookMarkBtn.find("i").removeClass("bi-heart-fill").addClass("bi-heart");
173 | bookMarkBtn.attr("title", "Add to Bookmarks");
174 | }
175 | },
176 |
177 | menuToggle: function () {
178 |
179 | var menuBtn = appUI.Elements.menuOpen, menuStatus = menuBtn.attr("open_s"), menuNavig = appUI.Elements.menuNavig, logotext = $(".logo-text");
180 |
181 | if (menuStatus === "true") {
182 |
183 | logotext.fadeIn();
184 | menuBtn.attr("open_s", "false");
185 | menuNavig.fadeOut();
186 | menuBtn.find("i").removeClass("bi-x").addClass("bi-list");
187 |
188 | }
189 | else {
190 |
191 | logotext.fadeOut()
192 | menuBtn.attr("open_s", "true");
193 | menuNavig.fadeIn().css("display", "flex");
194 | menuBtn.find("i").removeClass("bi-list").addClass("bi-x");
195 |
196 | }
197 | },
198 |
199 | OpenDownloadPopup: function () {
200 | appUI.Elements.downloadOverlay.fadeIn().css('display', 'flex');
201 | }
202 |
203 | }
204 |
205 | appUI.Elements.searchInput.on("input", (thisx) => {
206 |
207 | appUI.Elements.QuickSearchPreview.hide();
208 | appUI.Elements.QuickSearchTOC.show();
209 |
210 | var val = $(thisx.target).val();
211 | $(".toc-wrap h3, .toc-wrap h2").each(function () {
212 | $(this).toggle($(this).text().toLowerCase().includes(val));
213 | });
214 | });
215 |
216 | $(document).keydown(function (e) {
217 | var inputFocused = $("input[type=text]").is(":focus");
218 |
219 | if (!inputFocused) {
220 | if (e.which === 81 && e.ctrlKey) {
221 | appUI.QuickSearch()
222 | }
223 | else if (e.which === 27) {
224 | appUI.OverlayHide();
225 | }
226 | else if (e.which === 75) {
227 | $(".keyboard-overlay").fadeIn().css("display", "flex");
228 | }
229 | }
230 | });
231 |
232 | appUI.Elements.downloadGo.on("click", function () {
233 | wikiPage.getPDFfile()
234 | })
235 |
236 | appUI.Elements.downloadButton.on("click", appUI.DownloadPopup)
237 |
238 | appUI.Elements.contentWrap.scroll(function () {
239 |
240 | var x = $(".info-content")
241 | appUI.OverlayHide();
242 | var width = document.body.clientWidth;
243 |
244 | if (width > 940) {
245 | if ($(this).scrollTop() > 30) {
246 | appUI.Elements.contentHeader.fadeIn().css('display', 'flex');
247 | x.addClass("pa-t-70")
248 | } else {
249 | appUI.Elements.contentHeader.fadeOut();
250 | x.removeClass("pa-t-70")
251 | }
252 | }
253 |
254 | var winScroll = $(this).scrollTop()
255 | var height = $(this).prop('scrollHeight') - $(this).prop('clientHeight')
256 | var scrolled = (winScroll / height) * 100;
257 |
258 | $(".scroll-thumb").css("min-width", scrolled + "%");
259 |
260 | });
261 |
262 | appUI.Elements.articelSearchInput.on("input", function () {
263 | var x = $(this).val();
264 | wiki.searchArticles(x).then((data) => {
265 |
266 | appUI.searchSuggessionRender(data);
267 |
268 | var resultDataArr = Object.values(data.data.results);
269 | for (let i = 0; i < resultDataArr.length; i++) {
270 | var title = resultDataArr[i].title,
271 | elem = $(`.image-${safeCss(title)}`);
272 |
273 | setImage(elem, title)
274 | }
275 |
276 | function setImage(elem, title) {
277 | wiki.getThumbnail(title, 100).then((idata) => {
278 |
279 | if (idata.data.image !== undefined) {
280 | elem.attr("src", idata.data.image);
281 | elem.parent().css("display", "block");
282 | }
283 |
284 | })
285 |
286 | }
287 | })
288 | });
289 |
290 | appUI.Elements.QuickJumpBtn.on("click", function () {
291 | appUI.QuickSearch()
292 | })
293 |
294 | $(document).on('click', function (e) {
295 | if ($(e.target).closest(".action-x").length === 0) {
296 | $(".action-hide").hide();
297 | }
298 | });
299 |
300 | appUI.Elements.bookMarkBtn.on("click", function () {
301 | appUI.bookMarkArticle(window.wiki.title);
302 | })
303 |
304 | appUI.Elements.shareGoBtn.on("click", function () {
305 | appUI.Elements.shareOverlay.fadeIn().css("display", "flex");
306 | })
307 |
308 | appUI.Elements.infoboxOpen.on("click", function () {
309 | AppComponents.infobox.fadeIn();
310 | })
311 |
312 | appUI.Elements.infoboxClose.on("click", function () {
313 | AppComponents.infobox.fadeOut();
314 | })
315 |
316 | appUI.Elements.menuOpen.on("click", appUI.menuToggle)
317 |
318 | Theme.setTheme()
319 |
320 |
--------------------------------------------------------------------------------
/js/index.js:
--------------------------------------------------------------------------------
1 | const language = localStorage.getItem("lang") || "en"
2 | const wiki = new Wikipedia(language);
3 |
4 | var AppComponents = {
5 | SuggessionWrap: $(".index-sug-wrap"),
6 | SearchBar: $(".search-index-input"),
7 | RandomOpen: $(".random-open"),
8 | LangList: $(".lang-list"),
9 | themeList: $(".theme-list"),
10 | cssFileInputWrap: $(".custom-css-wrap"),
11 | cssFileInput: $(".css-file-ext"),
12 | optionOverlay: $(".options-overlay"),
13 | optionButton: $(".options-btn"),
14 | bookMarkList: $(".bookmarks-list"),
15 | bookMarksOpen: $(".bookmarks-btn"),
16 | bookmarksOverlay: $(".bookmarks-overlay"),
17 | githubBBtutton: $(".go-to-bottom-btn")
18 | }
19 | const Search = {
20 |
21 | renderSearchSugs: function (data) {
22 |
23 | var resultDataArr = Object.values(data.data.results);
24 |
25 | const sugs = Object.values(resultDataArr).map((item, index) => `
26 |
27 |
28 |
29 |
${item.title}
30 |
${item.snippet}
31 |
32 |
33 |
34 |
35 |
36 |
37 | `)
38 |
39 | $(".index-sug-wrap").show();
40 | AppComponents.githubBBtutton.hide();
41 | AppComponents.SuggessionWrap.html(`${sugs.join('')}`);
42 |
43 |
44 | $(".wikilink").on("click", function () {
45 | var x = $(this).attr("wikititle");
46 | window.location.href = "wiki.html?" + x;
47 | });
48 |
49 | $(document).on('click', function (e) {
50 | if ($(e.target).closest(".action-x").length === 0) {
51 | $(".index-sug-wrap").hide();
52 | }
53 | });
54 | },
55 |
56 | blurSearchBar: function () {
57 | $(".index-sug-wrap").hide()
58 | AppComponents.SuggessionWrap.html(``);
59 | AppComponents.SearchBar.val(``);
60 | AppComponents.SearchBar.blur(``);
61 | AppComponents.githubBBtutton.show();
62 | }
63 | }
64 |
65 | const commonFuctions = {
66 | randomArticleOpen: function () {
67 | wiki.getRandomArticle().then(data => {
68 | var title = data.data.title
69 | window.location.href = "wiki.html?" + title;
70 | })
71 | }
72 | }
73 |
74 | const Options = {
75 | loadWikiList: function(){
76 |
77 | var url = "src/assets/resources/wikilist.json"
78 |
79 | fetch(url)
80 | .then(function (response) {
81 | return response.json();
82 | })
83 | .then(function (json) {
84 |
85 | const list = Object.values(json).map(item => `
86 | ${item.title} ( ${item.name} )
87 | `)
88 | AppComponents.LangList.html(list.join(" "))
89 |
90 | var language = localStorage.getItem("lang");
91 |
92 | try {
93 | document.querySelector(`.lang-list option[value="${language}"]`).selected = true
94 | } catch (error) {}
95 | })
96 |
97 | this.setBookmarksList();
98 | },
99 |
100 | setBookmarksList: function(){
101 |
102 | var x = JSON.parse(localStorage.getItem("bookmarks")) || false
103 |
104 | if(x.length !== 0){
105 | AppComponents.bookMarkList.html("")
106 | for (let i = 0; i < x.length; i ++){
107 | var title = x[i]
108 | AppComponents.bookMarkList.append(
109 | `
110 |
111 |
112 |
${title}
113 |
114 |
115 | `
116 | )
117 | }
118 | }
119 | else{
120 | AppComponents.bookMarkList.html(`
121 |
122 |
123 |
124 | `)
125 | }
126 |
127 | }
128 | }
129 |
130 | AppComponents.SearchBar.on("input", function () {
131 |
132 | var x = $(this).val();
133 | $(".index-search-bar").addClass("index-search-bar-active");
134 |
135 |
136 | try {
137 | document.title = "Search Results for \"" + x +"\" - Wikifox"
138 | wiki.searchArticles(x).then((data) => {
139 |
140 | Search.renderSearchSugs(data);
141 |
142 | var resultDataArr = Object.values(data.data.results);
143 |
144 | for (let i = 0; i < resultDataArr.length; i++) {
145 | var title = resultDataArr[i].title,
146 | elem = $(`.image-${safeCss(title)}`);
147 |
148 | setImage(elem, title)
149 | }
150 |
151 | function setImage(elem, title) {
152 | wiki.getThumbnail(title, 100).then((idata) => {
153 |
154 | if (idata.data.image !== undefined) {
155 | elem.attr("src", idata.data.image);
156 | elem.css("display", "block");
157 | }
158 |
159 | })
160 |
161 | }
162 | })
163 |
164 | } catch (error) {
165 | Search.blurSearchBar()
166 | }
167 | });
168 |
169 | function safeCss(str) {
170 | return str.replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~]/g, '').replace(/ /g, '-');
171 | }
172 |
173 | $(document).keydown(function (e) {
174 | if (e.which === 27) {
175 | Search.blurSearchBar();
176 | }
177 | });
178 |
179 |
180 | AppComponents.RandomOpen.on("click", commonFuctions.randomArticleOpen)
181 |
182 | AppComponents.bookMarksOpen.on("click", function(){
183 | AppComponents.bookmarksOverlay.fadeIn().css("display", "flex")
184 | })
185 |
186 | AppComponents.optionButton.on("click", function(){
187 | AppComponents.optionOverlay.fadeIn().css("display", "flex")
188 | })
189 |
190 | AppComponents.themeList.on("change", (t)=> {
191 | var theme = $(t.target).val();
192 |
193 | if (theme === "dark" || theme === "light" || theme === "auto"){
194 | localStorage.setItem("cs", theme)
195 | AppComponents.cssFileInputWrap.hide()
196 | }
197 | else{
198 | AppComponents.cssFileInputWrap.show()
199 | }
200 |
201 | AppComponents.cssFileInput.on("input", function(t){
202 | var val = $(t.target).val()
203 | localStorage.setItem("cs", val)
204 | Theme.setTheme()
205 |
206 | })
207 |
208 | Theme.setTheme()
209 | })
210 |
211 | AppComponents.LangList.on("change", (t)=> {
212 | var lang = $(t.target).val();
213 | localStorage.setItem("lang", lang)
214 | })
215 |
216 | $(window).on("navigate", function (event, data) {
217 | var direction = data.state.direction;
218 | if (direction == 'back') {
219 | Search.blurSearchBar()
220 | }
221 | });
222 |
223 | Options.loadWikiList()
224 |
225 | const search = pSearch = window.location.search;
226 | const urlParams = new URLSearchParams(search);
227 | var searchq = urlParams.get('search')
228 |
229 | if(searchq){
230 | AppComponents.SearchBar.val(searchq)
231 | AppComponents.SearchBar.trigger("input")
232 | }
--------------------------------------------------------------------------------
/js/keyboard.js:
--------------------------------------------------------------------------------
1 | const keyPairs = {
2 | keys :{
3 | "b": {
4 | selector: '[class="option-icon bookmark-btn"]',
5 | description: "Bookmark article",
6 | key: "b"
7 | },
8 | "d":{
9 | selector: ".download-button",
10 | description: "Download the article",
11 | key: "d"
12 | },
13 | "e": {
14 | selector: ".edit-link",
15 | description: "Edit page on Wikipedia",
16 | key: "e"
17 | },
18 | "h": {
19 | selector: ".goHomeBtn",
20 | description: "Open home in new tab",
21 | key: "h"
22 | },
23 | "p": {
24 | selector: ".download-button",
25 | description: "Download the article",
26 | key: "p"
27 | },
28 | "s": {
29 | selector: ".share-go-btn",
30 | description: "Share articles",
31 | key: "s"
32 | },
33 | "q": {
34 | selector: ".quick-jump-btn",
35 | description: "Quick Jump",
36 | key: "q"
37 | },
38 | "w": {
39 | selector: ".wiki-link",
40 | description: "Open in Wikipedia",
41 | key: "w"
42 | },
43 | "k": {
44 | selector: ".keyboard-btn",
45 | description: "Keyboard Shortcuts",
46 | key: "k"
47 | },
48 | "esc": {
49 | selector: "",
50 | description: "Close pop-ups",
51 | key: "esc"
52 | },
53 | },
54 | links: ["e", "w", "h"]
55 | }
56 |
57 |
58 | $(document).ready(function() {
59 |
60 | var listenKeys = Object.keys(keyPairs.keys).join(",")
61 | hotkeys(listenKeys, function (event, handler){
62 |
63 | if(keyPairs.links.includes(handler.key)){
64 | var inputFocused = $("input[type=text]").is(":focus");
65 |
66 | if(!inputFocused){
67 | var link = $(keyPairs.keys[handler.key].selector).attr("href")
68 | if(link){
69 | window.open(link)
70 | }
71 | }
72 |
73 | return;
74 | }
75 |
76 | $(keyPairs.keys[handler.key].selector).trigger("click");
77 | });
78 |
79 | var shortCutItems = Object.values(keyPairs.keys).map(item => `
80 |
81 |
82 |
83 | ${item.key}
84 |
85 |
86 |
87 | ${item.description}
88 |
89 |
90 | `)
91 |
92 | $(".short-cuts-table").html(shortCutItems.join(""))
93 | });
94 |
95 | $(".keyboard-btn").click(function(){
96 | $(".keyboard-overlay").fadeIn().css("display","flex");
97 | })
98 |
--------------------------------------------------------------------------------
/js/share.js:
--------------------------------------------------------------------------------
1 | $(".share-btn").click(function(){
2 | var via = $(this).attr("via");
3 | var body = window.wiki.title + ", " +window.wiki.abstract + " on Wikifox!";
4 | Share(via, body);
5 | })
6 |
7 | function Share(via, body, url = location.href) {
8 | if(via === "twitter"){
9 | window.open('http://twitter.com/share?url='+encodeURIComponent(url)+'&text='+encodeURIComponent(body), '', 'left=0,top=0,width=550,height=450,personalbar=0,toolbar=0,scrollbars=0,resizable=0');
10 | }
11 | else if(via === "facebook"){
12 | window.open('https://www.facebook.com/sharer/sharer.php?u= '+encodeURIComponent(url) + ""e=" + body, '', 'left=0,top=0,width=600,height=400,personalbar=0,toolbar=0,scrollbars=0,resizable=0');
13 | }
14 | else if(via === "reddit"){
15 | window.open('http://www.reddit.com/submit?url='+encodeURIComponent(url)+'&title='+encodeURIComponent(body), '', 'left=0,top=0,width=600,height=400,personalbar=0,toolbar=0,scrollbars=0,resizable=0');
16 | }
17 | else if(via === "copy"){
18 | var dummy = document.createElement("input");
19 | document.body.appendChild(dummy);
20 | dummy.setAttribute('value', url);
21 | dummy.select();
22 | document.execCommand("copy");
23 | document.body.removeChild(dummy);
24 | }
25 | else if(via === "email"){
26 | window.open('mailto:?subject='+encodeURIComponent(body)+'&body='+encodeURIComponent(url), '', 'left=0,top=0,width=600,height=400,personalbar=0,toolbar=0,scrollbars=0,resizable=0');
27 | }
28 | appUI.OverlayHide();
29 | }
--------------------------------------------------------------------------------
/js/themes.js:
--------------------------------------------------------------------------------
1 | const Theme = {
2 | setTheme: function(){
3 | var theme = localStorage.getItem("cs") ?? "auto"
4 |
5 |
6 | if(theme === "auto"){
7 | if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
8 | theme= "dark"
9 | }
10 | else{
11 | theme = "light"
12 | }
13 | }
14 |
15 | if(theme === "light" || theme === "dark" || theme === "auto"){
16 | selectOption(theme)
17 | theme = `css/themes/${theme}.css`;
18 | }
19 | else{
20 | selectOption("css")
21 | }
22 |
23 | this.importCss(theme)
24 |
25 | function selectOption(value){
26 | try {
27 | document.querySelector(`.theme-list option[value="${value}"]`).selected = true
28 | } catch {}
29 | }
30 |
31 | },
32 | importCss: function(fileurl){
33 | $("head").append(` `)
34 | }
35 | }
--------------------------------------------------------------------------------
/src/assets/icons/favicon-black.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/favicon-violet.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
10 |
38 |
40 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/src/assets/icons/favicon-white.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/icons/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/icons/icon.png
--------------------------------------------------------------------------------
/src/assets/images/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/1.png
--------------------------------------------------------------------------------
/src/assets/images/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/2.png
--------------------------------------------------------------------------------
/src/assets/images/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/3.png
--------------------------------------------------------------------------------
/src/assets/images/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/4.png
--------------------------------------------------------------------------------
/src/assets/images/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/5.png
--------------------------------------------------------------------------------
/src/assets/images/GitHub-Mark-Light-32px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/GitHub-Mark-Light-32px.png
--------------------------------------------------------------------------------
/src/assets/images/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/banner.png
--------------------------------------------------------------------------------
/src/assets/images/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/download.png
--------------------------------------------------------------------------------
/src/assets/images/inky-search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/inky-search.png
--------------------------------------------------------------------------------
/src/assets/images/not-found.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/not-found.png
--------------------------------------------------------------------------------
/src/assets/images/share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wikifox/wikifox/2e310d5bec2f8b1a85b4f7d92b50de3c8c8e6099/src/assets/images/share.png
--------------------------------------------------------------------------------
/src/assets/resources/wikilist.json:
--------------------------------------------------------------------------------
1 | {
2 | "English": {
3 | "code": "en",
4 | "name": "English Wikipedia",
5 | "title": "English"
6 | },
7 | "Simple English": {
8 | "code": "simple",
9 | "name": "Simple English Wikipedia",
10 | "title": "Simple English"
11 | },
12 | "French": {
13 | "code": "fr",
14 | "name": "Wikipédia en français",
15 | "title": "French"
16 | },
17 | "German": {
18 | "code": "de",
19 | "name": "Deutschsprachige Wikipedia",
20 | "title": "German"
21 | },
22 | "Spanish": {
23 | "code": "es",
24 | "name": "Wikipedia en español",
25 | "title": "Spanish"
26 | },
27 | "Japanese": {
28 | "code": "ja",
29 | "name": "ウィキペディア 日本語版",
30 | "title": "Japanese"
31 | },
32 | "Russian": {
33 | "code": "ru",
34 | "name": "Русская Википедия",
35 | "title": "Russian"
36 | },
37 | "Portuguese": {
38 | "code": "pt",
39 | "name": "Wikipédia em português",
40 | "title": "Portuguese"
41 | },
42 | "Chinese (written vernacular Chinese, a form of Mandarin)": {
43 | "code": "zh",
44 | "name": "中文維基百科",
45 | "title": "Chinese"
46 | },
47 | "Italian": {
48 | "code": "it",
49 | "name": "Wikipedia in italiano",
50 | "title": "Italian"
51 | },
52 | "Persian": {
53 | "code": "fa",
54 | "name": "ویکیپدیای فارسی",
55 | "title": "Persian"
56 | },
57 | "Arabic": {
58 | "code": "ar",
59 | "name": "ويكيبيديا العربية",
60 | "title": "Arabic"
61 | },
62 | "Polish": {
63 | "code": "pl",
64 | "name": "Polskojęzyczna Wikipedia",
65 | "title": "Polish"
66 | },
67 | "Dutch": {
68 | "code": "nl",
69 | "name": "Nederlandstalige Wikipedia",
70 | "title": "Dutch"
71 | },
72 | "Ukrainian": {
73 | "code": "uk",
74 | "name": "Українська Вікіпедія",
75 | "title": "Ukrainian"
76 | },
77 | "Indonesian": {
78 | "code": "id",
79 | "name": "Wikipedia bahasa Indonesia",
80 | "title": "Indonesian"
81 | },
82 | "Hebrew": {
83 | "code": "he",
84 | "name": "ויקיפדיה העברית",
85 | "title": "Hebrew"
86 | },
87 | "Vietnamese": {
88 | "code": "vi",
89 | "name": "Wikipedia tiếng Việt",
90 | "title": "Vietnamese"
91 | },
92 | "Turkish": {
93 | "code": "tr",
94 | "name": "Türkçe Vikipedi",
95 | "title": "Turkish"
96 | },
97 | "Swedish": {
98 | "code": "sv",
99 | "name": "Svenskspråkiga Wikipedia",
100 | "title": "Swedish"
101 | },
102 | "Korean": {
103 | "code": "ko",
104 | "name": "한국어 위키백과",
105 | "title": "Korean"
106 | },
107 | "Czech": {
108 | "code": "cs",
109 | "name": "Česká Wikipedie",
110 | "title": "Czech"
111 | },
112 | "Finnish": {
113 | "code": "fi",
114 | "name": "Suomenkielinen Wikipedia",
115 | "title": "Finnish"
116 | },
117 | "Hungarian": {
118 | "code": "hu",
119 | "name": "Magyar Wikipédia",
120 | "title": "Hungarian"
121 | },
122 | "Catalan": {
123 | "code": "ca",
124 | "name": "Viquipèdia en català",
125 | "title": "Catalan"
126 | },
127 | "Hindi": {
128 | "code": "hi",
129 | "name": "हिन्दी विकिपीडिया",
130 | "title": "Hindi"
131 | },
132 | "Norwegian (Bokmål)": {
133 | "code": "no",
134 | "name": "Bokmål Wikipedia",
135 | "title": "Norwegian (Bokmål)"
136 | },
137 | "Bengali": {
138 | "code": "bn",
139 | "name": "বাংলা উইকিপিডিয়া",
140 | "title": "Bengali"
141 | },
142 | "Thai": {
143 | "code": "th",
144 | "name": "วิกิพีเดียภาษาไทย",
145 | "title": "Thai"
146 | },
147 | "Greek": {
148 | "code": "el",
149 | "name": "Ελληνική Βικιπαίδεια",
150 | "title": "Greek"
151 | },
152 | "Romanian": {
153 | "code": "ro",
154 | "name": "Wikipedia în română",
155 | "title": "Romanian"
156 | },
157 | "Danish": {
158 | "code": "da",
159 | "name": "Dansk Wikipedia",
160 | "title": "Danish"
161 | },
162 | "Azerbaijani": {
163 | "code": "az",
164 | "name": "Azərbaycanca Vikipediya",
165 | "title": "Azerbaijani"
166 | },
167 | "Serbian": {
168 | "code": "sr",
169 | "name": "Википедија на српском језику",
170 | "title": "Serbian"
171 | },
172 | "Bulgarian": {
173 | "code": "bg",
174 | "name": "Българоезична Уикипедия",
175 | "title": "Bulgarian"
176 | },
177 | "Malay": {
178 | "code": "ms",
179 | "name": "Wikipedia Bahasa Melayu",
180 | "title": "Malay"
181 | },
182 | "Estonian": {
183 | "code": "et",
184 | "name": "Eestikeelne Vikipeedia",
185 | "title": "Estonian"
186 | },
187 | "Croatian": {
188 | "code": "hr",
189 | "name": "Hrvatska Wikipedija",
190 | "title": "Croatian"
191 | },
192 | "Armenian": {
193 | "code": "hy",
194 | "name": "Հայերեն Վիքիպեդիա",
195 | "title": "Armenian"
196 | },
197 | "Slovak": {
198 | "code": "sk",
199 | "name": "Slovenská Wikipedia",
200 | "title": "Slovak"
201 | },
202 | "Malayalam": {
203 | "code": "ml",
204 | "name": "Malayalam Wikipedia",
205 | "title": "Malayalam"
206 | },
207 | "Basque": {
208 | "code": "eu",
209 | "name": "Euskarazko Wikipedia",
210 | "title": "Basque"
211 | },
212 | "Cantonese": {
213 | "code": "zh-yue",
214 | "name": "Cantonese Wikipedia",
215 | "title": "Cantonese"
216 | },
217 | "Slovene": {
218 | "code": "sl",
219 | "name": "Slovenska Wikipedija",
220 | "title": "Slovene"
221 | },
222 | "Esperanto": {
223 | "code": "eo",
224 | "name": "Vikipedio en Esperanto",
225 | "title": "Esperanto"
226 | },
227 | "Lithuanian": {
228 | "code": "lt",
229 | "name": "Lietuviškoji Vikipedija",
230 | "title": "Lithuanian"
231 | },
232 | "Tamil": {
233 | "code": "ta",
234 | "name": "தமிழ் விக்கிபீடியா",
235 | "title": "Tamil"
236 | },
237 | "Albanian": {
238 | "code": "sq",
239 | "name": "Wikipedia shqip",
240 | "title": "Albanian"
241 | },
242 | "Latvian": {
243 | "code": "lv",
244 | "name": "Vikipēdija latviešu valodā",
245 | "title": "Latvian"
246 | },
247 | "Belarusian": {
248 | "code": "be",
249 | "name": "Беларуская Вікіпедыя",
250 | "title": "Belarusian"
251 | },
252 | "Galician": {
253 | "code": "gl",
254 | "name": "Galipedia",
255 | "title": "Galician"
256 | },
257 | "Georgian": {
258 | "code": "ka",
259 | "name": "ქართული ვიკიპედია",
260 | "title": "Georgian"
261 | },
262 | "Urdu": {
263 | "code": "ur",
264 | "name": "اردو ویکیپیڈیا",
265 | "title": "Urdu"
266 | },
267 | "Kazakh": {
268 | "code": "kk",
269 | "name": "Қазақша Уикипедия",
270 | "title": "Kazakh"
271 | },
272 | "Macedonian": {
273 | "code": "mk",
274 | "name": "Македонска Википедија",
275 | "title": "Macedonian"
276 | },
277 | "Uzbek": {
278 | "code": "uz",
279 | "name": "Oʻzbekcha Vikipediya",
280 | "title": "Uzbek"
281 | },
282 | "Telugu": {
283 | "code": "te",
284 | "name": "తెలుగు వికీపీడియా",
285 | "title": "Telugu"
286 | },
287 | "Marathi": {
288 | "code": "mr",
289 | "name": "Marathi Wikipedia",
290 | "title": "Marathi"
291 | },
292 | "Serbo-Croatian": {
293 | "code": "sh",
294 | "name": "Srpskohrvatska Wikipedija",
295 | "title": "Serbo-Croatian"
296 | },
297 | "Egyptian Arabic": {
298 | "code": "arz",
299 | "name": "ويكيپيديا مصرى",
300 | "title": "Egyptian Arabic"
301 | },
302 | "Afrikaans": {
303 | "code": "af",
304 | "name": "Afrikaanse Wikipedia",
305 | "title": "Afrikaans"
306 | },
307 | "Bosnian": {
308 | "code": "bs",
309 | "name": "Wikipedia na bosanskom jeziku",
310 | "title": "Bosnian"
311 | },
312 | "Cebuano": {
313 | "code": "ceb",
314 | "name": "Wikipedya sa Sinugboanon",
315 | "title": "Cebuano"
316 | },
317 | "Kannada": {
318 | "code": "kn",
319 | "name": "ಕನ್ನಡ ವಿಕಿಪೀಡಿಯ",
320 | "title": "Kannada"
321 | },
322 | "Hausa": {
323 | "code": "ha",
324 | "name": "Hausa Wikipedia",
325 | "title": "Hausa"
326 | },
327 | "Norwegian (Nynorsk)": {
328 | "code": "nn",
329 | "name": "Nynorsk Wikipedia",
330 | "title": "Norwegian (Nynorsk)"
331 | },
332 | "Icelandic": {
333 | "code": "is",
334 | "name": "Icelandic Wikipedia",
335 | "title": "Icelandic"
336 | },
337 | "Latin": {
338 | "code": "la",
339 | "name": "Vicipaedia Latina",
340 | "title": "Latin"
341 | },
342 | "Burmese": {
343 | "code": "my",
344 | "name": "Burmese Wikipedia",
345 | "title": "Burmese"
346 | },
347 | "Swahili": {
348 | "code": "sw",
349 | "name": "Wikipedia ya Kiswahili",
350 | "title": "Swahili"
351 | },
352 | "Asturian": {
353 | "code": "ast",
354 | "name": "Asturian Wikipedia",
355 | "title": "Asturian"
356 | },
357 | "Tagalog": {
358 | "code": "tl",
359 | "name": "Tagalog Wikipedia",
360 | "title": "Tagalog"
361 | },
362 | "Belarusian (Taraškievica)": {
363 | "code": "be-tarask",
364 | "name": "Беларуская Вікіпэдыя",
365 | "title": "Belarusian (Taraškievica)"
366 | },
367 | "Javanese": {
368 | "code": "jv",
369 | "name": "Javanese Wikipedia",
370 | "title": "Javanese"
371 | },
372 | "Bashkir": {
373 | "code": "ba",
374 | "name": "Bashkir Wikipedia",
375 | "title": "Bashkir"
376 | },
377 | "Assamese": {
378 | "code": "as",
379 | "name": "অসমীয়া ৱিকিপিডিয়া",
380 | "title": "Assamese"
381 | },
382 | "Kurdish (Sorani)": {
383 | "code": "ckb",
384 | "name": "ویکیپیدیای کوردی",
385 | "title": "Kurdish (Sorani)"
386 | },
387 | "Iran Azerbaijani": {
388 | "code": "azb",
389 | "name": "تورکجه ویکیپدیا",
390 | "title": "Iran Azerbaijani"
391 | },
392 | "Sinhalese": {
393 | "code": "si",
394 | "name": "Sinhalese Wikipedia",
395 | "title": "Sinhalese"
396 | },
397 | "Welsh": {
398 | "code": "cy",
399 | "name": "Welsh Wikipedia",
400 | "title": "Welsh"
401 | },
402 | "Scots": {
403 | "code": "sco",
404 | "name": "Scots Wikipedia",
405 | "title": "Scots"
406 | },
407 | "Nepali": {
408 | "code": "ne",
409 | "name": "Nepali Wikipedia",
410 | "title": "Nepali"
411 | },
412 | "Breton": {
413 | "code": "br",
414 | "name": "Breton Wikipedia",
415 | "title": "Breton"
416 | },
417 | "Tatar": {
418 | "code": "tt",
419 | "name": "Tatar Wikipedia",
420 | "title": "Tatar"
421 | },
422 | "Alemannic": {
423 | "code": "als",
424 | "name": "Alemannic Wikipedia",
425 | "title": "Alemannic"
426 | },
427 | "Irish": {
428 | "code": "ga",
429 | "name": "Vicipéid na Gaeilge",
430 | "title": "Irish"
431 | },
432 | "Southern Min /Min Nan": {
433 | "code": "zh-min-nan",
434 | "name": "Min Nan Wikipedia",
435 | "title": "Southern Min /Min Nan"
436 | },
437 | "Occitan": {
438 | "code": "oc",
439 | "name": "Occitan Wikipedia",
440 | "title": "Occitan"
441 | },
442 | "Mongolian": {
443 | "code": "mn",
444 | "name": "Монгол Википедиа",
445 | "title": "Mongolian"
446 | },
447 | "Somali": {
448 | "code": "so",
449 | "name": "Somali Wikipedia",
450 | "title": "Somali"
451 | },
452 | "Gujarati": {
453 | "code": "gu",
454 | "name": "Gujarati Wikipedia",
455 | "title": "Gujarati"
456 | },
457 | "Eastern Punjabi": {
458 | "code": "pa",
459 | "name": "Eastern Punjabi Wikipedia",
460 | "title": "Eastern Punjabi"
461 | },
462 | "Kyrgyz": {
463 | "code": "ky",
464 | "name": "Kyrgyz Wikipedia",
465 | "title": "Kyrgyz"
466 | },
467 | "Waray": {
468 | "code": "war",
469 | "name": "Waray Wikipedia",
470 | "title": "Waray"
471 | },
472 | "Aragonese": {
473 | "code": "an",
474 | "name": "Aragonese Wikipedia",
475 | "title": "Aragonese"
476 | },
477 | "Kurdish (Kurmanji)": {
478 | "code": "ku",
479 | "name": "Wîkîpediya kurdî",
480 | "title": "Kurdish (Kurmanji)"
481 | },
482 | "Dagbani": {
483 | "code": "dag",
484 | "name": "Dagbani Wikipedia",
485 | "title": "Dagbani"
486 | },
487 | "Luxembourgish": {
488 | "code": "lb",
489 | "name": "Luxembourgish Wikipedia",
490 | "title": "Luxembourgish"
491 | },
492 | "Tajik": {
493 | "code": "tg",
494 | "name": "Tajik Wikipedia",
495 | "title": "Tajik"
496 | },
497 | "Bavarian": {
498 | "code": "bar",
499 | "name": "Bavarian Wikipedia",
500 | "title": "Bavarian"
501 | },
502 | "Khmer": {
503 | "code": "km",
504 | "name": "Khmer Wikipedia",
505 | "title": "Khmer"
506 | },
507 | "Classical Chinese": {
508 | "code": "zh-classical",
509 | "name": "Classical Chinese Wikipedia",
510 | "title": "Classical Chinese"
511 | },
512 | "Yoruba": {
513 | "code": "yo",
514 | "name": "Yoruba Wikipedia",
515 | "title": "Yoruba"
516 | },
517 | "Sundanese": {
518 | "code": "su",
519 | "name": "Sundanese Wikipedia",
520 | "title": "Sundanese"
521 | },
522 | "Minangkabau": {
523 | "code": "min",
524 | "name": "Minangkabau Wikipedia",
525 | "title": "Minangkabau"
526 | },
527 | "Pashto": {
528 | "code": "ps",
529 | "name": "Pashto Wikipedia",
530 | "title": "Pashto"
531 | },
532 | "Central Bikol": {
533 | "code": "bcl",
534 | "name": "Central Bicolano Wikipedia",
535 | "title": "Central Bikol"
536 | },
537 | "Western Punjabi": {
538 | "code": "pnb",
539 | "name": "Western Punjabi Wikipedia",
540 | "title": "Western Punjabi"
541 | },
542 | "Low German": {
543 | "code": "nds",
544 | "name": "Low Saxon Wikipedia",
545 | "title": "Low German"
546 | },
547 | "Turkmen": {
548 | "code": "tk",
549 | "name": "Turkmen Wikipedia",
550 | "title": "Turkmen"
551 | },
552 | "Malagasy": {
553 | "code": "mg",
554 | "name": "Malagasy Wikipedia",
555 | "title": "Malagasy"
556 | },
557 | "West Frisian": {
558 | "code": "fy",
559 | "name": "West Frisian Wikipedia",
560 | "title": "West Frisian"
561 | },
562 | "Odia": {
563 | "code": "or",
564 | "name": "Odia Wikipedia",
565 | "title": "Odia"
566 | },
567 | "Old English /Anglo-Saxon": {
568 | "code": "ang",
569 | "name": "Anglo-Saxon Wikipedia",
570 | "title": "Old English /Anglo-Saxon"
571 | },
572 | "Fiji Hindi": {
573 | "code": "hif",
574 | "name": "Fiji Hindi Wikipedia",
575 | "title": "Fiji Hindi"
576 | },
577 | "Ido": {
578 | "code": "io",
579 | "name": "Ido Wikipedia",
580 | "title": "Ido"
581 | },
582 | "Chuvash": {
583 | "code": "cv",
584 | "name": "Chuvash Wikipedia",
585 | "title": "Chuvash"
586 | },
587 | "Chechen": {
588 | "code": "ce",
589 | "name": "Chechen Wikipedia",
590 | "title": "Chechen"
591 | },
592 | "Haitian Creole": {
593 | "code": "ht",
594 | "name": "Haitian Creole Wikipedia",
595 | "title": "Haitian Creole"
596 | },
597 | "Lombard": {
598 | "code": "lmo",
599 | "name": "Lombard Wikipedia",
600 | "title": "Lombard"
601 | },
602 | "Wu": {
603 | "code": "wuu",
604 | "name": "Wu Wikipedia",
605 | "title": "Wu"
606 | },
607 | "Amharic": {
608 | "code": "am",
609 | "name": "Amharic Wikipedia",
610 | "title": "Amharic"
611 | },
612 | "Igbo": {
613 | "code": "ig",
614 | "name": "Igbo Wikipedia",
615 | "title": "Igbo"
616 | },
617 | "Yiddish": {
618 | "code": "yi",
619 | "name": "Yiddish Wikipedia",
620 | "title": "Yiddish"
621 | },
622 | "Quechua": {
623 | "code": "qu",
624 | "name": "Quechua Wikipedia",
625 | "title": "Quechua"
626 | },
627 | "Bihari (Bhojpuri)": {
628 | "code": "bh",
629 | "name": "Bhojpuri Wikipedia",
630 | "title": "Bihari (Bhojpuri)"
631 | },
632 | "Balinese": {
633 | "code": "ban",
634 | "name": "Balinese Wikipedia",
635 | "title": "Balinese"
636 | },
637 | "Mazanderani": {
638 | "code": "mzn",
639 | "name": "Mazandarani Wikipedia",
640 | "title": "Mazanderani"
641 | },
642 | "Moroccan Arabic": {
643 | "code": "ary",
644 | "name": "Moroccan Arabic Wikipedia",
645 | "title": "Moroccan Arabic"
646 | },
647 | "Yakut/Sakha": {
648 | "code": "sah",
649 | "name": "Sakha Wikipedia",
650 | "title": "Yakut/Sakha"
651 | },
652 | "Interlingua": {
653 | "code": "ia",
654 | "name": "Interlingua Wikipedia",
655 | "title": "Interlingua"
656 | },
657 | "Venetian": {
658 | "code": "vec",
659 | "name": "Venetian Wikipedia",
660 | "title": "Venetian"
661 | },
662 | "Acehnese": {
663 | "code": "ace",
664 | "name": "Acehnese Wikipedia",
665 | "title": "Acehnese"
666 | },
667 | "Lao": {
668 | "code": "lo",
669 | "name": "Lao Wikipedia",
670 | "title": "Lao"
671 | },
672 | "Sicilian": {
673 | "code": "scn",
674 | "name": "Sicilian Wikipedia",
675 | "title": "Sicilian"
676 | },
677 | "Faroese": {
678 | "code": "fo",
679 | "name": "Faroese Wikipedia",
680 | "title": "Faroese"
681 | },
682 | "Sanskrit": {
683 | "code": "sa",
684 | "name": "संस्कृतविकिपीडिया",
685 | "title": "Sanskrit"
686 | },
687 | "Cornish": {
688 | "code": "kw",
689 | "name": "Cornish Wikipedia",
690 | "title": "Cornish"
691 | },
692 | "Zazaki": {
693 | "code": "diq",
694 | "name": "Zazaki Wikipedia",
695 | "title": "Zazaki"
696 | },
697 | "Guarani": {
698 | "code": "gn",
699 | "name": "Guarani Wikipedia",
700 | "title": "Guarani"
701 | },
702 | "Sindhi": {
703 | "code": "sd",
704 | "name": "سنڌي وڪيپيڊيا",
705 | "title": "Sindhi"
706 | },
707 | "Westerm Armenian": {
708 | "code": "hyw",
709 | "name": "Western Armenian Wikipedia",
710 | "title": "Westerm Armenian"
711 | },
712 | "Emilian- Romagnol": {
713 | "code": "eml",
714 | "name": "Emilian-Romagnol Wikipedia",
715 | "title": "Emilian- Romagnol"
716 | },
717 | "Interlingue": {
718 | "code": "ie",
719 | "name": "Interlingue Wikipedia",
720 | "title": "Interlingue"
721 | },
722 | "Kinyarwanda": {
723 | "code": "rw",
724 | "name": "Kinyarwanda Wikipedia",
725 | "title": "Kinyarwanda"
726 | },
727 | "Maithili": {
728 | "code": "mai",
729 | "name": "Maithili Wikipedia",
730 | "title": "Maithili"
731 | },
732 | "Silesian": {
733 | "code": "szl",
734 | "name": "Silesian Wikipedia",
735 | "title": "Silesian"
736 | },
737 | "Volapük": {
738 | "code": "vo",
739 | "name": "Vükiped Volapükik",
740 | "title": "Volapük"
741 | },
742 | "Aymara": {
743 | "code": "ay",
744 | "name": "Aymara Wikipedia",
745 | "title": "Aymara"
746 | },
747 | "Santali": {
748 | "code": "sat",
749 | "name": "Santali Wikipedia",
750 | "title": "Santali"
751 | },
752 | "Corsican": {
753 | "code": "co",
754 | "name": "Corsican Wikipedia",
755 | "title": "Corsican"
756 | },
757 | "Sardinian": {
758 | "code": "sc",
759 | "name": "Sardinian Wikipedia",
760 | "title": "Sardinian"
761 | },
762 | "Mingrelian": {
763 | "code": "xmf",
764 | "name": "Mingrelian Wikipedia",
765 | "title": "Mingrelian"
766 | },
767 | "Newar/ Nepal Bhasa": {
768 | "code": "new",
769 | "name": "Newar Wikipedia",
770 | "title": "Newar/ Nepal Bhasa"
771 | },
772 | "Zulu": {
773 | "code": "zu",
774 | "name": "Zulu Wikipedia",
775 | "title": "Zulu"
776 | },
777 | "Upper Sorbian": {
778 | "code": "hsb",
779 | "name": "Hornjoserbska wikipedija",
780 | "title": "Upper Sorbian"
781 | },
782 | "Ligurian": {
783 | "code": "lij",
784 | "name": "Ligurian Wikipedia",
785 | "title": "Ligurian"
786 | },
787 | "Dutch Low Saxon": {
788 | "code": "nds-nl",
789 | "name": "Dutch Low Saxon Wikipedia",
790 | "title": "Dutch Low Saxon"
791 | },
792 | "Ossetian": {
793 | "code": "os",
794 | "name": "Ossetian Wikipedia",
795 | "title": "Ossetian"
796 | },
797 | "Scottish Gaelic": {
798 | "code": "gd",
799 | "name": "Scottish Gaelic Wikipedia",
800 | "title": "Scottish Gaelic"
801 | },
802 | "Akan": {
803 | "code": "ak",
804 | "name": "Akan Wikipedia",
805 | "title": "Akan"
806 | },
807 | "Hakka": {
808 | "code": "hak",
809 | "name": "Hakka Wikipedia",
810 | "title": "Hakka"
811 | },
812 | "West Flemish": {
813 | "code": "vls",
814 | "name": "West Flemish Wikipedia",
815 | "title": "West Flemish"
816 | },
817 | "Bislama": {
818 | "code": "bi",
819 | "name": "Bislama Wikipedia",
820 | "title": "Bislama"
821 | },
822 | "Franco- Provençal /Arpitan": {
823 | "code": "frp",
824 | "name": "Franco-Provençal Wikipedia",
825 | "title": "Franco- Provençal /Arpitan"
826 | },
827 | "Maltese": {
828 | "code": "mt",
829 | "name": "Maltese Wikipedia",
830 | "title": "Maltese"
831 | },
832 | "Neapolitan": {
833 | "code": "nap",
834 | "name": "Neapolitan Wikipedia",
835 | "title": "Neapolitan"
836 | },
837 | "Shona": {
838 | "code": "sn",
839 | "name": "Shona Wikipedia",
840 | "title": "Shona"
841 | },
842 | "Veps": {
843 | "code": "vep",
844 | "name": "Veps Wikipedia",
845 | "title": "Veps"
846 | },
847 | "Crimean Tatar": {
848 | "code": "crh",
849 | "name": "Crimean Tatar Wikipedia",
850 | "title": "Crimean Tatar"
851 | },
852 | "Samogitian": {
853 | "code": "bat-smg",
854 | "name": "Samogitian Wikipedia",
855 | "title": "Samogitian"
856 | },
857 | "Limburgish": {
858 | "code": "li",
859 | "name": "Limburgish Wikipedia",
860 | "title": "Limburgish"
861 | },
862 | "Piedmontese": {
863 | "code": "pms",
864 | "name": "Piedmontese Wikipedia",
865 | "title": "Piedmontese"
866 | },
867 | "Ilokano": {
868 | "code": "ilo",
869 | "name": "Ilokano Wikipedia",
870 | "title": "Ilokano"
871 | },
872 | "Kashmiri": {
873 | "code": "ks",
874 | "name": "Kashmiri Wikipedia",
875 | "title": "Kashmiri"
876 | },
877 | "Eastern Min /Min Dong": {
878 | "code": "cdo",
879 | "name": "Min Dong Wikipedia",
880 | "title": "Eastern Min /Min Dong"
881 | },
882 | "Nahuatl": {
883 | "code": "nah",
884 | "name": "Nāhuatl Wikipedia",
885 | "title": "Nahuatl"
886 | },
887 | "Tibetan": {
888 | "code": "bo",
889 | "name": "Tibetan Wikipedia",
890 | "title": "Tibetan"
891 | },
892 | "Walloon": {
893 | "code": "wa",
894 | "name": "Walloon Wikipedia",
895 | "title": "Walloon"
896 | },
897 | "Kapampangan": {
898 | "code": "pam",
899 | "name": "Kapampangan Wikipedia",
900 | "title": "Kapampangan"
901 | },
902 | "Erzya": {
903 | "code": "myv",
904 | "name": "Erzya Wikipedia",
905 | "title": "Erzya"
906 | },
907 | "Māori": {
908 | "code": "mi",
909 | "name": "Māori Wikipedia",
910 | "title": "Māori"
911 | },
912 | "North Frisian": {
913 | "code": "frr",
914 | "name": "North Frisian Wikipedia",
915 | "title": "North Frisian"
916 | },
917 | "Bishnupriya Manipuri": {
918 | "code": "bpy",
919 | "name": "বিষ্ণুপ্রিয়া মনিপুরী উইকিপিডিয়া",
920 | "title": "Bishnupriya Manipuri"
921 | },
922 | "Judaeo-Spanish /Ladino": {
923 | "code": "lad",
924 | "name": "Ladino Wikipedia",
925 | "title": "Judaeo-Spanish /Ladino"
926 | },
927 | "Northern Sami": {
928 | "code": "se",
929 | "name": "Northern Sami Wikipedia",
930 | "title": "Northern Sami"
931 | },
932 | "Friulian": {
933 | "code": "fur",
934 | "name": "Friulian Wikipedia",
935 | "title": "Friulian"
936 | },
937 | "Gagauz": {
938 | "code": "gag",
939 | "name": "Gagauz Wikipedia",
940 | "title": "Gagauz"
941 | },
942 | "Inari Sami": {
943 | "code": "smn",
944 | "name": "Inari Sami Wikipedia",
945 | "title": "Inari Sami"
946 | },
947 | "Picard": {
948 | "code": "pcd",
949 | "name": "Picard Wikipedia",
950 | "title": "Picard"
951 | },
952 | "Udmurt": {
953 | "code": "udm",
954 | "name": "Udmurt Wikipedia",
955 | "title": "Udmurt"
956 | },
957 | "Buginese": {
958 | "code": "bug",
959 | "name": "Buginese Wikipedia",
960 | "title": "Buginese"
961 | },
962 | "Kotava": {
963 | "code": "avk",
964 | "name": "Kotava Wikipedia",
965 | "title": "Kotava"
966 | },
967 | "Cherokee": {
968 | "code": "chr",
969 | "name": "Cherokee Wikipedia",
970 | "title": "Cherokee"
971 | },
972 | "Gan Chinese": {
973 | "code": "gan",
974 | "name": "Gan Chinese Wikipedia",
975 | "title": "Gan Chinese"
976 | },
977 | "Komi": {
978 | "code": "kv",
979 | "name": "Komi Wikipedia",
980 | "title": "Komi"
981 | },
982 | "Meadow Mari": {
983 | "code": "mhr",
984 | "name": "Meadow Mari Wikipedia",
985 | "title": "Meadow Mari"
986 | },
987 | "Twi": {
988 | "code": "tw",
989 | "name": "Twi Wikipedia",
990 | "title": "Twi"
991 | },
992 | "Võro": {
993 | "code": "fiu-vro",
994 | "name": "Voro Wikipedia",
995 | "title": "Võro"
996 | },
997 | "Kabyle": {
998 | "code": "kab",
999 | "name": "Kabyle Wikipedia",
1000 | "title": "Kabyle"
1001 | },
1002 | "Mon": {
1003 | "code": "mnw",
1004 | "name": "ဝဳကဳပဳဒဳယာမန်",
1005 | "title": "Mon"
1006 | },
1007 | "Tulu": {
1008 | "code": "tcy",
1009 | "name": "Tulu Wikipedia",
1010 | "title": "Tulu"
1011 | },
1012 | "Uyghur": {
1013 | "code": "ug",
1014 | "name": "Uyghur Wikipedia",
1015 | "title": "Uyghur"
1016 | },
1017 | "Abkhaz": {
1018 | "code": "ab",
1019 | "name": "Abkhazian Wikipedia",
1020 | "title": "Abkhaz"
1021 | },
1022 | "Lingala": {
1023 | "code": "ln",
1024 | "name": "Lingala Wikipedia",
1025 | "title": "Lingala"
1026 | },
1027 | "Lingua Franca Nova": {
1028 | "code": "lfn",
1029 | "name": "Lingua Franca Nova Wikipedia",
1030 | "title": "Lingua Franca Nova"
1031 | },
1032 | "Papiamento": {
1033 | "code": "pap",
1034 | "name": "Papiamentu Wikipedia",
1035 | "title": "Papiamento"
1036 | },
1037 | "Doteli": {
1038 | "code": "dty",
1039 | "name": "Doteli Wikipedia",
1040 | "title": "Doteli"
1041 | },
1042 | "Dzongkha": {
1043 | "code": "dz",
1044 | "name": "Dzongkha Wikipedia",
1045 | "title": "Dzongkha"
1046 | },
1047 | "Hawaiian": {
1048 | "code": "haw",
1049 | "name": "Hawaiian Wikipedia",
1050 | "title": "Hawaiian"
1051 | },
1052 | "Manx": {
1053 | "code": "gv",
1054 | "name": "Manx Wikipedia",
1055 | "title": "Manx"
1056 | },
1057 | "Rusyn": {
1058 | "code": "rue",
1059 | "name": "Rusyn Wikipedia",
1060 | "title": "Rusyn"
1061 | },
1062 | "Banjar": {
1063 | "code": "bjn",
1064 | "name": "Banjar Wikipedia",
1065 | "title": "Banjar"
1066 | },
1067 | "Banyumasan": {
1068 | "code": "map-bms",
1069 | "name": "Banyumasan Wikipedia",
1070 | "title": "Banyumasan"
1071 | },
1072 | "Old Church Slavonic": {
1073 | "code": "cu",
1074 | "name": "Old Church Slavonic Wikipedia",
1075 | "title": "Old Church Slavonic"
1076 | },
1077 | "Sakizaya": {
1078 | "code": "szy",
1079 | "name": "Sakizaya Wikipedia",
1080 | "title": "Sakizaya"
1081 | },
1082 | "Buryat": {
1083 | "code": "bxr",
1084 | "name": "Buryat Wikipedia",
1085 | "title": "Buryat"
1086 | },
1087 | "Chewa": {
1088 | "code": "ny",
1089 | "name": "Chichewa Wikipedia",
1090 | "title": "Chewa"
1091 | },
1092 | "Dhivehi": {
1093 | "code": "dv",
1094 | "name": "Divehi Wikipedia",
1095 | "title": "Dhivehi"
1096 | },
1097 | "Gorontalo": {
1098 | "code": "gor",
1099 | "name": "Gorontalo Wikipedia",
1100 | "title": "Gorontalo"
1101 | },
1102 | "Greenlandic": {
1103 | "code": "kl",
1104 | "name": "Greenlandic Wikipedia",
1105 | "title": "Greenlandic"
1106 | },
1107 | "Kirundi": {
1108 | "code": "rn",
1109 | "name": "Kirundi Wikipedia",
1110 | "title": "Kirundi"
1111 | },
1112 | "Ladin": {
1113 | "code": "lld",
1114 | "name": "Ladin Wikipedia",
1115 | "title": "Ladin"
1116 | },
1117 | "Zamboanga Chavacano": {
1118 | "code": "cbk-zam",
1119 | "name": "Zamboanga Chavacano Wikipedia",
1120 | "title": "Zamboanga Chavacano"
1121 | },
1122 | "Extremaduran": {
1123 | "code": "ext",
1124 | "name": "Extremaduran Wikipedia",
1125 | "title": "Extremaduran"
1126 | },
1127 | "Ripuarian": {
1128 | "code": "ksh",
1129 | "name": "Ripuarian Wikipedia",
1130 | "title": "Ripuarian"
1131 | },
1132 | "Adyghe": {
1133 | "code": "ady",
1134 | "name": "Adyghe Wikipedia",
1135 | "title": "Adyghe"
1136 | },
1137 | "Avar": {
1138 | "code": "av",
1139 | "name": "Avar Wikipedia",
1140 | "title": "Avar"
1141 | },
1142 | "Chamorro": {
1143 | "code": "ch",
1144 | "name": "Chamorro Wikipedia",
1145 | "title": "Chamorro"
1146 | },
1147 | "Cheyenne": {
1148 | "code": "chy",
1149 | "name": "Cheyenne Wikipedia",
1150 | "title": "Cheyenne"
1151 | },
1152 | "Cree": {
1153 | "code": "cr",
1154 | "name": "Cree Wikipedia",
1155 | "title": "Cree"
1156 | },
1157 | "Lower Sorbian": {
1158 | "code": "dsb",
1159 | "name": "Dolnoserbska wikipedija",
1160 | "title": "Lower Sorbian"
1161 | },
1162 | "Kabiye": {
1163 | "code": "kbp",
1164 | "name": "Kabiye Wikipedia",
1165 | "title": "Kabiye"
1166 | },
1167 | "Kashubian": {
1168 | "code": "csb",
1169 | "name": "Kashubian Wikipedia",
1170 | "title": "Kashubian"
1171 | },
1172 | "Kongo": {
1173 | "code": "kg",
1174 | "name": "Kongo Wikipedia",
1175 | "title": "Kongo"
1176 | },
1177 | "Lojban": {
1178 | "code": "jbo",
1179 | "name": "Lojban Wikipedia",
1180 | "title": "Lojban"
1181 | },
1182 | "Mirandese": {
1183 | "code": "mwl",
1184 | "name": "Mirandese Wikipedia",
1185 | "title": "Mirandese"
1186 | },
1187 | "Pennsylvania German": {
1188 | "code": "pdc",
1189 | "name": "Pennsylvania German Wikipedia",
1190 | "title": "Pennsylvania German"
1191 | },
1192 | "Romansh": {
1193 | "code": "rm",
1194 | "name": "Romansh Wikipedia",
1195 | "title": "Romansh"
1196 | },
1197 | "Shilha": {
1198 | "code": "shi",
1199 | "name": "Shilha Wikipedia",
1200 | "title": "Shilha"
1201 | },
1202 | "Aromanian": {
1203 | "code": "roa-rup",
1204 | "name": "Wikipedia pi armãneashti",
1205 | "title": "Aromanian"
1206 | },
1207 | "Inuktitut": {
1208 | "code": "iu",
1209 | "name": "Inuktitut Wikipedia",
1210 | "title": "Inuktitut"
1211 | },
1212 | "Madurese": {
1213 | "code": "mad",
1214 | "name": "Madurese Wikipedia",
1215 | "title": "Madurese"
1216 | },
1217 | "Novial": {
1218 | "code": "nov",
1219 | "name": "Novial Wikipedia",
1220 | "title": "Novial"
1221 | },
1222 | "Aramaic": {
1223 | "code": "arc",
1224 | "name": "Syriac Wikipedia",
1225 | "title": "Aramaic"
1226 | },
1227 | "Tok Pisin": {
1228 | "code": "tpi",
1229 | "name": "Tok Pisin Wikipedia",
1230 | "title": "Tok Pisin"
1231 | },
1232 | "Tsonga": {
1233 | "code": "ts",
1234 | "name": "Tsonga Wikipedia",
1235 | "title": "Tsonga"
1236 | },
1237 | "Tuvan": {
1238 | "code": "tyv",
1239 | "name": "Tuvinian Wikipedia",
1240 | "title": "Tuvan"
1241 | },
1242 | "Zeelandic": {
1243 | "code": "zea",
1244 | "name": "Zealandic Wikipedia",
1245 | "title": "Zeelandic"
1246 | },
1247 | "Shan": {
1248 | "code": "shn",
1249 | "name": "ဝီႇၶီႇၽီးတီးယႃးတႆး",
1250 | "title": "Shan"
1251 | },
1252 | "Gilaki": {
1253 | "code": "glk",
1254 | "name": "Gilaki Wikipedia",
1255 | "title": "Gilaki"
1256 | },
1257 | "Hill Mari": {
1258 | "code": "mrj",
1259 | "name": "Hill Mari Wikipedia",
1260 | "title": "Hill Mari"
1261 | },
1262 | "Nauruan": {
1263 | "code": "na",
1264 | "name": "Nauruan Wikipedia",
1265 | "title": "Nauruan"
1266 | },
1267 | "Navajo": {
1268 | "code": "nv",
1269 | "name": "Navajo Wikipedia",
1270 | "title": "Navajo"
1271 | },
1272 | "Norman": {
1273 | "code": "nrm",
1274 | "name": "Norman Wikipedia",
1275 | "title": "Norman"
1276 | },
1277 | "Samoan": {
1278 | "code": "sm",
1279 | "name": "Samoan Wikipedia",
1280 | "title": "Samoan"
1281 | },
1282 | "Tetum": {
1283 | "code": "tet",
1284 | "name": "Tetum Wikipedia",
1285 | "title": "Tetum"
1286 | },
1287 | "Bambara": {
1288 | "code": "bm",
1289 | "name": "Bambara Wikipedia",
1290 | "title": "Bambara"
1291 | },
1292 | "Pangasinan": {
1293 | "code": "pag",
1294 | "name": "Pangasinan Wikipedia",
1295 | "title": "Pangasinan"
1296 | },
1297 | "Wolof": {
1298 | "code": "wo",
1299 | "name": "Wolof Wikipedia",
1300 | "title": "Wolof"
1301 | },
1302 | "Awadhi": {
1303 | "code": "awa",
1304 | "name": "Awadhi Wikipedia",
1305 | "title": "Awadhi"
1306 | },
1307 | "Fula": {
1308 | "code": "ff",
1309 | "name": "Fula Wikipedia",
1310 | "title": "Fula"
1311 | },
1312 | "Gothic": {
1313 | "code": "got",
1314 | "name": "Gothic Wikipedia",
1315 | "title": "Gothic"
1316 | },
1317 | "Ingush": {
1318 | "code": "inh",
1319 | "name": "Ingush Wikipedia",
1320 | "title": "Ingush"
1321 | },
1322 | "Karachay- Balkar": {
1323 | "code": "krc",
1324 | "name": "Karachay-Balkar Wikipedia",
1325 | "title": "Karachay- Balkar"
1326 | },
1327 | "Karakalpak": {
1328 | "code": "kaa",
1329 | "name": "Karakalpak Wikipedia",
1330 | "title": "Karakalpak"
1331 | },
1332 | "Lak": {
1333 | "code": "lbe",
1334 | "name": "Lak Wikipedia",
1335 | "title": "Lak"
1336 | },
1337 | "Lezgian": {
1338 | "code": "lez",
1339 | "name": "Lezgi Wikipedia",
1340 | "title": "Lezgian"
1341 | },
1342 | "Norfolk": {
1343 | "code": "pih",
1344 | "name": "Norfolk Wikipedia",
1345 | "title": "Norfolk"
1346 | },
1347 | "Xhosa": {
1348 | "code": "xh",
1349 | "name": "Xhosa Wikipedia",
1350 | "title": "Xhosa"
1351 | },
1352 | "Fijian": {
1353 | "code": "fj",
1354 | "name": "Fijian Wikipedia",
1355 | "title": "Fijian"
1356 | },
1357 | "Jamaican Patois": {
1358 | "code": "jam",
1359 | "name": "Jamaican Wikipedia",
1360 | "title": "Jamaican Patois"
1361 | },
1362 | "Kabardian": {
1363 | "code": "kbd",
1364 | "name": "Kabardian Wikipedia",
1365 | "title": "Kabardian"
1366 | },
1367 | "Kalmyk": {
1368 | "code": "xal",
1369 | "name": "Kalmyk Wikipedia",
1370 | "title": "Kalmyk"
1371 | },
1372 | "Oromo": {
1373 | "code": "om",
1374 | "name": "Oromo Wikipedia",
1375 | "title": "Oromo"
1376 | },
1377 | "Swazi": {
1378 | "code": "ss",
1379 | "name": "Swati Wikipedia",
1380 | "title": "Swazi"
1381 | },
1382 | "Tswana": {
1383 | "code": "tn",
1384 | "name": "Tswana Wikipedia",
1385 | "title": "Tswana"
1386 | },
1387 | "Vlax Romani": {
1388 | "code": "rmy",
1389 | "name": "Vlax Romani Wikipedia",
1390 | "title": "Vlax Romani"
1391 | },
1392 | "Konkani": {
1393 | "code": "gom",
1394 | "name": "Konkani Wikipedia",
1395 | "title": "Konkani"
1396 | },
1397 | "Dinka": {
1398 | "code": "din",
1399 | "name": "Dinka Wikipedia",
1400 | "title": "Dinka"
1401 | },
1402 | "Ewe": {
1403 | "code": "ee",
1404 | "name": "Ewe Wikipedia",
1405 | "title": "Ewe"
1406 | },
1407 | "Inupiaq": {
1408 | "code": "ik",
1409 | "name": "Inupiak Wikipedia",
1410 | "title": "Inupiaq"
1411 | },
1412 | "Livvi-Karelian": {
1413 | "code": "olo",
1414 | "name": "Livvi-Karelian Wikipedia",
1415 | "title": "Livvi-Karelian"
1416 | },
1417 | "Moksha": {
1418 | "code": "mdf",
1419 | "name": "Moksha Wikipedia",
1420 | "title": "Moksha"
1421 | },
1422 | "N'Ko": {
1423 | "code": "nqo",
1424 | "name": "N'Ko Wikipedia",
1425 | "title": "N'Ko"
1426 | },
1427 | "Tarantino": {
1428 | "code": "roa-tara",
1429 | "name": "Tarantino Wikipedia",
1430 | "title": "Tarantino"
1431 | },
1432 | "Tigrinya": {
1433 | "code": "ti",
1434 | "name": "Tigrinya Wikipedia",
1435 | "title": "Tigrinya"
1436 | },
1437 | "Luganda": {
1438 | "code": "lg",
1439 | "name": "Luganda Wikipedia",
1440 | "title": "Luganda"
1441 | },
1442 | "Nias": {
1443 | "code": "nia",
1444 | "name": "Nias Wikipedia",
1445 | "title": "Nias"
1446 | },
1447 | "Komi-Permyak": {
1448 | "code": "koi",
1449 | "name": "Komi-Permyak Wikipedia",
1450 | "title": "Komi-Permyak"
1451 | },
1452 | "Latgalian": {
1453 | "code": "ltg",
1454 | "name": "Latgalian Wikipedia",
1455 | "title": "Latgalian"
1456 | },
1457 | "Pontic Greek": {
1458 | "code": "pnt",
1459 | "name": "Pontic Wikipedia",
1460 | "title": "Pontic Greek"
1461 | },
1462 | "Tongan": {
1463 | "code": "to",
1464 | "name": "Tongan Wikipedia",
1465 | "title": "Tongan"
1466 | },
1467 | "Zhuang": {
1468 | "code": "za",
1469 | "name": "Zhuang Wikipedia",
1470 | "title": "Zhuang"
1471 | },
1472 | "Saraiki": {
1473 | "code": "skr",
1474 | "name": "Saraiki Wikipedia",
1475 | "title": "Saraiki"
1476 | },
1477 | "Kikuyu": {
1478 | "code": "ki",
1479 | "name": "Kikuyu Wikipedia",
1480 | "title": "Kikuyu"
1481 | },
1482 | "Saterland Frisian": {
1483 | "code": "stq",
1484 | "name": "Saterland Frisian Wikipedia",
1485 | "title": "Saterland Frisian"
1486 | },
1487 | "Sotho": {
1488 | "code": "st",
1489 | "name": "Sesotho Wikipedia",
1490 | "title": "Sotho"
1491 | },
1492 | "Tahitian": {
1493 | "code": "ty",
1494 | "name": "Tahitian Wikipedia",
1495 | "title": "Tahitian"
1496 | },
1497 | "Atikamekw": {
1498 | "code": "atj",
1499 | "name": "Atikamekw Wikipedia",
1500 | "title": "Atikamekw"
1501 | },
1502 | "Northern Sotho": {
1503 | "code": "nso",
1504 | "name": "Northern Sotho Wikipedia",
1505 | "title": "Northern Sotho"
1506 | },
1507 | "Pali": {
1508 | "code": "pi",
1509 | "name": "Pali Wikipedia",
1510 | "title": "Pali"
1511 | },
1512 | "Sranan Tongo": {
1513 | "code": "srn",
1514 | "name": "Sranan Tongo Wikipedia",
1515 | "title": "Sranan Tongo"
1516 | },
1517 | "Venda": {
1518 | "code": "ve",
1519 | "name": "Venda Wikipedia",
1520 | "title": "Venda"
1521 | },
1522 | "Guianan Creole": {
1523 | "code": "gcr",
1524 | "name": "Guianan Creole Wikipedia",
1525 | "title": "Guianan Creole"
1526 | },
1527 | "Palatine German": {
1528 | "code": "pfl",
1529 | "name": "Palatine German Wikipedia",
1530 | "title": "Palatine German"
1531 | },
1532 | "Sango": {
1533 | "code": "sg",
1534 | "name": "Sango Wikipedia",
1535 | "title": "Sango"
1536 | },
1537 | "Tumbuka": {
1538 | "code": "tum",
1539 | "name": "Tumbuku Wikipedia",
1540 | "title": "Tumbuka"
1541 | },
1542 | "Ndonga": {
1543 | "code": "ng (closed)",
1544 | "name": "Ndonga Wikipedia (closed)",
1545 | "title": "Ndonga"
1546 | },
1547 | "Northern Luri": {
1548 | "code": "lrc (locked)",
1549 | "name": "Northern Luri Wikipedia (locked)",
1550 | "title": "Northern Luri"
1551 | },
1552 | "Nuosu/Sichuan Yi": {
1553 | "code": "ii (closed)",
1554 | "name": "Sichuan Yi Wikipedia (closed)",
1555 | "title": "Nuosu/Sichuan Yi"
1556 | },
1557 | "Afar": {
1558 | "code": "aa (closed)",
1559 | "name": "Afar Wikipedia (closed)",
1560 | "title": "Afar"
1561 | },
1562 | "Choctaw": {
1563 | "code": "cho (closed)",
1564 | "name": "Choctaw Wikipedia (closed)",
1565 | "title": "Choctaw"
1566 | },
1567 | "Herero": {
1568 | "code": "hz (closed)",
1569 | "name": "Herero Wikipedia (closed)",
1570 | "title": "Herero"
1571 | },
1572 | "Hiri Motu": {
1573 | "code": "ho (closed)",
1574 | "name": "Hiri Motu Wikipedia (closed)",
1575 | "title": "Hiri Motu"
1576 | },
1577 | "Kanuri": {
1578 | "code": "kr (closed)",
1579 | "name": "Kanuri Wikipedia (closed)",
1580 | "title": "Kanuri"
1581 | },
1582 | "Kuanyama": {
1583 | "code": "kj (closed)",
1584 | "name": "Kuanyama Wikipedia (closed)",
1585 | "title": "Kuanyama"
1586 | },
1587 | "Marshallese": {
1588 | "code": "mh (closed)",
1589 | "name": "Marshallese Wikipedia (closed)",
1590 | "title": "Marshallese"
1591 | },
1592 | "Muscogee": {
1593 | "code": "mus (closed)",
1594 | "name": "Muscogee Wikipedia (closed)",
1595 | "title": "Muscogee"
1596 | },
1597 | "Moldovan": {
1598 | "code": "mo (deleted)",
1599 | "name": "Moldovan Wikipedia (deleted)",
1600 | "title": "Moldovan"
1601 | }
1602 | }
--------------------------------------------------------------------------------
/src/libs/google-fonts/fonts.css:
--------------------------------------------------------------------------------
1 | /* | POPPINS | */
2 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');
3 |
4 | /* | Playfair Display | */
5 | @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,900');
6 |
7 | /* | Crimson Display | */
8 | @import url('https://fonts.googleapis.com/css2?family=Crimson+Pro&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,900');
9 |
10 | /* | Lora Spicemen | */
11 | @import url('https://fonts.googleapis.com/css2?family=Lora&display=swap');
--------------------------------------------------------------------------------
/src/libs/hotkeysjs/hotekeys.min.js:
--------------------------------------------------------------------------------
1 | /*! hotkeys-js v3.8.7 | MIT (c) 2021 kenny wong | http://jaywcjlove.github.io/hotkeys */
2 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).hotkeys=t()}(this,function(){"use strict";var e="undefined"!=typeof navigator&&0ul{
10 | pointer-events:auto;
11 | list-style:none;
12 | padding:0;
13 | margin:-.75em 0 0;
14 | white-space:nowrap;
15 | color:#fff;
16 | border-radius:.25em;
17 | position:absolute;
18 | left:50%;
19 | -webkit-transform:translate(-50%,-100%);
20 | -ms-transform:translate(-50%,-100%);
21 | transform:translate(-50%,-100%);
22 | background-color: var(--background);
23 | backdrop-filter: blur(20px);
24 | border-radius: 10px;
25 | padding: 5px;
26 | box-shadow: rgba(0, 0, 0, 0.2) 0px 20px 30px;
27 | border: 1px solid var(--hairline);
28 | }
29 | .share-this-popover>ul>li{
30 | display:inline-block;
31 | width:2em;
32 | height:2em;
33 | line-height:2em;
34 | text-align:center;
35 | color: var(--secondary-color);
36 | }
37 | .share-this-popover>ul>li>a{
38 | display:inline-block;
39 | width:100%;
40 | height:100%;
41 | color:inherit;
42 | box-sizing:border-box;
43 | padding:.35em;
44 | border-radius:.25em;
45 | }
46 | .share-this-popover>ul>li>a:focus,.share-this-popover>ul>li>a:hover{
47 | background:var(--secondary-background);
48 | }
49 | @media (pointer:coarse){
50 | .share-this-popover{
51 | font-size:150%
52 | }
53 | .share-this-popover:before{
54 | bottom:auto;
55 | top:100%;
56 | border-width:0 .5em .5em;
57 | margin-top:0
58 | }
59 | .share-this-popover>ul{
60 | top:100%;
61 | transform:translateX(-50%);
62 | margin:.5em 0 0
63 | }
64 | }
65 | @media (max-width:575px){
66 | .share-this-popover{
67 | left:0!important;
68 | right:0!important;
69 | width:auto!important;
70 | max-width:none
71 | }
72 | .share-this-popover:before{
73 | bottom:auto;
74 | top:100%;
75 | border-width:0 .5em .5em;
76 | margin-top:0
77 | }
78 | .share-this-popover>ul{
79 | top:100%;
80 | transform:translateX(-50%);
81 | margin:.5em 0 0;
82 | left:0;
83 | width:100%;
84 | transform:none;
85 | border-radius:0;
86 | text-align:center
87 | }
88 | }
89 | @-webkit-keyframes a{
90 | 0%{
91 | -webkit-transform:translateY(-3em);
92 | opacity:0
93 | }
94 | 80%{
95 | -webkit-transform:translateY(.5em);
96 | opacity:1
97 | }
98 | to{
99 | -webkit-transform:translateY(0)
100 | }
101 | }
102 | @keyframes a{
103 | 0%{
104 | transform:translateY(-3em);
105 | opacity:0
106 | }
107 | 80%{
108 | transform:translateY(.5em);
109 | opacity:1
110 | }
111 | to{
112 | transform:translateY(0)
113 | }
114 | }
115 |
--------------------------------------------------------------------------------
/src/libs/share-this/share-this.js:
--------------------------------------------------------------------------------
1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.ShareThis=t()}(this,function(){"use strict";function e(e){var t=e.document.body,n="static"===e.getComputedStyle(t).position?t.parentNode:t;return n.getBoundingClientRect()}function t(e,t){return h||(h=o(e)),e[h](t)}function n(e,n){for(var r=e;r&&(1!==r.nodeType||!t(r,n));)r=r.parentNode;return r}function r(e,t){var n=e.compareDocumentPosition(t);return!n||(16&n)>0}function o(e){for(var t="atchesSelector",n=["matches","m"+t,"webkitM"+t,"mozM"+t,"msM"+t,"oM"+t],r=0;r0:e.anchorOffseti)break;i=c.left}n=o(a+1)}else{for(var f=-(1/0),l=0;l"+t.map(function(e){return''+e.render.call(e,n,r,o)+" "}).join("")+""},b=void 0,C=["selectionchange","mouseup","touchend","touchcancel"],S=function(e){function t(e){g.addEventListener(e,o)}function n(e){g.removeEventListener(e,o)}function r(){E&&d(E,i(),p)}function o(e){var t=e.type,n="selectionchange"===t;!E!==n&&setTimeout(function(){var e=i();e?u(e):f()},10)}function i(){var e=S.getSelection(),t=e.rangeCount&&e.getRangeAt(0);if(t){var n=s(t,p.selector);if(!n.collapsed&&n.getClientRects().length)return n}}function u(e){var t=!E,n=e.toString(),r=p.transformer(n),o=p.sharers.filter(l.bind(null,r,n));return o.length?(t&&(E=M.createPopover()),E.sharers=o,E.innerHTML=y(p,o,r,n),d(E,e,p),void(t&&(M.attachPopover(E),c(p.onOpen)&&p.onOpen(E,r,n)))):void(E&&f())}function f(){E&&(M.removePopover(E),E=b,c(p.onClose)&&p.onClose())}function l(e,t,n){var r=n.active;return c(r)?r(e,t):r===b||r}var p=(Object.assign||a)({document:document,selector:"body",sharers:[],popoverClass:"share-this-popover",transformer:function(e){return e.trim().replace(/\s+/g," ")}},e||{}),h=!1,m=!1,g=b,S=b,E=b,M=b;return{init:function(){return!h&&(g=p.document,S=g.defaultView,S.getSelection?(C.forEach(t),S.addEventListener("resize",r),M=v(g),h=!0):(console.warn("share-this: Selection API isn't supported"),!1))},destroy:function(){return!(!h||m)&&(C.forEach(n),S.removeEventListener("resize",r),f(),g=b,S=b,m=!0)}}};return S});
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/email.js:
--------------------------------------------------------------------------------
1 | !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e=e||self).ShareThisViaEmail={})}(this,function(e){"use strict";e.getShareUrl=function(e,o){return"mailto:?body="+encodeURIComponent(e)+"%0a%0a"+encodeURIComponent(o)},e.name="email",e.render=function(e,o,n){return' '},Object.defineProperty(e,"__esModule",{value:!0})});
2 | //# sourceMappingURL=email.js.map
3 |
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/email.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"email.js","sources":["../../src/sharers/email.js"],"sourcesContent":["export function render(text, rawText, refUrl) {\n const url = this.getShareUrl(text, refUrl);\n\n return ``\n + \"\"\n + \"\"\n + \" \";\n}\n\nexport function getShareUrl(text, refUrl) {\n return `mailto:?body=${encodeURIComponent(text)}%0a%0a${encodeURIComponent(refUrl)}`;\n}\n\nexport const name = \"email\";\n"],"names":["text","refUrl","encodeURIComponent","rawText","this","getShareUrl"],"mappings":"4NAWO,SAAqBA,EAAMC,yBACPC,mBAAmBF,YAAcE,mBAAmBD,WAG3D,iBAfb,SAAgBD,EAAMG,EAASF,SAG3B,YAFKG,KAAKC,YAAYL,EAAMC"}
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/facebook.js:
--------------------------------------------------------------------------------
1 | !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e=e||self).ShareThisViaFacebook={})}(this,function(e){"use strict";e.action=function(e,o){e.preventDefault(),o.ownerDocument.defaultView.open(o.firstChild.href,"share_via_facebook","height=440,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,width=640").opener=null},e.getShareUrl=function(e,o){return"https://www.facebook.com/sharer/sharer.php?quote="+encodeURIComponent(e)+"&u="+encodeURIComponent(o)},e.name="facebook",e.render=function(e,o,n){return' '},Object.defineProperty(e,"__esModule",{value:!0})});
2 | //# sourceMappingURL=facebook.js.map
3 |
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/facebook.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"facebook.js","sources":["../../src/sharers/facebook.js"],"sourcesContent":["export function render(text, rawText, refUrl) {\n const url = this.getShareUrl(text, refUrl);\n\n return ``\n + \"\"\n + \"\"\n + \" \";\n}\n\nexport function getShareUrl(text, refUrl) {\n return `https://www.facebook.com/sharer/sharer.php?quote=${encodeURIComponent(text)}&u=${encodeURIComponent(refUrl)}`;\n}\n\nexport function action(event, item) {\n event.preventDefault();\n const popup = item.ownerDocument.defaultView.open(\n item.firstChild.href,\n \"share_via_facebook\",\n \"height=440,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,width=640\"\n );\n popup.opener = null;\n}\n\nexport const name = \"facebook\";\n"],"names":["event","item","preventDefault","ownerDocument","defaultView","open","firstChild","href","opener","text","refUrl","encodeURIComponent","rawText","this","getShareUrl"],"mappings":"0NAeO,SAAgBA,EAAOC,GAC1BD,EAAME,iBACQD,EAAKE,cAAcC,YAAYC,KACzCJ,EAAKK,WAAWC,KAChB,qBACA,kFAEEC,OAAS,oBAXZ,SAAqBC,EAAMC,6DAC6BC,mBAAmBF,SAAWE,mBAAmBD,WAa5F,oBAzBb,SAAgBD,EAAMG,EAASF,SAG3B,YAFKG,KAAKC,YAAYL,EAAMC"}
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/linked-in.js:
--------------------------------------------------------------------------------
1 | !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e=e||self).ShareThisViaLinkedIn={})}(this,function(e){"use strict";var n=!1;e.action=function(e,n){e.preventDefault(),n.ownerDocument.defaultView.open(n.firstChild.href,"share_via_linked_in","height=440,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,width=640").opener=null},e.getShareUrl=function(e){return"https://www.linkedin.com/sharing/share-offsite/?url="+encodeURIComponent(e)},e.name="linked-in",e.render=function(e,o,t){return n||(n=!0,console.warn("LinkedIn doesn't allow sharing links with custom titles anymore, so the main point of ShareThis (sharing a portion of text) couldn't be accomplished. You're encouraged to share your URLs with other, more conventional means, like the official LinkedIn share plugin. See https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/plugins/share-plugin")),' '},Object.defineProperty(e,"__esModule",{value:!0})});
2 | //# sourceMappingURL=linked-in.js.map
3 |
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/linked-in.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"linked-in.js","sources":["../../src/sharers/linked-in.js"],"sourcesContent":["let shownWarning = false;\n\nexport function render(_text, _rawText, refUrl) {\n if (!shownWarning) {\n shownWarning = true;\n console.warn(\"LinkedIn doesn't allow sharing links with custom titles anymore, so the main point of ShareThis \"\n + \"(sharing a portion of text) couldn't be accomplished. You're encouraged to share your URLs with other, \"\n + \"more conventional means, like the official LinkedIn share plugin. See \"\n + \"https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/plugins/share-plugin\");\n }\n const url = this.getShareUrl(refUrl);\n\n return ``\n + \"\"\n + \"\"\n + \" \";\n}\n\nexport function getShareUrl(refUrl) {\n return `https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(refUrl)}`;\n}\n\nexport function action(event, item) {\n event.preventDefault();\n const popup = item.ownerDocument.defaultView.open(\n item.firstChild.href,\n \"share_via_linked_in\",\n \"height=440,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,width=640\"\n );\n popup.opener = null;\n}\n\nexport const name = \"linked-in\";\n"],"names":["shownWarning","event","item","preventDefault","ownerDocument","defaultView","open","firstChild","href","opener","refUrl","encodeURIComponent","_text","_rawText","console","warn","this","getShareUrl"],"mappings":"iNAAA,IAAIA,GAAe,WA0BZ,SAAgBC,EAAOC,GAC1BD,EAAME,iBACQD,EAAKE,cAAcC,YAAYC,KACzCJ,EAAKK,WAAWC,KAChB,sBACA,kFAEEC,OAAS,oBAXZ,SAAqBC,gEACsCC,mBAAmBD,WAajE,qBAlCb,SAAgBE,EAAOC,EAAUH,UAC/BV,IACDA,GAAe,EACfc,QAAQC,KAAK,iXAOV,YAFKC,KAAKC,YAAYP"}
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/reddit.js:
--------------------------------------------------------------------------------
1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).ShareThisViaReddit={})}(this,function(e){"use strict";var t=120;e.getShareUrl=function(e,t){return"https://reddit.com/submit?title="+encodeURIComponent(e)+"&url="+encodeURIComponent(t)},e.getText=function(e){var r=e.trim();return r.length>t-2&&(r=r.slice(0,t-3).trim()+"…"),"“"+r+"”"},e.name="reddit",e.render=function(e,t,r){var n=this.getText(e);return' '},Object.defineProperty(e,"__esModule",{value:!0})});
2 | //# sourceMappingURL=reddit.js.map
3 |
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/reddit.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"reddit.js","sources":["../../src/sharers/reddit.js"],"sourcesContent":["export function render(text, rawText, refUrl) {\n const shareText = this.getText(text);\n const url = this.getShareUrl(shareText, refUrl);\n\n return ``\n + \"\"\n + \"\"\n + \" \";\n}\n\nconst CHAR_LIMIT = 120;\nexport function getText(text) {\n let chunk = text.trim();\n if (chunk.length > CHAR_LIMIT - 2) {\n chunk = chunk.slice(0, CHAR_LIMIT - 3).trim() + \"\\u2026\";\n }\n\n return `\\u201c${chunk}\\u201d`;\n}\n\nexport function getShareUrl(text, refUrl) {\n return `https://reddit.com/submit?title=${encodeURIComponent(text)}&url=${encodeURIComponent(refUrl)}`;\n}\n\nexport const name = \"reddit\";\n"],"names":["CHAR_LIMIT","text","refUrl","encodeURIComponent","chunk","trim","length","slice","rawText","shareText","this","getText","getShareUrl"],"mappings":"+MAgCA,IAAMA,EAAa,kBAUZ,SAAqBC,EAAMC,4CACYC,mBAAmBF,WAAaE,mBAAmBD,cAV1F,SAAiBD,OAChBG,EAAQH,EAAKI,cACbD,EAAME,OAASN,EAAa,IAC5BI,EAAQA,EAAMG,MAAM,EAAGP,EAAa,GAAGK,OAAS,SAGpCD,cAOA,kBA9Cb,SAAgBH,EAAMO,EAASN,OAC5BO,EAAYC,KAAKC,QAAQV,SAGxB,YAFKS,KAAKE,YAAYH,EAAWP"}
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/speakers.js:
--------------------------------------------------------------------------------
1 | var ShareThisViaSpeakers = (function() {
2 | var langs = [ "en-US", "en_US", "en-GB", "en_GB", "en" ];
3 | function findVoice() {
4 | // Filtering english voices and sorting by the given order
5 | var localVoices = synth.getVoices().filter(function(voice) {
6 | return langs.indexOf(voice.lang) >= 0;
7 | }).sort(function(v1, v2) {
8 | return langs.indexOf(v1.lang) - langs.indexOf(v2.lang);
9 | });
10 | return localVoices[0];
11 | }
12 |
13 | var synth = window.speechSynthesis;
14 | return {
15 | name: "speakers",
16 | render: function(text, rawText, refUrl) {
17 | this.text = text;
18 | return ""
19 | + ""
20 | + ""
21 | + " "
22 | + ""
23 | + " ";
24 | },
25 | active: !!synth,
26 | action: function(event) {
27 | event.preventDefault();
28 | if (this.text) {
29 | var utterance = new SpeechSynthesisUtterance(this.text);
30 | var voice = findVoice();
31 | if (voice) utterance.voice = voice;
32 | synth.speak(utterance);
33 | }
34 | }
35 | };
36 | })();
37 |
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/twitter.js:
--------------------------------------------------------------------------------
1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).ShareThisViaTwitter={})}(this,function(e){"use strict";var t=120;e.action=function(e,t){e.preventDefault(),t.ownerDocument.defaultView.open(t.firstChild.href,"share_via_twitter","height=440,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,width=640").opener=null},e.getShareUrl=function(e,t){return"https://twitter.com/intent/tweet?text="+encodeURIComponent(e)+"&url="+encodeURIComponent(t)},e.getText=function(e){var n=e.trim();return n.length>t-2&&(n=n.slice(0,t-3).trim()+"…"),"“"+n+"”"},e.name="twitter",e.render=function(e,t,n){var r=this.getText(e);return' '},Object.defineProperty(e,"__esModule",{value:!0})});
2 | //# sourceMappingURL=twitter.js.map
3 |
--------------------------------------------------------------------------------
/src/libs/share-this/sharers/twitter.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"twitter.js","sources":["../../src/sharers/twitter.js"],"sourcesContent":["export function render(text, rawText, refUrl) {\n const shareText = this.getText(text);\n const url = this.getShareUrl(shareText, refUrl);\n\n return ``\n + \"\"\n + \"\"\n + \" \";\n}\n\nconst CHAR_LIMIT = 120;\nexport function getText(text) {\n let chunk = text.trim();\n if (chunk.length > CHAR_LIMIT - 2) {\n chunk = chunk.slice(0, CHAR_LIMIT - 3).trim() + \"\\u2026\";\n }\n\n return `\\u201c${chunk}\\u201d`;\n}\n\nexport function getShareUrl(text, refUrl) {\n return `https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(refUrl)}`;\n}\n\nexport function action(event, item) {\n event.preventDefault();\n const popup = item.ownerDocument.defaultView.open(\n item.firstChild.href,\n \"share_via_twitter\",\n \"height=440,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,width=640\"\n );\n popup.opener = null;\n}\n\nexport const name = \"twitter\";\n"],"names":["CHAR_LIMIT","event","item","preventDefault","ownerDocument","defaultView","open","firstChild","href","opener","text","refUrl","encodeURIComponent","chunk","trim","length","slice","rawText","shareText","this","getText","getShareUrl"],"mappings":"gNAeA,IAAMA,EAAa,aAcZ,SAAgBC,EAAOC,GAC1BD,EAAME,iBACQD,EAAKE,cAAcC,YAAYC,KACzCJ,EAAKK,WAAWC,KAChB,oBACA,kFAEEC,OAAS,oBAXZ,SAAqBC,EAAMC,kDACkBC,mBAAmBF,WAAaE,mBAAmBD,cAVhG,SAAiBD,OAChBG,EAAQH,EAAKI,cACbD,EAAME,OAASf,EAAa,IAC5Ba,EAAQA,EAAMG,MAAM,EAAGhB,EAAa,GAAGc,OAAS,SAGpCD,cAiBA,mBAvCb,SAAgBH,EAAMO,EAASN,OAC5BO,EAAYC,KAAKC,QAAQV,SAGxB,YAFKS,KAAKE,YAAYH,EAAWP"}
--------------------------------------------------------------------------------
/src/libs/sharer.js/sharer.js:
--------------------------------------------------------------------------------
1 | (function(g,r){"use strict";var s=function(t){this.elem=t};s.init=function(){var t=r.querySelectorAll("[data-sharer]"),e,a=t.length;for(e=0;e0?"?":"";for(r=0;r {
54 |
55 | if (error) {
56 | x = wikiApp.createErrorObj(error);
57 | var Obj = {
58 | data:x,
59 | status: false
60 | };
61 | return Obj;
62 | }
63 | })
64 | }
65 |
66 | getRandomArticle() {
67 |
68 | var wikipedia = this.wiki;
69 | return fetch(
70 | `https://${wikipedia}.wikipedia.org/api/rest_v1/page/random/title`)
71 | .then(function (response) {
72 | return response.json();
73 | })
74 | .then(function (json) {
75 | var data = json.items[0];
76 |
77 | var Obj = {
78 |
79 | status: "success",
80 | data: {
81 | title: data.title,
82 | pageid: data.page_id,
83 | }
84 | }
85 |
86 | return Obj;
87 | })
88 | .catch((error) => {
89 | if (error) {
90 | var Obj = wikiApp.createErrorObj(error);
91 | return Obj;
92 | }
93 | })
94 | }
95 | searchArticles(title) {
96 | var wikipedia = this.wiki;
97 | if (!title) {
98 | return wikiApp.createErrorObj("Page title cannot be null.")
99 | }
100 |
101 | return fetch(
102 | `https://${wikipedia}.wikipedia.org/w/api.php?format=json&action=query&origin=*&prop=revisions&list=search&srsearch=${title}`)
103 | .then(function (response) {
104 | return response.json();
105 | })
106 | .then(function (json) {
107 | var data = json.query.search;
108 | var sResults = {};
109 |
110 | data.forEach(function (item) {
111 | sResults[item.title] = {
112 | title: item.title,
113 | page: item.pageid,
114 | words: item.wordcount,
115 | snippet: wikiApp.stripHTML(item.snippet),
116 | url: `http://${wikipedia}.wikipedia.org/?curid=` + item.pageid
117 | }
118 | });
119 | var Obj = {
120 |
121 | status: "success",
122 | data: {
123 | results: sResults,
124 | }
125 | }
126 |
127 | return Obj;
128 | })
129 | .catch((error) => {
130 | if (error) {
131 | var Obj = wikiApp.createErrorObj(error);
132 | return Obj;
133 | }
134 | })
135 | }
136 | getImage(title) {
137 | if (!title) {
138 | return wikiApp.createErrorObj("Page title cannot be null.")
139 | }
140 |
141 | return fetch(
142 | `https://en.wikipedia.org/w/api.php?action=query&titles=${title}&format=json&prop=images&origin=*`)
143 | .then(function (response) {
144 | return response.json();
145 | })
146 | .then(function (json) {
147 | var data = json;
148 |
149 | var results = [];
150 |
151 | var pages = data.query.pages;
152 |
153 | var x = pages[Object.keys(pages)[0]].images;
154 |
155 |
156 | x.forEach(function (item, intex) {
157 | results.push(" https://en.wikipedia.org/w/index.php?title=Special:Redirect/file/" + item.title)
158 | });
159 |
160 | var Obj = {
161 | page: Object.keys(pages)[0],
162 | images: Object.assign({}, results)
163 | }
164 |
165 | return Obj
166 | })
167 | .catch((error) => {
168 | if (error) {
169 | var Obj = wikiApp.createErrorObj(error);
170 | return Obj;
171 | }
172 | })
173 | }
174 | getOnThisDay(params = {}) {
175 |
176 | const today = new Date();
177 | var type = params.type || "events",
178 | day = params.day || today.getDate(),
179 | month = params.month || today.getMonth() + 1;
180 |
181 | if (type === "events" || type === "deaths" || type === "births") { } else {
182 | return wikiApp.createErrorObj(`Parameter Error - [${type}] is not a valid category [events/deaths/births]`)
183 | }
184 |
185 | if (wikiApp.isBetween(day, 0, 32) && wikiApp.isBetween(month, 0, 13)) { } else {
186 | return wikiApp.createErrorObj("Parameter Error - Parameter should be in the format (date [d], month [m]).\nExample (1, 12) which means December 1st")
187 | }
188 |
189 | return fetch(
190 | `https://cdn.jsdelivr.net/gh/harrify-apis/historyjs/${type}/${month}_${day}.json`)
191 | .then(function (response) {
192 | return response.json();
193 | })
194 | .then(function (json) {
195 | var data = json;
196 | var Obj = {
197 | date: data.date,
198 | url: data.wikipedia,
199 | type: type,
200 | data: data[type]
201 | }
202 |
203 | return Obj;
204 | })
205 | .catch((error) => {
206 | if (error) {
207 | var Obj = wikiApp.createErrorObj(error);
208 | return Obj;
209 | }
210 | })
211 |
212 | }
213 | getFullContent(title) {
214 | var wikipedia = this.wiki;
215 | return fetch(
216 | `https://${wikipedia}.wikipedia.org/w/api.php?action=query&prop=extracts&titles=${title}&format=json&origin=*`)
217 | .then(function (response) {
218 | return response.json();
219 | })
220 | .then(function (json) {
221 | var data = json.query.pages;
222 | var pageid = data[Object.keys(data)[0]].pageid;
223 | var wiki = data[pageid];
224 |
225 | var Obj = {
226 | status: "success",
227 | data: {
228 | title: wiki.title,
229 | content: wiki.extract,
230 | id: wiki.pageid,
231 | url: `http://${wikipedia}.wikipedia.org/?curid=` + pageid
232 | }
233 | }
234 |
235 | return Obj;
236 | })
237 | .catch((error) => {
238 | if (error) {
239 | var Obj = wikiApp.createErrorObj(error);
240 | return Obj;
241 | }
242 | })
243 |
244 | }
245 | getPageHTML(title) {
246 | var wikipedia = this.wiki;
247 | return fetch(
248 | `https://en.wikipedia.org/w/api.php?action=parse&format=json&page=${title}&prop=text&origin=*`)
249 | .then(function (response) {
250 | return response.json();
251 | })
252 | .then(function (json) {
253 | var data = json.parse;
254 |
255 | var Obj = {
256 | status: "success",
257 | data: {
258 | title: data.title,
259 | content: data.text["*"],
260 | id: data.pageid,
261 | url: `http://${wikipedia}.wikipedia.org/?curid=` + data.pageid
262 | }
263 | }
264 |
265 | return Obj;
266 | })
267 | .catch((error) => {
268 | if (error) {
269 | var Obj = wikiApp.createErrorObj(error);
270 | return Obj;
271 | }
272 | })
273 |
274 | }
275 | getSummary(title) {
276 | var wikipedia = this.wiki;
277 | return fetch(
278 | `https://${wikipedia}.wikipedia.org/api/rest_v1/page/summary/${title}`)
279 | .then(function (response) {
280 | return response.json();
281 | })
282 | .then(function (json) {
283 | var data = json
284 |
285 | var Obj = {
286 | status: "success",
287 | data: {
288 | title: data.title,
289 | abstract: data.description,
290 | id: data.pageid,
291 | content: data.extract,
292 | url: `http://${wikipedia}.wikipedia.org/?curid=` + data.pageid
293 | }
294 | }
295 |
296 | return Obj;
297 | })
298 | .catch((error) => {
299 | if (error) {
300 | var Obj = wikiApp.createErrorObj(error);
301 | return Obj;
302 | }
303 | })
304 |
305 | }
306 | getThumbnail(title, size = 1000) {
307 | var wikipedia = this.wiki;
308 | return fetch(
309 | `https://en.wikipedia.org/w/api.php?action=query&titles=${title}&origin=*&prop=pageimages&format=json&pithumbsize=${size}`)
310 | .then(function (response) {
311 | return response.json();
312 | })
313 | .then(function (json) {
314 | var data = json.query.pages;
315 | var pageid = data[Object.keys(data)[0]].pageid;
316 | var wiki = data[pageid];
317 |
318 | var Obj = {
319 | status: "success",
320 | data: {
321 | id: wiki.pageid,
322 | image: wiki.thumbnail.source,
323 | }
324 | }
325 |
326 | return Obj;
327 | })
328 | .catch((error) => {
329 | if (error) {
330 | var Obj = wikiApp.createErrorObj(error);
331 | Obj["status"] = "failed"
332 | return Obj;
333 | }
334 | })
335 | }
336 |
337 | getImage2(title) {
338 | var wikipedia = this.wiki;
339 | return fetch(
340 | `https://${wikipedia}.wikipedia.org/w/api.php?action=parse&page=${title}&prop=images&format=json&origin=*`)
341 | .then(function (response) {
342 | return response.json();
343 | })
344 | .then(function (json) {
345 | var data = json.parse,
346 |
347 | pictures = data["images"]
348 |
349 | return {
350 | data: pictures,
351 | status: "success"
352 | };
353 | })
354 | .catch((error) => {
355 | if (error) {
356 | var Obj = wikiApp.createErrorObj(error);
357 | return Obj;
358 | }
359 | })
360 | }
361 | getPDF(title) {
362 | var endpoint = `https://en.wikipedia.org/api/rest_v1/page/pdf/${title}`;
363 | return fetch(endpoint)
364 | .then(function (response) {
365 | return response.json();
366 | })
367 | .then(function () {
368 | return wikiApp.createErrorObj("Wiki Error: Page not found")
369 | })
370 | .catch(() => {
371 | window.location = endpoint
372 |
373 | })
374 | }
375 | getInfoBox(title) {
376 | var wikipedia = this.wiki;
377 | return fetch(
378 | `https://${wikipedia}.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&titles=${title}&rvsection=0&rvparse&origin=*`)
379 | .then(function (response) {
380 | return response.json();
381 | })
382 | .then(function (json) {
383 | var data = json.query.pages;
384 | var pageid = data[Object.keys(data)[0]].pageid;
385 | var wiki = data[pageid];
386 |
387 | var html = wiki.revisions[0]["*"]
388 | var s = document.createElement("div");
389 | s.innerHTML = html;
390 |
391 | var x = $(s).find("table").html();
392 |
393 | var Obj = {
394 | status: "success",
395 | content: x,
396 | id: wiki.pageid,
397 | url: `http://${wikipedia}.wikipedia.org/?curid=` + wiki.pageid
398 | }
399 |
400 | return Obj;
401 | })
402 | .catch((error) => {
403 | if (error) {
404 | var Obj = wikiApp.createErrorObj(error);
405 | return {
406 | data: Obj,
407 | status: "failed"
408 | };
409 | }
410 | })
411 | }
412 | }
413 |
414 | const wikiApp = {
415 | createErrorObj(data) {
416 | var Obj = {
417 | status: "failed",
418 | data: data
419 | }
420 | //console.error("Wiki Error /", data)
421 | return Obj;
422 | },
423 | stripHTML: function (html) {
424 | try {
425 | var div = document.createElement("div");
426 | div.innerHTML = html;
427 | return div.innerText;
428 | } catch {
429 | return html
430 | }
431 | },
432 | isBetween: function (x, a, b) {
433 | if (x > a && x < b) {
434 | return true
435 | } else {
436 | return false
437 | }
438 | },
439 | availableWikipedia: ["en", "fr", "de", "es", "ja", "ru", "pt", "zh", "it", "fa", "ar", "pl", "nl", "uk", "id", "he", "vi", "tr", "sv", "ko", "cs", "fi", "hu", "ca", "hi", "simple", "no", "bn", "th", "el", "ro", "da", "az", "sr", "bg", "ms", "et", "hr", "hy", "sk", "ml", "eu", "sl", "eo", "lt", "ta", "sq", "lv", "be", "gl", "ka", "ur", "kk", "mk", "uz", "te", "mr", "sh", "arz", "af", "bs", "ceb", "kn", "ha", "nn", "is", "la", "my", "sw", "ast", "tl", "jv", "ba", "as", "ckb", "azb", "si", "cy", "sco", "ne", "br", "tt", "als", "ga", "oc", "mn", "so", "gu", "pa", "ky", "war", "an", "ku", "dag", "lb", "tg", "bar", "km", "yo", "su", "min", "ps", "bcl", "pnb", "nds", "tk", "mg", "fy", "or", "ang", "hif", "io", "cv", "ce", "ht", "lmo", "wuu", "am", "ig", "yi", "qu", "bh", "ban", "mzn", "ary", "sah", "ia", "vec", "ace", "lo", "scn", "fo", "sa", "kw", "diq", "gn", "sd", "hyw", "eml", "ie", "rw", "mai", "szl", "vo", "ay", "sat", "co", "sc", "xmf", "new", "zu", "hsb", "lij", "os", "gd", "ak", "hak", "vls", "bi", "frp", "mt", "nap", "sn", "vep", "crh", "li", "pms", "ilo", "ks", "cdo", "nah", "bo", "wa", "pam", "myv", "mi", "frr", "bpy", "lad", "se", "fur", "gag", "smn", "pcd", "udm", "bug", "avk", "chr", "gan", "kv", "mhr", "tw", "kab", "mnw", "tcy", "ug", "ab", "ln", "lfn", "pap", "dty", "dz", "haw", "gv", "rue", "bjn", "cu", "szy", "bxr", "ny", "dv", "gor", "kl", "rn", "lld", "ext", "ksh", "ady", "av", "ch", "chy", "cr", "dsb", "kbp", "csb", "kg", "jbo", "mwl", "pdc", "rm", "shi", "iu", "mad", "nov", "arc", "tpi", "ts", "tyv", "zea", "shn", "glk", "mrj", "na", "nv", "nrm", "sm", "tet", "bm", "pag", "wo", "awa", "ff", "got", "inh", "krc", "kaa", "lbe", "lez", "pih", "xh", "fj", "jam", "kbd", "xal", "om", "ss", "tn", "rmy", "gom", "din", "ee", "ik", "olo", "mdf", "nqo", "ti", "lg", "nia", "koi", "ltg", "pnt", "to", "za", "skr", "ki", "stq", "st", "ty", "atj", "nso", "pi", "srn", "ve", "gcr", "pfl", "sg", "tum", "nostalgia"]
440 | }
--------------------------------------------------------------------------------
/wiki.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | Wikifox - Wikipedia Re-imagined
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
50 |
108 |
109 |
110 |
111 |
117 |
118 |
119 |
120 |
121 |
122 |
Search for section titles or sub-topics. You can also search
123 | from the whole content!
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
Do you want to download this article as Classic wikipedia-styled
134 | PDF document? We will generate it for you!
135 |
136 |
137 |
138 |
Download
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 | Keyboard Shortcuts
150 |
151 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
Share this article to your friend's, family and anyone with your
164 | favorite platform!
165 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
201 |
231 |
232 |
233 |
Download Article
234 |
235 |
236 |
241 |
246 |
247 |
248 |
249 |
250 |
251 |
254 |
256 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
271 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
--------------------------------------------------------------------------------