mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-10-06 13:40:16 +08:00
merged master
This commit is contained in:
commit
9e2e6eb803
18 changed files with 3401 additions and 3112 deletions
33
.github/ISSUE_TEMPLATE/bug_report.md
vendored
33
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -6,47 +6,44 @@ labels: bug
|
|||
assignees: ""
|
||||
---
|
||||
|
||||
<!-- **DID YOU MAKE SURE TO CLEAR CACHE BEFORE OPENING AN ISSUE?**
|
||||
Sometimes your browser has old files cached and the bug you are experiencing might be already fixed, or is just a side effect of a new update. If you don't know how to do that, this website should help: https://www.pcmag.com/how-to/how-to-clear-your-cache-on-any-browser -->
|
||||
<!--
|
||||
**DID YOU MAKE SURE TO CLEAR CACHE BEFORE OPENING AN ISSUE?**
|
||||
Sometimes your browser has old files cached and the bug you are experiencing might be already fixed, or is just a side effect of a new update. If you don't know how to do that, this website should help: https://www.pcmag.com/how-to/how-to-clear-your-cache-on-any-browser
|
||||
|
||||
**Describe the bug**
|
||||
-->
|
||||
|
||||
<!-- A clear and concise description of what the bug is. -->
|
||||
**Describe the bug** <!-- A clear and concise description of what the bug is. -->
|
||||
|
||||
<!--
|
||||
|
||||
**Did it happen in incognito mode?**
|
||||
|
||||
<!-- Sometimes things work in incognito mode, which allows me to further track down the issue. -->
|
||||
Sometimes things work in incognito mode, which allows me to further track down the issue.
|
||||
|
||||
**To Reproduce**
|
||||
-->
|
||||
|
||||
<!-- Steps to reproduce the behavior: -->
|
||||
**To Reproduce** <!-- Steps to reproduce the behavior: -->
|
||||
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
**Expected behavior** <!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
**Screenshots** <!-- If applicable, add screenshots to further help explain your problem. -->
|
||||
|
||||
**Screenshots**
|
||||
|
||||
<!-- If applicable, add screenshots to further help explain your problem. -->
|
||||
|
||||
**Desktop:** <!-- (if you encountered an issue while using Monkeytype on your computer please complete the following information) -->
|
||||
**Desktop:** <!-- if you encountered an issue while using Monkeytype on your computer please complete the following information, delete this section if not-->
|
||||
|
||||
- OS: [] <!-- e.g. Windows 10, MacOS, Linux-->
|
||||
- Browser [] <!-- e.g. Chrome, Firefox, Safari, etc... -->
|
||||
- Version [] <!-- e.g. 22 -->
|
||||
|
||||
**Smartphone:** <!-- (if you encountered an issue while using Monkeytype on your smartphone please complete the following information) -->
|
||||
**Smartphone:** <!-- if you encountered an issue while using Monkeytype on your smartphone please complete the following information, delete this section if not -->
|
||||
|
||||
- Device: [] <!-- e.g. iPhone6, Google Pixel 4, etc... -->
|
||||
- OS: [] <!-- e.g. IOS 8.1, Android 11, etc... -->
|
||||
- Browser [] <!-- e.g. stock browser, Safari, Chrome -->
|
||||
- Version [] <!-- e.g. 22 -->
|
||||
|
||||
**Additional context**
|
||||
|
||||
<!-- Add any other context about the problem here. -->
|
||||
**Additional context** <!-- Add any other context about the problem here. -->
|
||||
|
|
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
|
@ -1,4 +1,4 @@
|
|||
Adding a language or a theme? Make sure to edit the `_list.json` file and add the `language.json` or `theme.css` as well, otherwise, it will not work!
|
||||
Adding a language or a theme? For languages, make sure to edit the `_list.json`, `_groups.json` files, and add the `language.json` file as well. For themes, make sure to add the `theme.css` file. It will not work if you don't follow these steps!
|
||||
|
||||
Please reference any issues related to your pull request.
|
||||
|
||||
|
|
27
code_r.json
Normal file
27
code_r.json
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"name": "code_r",
|
||||
"leftToRight": true,
|
||||
"words": [
|
||||
"if",
|
||||
"for",
|
||||
"FALSE",
|
||||
"NA_integer_",
|
||||
"return",
|
||||
"else",
|
||||
"in",
|
||||
"NULL",
|
||||
"NA_real_",
|
||||
"repeat",
|
||||
"next",
|
||||
"Inf",
|
||||
"NA_complex_",
|
||||
"while",
|
||||
"break",
|
||||
"NaN",
|
||||
"NA_character_",
|
||||
"function",
|
||||
"TRUE",
|
||||
"NA",
|
||||
"..."
|
||||
]
|
||||
}
|
|
@ -65,15 +65,15 @@ async function filter(language) {
|
|||
return filteredWords;
|
||||
}
|
||||
|
||||
async function apply() {
|
||||
async function apply(set) {
|
||||
let language = $("#wordFilterPopup .languageInput").val();
|
||||
let filteredWords = await filter(language);
|
||||
let customText = "";
|
||||
filteredWords.forEach((word) => {
|
||||
customText += word + " ";
|
||||
});
|
||||
let customText = filteredWords.join(" ");
|
||||
|
||||
$("#customTextPopup textarea").val(
|
||||
(index, val) => (set ? "" : val + " ") + customText
|
||||
);
|
||||
hide();
|
||||
$("#customTextPopup textarea").val(customText);
|
||||
}
|
||||
|
||||
$("#wordFilterPopupWrapper").mousedown((e) => {
|
||||
|
@ -90,8 +90,9 @@ $("#wordFilterPopupWrapper .button").mousedown((e) => {
|
|||
$("#wordFilterPopupWrapper .loadingIndicator").removeClass("hidden");
|
||||
$("#wordFilterPopupWrapper .button").addClass("hidden");
|
||||
setTimeout(() => {
|
||||
apply();
|
||||
$("#wordFilterPopupWrapper .loadingIndicator").addClass("hidden");
|
||||
$("#wordFilterPopupWrapper .button").removeClass("hidden");
|
||||
apply($(e.target).is("#set")).then(() => {
|
||||
$("#wordFilterPopupWrapper .loadingIndicator").addClass("hidden");
|
||||
$("#wordFilterPopupWrapper .button").removeClass("hidden");
|
||||
});
|
||||
}, 1);
|
||||
});
|
||||
|
|
|
@ -641,8 +641,20 @@ export function restart(withSameWordset = false, nosave = false, event) {
|
|||
let testSeconds = TestStats.calculateTestSeconds(performance.now());
|
||||
let afkseconds = TestStats.calculateAfkSeconds();
|
||||
// incompleteTestSeconds += ;
|
||||
TestStats.incrementIncompleteSeconds(testSeconds - afkseconds);
|
||||
let tt = testSeconds - afkseconds;
|
||||
console.log(
|
||||
`increasing incomplete time by ${tt}s (${testSeconds}s - ${afkseconds}s afk)`
|
||||
);
|
||||
TestStats.incrementIncompleteSeconds(tt);
|
||||
TestStats.incrementRestartCount();
|
||||
if (tt > 600) {
|
||||
Notifications.add(
|
||||
`Your time typing just increased by ${Misc.roundTo2(
|
||||
tt / 60
|
||||
)} minutes. If you think this is incorrect please contact Miodec and dont refresh the website.`,
|
||||
-1
|
||||
);
|
||||
}
|
||||
// restartCount++;
|
||||
}
|
||||
|
||||
|
|
|
@ -156,6 +156,7 @@ html {
|
|||
.select2-selection {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
height: fit-content;
|
||||
height: -moz-fit-content;
|
||||
padding: 5px;
|
||||
border-radius: var(--roundness);
|
||||
color: var(--text-color);
|
||||
|
@ -199,6 +200,7 @@ html {
|
|||
|
||||
.select2-selection:focus {
|
||||
height: fit-content;
|
||||
height: -moz-fit-content;
|
||||
padding: 5px;
|
||||
border-radius: var(--roundness);
|
||||
color: var(--text-color);
|
||||
|
@ -208,6 +210,7 @@ html {
|
|||
}
|
||||
.select2-selection:active {
|
||||
height: fit-content;
|
||||
height: -moz-fit-content;
|
||||
padding: 5px;
|
||||
border-radius: var(--roundness);
|
||||
color: var(--text-color);
|
||||
|
@ -1787,12 +1790,14 @@ key {
|
|||
grid-auto-flow: column;
|
||||
width: fit-content;
|
||||
gap: 1rem;
|
||||
width: -moz-fit-content;
|
||||
}
|
||||
.right {
|
||||
text-align: right;
|
||||
display: grid;
|
||||
grid-auto-flow: column;
|
||||
width: fit-content;
|
||||
width: -moz-fit-content;
|
||||
justify-self: right;
|
||||
gap: 1rem;
|
||||
// align-items: center;
|
||||
|
@ -2123,6 +2128,7 @@ key {
|
|||
|
||||
#words {
|
||||
height: fit-content;
|
||||
height: -moz-fit-content;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
width: 100%;
|
||||
|
@ -2582,6 +2588,7 @@ key {
|
|||
font-size: 0.75rem;
|
||||
line-height: 0.75rem;
|
||||
height: fit-content;
|
||||
height: -moz-fit-content;
|
||||
align-self: center;
|
||||
justify-self: right;
|
||||
padding: 0.25rem 0;
|
||||
|
@ -3133,6 +3140,7 @@ key {
|
|||
// background: var(--sub-color);
|
||||
color: var(--sub-color);
|
||||
width: fit-content;
|
||||
width: -moz-fit-content;
|
||||
padding: 0.5rem;
|
||||
border-radius: var(--roundness);
|
||||
cursor: pointer;
|
||||
|
|
|
@ -202,10 +202,15 @@
|
|||
Use the above filters to include and exclude words or characters
|
||||
(separated by spaces)
|
||||
</div>
|
||||
<div class="tip">
|
||||
"Set" replaces the current custom word list with the filter result,
|
||||
"Add" appends the filter result to the current custom word list
|
||||
</div>
|
||||
<i
|
||||
class="fas fa-fw fa-spin fa-circle-notch hidden loadingIndicator"
|
||||
></i>
|
||||
<div class="button">ok</div>
|
||||
<div class="button" id="set">set</div>
|
||||
<div class="button">add</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="customWordAmountPopupWrapper" class="hidden">
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
[
|
||||
{
|
||||
"name": "english",
|
||||
"languages": ["english", "english_1k", "english_10k", "english_25k", "english_450k"]
|
||||
"languages": [
|
||||
"english",
|
||||
"english_1k",
|
||||
"english_10k",
|
||||
"english_25k",
|
||||
"english_450k"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "spanish",
|
||||
|
@ -29,7 +35,7 @@
|
|||
},
|
||||
{
|
||||
"name": "portuguese",
|
||||
"languages": ["portuguese","portuguese_3k"]
|
||||
"languages": ["portuguese", "portuguese_3k"]
|
||||
},
|
||||
{
|
||||
"name": "lithuanian",
|
||||
|
@ -41,7 +47,13 @@
|
|||
},
|
||||
{
|
||||
"name": "german",
|
||||
"languages": ["german", "german_1k", "german_10k", "swiss_german", "swiss_german_1k"]
|
||||
"languages": [
|
||||
"german",
|
||||
"german_1k",
|
||||
"german_10k",
|
||||
"swiss_german",
|
||||
"swiss_german_1k"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "greek",
|
||||
|
@ -156,7 +168,7 @@
|
|||
"languages": [
|
||||
"code_python",
|
||||
"code_c",
|
||||
"code_csharp",
|
||||
"code_c#",
|
||||
"code_c++",
|
||||
"code_javascript",
|
||||
"code_javascript_1k",
|
||||
|
@ -164,7 +176,8 @@
|
|||
"code_java",
|
||||
"code_go",
|
||||
"code_rust",
|
||||
"code_ruby"
|
||||
"code_ruby",
|
||||
"code_r"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
,"pig_latin"
|
||||
,"code_python"
|
||||
,"code_c"
|
||||
,"code_csharp"
|
||||
,"code_c#"
|
||||
,"code_c++"
|
||||
,"code_javascript"
|
||||
,"code_javascript_1k"
|
||||
|
@ -92,4 +92,5 @@
|
|||
,"code_go"
|
||||
,"code_rust"
|
||||
,"code_ruby"
|
||||
,"code_r"
|
||||
]
|
||||
|
|
|
@ -8599,7 +8599,6 @@
|
|||
"cashed",
|
||||
"kama",
|
||||
"rumba",
|
||||
"niggers",
|
||||
"satyr",
|
||||
"wineglass",
|
||||
"keynes",
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -56,9 +56,14 @@
|
|||
}
|
||||
</style>
|
||||
<script defer>
|
||||
// TODO: Add banner that appears when username copy is successful
|
||||
function copyUserName() {
|
||||
navigator.clipboard.writeText("Miodec#1512");
|
||||
// alert("Copied To Clipboard!");
|
||||
if (true) {
|
||||
navigator.clipboard.writeText("Miodec#1512");
|
||||
alert("Copied To Clipboard!");
|
||||
} else {
|
||||
alert("Unable to copy username");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
@ -81,25 +86,24 @@
|
|||
This privacy policy explains how Monkeytype uses the data we collect
|
||||
from you when you use our website.
|
||||
</p>
|
||||
|
||||
<p>Table of Contents</p>
|
||||
<ul>
|
||||
<li>What data do we collect?</li>
|
||||
<li>How do we collect your data?</li>
|
||||
<li>How will we use your data?</li>
|
||||
<li>How do we store your data?</li>
|
||||
<li>What are your data protection rights?</li>
|
||||
<li>What are cookies?</li>
|
||||
<li>How do we use cookies?</li>
|
||||
<li>What types of cookies do we use?</li>
|
||||
<li>How to manage your cookies</li>
|
||||
<li>Privacy policies of other websites</li>
|
||||
<li>Changes to our privacy policy</li>
|
||||
<li>How to contact us</li>
|
||||
<li>How to contact the appropriate authorities</li>
|
||||
<li><a href="#topic1">What data do we collect?</a></li>
|
||||
<li><a href="#topic2">How do we collect your data?</a></li>
|
||||
<li><a href="#topic3">How will we use your data?</a></li>
|
||||
<li><a href="#topic4">How do we store your data?</a></li>
|
||||
<li><a href="#topic5">What are your data protection rights?</a></li>
|
||||
<li><a href="#topic6">What log data do we collect?</a></li>
|
||||
<li><a href="#topic7">What are cookies?</a></li>
|
||||
<li><a href="#topic8">How do we use cookies?</a></li>
|
||||
<li><a href="#topic9">What types of cookies do we use?</a></li>
|
||||
<li><a href="#topic10">How to manage your cookies</a></li>
|
||||
<li><a href="#end">Privacy policies of other websites</a></li>
|
||||
<li><a href="#end">Changes to our privacy policy</a></li>
|
||||
<li><a href="#end">How to contact us</a></li>
|
||||
</ul>
|
||||
|
||||
<h1>What data do we collect?</h1>
|
||||
<h1 id="topic1">What data do we collect?</h1>
|
||||
<p>Monkeytype collects the following data:</p>
|
||||
<ul>
|
||||
<li>Email</li>
|
||||
|
@ -110,7 +114,7 @@
|
|||
<li>How long you've been typing on the website</li>
|
||||
</ul>
|
||||
|
||||
<h1>How do we collect your data?</h1>
|
||||
<h1 id="topic2">How do we collect your data?</h1>
|
||||
|
||||
<p>
|
||||
You directly provide most of the data we collect. We collect data and
|
||||
|
@ -122,7 +126,7 @@
|
|||
<li>Change settings on the website</li>
|
||||
</ul>
|
||||
|
||||
<h1>How do we use your data?</h1>
|
||||
<h1 id="topic3">How do we use your data?</h1>
|
||||
<p>Monkeytype collects your data so that we can:</p>
|
||||
|
||||
<ul>
|
||||
|
@ -138,10 +142,10 @@
|
|||
<li>Display leaderboards</li>
|
||||
</ul>
|
||||
|
||||
<h1>How do we store your data?</h1>
|
||||
<h1 id="topic4">How do we store your data?</h1>
|
||||
<p>Monkeytype securely stores your data using Firebase Firestore.</p>
|
||||
|
||||
<h1>What are your data protection rights?</h1>
|
||||
<h1 id="topic5">What are your data protection rights?</h1>
|
||||
<p>
|
||||
Monkeytype would like to make sure you are fully aware of all of your
|
||||
data protection rights. Every user is entitled to the following:
|
||||
|
@ -180,7 +184,7 @@
|
|||
</ul>
|
||||
<!-- <p>If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us at our email: jack@monkeytype.com</p> -->
|
||||
|
||||
<h1>Log Data</h1>
|
||||
<h1 id="topic6">What log data do we collect?</h1>
|
||||
<p>
|
||||
Like most websites, Monkeytype collects information that your browser
|
||||
sends whenever you visit the website. This data may include internet
|
||||
|
@ -196,7 +200,7 @@
|
|||
</p>
|
||||
<p>In our case, this service is provided by Google Analytics.</p>
|
||||
|
||||
<h1>Cookies</h1>
|
||||
<h1 id="topic7">Cookies</h1>
|
||||
<p>
|
||||
Cookies are text files placed on your computer to collect standard
|
||||
Internet log information and visitor behavior information. When you
|
||||
|
@ -215,7 +219,7 @@
|
|||
.
|
||||
</p>
|
||||
|
||||
<h1>How do we use cookies?</h1>
|
||||
<h1 id="topic8">How do we use cookies?</h1>
|
||||
<p>
|
||||
Monkeytype uses cookies in a range of ways to improve your experience
|
||||
on our website, including:
|
||||
|
@ -225,25 +229,21 @@
|
|||
<li>Remembering your active settings</li>
|
||||
<li>Remembering your active tags</li>
|
||||
</ul>
|
||||
<h1>What types of cookies do we use?</h1>
|
||||
<h1 id="topic9">What types of cookies do we use?</h1>
|
||||
<p>
|
||||
There are a number of different types of cookies, however, our website
|
||||
uses:
|
||||
uses functionality cookies. Monkeytype uses these cookies so we
|
||||
recognize you on our website and remember your previously selected
|
||||
settings.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Functionality – Monkeytype uses these cookies so we recognize
|
||||
you on our website and remember your previously selected settings.
|
||||
</li>
|
||||
</ul>
|
||||
<h1>How to manage cookies</h1>
|
||||
<h1 id="topic10">How to manage cookies</h1>
|
||||
<p>
|
||||
You can set your browser not to accept cookies, and the above website
|
||||
tells you how to remove cookies from your browser. However, in a few
|
||||
cases, some of our website features may behave unexpectedly or fail to
|
||||
function as a result.
|
||||
</p>
|
||||
<h1>Privacy policies of other websites</h1>
|
||||
<h1 id="end">Privacy policies of other websites</h1>
|
||||
<p>
|
||||
Monkeytype contains links to other websites.
|
||||
<b>
|
||||
|
@ -295,5 +295,6 @@
|
|||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- TODO: Add image to go back to top of page -->
|
||||
</body>
|
||||
</html>
|
||||
|
|
17
static/quotes/code_java.json
Normal file
17
static/quotes/code_java.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"language": "code_java",
|
||||
"groups": [
|
||||
[0, 100],
|
||||
[101, 300],
|
||||
[301, 600],
|
||||
[601, 9999]
|
||||
],
|
||||
"quotes": [
|
||||
{
|
||||
"text": "public class Main {\\npublic static void main(String[] args) {\\n\\tSystem.out.println(\"Hello World\");\\n\\t}\\n}",
|
||||
"source": "W3Schools - Java Getting Started",
|
||||
"id": 1,
|
||||
"length": 87
|
||||
}
|
||||
]
|
||||
}
|
|
@ -32377,24 +32377,12 @@
|
|||
"length": 89,
|
||||
"id": 5447
|
||||
},
|
||||
{
|
||||
"text": "It does not do well to dwell on dreams and forget to live.",
|
||||
"source": "Harry Potter and the Sorcerer's Stone",
|
||||
"length": 58,
|
||||
"id": 5448
|
||||
},
|
||||
{
|
||||
"text": "Have you ever had a dream, Neo, that you seemed so sure it was real? But if were unable to wake up from that dream, how would you tell the difference between the dream world & the real world?",
|
||||
"source": "The Matrix",
|
||||
"length": 191,
|
||||
"id": 5449
|
||||
},
|
||||
{
|
||||
"text": "If real is what you can feel, smell, taste and see, then 'real' is simply electrical signals interpreted by your brain.",
|
||||
"source": "The Matrix",
|
||||
"length": 119,
|
||||
"id": 5450
|
||||
},
|
||||
{
|
||||
"text": "If you ain’t scared... you ain’t human.",
|
||||
"source": "Alby, The Maze Runner",
|
||||
|
@ -32413,12 +32401,6 @@
|
|||
"length": 55,
|
||||
"id": 5453
|
||||
},
|
||||
{
|
||||
"text": "Good that.",
|
||||
"source": "Newt, The Maze Runner",
|
||||
"length": 10,
|
||||
"id": 5454
|
||||
},
|
||||
{
|
||||
"text": "Maybe you should just press the button",
|
||||
"source": "The Maze Runner",
|
||||
|
@ -32509,12 +32491,6 @@
|
|||
"length": 154,
|
||||
"id": 5469
|
||||
},
|
||||
{
|
||||
"text": "You get tough like me and you don't get hurt. You look out for yourself and nothin' can touch you...",
|
||||
"source": "Dally, The Outsiders",
|
||||
"length": 100,
|
||||
"id": 5470
|
||||
},
|
||||
{
|
||||
"text": "Things are rough all over.",
|
||||
"source": "Cherry, The Outsiders"
|
||||
|
@ -32537,12 +32513,6 @@
|
|||
"length": 54,
|
||||
"id": 5473
|
||||
},
|
||||
{
|
||||
"text": "Destroying things is much easier than making them.",
|
||||
"source": "The Hunger Games",
|
||||
"length": 50,
|
||||
"id": 5474
|
||||
},
|
||||
{
|
||||
"text": "You have only one life, make the most of it.",
|
||||
"source": "Holes",
|
||||
|
|
|
@ -12,6 +12,228 @@
|
|||
"source": "Jonathan Swift",
|
||||
"length": 45,
|
||||
"id": 1
|
||||
},
|
||||
{
|
||||
"text": "Yeryüzünde yalnız benim serseri, yeryüzünde yalnız ben derbederim. Herkesin dünyada varsa bir yeri, ben de bütün dünya benimdir derim.",
|
||||
"source": "Serseri - Necip Fazıl Kısakürek",
|
||||
"length": 134,
|
||||
"id": 2
|
||||
},
|
||||
{
|
||||
"text": "Yıllarca gezdirdim hoyrat başımı, aradım bir ömür, arkadaşımı. Ölsem dikecek yok mezar taşımı; Halime ben bile hayret ederim.",
|
||||
"source": "Serseri - Necip Fazıl Kısakürek",
|
||||
"length": 125,
|
||||
"id": 3
|
||||
},
|
||||
{
|
||||
"text": "Gönlüm ne dertlidir, ne de bahtiyar; Ne kendisine yar, ne kimseye yar. Bir rüya uğrunda ben diyar diyar, gölgemin peşinden yürür giderim...",
|
||||
"source": "Serseri - Necip Fazıl Kısakürek",
|
||||
"length": 139,
|
||||
"id": 4
|
||||
},
|
||||
{
|
||||
"text": "Ne güzel şey hatırlamak seni. Sana tahtadan birşeyler oymalıyım yine: bir çekmece bir yüzük, ve üç metre kadar ince ipekli dokumalıyım. Ve hemen fırlayarak yerimden, penceremde demirlere yapışarak, hürriyetin sütbeyaz maviliğine, sana yazdıklarımı bağıra bağıra okumalıyım... Ne güzel şey hatırlamak seni: ölüm ve zafer haberleri içinde, hapiste ve yaşım kırkı geçmiş iken...",
|
||||
"source": "Ne Güzel Şey Hatırlamak Seni - Nazım Hikmet",
|
||||
"length": 371,
|
||||
"id": 5
|
||||
},
|
||||
{
|
||||
"text": "Bileklerimizi morartmış yeni Alman kelepçeleri, otobüsün kaloriferleri bozuldu Kaman’dan sonra. Sekiz saat oluyor karbonatlı bir çay bile içemedik, başımızda prensip sahibi bir başçavuş. Niğde üzerinden Adana Cezaevine gidiyoruz... Bi sen eksiktin ayışığı, gümüş bir tüy dikmek için manzaraya!",
|
||||
"source": "Bir Sen Eksiktin Ay Işığı - Can Yücel",
|
||||
"length": 293,
|
||||
"id": 6
|
||||
},
|
||||
{
|
||||
"text": "Artık demir almak günü gelmişse zamandan, meçhule giden bir gemi kalkar bu limandan. Hiç yolcusu yokmuş gibi sessizce alır yol; Sallanmaz o kalkışta ne mendil ne de bir kol. Rıhtımda kalanlar bu seyahatten elemli, günlerce siyah ufka bakar gözleri nemli. Biçare gönüller! Ne giden son gemidir bu! Hicranlı hayatın ne de son matemidir bu! Dünyada sevilmiş ve seven nafile bekler; Bilmez ki giden sevgililer dönmeyecekler. Birçok gidenin her biri memnun ki yerinden, birçok seneler geçti; Dönen yok seferinden.",
|
||||
"source": "Sessiz Gemi - Yahya Kemal Beyatlı",
|
||||
"length": 508,
|
||||
"id": 7
|
||||
},
|
||||
{
|
||||
"text": "Ağılda oğlak doğsa ovada otu biter.",
|
||||
"source": "Atasözü",
|
||||
"length": 35,
|
||||
"id": 8
|
||||
},
|
||||
{
|
||||
"text": "Kel ölür, sırma saçlı olur; kör ölür, badem gözlü olur.",
|
||||
"source": "Atasözü",
|
||||
"length": 55,
|
||||
"id": 9
|
||||
},
|
||||
{
|
||||
"text": "Açık yerde tepecik kendini dağ sanır.",
|
||||
"source": "Atasözü",
|
||||
"length": 37,
|
||||
"id": 10
|
||||
},
|
||||
{
|
||||
"text": "Abanın kıymeti yağmurda bilinir.",
|
||||
"source": "Atasözü",
|
||||
"length": 32,
|
||||
"id": 11
|
||||
},
|
||||
{
|
||||
"text": "Aç aman bilmez, çocuk zaman bilmez.",
|
||||
"source": "Atasözü",
|
||||
"length": 35,
|
||||
"id": 13
|
||||
},
|
||||
{
|
||||
"text": "Adam adama yük değil, can gövdeye mülk değil.",
|
||||
"source": "Atasözü",
|
||||
"length": 45,
|
||||
"id": 14
|
||||
},
|
||||
{
|
||||
"text": "Ahmağa yüz, abdala söz vermeye gelmez.",
|
||||
"source": "Atasözü",
|
||||
"length": 38,
|
||||
"id": 15
|
||||
},
|
||||
{
|
||||
"text": "Aş taşınca kepçeye paha olmaz.",
|
||||
"source": "Atasözü",
|
||||
"length": 30,
|
||||
"id": 16
|
||||
},
|
||||
{
|
||||
"text": "Ağustosta gölge kovan, zemheride karnın ovar.",
|
||||
"source": "Atasözü",
|
||||
"length": 45,
|
||||
"id": 17
|
||||
},
|
||||
{
|
||||
"text": "Kalendere kış geliyor demişler, titremeye hazırım diye cevap vermiş.",
|
||||
"source": "Atasözü",
|
||||
"length": 45,
|
||||
"id": 18
|
||||
},
|
||||
{
|
||||
"text": "Gölgeyi hoş gören tekneyi boş görür.",
|
||||
"source": "Atasözü",
|
||||
"length": 36,
|
||||
"id": 20
|
||||
},
|
||||
{
|
||||
"text": "Göz odur ki dağın arkasını göre, akıl odur ki başa geleceği bile.",
|
||||
"source": "Atasözü",
|
||||
"length": 65,
|
||||
"id": 21
|
||||
},
|
||||
{
|
||||
"text": "Verip pişman olmaktan, vermeyip düşman olmak yeğdir.",
|
||||
"source": "Atasözü",
|
||||
"length": 52,
|
||||
"id": 22
|
||||
},
|
||||
{
|
||||
"text": "Lafla pilav pişerse deniz kadar yağı benden.",
|
||||
"source": "Atasözü",
|
||||
"length": 44,
|
||||
"id": 23
|
||||
},
|
||||
{
|
||||
"text": "Onmadık hacıyı deve üstünde yılan sokar.",
|
||||
"source": "Atasözü",
|
||||
"length": 40,
|
||||
"id": 24
|
||||
},
|
||||
{
|
||||
"text": "Oduncunun gözü omcada, dilencinin gözü çömcede.",
|
||||
"source": "Atasözü",
|
||||
"length": 47,
|
||||
"id": 25
|
||||
},
|
||||
{
|
||||
"text": "Tarlada izi olmayanın harmanında yüzü olmaz.",
|
||||
"source": "Atasözü",
|
||||
"length": 44,
|
||||
"id": 26
|
||||
},
|
||||
{
|
||||
"text": "Topalla gezen, aksamak öğrenir.",
|
||||
"source": "Atasözü",
|
||||
"length": 31,
|
||||
"id": 27
|
||||
},
|
||||
{
|
||||
"text": "Tayfanın akıllısı, geminin dümeninden uzak durur.",
|
||||
"source": "Atasözü",
|
||||
"length": 49,
|
||||
"id": 28
|
||||
},
|
||||
{
|
||||
"text": "Martta sürmez, eylülde ekmezsen sabanı bırak.",
|
||||
"source": "Atasözü",
|
||||
"length": 45,
|
||||
"id": 29
|
||||
},
|
||||
{
|
||||
"text": "Işığını akşamdan önce yakan, sabah çırasına yağ bulamaz.",
|
||||
"source": "Atasözü",
|
||||
"length": 55,
|
||||
"id": 30
|
||||
},
|
||||
{
|
||||
"text": "Ahırın avlusunda oynarken aşağıda, gümüş söğütler altında görünmeyen derenin hazin şırıltısını duyardık. Evimiz iç çitin büyük kestane ağaçları arkasında kaybolmuş gibiydi. Annem İstanbul’a gittiği için benden bir yaş küçük kardeşim Hasan’la artık Dadaruh’un yanından hiç ayrılmıyorduk. Bu, babamın seyisi yaşlı bir adamdı. Sabahleyin erkenden ahıra koşuyorduk. En sevdiğimiz şey atlardı. Dadaruh’la beraber onları suya götürmek, çıplak sırtlarına binmek ne doyulmaz bir zevkti. Hasan korkar, yalnız binmezdi. Dadaruh, onu kendi önüne alırdı. Torbalara arpa koymak, yemliklere ot doldurmak, ahırı süpürmek, gübreleri kaldırmak en eğlenceli oyundan bile daha çok hoşumuza gidiyordu. Hele tımar… bu, en zevkli şeydi.",
|
||||
"source": "Kaşağı - Ömer Seyfettin",
|
||||
"length": 714,
|
||||
"id": 31
|
||||
},
|
||||
{
|
||||
"text": "At, ahır işlerinde sadece tımarı beceremiyordum. Boyum karnına bile varmıyordu. Ama en keyifli, en eğlenceli şey buydu. Sanki kaşağının muntazam tıkırtısı Tosun’un hoşuna gidiyor, kulaklarını kısıyor, kuyruğunu kocaman bir püskül gibi sallıyordu.",
|
||||
"source": "Kaşağı - Ömer Seyfettin",
|
||||
"length": 246,
|
||||
"id": 32
|
||||
},
|
||||
{
|
||||
"text": "Ertesi yıl annem, yaz olunca yine İstanbul'a gitti. Biz yalnız kaldık. Hasan'a ahır hala yasaktı. Geceleri yatakta atların ne yaptıklarını, tayların büyüyüp büyümediğini bana sorardı. Bir gün aniden hastalandı. Kasabaya at gönderildi. Doktor geldi. Kuşpalazı dedi. Çiftlikteki köylü kadınlar eve koştular. Birtakım tekir kuşları getiriyorlar, kesip kardeşimin boynuna sarıyorlardı. Babam yatağının dibinden ayrılmıyordu.",
|
||||
"source": "Kaşağı - Ömer Seyfettin",
|
||||
"length": 420,
|
||||
"id": 33
|
||||
},
|
||||
{
|
||||
"text": "Şehirde yaşayan ve bir tüccarla evli olan abla, köydeki kız kardeşini ziyarete gitmişti; kardeşi ise bir köylüyle evliydi. Semaver başında toplandıklarında, abla kent hayatının güzelliklerinden, yaşamlarının ne kadar rahat olduğundan, ne kadar güzel giyindiklerinden, çocukların şık elbiseler giyinip kuşandıklarından, lezzetli yiyecekler yiyip tiyatrolara, eğlencelere nasıl gittiklerinden bire bin katarak söz etmeye başladı.",
|
||||
"source": "İnsan Ne İle Yaşar - Tolstoy",
|
||||
"length": 427,
|
||||
"id": 34
|
||||
},
|
||||
{
|
||||
"text": "Fakat unutma, ne kadar büyük bir daire yapsan da, gün batmadan başladığın yere dönmek zorundasın; o zamana dek ne kadar yeri işaretlediysen, kendi malın say.",
|
||||
"source": "İnsan Ne İle Yaşar - Tolstoy",
|
||||
"length": 157,
|
||||
"id": 35
|
||||
},
|
||||
{
|
||||
"text": "Yine de 'Bir saat yorul, ömür boyu rahat et...' diye düşünüp yürüdü. Tam sola dönecekti ki bir dere gördü. 'Burayı topraklarıma katmazsam günah olur. Burada pamuk yetiştirebilirim...' diye düşündü.",
|
||||
"source": "İnsan Ne İle Yaşar - Tolstoy",
|
||||
"length": 197,
|
||||
"id": 36
|
||||
},
|
||||
{
|
||||
"text": "Ama kente girerken kafasındaki matkapların yerini başka bir şey alıverdi. Sabahın olağan trafik sıkışıklığında beklerken, çevrede garip giyimli bir sürü insan fark etti. Pelerinli insanlar.",
|
||||
"source": "Harry Potter ve Felsefe Taşı - J. K. Rowling",
|
||||
"length": 189,
|
||||
"id": 37
|
||||
},
|
||||
{
|
||||
"text": "Her yerdeki kuş meraklıları, ülkedeki bütün baykuşların bugün hiç alışılmadık şeyler yaptığını belirtmektedir. Baykuşlar genellikle geceleri avlanırlar, gün ışığında pek görülmezler, ama sabahtan beri bu kuşların her yöne uçuştuklarına yüzlerce kere tanık olunmuştur. Uzmanlar, baykuşların uyku alışkanlıklarını birden bire neden değiştirdiklerini açıklayamamaktadırlar.",
|
||||
"source": "Harry Potter ve Felsefe Taşı - J. K. Rowling",
|
||||
"length": 370,
|
||||
"id": 38
|
||||
},
|
||||
{
|
||||
"text": "Son derece esrarengiz. Şimdi de Jim McGuffin'den hava raporu. Ne dersin, bu gece yine baykuş sağanağı olacak mı, Jim?",
|
||||
"source": "Harry Potter ve Felsefe Taşı - J. K. Rowling",
|
||||
"length": 117,
|
||||
"id": 39
|
||||
},
|
||||
{
|
||||
"text": "Kedinin baktığı köşede bir adam belirdi; öylesine ansızın, öylesine sessizce belirmişti ki, sanki yerden fışkırmış gibiydi. Kedinin kuyruğu titredi, gözleri kısıldı.",
|
||||
"source": "Harry Potter ve Felsefe Taşı - J. K. Rowling",
|
||||
"length": 165,
|
||||
"id": 40
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -533,5 +533,10 @@
|
|||
"name": "bouquet",
|
||||
"bgColor": "#38564a",
|
||||
"textColor": "#ffbdb2"
|
||||
},
|
||||
{
|
||||
"name": "midnight",
|
||||
"bgColor": "#0c0e12",
|
||||
"textColor": "#525f7a"
|
||||
}
|
||||
]
|
||||
|
|
11
static/themes/midnight.css
Normal file
11
static/themes/midnight.css
Normal file
|
@ -0,0 +1,11 @@
|
|||
:root {
|
||||
--bg-color: #0c0e12;
|
||||
--main-color: #708bc2;
|
||||
--caret-color: #708bc2;
|
||||
--sub-color: #29303d;
|
||||
--text-color: #525f7a;
|
||||
--error-color: #c27070;
|
||||
--error-extra-color: #c28b70;
|
||||
--colorful-error-color: #c27070;
|
||||
--colorful-error-extra-color: #c28b70;
|
||||
}
|
Loading…
Add table
Reference in a new issue