silently convert the entire website to jekyll
Some checks failed
Web/pipeline/head There was a failure building this commit
5
.gitignore
vendored
|
@ -1,3 +1,2 @@
|
|||
/feed.json
|
||||
/rss.xml
|
||||
/atom.xml
|
||||
.jekyll-*
|
||||
_site
|
16
Jenkinsfile
vendored
|
@ -1,25 +1,23 @@
|
|||
pipeline {
|
||||
agent any
|
||||
stages {
|
||||
stage('Pull') {
|
||||
stage('Build') {
|
||||
when {
|
||||
branch 'master'
|
||||
}
|
||||
steps {
|
||||
sh '''cd /var/www/ellpeck
|
||||
git fetch
|
||||
git checkout ${GIT_COMMIT} -f'''
|
||||
sh '''cd main
|
||||
bundle
|
||||
bundle exec jekyll build'''
|
||||
}
|
||||
}
|
||||
stage('Node') {
|
||||
stage('Deploy') {
|
||||
when {
|
||||
branch 'master'
|
||||
}
|
||||
steps {
|
||||
sh '''cd /var/www/ellpeck/node
|
||||
npm install
|
||||
node blog.js
|
||||
node rss.js'''
|
||||
sh '''rm -rf /var/www/ellpeck/*
|
||||
cp -r main/_site/. /var/www/ellpeck'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
1
blog/.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
/*.html
|
|
@ -1,4 +0,0 @@
|
|||
Deny from all
|
||||
<FilesMatch "posts\.json">
|
||||
Allow from all
|
||||
</FilesMatch>
|
|
@ -1,657 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="generator" content="crowbook">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<meta name="author" content="Ell Peck">
|
||||
|
||||
<title>Em & Ben</title>
|
||||
<style type = "text/css">
|
||||
body {
|
||||
font-family: "Linux Libertine", "Georgia", serif;
|
||||
text-align: justify;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
p {
|
||||
text-indent: 1.25em;
|
||||
margin:0;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 1em;
|
||||
font-style: italic;
|
||||
}
|
||||
code {
|
||||
font-size: 80%;
|
||||
font-family: "Linux Libertine Mono", monospace;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
pre {
|
||||
font-family: "Linux Libertine Mono", monospace;
|
||||
margin: 1em;
|
||||
padding-top: 0;
|
||||
background-color: #F0F0F0;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
/* Try to disable hyphenation in titles */
|
||||
h1, h2, h3, h4, h5, h5 {
|
||||
adobe-hyphenate: none;
|
||||
-ms-hyphens: none; /* Trident (Windows) */
|
||||
-moz-hyphens: none; /* Gecko (Firefox) */
|
||||
-webkit-hyphens: none; /* Webkit */
|
||||
-epub-hyphens: none; /* EPUB 3 */
|
||||
hyphens: none; /* Futur standard */
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-align: left;
|
||||
font-family: Linux Biolinum, sans-serif;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
/* Title of a part */
|
||||
h1.part {
|
||||
font-size: 250%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* The `Part X` section of a part */
|
||||
h2.part {
|
||||
font-size: 175%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* The "Chapter X" section of a chapter */
|
||||
span.chapter-header {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
/* Title of the book */
|
||||
h1.title {
|
||||
text-align: center;
|
||||
font-size: 300%;
|
||||
}
|
||||
/* Author */
|
||||
h2.author {
|
||||
text-align: right;
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
/* Subtitle */
|
||||
h2.subtitle {
|
||||
text-align: center;
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
/* When toc is displayed inlined */
|
||||
#toc ol, #toc ul {
|
||||
padding: 0;
|
||||
margin-left: 1em;
|
||||
}
|
||||
#toc li {
|
||||
list-style-type: none;
|
||||
margin: 0; padding: 0;
|
||||
}
|
||||
|
||||
#toc li:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
#cover img {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.image {
|
||||
margin: auto;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.image img {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.rule {
|
||||
text-align: center !important;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
font-weight: bold;
|
||||
page-break-inside: avoid;
|
||||
break-inside: avoid;
|
||||
page-break-after: avoid;
|
||||
break-after: avoid;
|
||||
}
|
||||
|
||||
/* The number of the note in an expanded footnote (e.g. [3]) */
|
||||
.note-number {
|
||||
font-weight: bold;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
td.note-number {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* When footnotes (try to) be diplayed as margin notes */
|
||||
.sidenote {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 30%;
|
||||
border: 1px solid black;
|
||||
margin: 1em;
|
||||
padding: .5em;
|
||||
margin-right: -1.5em;
|
||||
}
|
||||
|
||||
.sidenote .note-number {
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* The div class displaying notes at the end of a chapter */
|
||||
div.notes {
|
||||
text-align: justify;
|
||||
border-top: thin dashed black;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
table.notes {
|
||||
border-collapse: collapse;
|
||||
border-style: hidden;
|
||||
}
|
||||
|
||||
table.notes tr td {
|
||||
margin-left: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
table.notes tr td p {
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
/* Every markdown table is included in a <div class = "table"> */
|
||||
.table {
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.table table {
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
border-style: solid;
|
||||
border-width: thin;
|
||||
border-color: black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.table table th, .table table td {
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.table table th {
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
|
||||
span.initial {
|
||||
float: left;
|
||||
font-size: 285%;
|
||||
font-weight: bold;
|
||||
margin-right: 0.05em;
|
||||
line-height: 0.8em;
|
||||
}
|
||||
|
||||
p.first-para {
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
/* Use this for escape narrow space so it is non-breaking */
|
||||
.nnbsp {
|
||||
/* white-space: nowrap;*/
|
||||
word-spacing: -0.13em;
|
||||
/* Following necessary for Kobo EPUB3 reader??? */
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Default HTML CSS file includes default EPUB CSS file */
|
||||
|
||||
/* Colors for the navigation menu (toc) */
|
||||
nav {
|
||||
background: #CBBFCC;
|
||||
color: black;
|
||||
border-right-color: black;
|
||||
}
|
||||
|
||||
#nav a:link {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#nav a:visited {
|
||||
color: black;
|
||||
}
|
||||
|
||||
/* Colors for top and footer */
|
||||
#top {
|
||||
background-color: #444343;
|
||||
color: white;
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color: #444343;
|
||||
color: white;
|
||||
}
|
||||
|
||||
footer a, #top a {
|
||||
color: #fc71ff;
|
||||
}
|
||||
|
||||
footer a:hover, #top a:hover {
|
||||
color: #b743fe;
|
||||
}
|
||||
|
||||
/* Additional elements, only use for proofreading */
|
||||
/* Grammar error */
|
||||
.grammar-error {
|
||||
color: red;
|
||||
text-decoration-line: underline;
|
||||
text-decoration-style: double;
|
||||
/* background: #d966ff;*/
|
||||
}
|
||||
|
||||
|
||||
p.first-para:first-letter {
|
||||
font-size: 300%;
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
margin-right: 0.05em;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
/* The nav element corresponding to the navigation menu */
|
||||
nav {
|
||||
z-index: 2;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 20%;
|
||||
overflow-y: auto;
|
||||
font-size: 80%;
|
||||
margin-left: 0;
|
||||
border-right-width: 2px;
|
||||
border-right-style: dashed;
|
||||
}
|
||||
|
||||
#nav code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#nav a:link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav a:visited {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#nav h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#nav li {
|
||||
list-style-type: none;
|
||||
text-indent: -1em;
|
||||
}
|
||||
|
||||
#nav li:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
#nav ul {
|
||||
padding-right: 1em;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
|
||||
/* The menu containing the button to display the navigation bar */
|
||||
#menu {
|
||||
position: fixed;
|
||||
z-index: 2;
|
||||
top: 0em;
|
||||
left: 1em;
|
||||
transition: left 1s;
|
||||
}
|
||||
|
||||
#menu img {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#menu img:hover {
|
||||
opacity: 1.0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#menu-button {
|
||||
height: 1.5em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
#book-button {
|
||||
height: 1.5em;
|
||||
padding: 0.5em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* Hide navigation bar */
|
||||
#nav {
|
||||
left: -21%;
|
||||
transition: left 1s;
|
||||
}
|
||||
|
||||
/* The main content of the book */
|
||||
#content {
|
||||
overflow-y: auto;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
transition: margin-left 1s;
|
||||
}
|
||||
|
||||
/* Used for multifiles HTML */
|
||||
.prev_chapter {
|
||||
text-align: left;
|
||||
text-indent: 0;
|
||||
margin-bottom: 1em;
|
||||
font-size: 120%;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.next_chapter {
|
||||
text-align: right;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
font-size: 120%;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Improving readability for the HTML format only */
|
||||
p, blockquote, li, .image {
|
||||
margin-right: auto;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
#content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#page {
|
||||
display: inline-block;
|
||||
text-align: justify;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
#nav-container {
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#nav-title {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#toolbar {
|
||||
top: 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#toolbar img {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#top {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
#top p {
|
||||
font-family: "Linux Biolinum";
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
footer, #top {
|
||||
padding-top: .25em;
|
||||
padding-bottom: .25em;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
text-align: center;
|
||||
transition: margin-left 1s;
|
||||
}
|
||||
|
||||
footer a, #top a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
footer p, #top p {
|
||||
text-indent: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 0.5em;
|
||||
margin-top: 0.5em;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<style type = "text/css" media = "print">
|
||||
#page {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.chapter {
|
||||
page-break-before: always;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#nav {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function on(name) {
|
||||
var elements = document.getElementsByClassName(name);
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var elem = elements[i];
|
||||
elem.style.backgroundColor = "pink";
|
||||
}
|
||||
}
|
||||
function off(name) {
|
||||
var elements = document.getElementsByClassName(name);
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var elem = elements[i];
|
||||
elem.style.backgroundColor = "white";
|
||||
}
|
||||
}
|
||||
|
||||
var display_menu = false;
|
||||
function toggle() {
|
||||
if (display_menu == true) {
|
||||
display_menu = false;
|
||||
document.getElementById("nav").style.left = "-21%";
|
||||
document.getElementById("content").style.marginLeft = "0%";
|
||||
document.getElementById("menu").style.left = "1em";
|
||||
/* if(document.getElementById("top")) {
|
||||
document.getElementById("top").style.left = "0";
|
||||
}
|
||||
if(document.getElementById("footer")) {
|
||||
document.getElementById("footer").style.marginLeft = "0%";
|
||||
}*/
|
||||
} else {
|
||||
display_menu = true;
|
||||
document.getElementById("nav").style.left = "0";
|
||||
document.getElementById("content").style.marginLeft = "20%";
|
||||
document.getElementById("menu").style.left = "20%";
|
||||
/* if(document.getElementById("top")) {
|
||||
document.getElementById("top").style.left = "20%";
|
||||
}
|
||||
if(document.getElementById("footer")) {
|
||||
document.getElementById("footer").style.marginLeft = "20%";
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type = 'application/ld+json'>
|
||||
{
|
||||
"@context": "http://schema.org/",
|
||||
"@type": "Book",
|
||||
"author": "Ell Peck",
|
||||
"name": "Em & Ben",
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"inLanguage": "en"
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
<nav id = "nav">
|
||||
<div id = "nav-title">
|
||||
<h2><a href = "#link-0">Em & Ben</a></h2>
|
||||
</div>
|
||||
<ul>
|
||||
<li><a href="#link-1">1. </a></li>
|
||||
<li><a href="#link-2">2. </a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
|
||||
<div id = "content">
|
||||
|
||||
<div id = "page">
|
||||
<header>
|
||||
|
||||
<div id = "menu">
|
||||
<img id = "menu-button" onclick="toggle();"
|
||||
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMjAwbW0iCiAgIGhlaWdodD0iMjAwbW0iCiAgIHZpZXdCb3g9IjAgMCA3MDguNjYxNDIgNzA4LjY2MTQxIgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxIHIxMzcyNSIKICAgc29kaXBvZGk6ZG9jbmFtZT0ibWVudS5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIwLjQ5NDk3NDc1IgogICAgIGlua3NjYXBlOmN4PSIxMDUuNjEyNzUiCiAgICAgaW5rc2NhcGU6Y3k9IjQwNy4wNjM5MSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjEzNjYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNzA0IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTciPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTM0My43MDA3OSkiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEwMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTA0LjMzMDcxLDQ2OS41MDUxIDUwMCwwIgogICAgICAgaWQ9InBhdGg0MTM2IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxMDA7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDEwNC4zMzA3MSw3MDQuNTA1MSA1MDAsMCIKICAgICAgIGlkPSJwYXRoNDEzNi01IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOnRyYW5zZm9ybS1jZW50ZXIteD0iNzEuNDI4NTcyIgogICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci15PSItMjQyLjg1NzE2IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEwMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTA0LjMzMDcxLDkzOS41MDUwNiA1MDAsMCIKICAgICAgIGlkPSJwYXRoNDEzNi01LTMiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci14PSI3MS40Mjg1NzIiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXk9Ii0yNDIuODU3MTYiIC8+CiAgPC9nPgo8L3N2Zz4K"
|
||||
alt = "Table of contents" title = "Table of contents" />
|
||||
</div>
|
||||
<h2 class="author">Ell Peck</h2>
|
||||
<h1 id = "link-0" class="title" >Em & Ben</h1>
|
||||
|
||||
</header>
|
||||
|
||||
<div id = "chapter-0" class = "chapter">
|
||||
<h1 id = 'link-1'><span class = 'chapter-header'>Chapter 1</span></h1><p id = "para-1">There’d never been a day quite like Tuesday, February 17. It was a warm, spring day, and the newly awakened sun was warming Ben’s freckle-ridden face. He didn’t know it just yet, but this would be the day that Ben would almost die. Well, that’s the way he’d think of it <em>afterwards</em>, anyway.</p>
|
||||
<p id = "para-2">The park was unusually packed with people, and for a second, Ben debated whether turning back was a good idea after all. He’d had these thoughts a lot recently; wanting to just turn back and run away from things. He ran a hand through his long, silky hair and turned around. <em>Damn it</em>, he thought, before he snapped back to facing the center of the park. <em>I have to do this.</em></p>
|
||||
<p id = "para-3">From afar, he could just about make out what was going on around the large fountain. The water was splashing out of what he’d always just assumed to be a large fish, though he didn’t have the ability to tell for sure, because the fountain was old and rugged and had probably been just-about-fixed one too many times before. Ben squinted a bit before raising his glasses in an attempt to make out the faces of the people he saw, sitting and standing around the fountain, talking. He was looking for his best friend, Emily. She was really the kind of person that would drag him to outings like this; public gatherings and any sort of parties were terrifying to Ben. It was natural then that he would find a best friend that is his absolute polar opposite: Popular, blonde and, of course, an absolute party animal. <em>Damn it, Em, where are you?</em>, he mumbled to no one in particular.</p>
|
||||
<p id = "para-4">He started approaching the fountain and the square around it. Several small crowds of people were standing around little stalls that emitted vastly different smells. Amidst all of this mess, he was almost certain he could smell bubblegum ice cream. Hectically looking around in an attempt to find his friend, he tried to suppress any memory related to bubble gum. To ice cream. To the life that he’d had before he changed. <em>Fuck</em>, he quietly said to himself.</p>
|
||||
<p id = "para-5">The smell of the bubblegum ice cream started getting too strong for him to handle, and memories started welling up inside of him. His brain was unfolding like a book, too heavy to close. Ben pictured a red, rickety swing set in the middle of a park much like the one he was in right now. He pictured Emily, and for a moment, he pictured the way it had felt. The way the wind blew through his hair as he threw his legs back and forth on the swings, laughing with Em about wanting to do a three hundred and sixty degree turn. Had he already called her <em>Em</em> back then?</p>
|
||||
<p id = "para-6">He immediately snapped back into reality when he felt the tap of something on his shoulder. Immediately might have been generous, because the tap really did feel like a heavy knock. Maybe it had taken him a few seconds to come back. His eyes felt a bit watery and his knees were shaking, but he told himself that he was probably just hungry (he wasn’t) and turned around to discover the source of the heavy tapping.</p>
|
||||
<p id = "para-7">“Ben!”, Emily exclaimed right behind him. She was a beautiful woman with curly hair and a smile that probably tasted like bubblegum ice cream. <em>Tasted?</em></p>
|
||||
<p id = "para-8">“Hey, Emily, why’d you take so long?”, he asked in the flattest possible tone.</p>
|
||||
<p id = "para-9">“Shut up”, she returned with a snarky grin. <em>Damn</em>, she looked extra beautiful today. Ben looked down at her flowy, blue skirt and matching light purple ballerinas. Even though his eyes were still watery, he couldn’t help but smile at the look of her, standing there right in front of him. This is exactly what she did to him.</p>
|
||||
<p id = "para-10">“Oh man, I want some fro-yo right about now!”, Emily sighed yearningly as she grasped Ben’s upper arm and started pulling him towards one of the stalls by the fountain. “You want some too? I can pay.”</p>
|
||||
<p id = "para-11">“Are you kidding me? You’re <em>broke</em>, I’m not letting you pay for <em>anything</em>!"</p>
|
||||
<p id = "para-12">"<em>Broke</em>? Come on, that’s a bit harsh", she countered and frowned. She stopped dead in her tracks, let go of his upper arm and, after a few seconds of fondling with her cardigan, produced a thirty-dollar bill out of what he could only assume to be a hidden pocket somewhere. “See?”</p>
|
||||
<p id = "para-13">Not entirely convinced of Emily’s sudden wealth, he raised an eyebrow and tilted his head slightly in disapproval. “Fine.”</p>
|
||||
|
||||
</div><div id = "chapter-1" class = "chapter">
|
||||
<h1 id = 'link-2'><span class = 'chapter-header'>Chapter 2</span></h1><p id = "para-14">Over the next few hours, Ben was dragged back and forth between stalls and attractions. For every single one, he was apprehensive at first but rather quickly changed his mind once Emily frowned. It was such a heart-melting frown, worse than the faces that his aunt’s dogs would make when they wanted to be taken for a long walk. Every single thing about Emily was just so beautiful that he could be happy doing anything with her. Even going to a shoddy, uncomfortable carnival in the middle of February.</p>
|
||||
<p id = "para-15">They’d already stopped at almost every ride and stall, and so Ben decided that now was enough. He wasn’t usually the type of person to make decisions like this (he’d just leave it up to whoever else was actually in charge), but this time, he’d put his foot down. He would, absolutely.</p>
|
||||
<p id = "para-16">“Em, I’m getting tired.”</p>
|
||||
<p id = "para-17">“Are you serious? We haven’t even eaten any churros yet!” Emily smiled devilishly at him while tugging on his blue sweatshirt’s right sleeve. She was staring at him, as if trying to extract the information directly from his eyes. Her blonde locks were flowing over her brow and almost into her eyes, but that didn’t seem to bother her. He guessed that, after a while, you’d probably get used to it, like you do with seeing your own nose. He really liked seeing her nose, though.</p>
|
||||
<p id = "para-18">“You <em>love</em> churros," she pointed out with an overly exaggerated <em>o</em> in <em>love</em>.</p>
|
||||
<p id = "para-19"><em>In love</em>, he thought. This time, he was going to put his foot down, right? That’s what he’d decided. He didn’t want people to control him anymore. But was that really what Emily was doing here? No. She was his best friend, she knew what was good for him. Right? She was looking at him, in obvious anticipation of his answer. He did really like churros. But did he love them? He wasn’t sure about that. Okay, he did love them, but did he love them enough to warrant another thirty minutes at this godforsaken carnival?</p>
|
||||
<p id = "para-20">He loved Emily, that was for certain.</p>
|
||||
<p id = "para-21">Wait, what? Had he really just thought that? No, he couldn’t have. That was just one of those jokes his brain made up sometimes. Amusing, albeit slightly infuriating. <em>Fuck off</em>, he said to himself.</p>
|
||||
<p id = "para-22">“What?”, Emily replied, clearly confused as to what he was saying. He wasn’t saying anything though, right? What had he said?</p>
|
||||
<p id = "para-23">“I’m, the,” he mumbled, trying to make sense of what Emily could’ve just heard him say. Maybe she didn’t hear anything, maybe it was just the wind. What could he have said to her? Surely he didn’t say the love part out loud, right?</p>
|
||||
<p id = "para-24">He stared at her face. Her brown eyes were intensely focusing on him, her lips slightly curled into a smile. She tugged on his sweatshirt one last time.</p>
|
||||
<p id = "para-25">“So, churros?” Oh Thank God.</p>
|
||||
<p id = "para-26">"<em>Fine.</em>"</p>
|
||||
<p class = "rule">***</p>
|
||||
<p id = "para-27">As they were eating their churros, Ben couldn’t help but notice how much chocolate sauce Emily had on hers with every bite. They’d ordered a little square box filled with twelve or so standing churros, along with a small tub of chocolate sauce that tasted criminally close to Nutella without actually being Nutella.</p>
|
||||
<p id = "para-28">“You know this sauce is for dipping, right?”, he said to her with a grin before taking another huge bite. “It’s not supposed to be a full-on coating.”</p>
|
||||
<p id = "para-29">“What do you know, huh? Where does it say that?” She tutted and shoved her churro into the tub of sauce with ostentation. While pulling out the excessively coated pastry, she got ready to put her other hand under it as to prevent any of the chocolate sauce from dripping down onto her dress. “Try it!”, she said with an impish smile and held the dripping mess right up to Ben’s mouth.</p>
|
||||
<p id = "para-30">“No, I don’t—” He tried to interject, but Emily had already rammed the chocolate-covered churro directly into his face. He resisted opening his mouth, so the chocolate sauce smeared all over this face and chin and then continued to drip onto his sweatshirt in big, brown globs. “Damn it, Em.”</p>
|
||||
<p id = "para-31">“I’m sorry, but why didn’t you open your mouth?”, she asked jokingly while holding back laughter.</p>
|
||||
<p id = "para-32">“Fuck,” he said angrily and fumbled around his pockets, trying to find a tissue or something. In the scramble, the smells of the chocolate on his face and the odor of bubblegum ice cream in the air mixed to create something awfully unpleasant in his nose. He was trying really hard to find a tissue now.</p>
|
||||
<p id = "para-33">“Damn it, Em, why do you always have to do that?”</p>
|
||||
<p id = "para-34">“Oh, <em>come on</em>, that isn’t fair! I was just trying to have fun!"</p>
|
||||
<p id = "para-35">“Fun? You know I hate these kinds of things. I hate <em>people</em>!"</p>
|
||||
<p id = "para-36">She tutted. “Lighten up a bit, Ben!”</p>
|
||||
<p id = "para-37">“Lighten the <em>fuck</em> up?" His brain was unfolding again, this time like floodgates, unable to be stopped by the water pushing against them. “You don’t understand me at all!”</p>
|
||||
<p id = "para-38">He was yelling now, and some people around them were beginning to notice. Fuck. He finally looked over at Emily, his face still covered in chocolate sauce, but she wasn’t smiling anymore. Instead, she had this look on her face that she’d sometimes get. When watching a sad documentary, or when her mom prepared food that she didn’t particularly enjoy. It wasn’t a frown, it was more of a neutral expression of… disapproval? Disgust?</p>
|
||||
<p id = "para-39">“Why is everything such a big fucking deal to you, Ben?”, she yelled, tears starting to escape from her half-shut, pained eyes.</p>
|
||||
<p id = "para-40">That was the moment a switch in his brain finally flicked. A switch that was probably in a back room, guarded by multiple doors with multiple, separate keys. Use only in emergencies, a sign somewhere close to the switch probably said. Don’t use even, maybe. Ben tried to force his eyes shut with extreme determination. No, he wouldn’t cry.</p>
|
||||
<p id = "para-41">But he did. Tears started running down his face like waterfalls, and he tried to cover them up and wipe them away with the sleeve of his sweatshirt. He wiped his cheeks with the sleeves of his blue sweatshirt, and large amounts of chocolate sauce transferred from his face to the sleeves. God fucking damn it, he muttered to himself. The world around him was turning into a very small part of his vision, the rest filled with blurry streams of tears. He tried to get up from the bench they were sitting on and stumbled around the square where the festival was happening. He was sure he’d bumped into a few people on the way, but couldn’t tell for absolute certain. After what felt like an hour and a half, he finally arrived at a tree a few meters away from the fountain square.</p>
|
||||
<p id = "para-42">He rested one hand against the bark and tried to catch his breath. The thought of bubblegum ice cream was fresh in his mind again, the thought of the red, rickety swing set was morphing and mixing with the thought of churros, the thought of chocolate sauce in his face. The thought of Emily’s smile, the thought of her frown, the thought of her sad movie face. Fuck.</p>
|
||||
<p id = "para-43">He tried telling himself to breathe. <em>Five in, six hold, seven out.</em> That’s what his therapist had told him. <em>One, two, three.</em> What’s the worst that could realistically happen?, that’s what he was supposed to ask himself. <em>Four, five.</em> Well. <em>One, two, three.</em> Emily might never talk to him again. <em>Four, five, six.</em> She might hate him, now that she’d just tried to be cute by shoving a churro into his face, and now that he’d reacted like a total fucking asshole. <em>One, two.</em> Was he already breathing in again? <em>Fuck.</em> He kept telling his body to calm down, his mind to stop racing. His heart to stop racing. He started leaning against the bark and then slowly slid down the tree trunk, sitting down on the ground with his knees close to his chest. He observed the rickety swing set in the middle of the field, and saw himself and Emily swinging back and forth again, talking about three hundred and sixty degree swings. He saw himself, laughing and giggling and occasionally licking a cone of bubble gum soft serve he had in his left hand. He saw Emily doing the same. He saw himself wobbling a bit on the swing, trying to hold himself steady with just his right hand. He tried to breathe again. <em>One, two, three.</em> He saw himself, still holding the cone, sliding out of the swing’s seat and yelling something. He saw himself landing in the rough, wet sand, the cone having left his hand and landing face-down in the sand next to him. <em>Four, five.</em> Tears were still running down his face. He saw himself turning around as Emily jumped off of her swing and came to his rescue.</p>
|
||||
<p id = "para-44">“Are you alright?”, he heard her say in her beautiful, melodic voice. <em>One, two, three.</em></p>
|
||||
<p id = "para-45">“I would’ve been, if you hadn’t forced me to get this stupid ice cream!”, he heard himself shoot back aggressively.</p>
|
||||
<p id = "para-46">He felt something tap on his shoulder again.</p>
|
||||
<p id = "para-47">“Are you alright?”, he heard someone say. “I’m sorry, I shouldn’t have said that.”</p>
|
||||
<p id = "para-48">It was Emily, standing next to him, bending down a bit to reach his shoulders. She slid down the tree trunk next to him. “I’m really sorry.”</p>
|
||||
<p id = "para-49">Ben tried to catch his breath, but with Emily here, it felt much easier all of a sudden. It’s like a tension had been lifted from him, like someone had come to push on the floodgates from the other side. “It’s alright. I’m sorry I yelled, too.”</p>
|
||||
<p id = "para-50">Emily tutted.</p>
|
||||
<p id = "para-51">“You know, sometimes I think of that day on the swings.”</p>
|
||||
<p id = "para-52">“What day?”</p>
|
||||
<p id = "para-53">“The day we had our first fight. Don’t you remember?”</p>
|
||||
<p id = "para-54">Emily tutted again. She placed her hand back on his shoulder, which he liked, because it was Emily’s hand. That’s all that mattered to him.</p>
|
||||
<p id = "para-55">He wiped the remaining tears and chocolate sauce off of his face, his sweatshirt’s sleeves now completely covered in both. “I keep remembering that day, being scared that I’ll re-live it. That we’ll have another fight. That you’ll leave.”</p>
|
||||
<p id = "para-56">"<em>Leave</em>? Come on."</p>
|
||||
<p id = "para-57">“I’m serious.”</p>
|
||||
<p id = "para-58">“I am, too. I’m not leaving.”</p>
|
||||
<p id = "para-59">She scooched closer and rested her head on his shoulder. “You know, I think about stuff too.”</p>
|
||||
<p id = "para-60">“Like what?”, he asked while also resting his head on her head, which made him feel really close to her. Intertwined, even.</p>
|
||||
<p id = "para-61">“You”, she said quietly and grunted. “I really like hanging out with you, you know?”</p>
|
||||
<p id = "para-62">“I do too,” he said almost immediately. Did this mean what he thought it meant?</p>
|
||||
<p id = "para-63">“Do you want to go home? I’m sure my mom has cookies.”</p>
|
||||
<p id = "para-64">He nodded. Maybe it did.</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,661 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="generator" content="crowbook">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<meta name="author" content="Ell Peck">
|
||||
|
||||
<title>Emily's Fake Boyfriend</title>
|
||||
<style type = "text/css">
|
||||
body {
|
||||
font-family: "Linux Libertine", "Georgia", serif;
|
||||
text-align: justify;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
p {
|
||||
text-indent: 1.25em;
|
||||
margin:0;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 1em;
|
||||
font-style: italic;
|
||||
}
|
||||
code {
|
||||
font-size: 80%;
|
||||
font-family: "Linux Libertine Mono", monospace;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
pre {
|
||||
font-family: "Linux Libertine Mono", monospace;
|
||||
margin: 1em;
|
||||
padding-top: 0;
|
||||
background-color: #F0F0F0;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
/* Try to disable hyphenation in titles */
|
||||
h1, h2, h3, h4, h5, h5 {
|
||||
adobe-hyphenate: none;
|
||||
-ms-hyphens: none; /* Trident (Windows) */
|
||||
-moz-hyphens: none; /* Gecko (Firefox) */
|
||||
-webkit-hyphens: none; /* Webkit */
|
||||
-epub-hyphens: none; /* EPUB 3 */
|
||||
hyphens: none; /* Futur standard */
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-align: left;
|
||||
font-family: Linux Biolinum, sans-serif;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
/* Title of a part */
|
||||
h1.part {
|
||||
font-size: 250%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* The `Part X` section of a part */
|
||||
h2.part {
|
||||
font-size: 175%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* The "Chapter X" section of a chapter */
|
||||
span.chapter-header {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
/* Title of the book */
|
||||
h1.title {
|
||||
text-align: center;
|
||||
font-size: 300%;
|
||||
}
|
||||
/* Author */
|
||||
h2.author {
|
||||
text-align: right;
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
/* Subtitle */
|
||||
h2.subtitle {
|
||||
text-align: center;
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
/* When toc is displayed inlined */
|
||||
#toc ol, #toc ul {
|
||||
padding: 0;
|
||||
margin-left: 1em;
|
||||
}
|
||||
#toc li {
|
||||
list-style-type: none;
|
||||
margin: 0; padding: 0;
|
||||
}
|
||||
|
||||
#toc li:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
#cover img {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.image {
|
||||
margin: auto;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.image img {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.rule {
|
||||
text-align: center !important;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
font-weight: bold;
|
||||
page-break-inside: avoid;
|
||||
break-inside: avoid;
|
||||
page-break-after: avoid;
|
||||
break-after: avoid;
|
||||
}
|
||||
|
||||
/* The number of the note in an expanded footnote (e.g. [3]) */
|
||||
.note-number {
|
||||
font-weight: bold;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
td.note-number {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* When footnotes (try to) be diplayed as margin notes */
|
||||
.sidenote {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 30%;
|
||||
border: 1px solid black;
|
||||
margin: 1em;
|
||||
padding: .5em;
|
||||
margin-right: -1.5em;
|
||||
}
|
||||
|
||||
.sidenote .note-number {
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* The div class displaying notes at the end of a chapter */
|
||||
div.notes {
|
||||
text-align: justify;
|
||||
border-top: thin dashed black;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
table.notes {
|
||||
border-collapse: collapse;
|
||||
border-style: hidden;
|
||||
}
|
||||
|
||||
table.notes tr td {
|
||||
margin-left: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
table.notes tr td p {
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
/* Every markdown table is included in a <div class = "table"> */
|
||||
.table {
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.table table {
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
border-style: solid;
|
||||
border-width: thin;
|
||||
border-color: black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.table table th, .table table td {
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.table table th {
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
|
||||
span.initial {
|
||||
float: left;
|
||||
font-size: 285%;
|
||||
font-weight: bold;
|
||||
margin-right: 0.05em;
|
||||
line-height: 0.8em;
|
||||
}
|
||||
|
||||
p.first-para {
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
/* Use this for escape narrow space so it is non-breaking */
|
||||
.nnbsp {
|
||||
/* white-space: nowrap;*/
|
||||
word-spacing: -0.13em;
|
||||
/* Following necessary for Kobo EPUB3 reader??? */
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Default HTML CSS file includes default EPUB CSS file */
|
||||
|
||||
/* Colors for the navigation menu (toc) */
|
||||
nav {
|
||||
background: #CBBFCC;
|
||||
color: black;
|
||||
border-right-color: black;
|
||||
}
|
||||
|
||||
#nav a:link {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#nav a:visited {
|
||||
color: black;
|
||||
}
|
||||
|
||||
/* Colors for top and footer */
|
||||
#top {
|
||||
background-color: #444343;
|
||||
color: white;
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color: #444343;
|
||||
color: white;
|
||||
}
|
||||
|
||||
footer a, #top a {
|
||||
color: #fc71ff;
|
||||
}
|
||||
|
||||
footer a:hover, #top a:hover {
|
||||
color: #b743fe;
|
||||
}
|
||||
|
||||
/* Additional elements, only use for proofreading */
|
||||
/* Grammar error */
|
||||
.grammar-error {
|
||||
color: red;
|
||||
text-decoration-line: underline;
|
||||
text-decoration-style: double;
|
||||
/* background: #d966ff;*/
|
||||
}
|
||||
|
||||
|
||||
p.first-para:first-letter {
|
||||
font-size: 300%;
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
margin-right: 0.05em;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
/* The nav element corresponding to the navigation menu */
|
||||
nav {
|
||||
z-index: 2;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 20%;
|
||||
overflow-y: auto;
|
||||
font-size: 80%;
|
||||
margin-left: 0;
|
||||
border-right-width: 2px;
|
||||
border-right-style: dashed;
|
||||
}
|
||||
|
||||
#nav code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#nav a:link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav a:visited {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#nav h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#nav li {
|
||||
list-style-type: none;
|
||||
text-indent: -1em;
|
||||
}
|
||||
|
||||
#nav li:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
#nav ul {
|
||||
padding-right: 1em;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
|
||||
/* The menu containing the button to display the navigation bar */
|
||||
#menu {
|
||||
position: fixed;
|
||||
z-index: 2;
|
||||
top: 0em;
|
||||
left: 1em;
|
||||
transition: left 1s;
|
||||
}
|
||||
|
||||
#menu img {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#menu img:hover {
|
||||
opacity: 1.0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#menu-button {
|
||||
height: 1.5em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
#book-button {
|
||||
height: 1.5em;
|
||||
padding: 0.5em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* Hide navigation bar */
|
||||
#nav {
|
||||
left: -21%;
|
||||
transition: left 1s;
|
||||
}
|
||||
|
||||
/* The main content of the book */
|
||||
#content {
|
||||
overflow-y: auto;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
transition: margin-left 1s;
|
||||
}
|
||||
|
||||
/* Used for multifiles HTML */
|
||||
.prev_chapter {
|
||||
text-align: left;
|
||||
text-indent: 0;
|
||||
margin-bottom: 1em;
|
||||
font-size: 120%;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.next_chapter {
|
||||
text-align: right;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
font-size: 120%;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Improving readability for the HTML format only */
|
||||
p, blockquote, li, .image {
|
||||
margin-right: auto;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
#content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#page {
|
||||
display: inline-block;
|
||||
text-align: justify;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
#nav-container {
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#nav-title {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#toolbar {
|
||||
top: 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#toolbar img {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#top {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
#top p {
|
||||
font-family: "Linux Biolinum";
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
footer, #top {
|
||||
padding-top: .25em;
|
||||
padding-bottom: .25em;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
text-align: center;
|
||||
transition: margin-left 1s;
|
||||
}
|
||||
|
||||
footer a, #top a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
footer p, #top p {
|
||||
text-indent: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 0.5em;
|
||||
margin-top: 0.5em;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<style type = "text/css" media = "print">
|
||||
#page {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.chapter {
|
||||
page-break-before: always;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#nav {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function on(name) {
|
||||
var elements = document.getElementsByClassName(name);
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var elem = elements[i];
|
||||
elem.style.backgroundColor = "pink";
|
||||
}
|
||||
}
|
||||
function off(name) {
|
||||
var elements = document.getElementsByClassName(name);
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var elem = elements[i];
|
||||
elem.style.backgroundColor = "white";
|
||||
}
|
||||
}
|
||||
|
||||
var display_menu = false;
|
||||
function toggle() {
|
||||
if (display_menu == true) {
|
||||
display_menu = false;
|
||||
document.getElementById("nav").style.left = "-21%";
|
||||
document.getElementById("content").style.marginLeft = "0%";
|
||||
document.getElementById("menu").style.left = "1em";
|
||||
/* if(document.getElementById("top")) {
|
||||
document.getElementById("top").style.left = "0";
|
||||
}
|
||||
if(document.getElementById("footer")) {
|
||||
document.getElementById("footer").style.marginLeft = "0%";
|
||||
}*/
|
||||
} else {
|
||||
display_menu = true;
|
||||
document.getElementById("nav").style.left = "0";
|
||||
document.getElementById("content").style.marginLeft = "20%";
|
||||
document.getElementById("menu").style.left = "20%";
|
||||
/* if(document.getElementById("top")) {
|
||||
document.getElementById("top").style.left = "20%";
|
||||
}
|
||||
if(document.getElementById("footer")) {
|
||||
document.getElementById("footer").style.marginLeft = "20%";
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type = 'application/ld+json'>
|
||||
{
|
||||
"@context": "http://schema.org/",
|
||||
"@type": "Book",
|
||||
"author": "Ell Peck",
|
||||
"name": "Emily's Fake Boyfriend",
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"inLanguage": "en"
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
<nav id = "nav">
|
||||
<div id = "nav-title">
|
||||
<h2><a href = "#link-0">Emily’s Fake Boyfriend</a></h2>
|
||||
</div>
|
||||
<ul>
|
||||
<li><a href="#link-1">1. </a></li>
|
||||
<li><a href="#link-2">2. </a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
|
||||
<div id = "content">
|
||||
|
||||
<div id = "page">
|
||||
<header>
|
||||
|
||||
<div id = "menu">
|
||||
<img id = "menu-button" onclick="toggle();"
|
||||
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMjAwbW0iCiAgIGhlaWdodD0iMjAwbW0iCiAgIHZpZXdCb3g9IjAgMCA3MDguNjYxNDIgNzA4LjY2MTQxIgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxIHIxMzcyNSIKICAgc29kaXBvZGk6ZG9jbmFtZT0ibWVudS5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIwLjQ5NDk3NDc1IgogICAgIGlua3NjYXBlOmN4PSIxMDUuNjEyNzUiCiAgICAgaW5rc2NhcGU6Y3k9IjQwNy4wNjM5MSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjEzNjYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNzA0IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTciPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTM0My43MDA3OSkiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEwMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTA0LjMzMDcxLDQ2OS41MDUxIDUwMCwwIgogICAgICAgaWQ9InBhdGg0MTM2IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxMDA7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDEwNC4zMzA3MSw3MDQuNTA1MSA1MDAsMCIKICAgICAgIGlkPSJwYXRoNDEzNi01IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOnRyYW5zZm9ybS1jZW50ZXIteD0iNzEuNDI4NTcyIgogICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci15PSItMjQyLjg1NzE2IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEwMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTA0LjMzMDcxLDkzOS41MDUwNiA1MDAsMCIKICAgICAgIGlkPSJwYXRoNDEzNi01LTMiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci14PSI3MS40Mjg1NzIiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXk9Ii0yNDIuODU3MTYiIC8+CiAgPC9nPgo8L3N2Zz4K"
|
||||
alt = "Table of contents" title = "Table of contents" />
|
||||
</div>
|
||||
<h2 class="author">Ell Peck</h2>
|
||||
<h1 id = "link-0" class="title" >Emily’s Fake Boyfriend</h1>
|
||||
|
||||
</header>
|
||||
|
||||
<div id = "chapter-0" class = "chapter">
|
||||
<h1 id = 'link-1'><span class = 'chapter-header'>Chapter 1</span></h1><p id = "para-1">For Emily, Saturdays always seemed to be the days when most things went wrong. She didn’t exactly know why, but she was almost certain that there was some pattern, some sort of spiteful spirit that hated Saturdays, hated her, or both. This Saturday would be one of the most bizarre ones so far, but she didn’t know that yet.</p>
|
||||
<p id = "para-2">The alarm rang, its screeching noises filling Emily’s bedroom. With a huge sigh, she pulled the cover off of her body and jumped out of bed. As she picked up her phone from the nightstand, she sighed again. <em>Oh God</em>, she thought. <em>What now?</em> She tapped various locations of the device’s large screen until she ended up in a text message chain with her mom, her brother and her younger sister. Her eyes kept trying to entice her to fall back asleep while she was scanning the lines of the last ten or so messages as carefully as she could.</p>
|
||||
<p id = "para-3"><em>Damn it</em>, she thought as she got to the last message. <em>That’s today</em>? She quickly gathered her things, put on her favorite, pastel pink cardigan, messily fluffed up her hair as she ran past her large mirror and made her way downstairs.</p>
|
||||
<p id = "para-4">“Good morning!” Her mom said with a slight smile. She was standing in the kitchen, as she usually did, preparing homemade waffles. Emily’s mother was a very good cook and baker, but waffles weren’t her strong suit, for some reason. Every time she tried (and she tried too much), they’d end up burnt or somehow taste of licorice. The thought made Emily grimace as she walked past the kitchen.</p>
|
||||
<p id = "para-5">“Morning, mom!” she hastily said and made her way to the front door.</p>
|
||||
<p id = "para-6">“Not so fast,” her mom shouted back from the kitchen. “Don’t forget your waffles!”</p>
|
||||
<p id = "para-7"><em>Oh, God.</em> “Of course,” Emily replied with a sigh.</p>
|
||||
<p class = "rule">***</p>
|
||||
<p id = "para-8">Ben was sitting on the side of his bed with his laptop firmly planted on his crossed legs. With the speed of a twenty-fingered person, he was typing away on an essay for school. He heard a knock on his room door and, while <em>very</em> annoyed by this, he still managed to calmly shout “Come in!”</p>
|
||||
<p id = "para-9">“Emily’s here,” his mom said while peeking her head through the slightly opened door. “She says it’s important.”</p>
|
||||
<p id = "para-10">Almost immediately, far too many thoughts started sprinting through his head: It’s <em>important</em>? What could that possibly mean? Was Em, his best friend since kindergarten, <em>dying</em>? No, that’s unlikely. But what if she <em>was</em>? Why wouldn’t she just <em>call</em>? Oh God, no, a call would be <em>even worse</em>. Still begging his brain to shut up, he trotted down the stairs and arrived in the house’s main hallway. A myriad of family photos plastered the walls, most of them from when Ben was still a child. His mom <em>loved</em> showing off pictures of his “little baby boy,” evidently in the most embarrassing ways possible.</p>
|
||||
<p id = "para-11">“Ben!” Emily said hastily as he opened the door. “I need you to be my boyfriend!”</p>
|
||||
<p id = "para-12"><em>His what</em>? His mind began racing again. Not only was that a very weird way to phrase that sort of thing, but it was also an extremely unexpected request in general. Emily, while insanely beautiful and extremely charming, wasn’t really known to start relationships with anyone. Ben occasionally talked to her about it. It didn’t seem to be her favorite topic, so usually, he’d lay off after only two or three questions. They weren’t necessarily the easiest of questions for him to ask her, either, because he was <em>obsessed</em> with her, almost uncomfortably so. Not in a stalker-y, watch-her-every-night, masturbate-to-her-daily sort of way, but in an I-love-you-and-I-want-to-marry-you kind of way. Of course, Ben (being who he is) was far too self-conscious to <em>ever</em> bring it up.</p>
|
||||
<p id = "para-13">“You need to <em>what</em>?", he responded quickly.</p>
|
||||
<p id = "para-14">“Well,” she said and took a deep breath. “My aunt is coming to town and I may or may not have told her that we’re, uh, together.”</p>
|
||||
<p id = "para-15">“You did <em>what</em>?"</p>
|
||||
<p id = "para-16">“I know, I know. It’s bad.” She tutted. “The thing is that my aunt can be really <em>annoying</em>. She always goes on and on about my love life, about how I haven’t found a boyfriend yet, even though I’m already 19, and how that is <em>absolutely unacceptable</em>. So, I decided to put a stop to it."</p>
|
||||
<p id = "para-17">Ben closed his eyes. <em>Fuck.</em> Of course, it wasn’t what he’d hoped it was. <em>Of course</em>, she didn’t want to be his <em>actual</em> girlfriend. Who’d want to be? Nobody. Especially not her.</p>
|
||||
<p id = "para-18">She was standing there, her blonde locks swaying back and forth in the breeze that the open front door let in, and Ben was lost for words.</p>
|
||||
<p id = "para-19">She tutted again. “Aren’t you going to say anything?”</p>
|
||||
<p id = "para-20">“Well,” he started. How could he say yes to this? If anything, wouldn’t it just cause him more pain to have an entirely fake relationship than none at all? Maybe. But maybe, this could lead to something. Maybe, he thought, this could be like those cheesy romance films that he sometimes watched when he was in a <em>particular</em> mood. Maybe this could really be the start of something.</p>
|
||||
<p id = "para-21">“What do you need me to do?” He asked.</p>
|
||||
<p class = "rule">***</p>
|
||||
<p id = "para-22">Emily breathed a huge sigh of relief. “Let’s sit down somewhere,” she said quietly.</p>
|
||||
<p id = "para-23">As she finally entered the house, and they started making their way over to Ben’s living room, she felt a kind of unease course through her body. It wasn’t the <em>bad Saturday waffles</em> kind. She couldn’t quite put her finger on what this feeling was, but she felt her heart beating faster when they sat down on a rickety, brown sofa.</p>
|
||||
<p id = "para-24">She knew, of course, that Ben didn’t enjoy this whole situation. She knew that he wasn’t the best liar, and she knew that he didn’t <em>enjoy</em> lying all that much either. But this was different, she thought to herself. Emily never understood what, if anything, Ben felt for her. It wasn’t that he was secretive about his feelings, it’s that she was incredibly bad at reading them. To her, it was weird that so many people automatically <em>assumed</em> that she was amazing at talking to people, making conversation, and understanding what other people want. But this wasn’t really the case. While Emily <em>did</em> love hanging out with people, the part of her brain that was meant for understanding people’s feelings was probably being repurposed to store excessive amounts of Ariana Grande quotes. And it made her feel bad, too, because her best friend Ben was absolutely <em>packed</em> with feelings.</p>
|
||||
<p id = "para-25">While poking at a small hole in the brown fabric she was sitting on, she recalled a situation from a few months ago. She and Ben were in the park, and there was some sort of spring festival going on. She had dragged him out to it because, even though she didn’t necessarily <em>like</em> taking this role in his life, she’d often try to take him out of his shell and help him fight his anxiety. During that festival, he had a full-on <em>panic attack</em> (the kind of thing that she, as an avid Ariana Grande listener, did not understand), which caused him to run off and hide.</p>
|
||||
<p id = "para-26">Was this really such a good idea?</p>
|
||||
<p id = "para-27">“Okay, so,” she said and let out a big sigh. “Let’s talk relationship. What kind of boyfriend do you want to be?”</p>
|
||||
<p id = "para-28">“I’m sorry?” He said, flustered.</p>
|
||||
<p id = "para-29">“Well, I didn’t tell my aunt that many lies about you, so the whole thing is pretty open. You can be super caring, or, you know, the bad boy type.”</p>
|
||||
<p id = "para-30">“The <em>bad boy type</em>?"</p>
|
||||
<p id = "para-31">“Yea, like, uncaring and aloof, you know? Maybe wear a leather jacket.”</p>
|
||||
<p id = "para-32">“A leather- have you <em>met me</em>?" He responded in playful disgust.</p>
|
||||
<p id = "para-33">“Okay, super caring it is, then,” she laughed and moved her hands around in the air as if writing something down on a giant, invisible notebook.</p>
|
||||
<p id = "para-34">Honestly, <em>super caring</em> was exactly the kind of boyfriend that she actually wanted. Of course, she would never say this out loud, but occasionally she dreamed of the perfect storybook romance. <em>Romeo and Juliet</em>, just without all the tragic stuff. Just like that one Taylor Swift song. While she’d fooled around with some of her girlfriends once or twice, she’d never actually had a relationship with anyone, especially not a guy. She didn’t really know why, either. She briefly wondered if any guys had ever been visibly into her. Maybe she’d just missed it.</p>
|
||||
<p id = "para-35">She’d also never admit <em>this</em>, of course, but Ben seemed like a fairly good candidate for the position of the super caring boyfriend. He was innocent, sweet, and he had the mane of an extremely gentle lion.</p>
|
||||
<p id = "para-36">Uncomfortable silence had set in between the two, as it sometimes seemed to do. It didn’t help that Emily had one of those weird thoughts again. Very occasionally, she’d have this intrusive image in her head: Ben, lion-like as he looked, not-so-gently on top of her. Sometimes he’d touch her breasts; sometimes they’d be kissing. Was she sexualizing her friendship? Maybe. Was that bad? She didn’t know. She also didn’t know if she cared yet. After all, she didn’t <em>mean to</em>. It just kind of happened every now and again. If anything, didn’t that speak to her fondness of Ben?</p>
|
||||
<p id = "para-37">In an attempt to quickly change the subject on her mind, she started telling a story about her aunt.</p>
|
||||
<p id = "para-38">“You’re going to <em>love</em> my aunt," she said sarcastically. He looked at her with a sense of dread in his eyes. “Okay, one time, we were at this restaurant, the whole family all packed into this corner booth, and she would not stop pestering the poor waiter with question after question about the most ridiculous stuff! Every time she waved him back over to our table, he looked more and more tired of her shit.”</p>
|
||||
<p id = "para-39">“That’s actually kind of horrifying,” he responded and shook his head slowly.</p>
|
||||
<p id = "para-40">“Right?”</p>
|
||||
|
||||
</div><div id = "chapter-1" class = "chapter">
|
||||
<h1 id = 'link-2'><span class = 'chapter-header'>Chapter 2</span></h1><p id = "para-41">In the early evening, Ben found himself sitting at a big dinner table, straight across from an overly cheerful looking lady. If he had to guess, Em’s aunt was probably around fifty-five years old, maybe a little older. She was slightly hunched over the table, resting one of her arms on it. <em>That’s not how you sit at a table, young man</em>, he heard his own aunt’s voice echoing in his head. Clearly, Emily’s aunt didn’t care, and from what he’d been told, this wasn’t surprising.</p>
|
||||
<p id = "para-42">When Emily’s mom came into the room from the kitchen, she was carrying a large tray that held a variety of sweet pastries and cookies. Homemade, Ben assumed, waiting to bite into one of those chocolate croissants. Emily’s mom set the tray down in the center of the table and pointed at it with an open hand as if to say <em>There you go, dig in</em>. So Emily and her sister did. After they finished selecting something they liked, Ben also felt comfortable taking a croissant.</p>
|
||||
<p id = "para-43">A chocolate cookie in her delicate fingers, Emily’s aunt turned to Emily. “So,” she began while raising her thickly overdrawn, black eyebrows. “How have you been, my love?”</p>
|
||||
<p id = "para-44">“Well, school’s been going pretty well. I’ve only gotten good grades this semester, and my classes have been bearable.”</p>
|
||||
<p id = "para-45">Her aunt started smiling wide. “A perfect student as always! I expected nothing less of you, dear.”</p>
|
||||
<p id = "para-46">Emily provocatively rolled her eyes and sighed. Her aunt didn’t seem affected by that at all. Instead, she continued smiling as she bit into her cookie. “And you, love?”</p>
|
||||
<p id = "para-47">Confused for a second, Ben realized that she was talking to him now.</p>
|
||||
<p id = "para-48">“Me? Oh, well,” he stuttered. “School is also going great for me. Emily and I are pretty much on the same level in terms of grades and stuff.”</p>
|
||||
<p id = "para-49">“On the same level, you say? Maybe that’s why you two get along so well! For years now, I’ve been <em>absolutely positive</em> that you two would make the cutest couple. And now it’s <em>finally</em> happened, God bless."</p>
|
||||
<p id = "para-50">Emily sighed, louder this time. Ben let out a stifled chuckle. <em>I wish</em>, he thought to himself.</p>
|
||||
<p class = "rule">***</p>
|
||||
<p id = "para-51">As the conversation continued over dinner, followed by coffee, Ben felt himself zoning out from time to time. As he continued to observe Em and her aunt conversing, he felt his mind wander to a different world without his control.</p>
|
||||
<p id = "para-52">A world where him and Em really <em>were</em> a couple. A world where, against all odds, they’d happily been together for years, with their own apartment, with floor-length windows and a balcony. They’d sit outside in the evenings, eating ice cream and sipping on cocktails. They would laugh and share stories of their day while watching the sunset over the park. They’d go into town on the weekends and eat at that little Italian place he keeps wanting to go to. They’d never fight anymore, because they’d be happy. He’d never cry alone, never wonder why he was too <em>stupid</em> to tell her how he felt.</p>
|
||||
<p id = "para-53">Emily grabbed his hand. “We’re going upstairs now,” she said and got up from her chair.</p>
|
||||
<p id = "para-54">Even though he knew it was fake; even though he knew that her hand in his meant <em>nothing</em>, it felt good. He craved contact like this, with someone he really cared about. He’d hug Emily more if it wasn’t for his fear of being overbearing. Of being a nuisance. Why did he have to feel that way?</p>
|
||||
<p id = "para-55">Emily dragged Ben behind her as she walked up the stairs, her palm still resting in his. When they got to the door of her room, she still hadn’t let go of his hand. Why? Was Ben just reading into things again, or did she <em>enjoy</em> holding his hand? <em>Surely not. She’d never enjoy that</em>, he told himself. Then, as he frequently did, he told himself to stop telling himself things like that.</p>
|
||||
<p id = "para-56">Emily finally let go of his hand upon entering her room. This was one of Ben’s favorite places to be. Sometimes, he’d imagine him and Em cuddled up together on her bed, sharing a blanket, watching a movie or playing <em>GTA</em>.</p>
|
||||
<p id = "para-57">He thought about this kind of thing a lot. Of course, he also thought a lot about the fact that he thought about this kind of thing so frequently. Was it bad to have these thoughts? Was he risking ruining his perfect friendship with Emily by making some big romance out of it in his head? Was it unfair to her to keep quiet about it? As they sat down next to each other on the bed, he tried to let these thoughts fade.</p>
|
||||
<p id = "para-58">“Thank you <em>so damn much</em>, man," Emily said and let out a sigh of relief. “What a nightmare.”</p>
|
||||
<p id = "para-59">“Oh come on, it wasn’t <em>that</em> bad."</p>
|
||||
<p id = "para-60">“Did you hear what she <em>said</em>?" Emily put on a very bad, fake British accent. “I was <em>absolutely positive</em>," she mocked. "<em>My dear.</em>"</p>
|
||||
<p id = "para-61">Ben couldn’t help but laugh. “She’s not that bad! I thought she was nice.”</p>
|
||||
<p id = "para-62">“Oh shut up, I <em>know</em> you." Did she? “People like her drive you <em>mad</em>! You never miss out on an opportunity to hide in your room. You don’t <em>like</em> her."</p>
|
||||
<p id = "para-63">Maybe she did know him. And maybe it was this realization that made him unable to think about the words flying out of his mouth. He let out a quiet, but emotional sigh, and said “I like <em>you</em>, though."</p>
|
||||
<p id = "para-64">Emily turned and looked into his eyes. As he stared back, he could see a tiny reflection of his face in her brown irises. “I like you too, Ben. You know that,” she said.</p>
|
||||
<p id = "para-65">Maybe she didn’t know him after all. He focused intensely on her face. What if this was the moment to be honest? What if, in the light of this fake relationship, he could finally be true to how he felt? Anxiety boiled up inside him. This was a panic attack just waiting to happen. But he had to try. Right?</p>
|
||||
<p id = "para-66">“No,” he said and gently took her hand. “I <em>really</em> like you, Em."</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,657 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="generator" content="crowbook">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<meta name="author" content="Ell Peck">
|
||||
|
||||
<title>Jed's Things to Avoid in Life</title>
|
||||
<style type = "text/css">
|
||||
body {
|
||||
font-family: "Linux Libertine", "Georgia", serif;
|
||||
text-align: justify;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
p {
|
||||
text-indent: 1.25em;
|
||||
margin:0;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 1em;
|
||||
font-style: italic;
|
||||
}
|
||||
code {
|
||||
font-size: 80%;
|
||||
font-family: "Linux Libertine Mono", monospace;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
pre {
|
||||
font-family: "Linux Libertine Mono", monospace;
|
||||
margin: 1em;
|
||||
padding-top: 0;
|
||||
background-color: #F0F0F0;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
/* Try to disable hyphenation in titles */
|
||||
h1, h2, h3, h4, h5, h5 {
|
||||
adobe-hyphenate: none;
|
||||
-ms-hyphens: none; /* Trident (Windows) */
|
||||
-moz-hyphens: none; /* Gecko (Firefox) */
|
||||
-webkit-hyphens: none; /* Webkit */
|
||||
-epub-hyphens: none; /* EPUB 3 */
|
||||
hyphens: none; /* Futur standard */
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-align: left;
|
||||
font-family: Linux Biolinum, sans-serif;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
/* Title of a part */
|
||||
h1.part {
|
||||
font-size: 250%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* The `Part X` section of a part */
|
||||
h2.part {
|
||||
font-size: 175%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* The "Chapter X" section of a chapter */
|
||||
span.chapter-header {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
/* Title of the book */
|
||||
h1.title {
|
||||
text-align: center;
|
||||
font-size: 300%;
|
||||
}
|
||||
/* Author */
|
||||
h2.author {
|
||||
text-align: right;
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
/* Subtitle */
|
||||
h2.subtitle {
|
||||
text-align: center;
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
/* When toc is displayed inlined */
|
||||
#toc ol, #toc ul {
|
||||
padding: 0;
|
||||
margin-left: 1em;
|
||||
}
|
||||
#toc li {
|
||||
list-style-type: none;
|
||||
margin: 0; padding: 0;
|
||||
}
|
||||
|
||||
#toc li:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
#cover img {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.image {
|
||||
margin: auto;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.image img {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.rule {
|
||||
text-align: center !important;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
font-weight: bold;
|
||||
page-break-inside: avoid;
|
||||
break-inside: avoid;
|
||||
page-break-after: avoid;
|
||||
break-after: avoid;
|
||||
}
|
||||
|
||||
/* The number of the note in an expanded footnote (e.g. [3]) */
|
||||
.note-number {
|
||||
font-weight: bold;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
td.note-number {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* When footnotes (try to) be diplayed as margin notes */
|
||||
.sidenote {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 30%;
|
||||
border: 1px solid black;
|
||||
margin: 1em;
|
||||
padding: .5em;
|
||||
margin-right: -1.5em;
|
||||
}
|
||||
|
||||
.sidenote .note-number {
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* The div class displaying notes at the end of a chapter */
|
||||
div.notes {
|
||||
text-align: justify;
|
||||
border-top: thin dashed black;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
table.notes {
|
||||
border-collapse: collapse;
|
||||
border-style: hidden;
|
||||
}
|
||||
|
||||
table.notes tr td {
|
||||
margin-left: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
table.notes tr td p {
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
/* Every markdown table is included in a <div class = "table"> */
|
||||
.table {
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.table table {
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
border-style: solid;
|
||||
border-width: thin;
|
||||
border-color: black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.table table th, .table table td {
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.table table th {
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
|
||||
span.initial {
|
||||
float: left;
|
||||
font-size: 285%;
|
||||
font-weight: bold;
|
||||
margin-right: 0.05em;
|
||||
line-height: 0.8em;
|
||||
}
|
||||
|
||||
p.first-para {
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
/* Use this for escape narrow space so it is non-breaking */
|
||||
.nnbsp {
|
||||
/* white-space: nowrap;*/
|
||||
word-spacing: -0.13em;
|
||||
/* Following necessary for Kobo EPUB3 reader??? */
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Default HTML CSS file includes default EPUB CSS file */
|
||||
|
||||
/* Colors for the navigation menu (toc) */
|
||||
nav {
|
||||
background: #CBBFCC;
|
||||
color: black;
|
||||
border-right-color: black;
|
||||
}
|
||||
|
||||
#nav a:link {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#nav a:visited {
|
||||
color: black;
|
||||
}
|
||||
|
||||
/* Colors for top and footer */
|
||||
#top {
|
||||
background-color: #444343;
|
||||
color: white;
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color: #444343;
|
||||
color: white;
|
||||
}
|
||||
|
||||
footer a, #top a {
|
||||
color: #fc71ff;
|
||||
}
|
||||
|
||||
footer a:hover, #top a:hover {
|
||||
color: #b743fe;
|
||||
}
|
||||
|
||||
/* Additional elements, only use for proofreading */
|
||||
/* Grammar error */
|
||||
.grammar-error {
|
||||
color: red;
|
||||
text-decoration-line: underline;
|
||||
text-decoration-style: double;
|
||||
/* background: #d966ff;*/
|
||||
}
|
||||
|
||||
|
||||
p.first-para:first-letter {
|
||||
font-size: 300%;
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
margin-right: 0.05em;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
/* The nav element corresponding to the navigation menu */
|
||||
nav {
|
||||
z-index: 2;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 20%;
|
||||
overflow-y: auto;
|
||||
font-size: 80%;
|
||||
margin-left: 0;
|
||||
border-right-width: 2px;
|
||||
border-right-style: dashed;
|
||||
}
|
||||
|
||||
#nav code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#nav a:link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav a:visited {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#nav h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#nav li {
|
||||
list-style-type: none;
|
||||
text-indent: -1em;
|
||||
}
|
||||
|
||||
#nav li:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
#nav ul {
|
||||
padding-right: 1em;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
|
||||
/* The menu containing the button to display the navigation bar */
|
||||
#menu {
|
||||
position: fixed;
|
||||
z-index: 2;
|
||||
top: 0em;
|
||||
left: 1em;
|
||||
transition: left 1s;
|
||||
}
|
||||
|
||||
#menu img {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#menu img:hover {
|
||||
opacity: 1.0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#menu-button {
|
||||
height: 1.5em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
#book-button {
|
||||
height: 1.5em;
|
||||
padding: 0.5em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* Hide navigation bar */
|
||||
#nav {
|
||||
left: -21%;
|
||||
transition: left 1s;
|
||||
}
|
||||
|
||||
/* The main content of the book */
|
||||
#content {
|
||||
overflow-y: auto;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
transition: margin-left 1s;
|
||||
}
|
||||
|
||||
/* Used for multifiles HTML */
|
||||
.prev_chapter {
|
||||
text-align: left;
|
||||
text-indent: 0;
|
||||
margin-bottom: 1em;
|
||||
font-size: 120%;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.next_chapter {
|
||||
text-align: right;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
font-size: 120%;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Improving readability for the HTML format only */
|
||||
p, blockquote, li, .image {
|
||||
margin-right: auto;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
#content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#page {
|
||||
display: inline-block;
|
||||
text-align: justify;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
#nav-container {
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#nav-title {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#toolbar {
|
||||
top: 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#toolbar img {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#top {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
#top p {
|
||||
font-family: "Linux Biolinum";
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
footer, #top {
|
||||
padding-top: .25em;
|
||||
padding-bottom: .25em;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
text-align: center;
|
||||
transition: margin-left 1s;
|
||||
}
|
||||
|
||||
footer a, #top a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
footer p, #top p {
|
||||
text-indent: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 0.5em;
|
||||
margin-top: 0.5em;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<style type = "text/css" media = "print">
|
||||
#page {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.chapter {
|
||||
page-break-before: always;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#nav {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function on(name) {
|
||||
var elements = document.getElementsByClassName(name);
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var elem = elements[i];
|
||||
elem.style.backgroundColor = "pink";
|
||||
}
|
||||
}
|
||||
function off(name) {
|
||||
var elements = document.getElementsByClassName(name);
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var elem = elements[i];
|
||||
elem.style.backgroundColor = "white";
|
||||
}
|
||||
}
|
||||
|
||||
var display_menu = false;
|
||||
function toggle() {
|
||||
if (display_menu == true) {
|
||||
display_menu = false;
|
||||
document.getElementById("nav").style.left = "-21%";
|
||||
document.getElementById("content").style.marginLeft = "0%";
|
||||
document.getElementById("menu").style.left = "1em";
|
||||
/* if(document.getElementById("top")) {
|
||||
document.getElementById("top").style.left = "0";
|
||||
}
|
||||
if(document.getElementById("footer")) {
|
||||
document.getElementById("footer").style.marginLeft = "0%";
|
||||
}*/
|
||||
} else {
|
||||
display_menu = true;
|
||||
document.getElementById("nav").style.left = "0";
|
||||
document.getElementById("content").style.marginLeft = "20%";
|
||||
document.getElementById("menu").style.left = "20%";
|
||||
/* if(document.getElementById("top")) {
|
||||
document.getElementById("top").style.left = "20%";
|
||||
}
|
||||
if(document.getElementById("footer")) {
|
||||
document.getElementById("footer").style.marginLeft = "20%";
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type = 'application/ld+json'>
|
||||
{
|
||||
"@context": "http://schema.org/",
|
||||
"@type": "Book",
|
||||
"author": "Ell Peck",
|
||||
"name": "Jed's Things to Avoid in Life",
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"inLanguage": "en"
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<div id = "content">
|
||||
|
||||
<div id = "page">
|
||||
<header>
|
||||
|
||||
<div id = "menu">
|
||||
</div>
|
||||
<h2 class="author">Ell Peck</h2>
|
||||
<h1 id = "link-0" class="title" >Jed’s Things to Avoid in Life</h1>
|
||||
|
||||
</header>
|
||||
|
||||
<div id = "chapter-0" class = "chapter">
|
||||
<p id = "para-1">Jed didn’t do relationships. That was just one of his rules. Actually, it had become such an important rule to him that he added it to his very official, <em>highly</em> scientific List of Things to Avoid in Life. They were too complicated, and the touchy-feely stuff usually left him feeling inadequate about his ability to be there for someone. He also just didn’t have the time, with his fifty-hour work week and all that. So not wasting his time trying to care for another person, especially considering that they’d probably notice pretty quickly how little he was able to care for them and ultimately leave him to be on his own again. So why bother, right?</p>
|
||||
<p id = "para-2">He was sitting on a crowded, noisy train on his way to visit his parents in his childhood hometown. He didn’t necessarily enjoy going there again, but this weekend was his mom’s birthday, and he loved her too much to skip it. Even though his grandma would also be there, who he had a particular grudge with after finding out a few years ago about her dislike of a <em>pretty important</em> part of his life. So he wasn’t particularly looking forward to talking to her about “the girls she envisions him marrying.”</p>
|
||||
<p id = "para-3">He looked out the window, the lush, pine-plastered mountains in the distance slowly creeping by, and imagined what it would be like if he really <em>was</em> as much into girls as his grandma wished he was. It’s not like he hadn’t thought about it. Of course, it would be easier for him to be straight. In fact, maybe his rules about relationships were only so airtight because he was afraid of being bullied. He didn’t enjoy the thought of holding hands with his boyfriend, only to be attacked by some idiot in an alley. But his other reasons were good, too, right? He <em>was</em> a little emotionally unavailable at times. He <em>did</em> have that horrible work week. <em>Yes</em>, he thought to himself. <em>Those are good enough reasons to avoid the perfect, storybook romance you dreamed of as a kid, damn it.</em></p>
|
||||
<p id = "para-4">After leaving the train, he stopped in the middle of the platform and looked around to get his bearings again. Out of the corner of his eye, he noticed something odd. He turned to face the front window of a small bakery, the glass protecting delicious looking pastries and cakes that were quietly sitting in a large vitrine. But that wasn’t the odd thing.</p>
|
||||
<p id = "para-5">He started closely inspecting the head of the person standing behind the register, currently handing a glazed donut to an old lazy. After a few seconds, the person turned in his direction, and started looking directly at him. And there he was, standing in the middle of a train station, locking eyes with the <em>last</em> person he wanted to see in this town. He smiled and waved awkwardly, and the person behind the register did the same, before turning back to the old lady and finishing their transaction.</p>
|
||||
<p id = "para-6">Jed, clearly having lost his mind, thought it would only be right to go inside and say hello. A little bell that was mounted behind the door rang. Now, he was standing right in front of him. His long, wavy brown hair had the same elegance as it did the last time Jed saw him, as if nothing had changed. Davy must’ve been sat in a time capsule for the last four years, because he still looked exactly as beautiful as he did all those years ago at school. No, better. Davy had broad shoulders and a wide frame. His arms were thick and muscular and Jed imagined them again, wrapped around his body, warming him. Protecting him.</p>
|
||||
<p id = "para-7">“Jed! I didn’t know you still lived in town,” he said with a smile that penetrated all of Jed’s defenses.</p>
|
||||
<p id = "para-8">“I don’t, actually,” he stuttered. “I’m visiting my parents.”</p>
|
||||
<p id = "para-9">“Ah, that makes sense. Train station.” Davy laughed awkwardly and pushed the hair out of his face with his hand. His motions were smooth and soft, and Jed couldn’t help but notice the veins in his arms twitching as he moved his hands. <em>Jesus Christ</em>, he said to himself. <em>Get a grip.</em></p>
|
||||
<p id = "para-10">“How have you been?” Davy asked and raised an eyebrow.</p>
|
||||
<p id = "para-11">“I’ve been pretty good, actually,” Jed mumbled, still mesmerized by Davy’s movements. The grip clearly hadn’t been gotten yet. “I’m working at a pretty big software company.”</p>
|
||||
<p id = "para-12">“That’s awesome,” Davy said with a very real, supportive air of enthusiasm.</p>
|
||||
<p id = "para-13">“And you?”</p>
|
||||
<p id = "para-14">“Been working here to help with uni. That shit’s really expensive, man.” Davy chuckled.</p>
|
||||
<p id = "para-15">Jed nodded his head slightly. “Yea, I can imagine,” he said.</p>
|
||||
<p id = "para-16">“Anyway, it’s cool that you’re here. Do you maybe want to catch up some time?”</p>
|
||||
<p id = "para-17">Jed froze. <em>Oh my God</em>, he thought. Had Davy really just asked him on a date? Okay, well. Not a <em>proper</em> date, but...</p>
|
||||
<p id = "para-18">“Uh, yea, that sounds great,” he mumbled. If Davy was a mirror, he’d probably see his entire face turn into a tomato right now. <em>Oh, God.</em> “I’m free the whole weekend,” he continued.</p>
|
||||
<p id = "para-19">They exchanged phone numbers, and Jed breathed a sigh of relief when he exited the bakery. Thankfully, Davy didn’t seem to have noticed how awkwardly Jed was acting around him. Was he even acting that awkwardly? Possibly. Probably.</p>
|
||||
<p class = "rule">***</p>
|
||||
<p id = "para-20">Only a few days later, Jed arrived at a coffee shop that he used to go to with his friends after school sometimes. It was small, filled with small nooks with comfortable looking armchairs that had colorful blankets thrown over them. Taking in the romance that this place clearly emitted, he sighed to himself. <em>Oh God, this is a</em> proper <em>date, isn’t it?</em></p>
|
||||
<p id = "para-21">He waited in the entryway of the café until Davy arrived. And <em>boy</em>, did he arrive. He walked into the room wearing a jean jacket over a black logo tee and jeans. His hair was blowing in the wind let in by the open door, and it reminded Jed of their first encounter at the train station. The whole outfit made Davy seem strong. For a second, Jed imagined what it would be like to be scooped up by his strong, muscular arms like a princess. Like a <em>prince</em>.</p>
|
||||
<p id = "para-22"><em>Get a grip</em>, he thought to himself.</p>
|
||||
<p id = "para-23">“Hey man,” Davy said with a smile as he saw Jed. <em>Hey, ‘man’?</em>, he repeated in his head.</p>
|
||||
<p id = "para-24">“Hey Davy,” said Jed with an awkward half-smile. He tried to wipe it off. “You look,” he started, but he didn’t know how to finish.</p>
|
||||
<p id = "para-25">“Gay?” Davy suggested. “I know. I just love this jacket so much.”</p>
|
||||
<p id = "para-26">“That’s not-”, Jed stuttered. “I didn’t ... you look <em>good</em>." He hesitated. Why did he <em>say</em> that?</p>
|
||||
<p id = "para-27">“Thanks. You don’t look too bad yourself,” Davy said and started making his way towards one of the seating nooks. He brushed Jed’s arm with his own while passing him, and it made that place tingle with... with something.</p>
|
||||
<p id = "para-28">Jed realized that he didn’t even know for sure if Davy was into guys. He wondered for a second if that comment about his jacket was confirmation that he was, in fact, gay. Was anything he’d done so far confirmation that he was?</p>
|
||||
<p id = "para-29">A weird feeling of unease creeped up in Jed’s chest, and it immediately entered his heart. <em>What if he’s not even into guys?</em>, he thought to himself. He didn’t do relationships anyway, though, so why would it matter -- right? They were too complicated, too time-consuming, and too draining of the small amount of emotions that Jed had. So it was of no value to know whether Davy was into him or not.</p>
|
||||
<p id = "para-30">He really enjoyed the idea though. As he watched Davy sit down on a sofa in one of the nooks, he imagined what it’d be like to be on that sofa with him. Sitting next to him. Close. Kissing him. Davy’s hand moving closer to Jed’s--</p>
|
||||
<p id = "para-31">“Are you coming?”, Davy called and waved. <em>Oh God</em>, Jed thought to himself. <em>Hopefully not.</em></p>
|
||||
<p id = "para-32">Jed started walking towards him, and Davy started patting the spot next to him on the sofa. He wanted Jed to sit next to him. <em>Great.</em></p>
|
||||
<p id = "para-33">Of course, being the gentleman he was, it was only right of Jed to actually go ahead and sit down next to Davy. That was the only reason, <em>of course</em>.</p>
|
||||
<p id = "para-34">They both ordered drinks (hot chocolate) and food (cheesecake and apple pie) and started chatting about how they’d been since school. Davy talked about his university courses and the bakery job and how he’d sometimes see his old friends at the train station, and Jed was <em>fascinated</em>. It wasn’t that Davy’s stories were actually <em>fascinating</em>, but somehow, because <em>he</em> was the one telling them, they seemed more alive than Jed ever thought a story could be.</p>
|
||||
<p id = "para-35">When Jed started talking about his job, about the long work hours and about his family, Davy turned a bit to face him. Now they were sitting closer, almost opposite one another, and Davy’s gaze seemed to be locked onto Jed’s eyes while he told his stories. He’d never met someone, Jed thought to himself, who seemed so genuinely interested in his life. Somehow, the two of them were just fascinated with each other, it seemed. But Jed’s rule was clear: <em>No relationships</em>. They were a waste of time, and that was a final, reasonable, and educated decision.</p>
|
||||
<p id = "para-36">That was, of course, until they started talking about Jed’s homophobic grandma. As soon as he mentioned that his grandma didn’t ‘approve’ of his sexuality, Davy’s smile faded, and he rolled his eyes. The sight made Jed chuckle.</p>
|
||||
<p id = "para-37">“Relatable?”, Jed asked with a tiny grin.</p>
|
||||
<p id = "para-38">Davy tutted. “Oh God, don’t get me <em>started</em>."</p>
|
||||
<p id = "para-39">He shifted a little on the sofa, and they were sitting even closer to each other now. Was he doing this on purpose?</p>
|
||||
<p id = "para-40">“My mom’s the same way.”</p>
|
||||
<p id = "para-41">“Your <em>mom</em>? That’s terrible!", Jed hissed.</p>
|
||||
<p id = "para-42">“Eh, I’ve been getting by alright. I don’t need her, you know? It’s her loss.” Davy began smiling again. “I’ve got enough people in my life who support me.”</p>
|
||||
<p id = "para-43">“That’s good,” Jed responded. Overwhelmed with the flood of endearing sentiments rushing through his chest -- the homophobic mom, the sweet sentiment about Davy’s chosen family, and just how close to each other they were sitting right now -- Jed couldn’t stop himself from saying more. “I’d support you too, you know.”</p>
|
||||
<p id = "para-44">“You know what,” Davy began. <em>Oh God</em>, Jed thought to himself. This was it. He’d ruined it. <em>You’re getting a bit creepy</em>, that’s what Davy was about to say. Right? He’d said too much. But Davy’s smile didn’t fade. Instead, he chuckled and put his hand on Jed’s shoulder.</p>
|
||||
<p id = "para-45">“You’re great to hang out with, Jed,” Davy continued. “But I really have to go now, sadly. I really want to see you again, though.”</p>
|
||||
<p id = "para-46">Jed’s cheeks warmed up, and he began to smile again. “Me, too,” he said shakily.</p>
|
||||
<p id = "para-47">Over the next few days, Jed kept daydreaming about Davy. His cute smile, his wavy hair and his muscular, strong arms. He kept picturing, over and over, how Davy grabbed his arm when they sat so close in the café. He should’ve kissed him then and there. No, it would’ve been too soon. Plus, they had another date lined up. Because he hadn’t seen town in a while, Davy came up with the idea of hiking to the top of the nearby mountain and looking down at the cityscape from there.</p>
|
||||
<p id = "para-48">But maybe he shouldn’t get closer to Davy, he thought. He didn’t want to give him the wrong idea. His list of rules was very strict, and Jed intended to continue following it. No relationships, because they are too complicated and time-consuming. But Davy could’ve happily consumed all of his time without Jed even remembering that his list of rules <em>exists</em>.</p>
|
||||
<p class = "rule">***</p>
|
||||
<p id = "para-49">There he was. Strong as always, wearing a t-shirt that made his muscular upper arms even more pronounced than usual. Today, his long, silky hair wasn’t flowing over his shoulders, though. He had tied it up into a ponytail, presumably so it wouldn’t bother him during their hike.</p>
|
||||
<p id = "para-50">Jed approached him on the parking lot close to the hike trail leading up the mountain, and Davy turned around slowly.</p>
|
||||
<p id = "para-51">“Hey,” he said in a rough voice. He cleared his throat, before saying “hey” again, less raspy this time.</p>
|
||||
<p id = "para-52">“Hi. I’m excited!” Jed blurted out with an unusual amount of confidence. <em>The rules, damn it</em>, he thought to himself. <em>Get a grip.</em></p>
|
||||
<p id = "para-53">“Me too. I packed some snacks for us, as well,” said Davy and pointed to his backpack. He shifted his upper body and laughed, causing what sounded to be loose food items to rustle in the bag.</p>
|
||||
<p id = "para-54">Halfway up the trail, Jed started getting exhausted. It wasn’t that he was out of shape (he’d been working out occasionally because of the part of his List of Things to Avoid in Life that read <em>getting out of shape</em>, of course), but something about this hike was different to him. Stopping on the trail, he grabbed a bottle of water out of his backpack and started gulping it down without hesitation. Davy stopped as well, and observed Jed as he almost finished the entire bottle.</p>
|
||||
<p id = "para-55">“Want to take a break?”, he asked slyly.</p>
|
||||
<p id = "para-56">“Shut up, I can do this!”, Jed blurted out without much thought. <em>Oops.</em> “I’m just-”</p>
|
||||
<p id = "para-57">Davy cut him off. “Well, I know you can, but you can also relax with me for a little while.”</p>
|
||||
<p id = "para-58">Relaxing sounded like a great idea to Jed. He wiped his mouth and chin with his forearm and looked over at Davy, who had already found a nice bit of grass to sit down on. <em>Laying down on the grass together</em>, he thought, remembering this very fantasy having been stuck in his head for the last few days. <em>Of course. Damn it.</em></p>
|
||||
<p id = "para-59">Jed walked up to Davy and looked down questioningly. Davy looked back up at him and smiled.</p>
|
||||
<p id = "para-60">“Come sit,” he said with a grin, pointing to the ground right next to him. Jed did as he was told.</p>
|
||||
<p id = "para-61">And now, there they were, just like in Jed’s <em>stupid</em> fantasies. Sitting next to each other, looking out over the forest and a small part of town, with Jed feeling the cool, green grass underneath him.</p>
|
||||
<p id = "para-62">“You know,” Davy began. “I used to think that you were kind of weird. In school, you know. I only realized afterwards that...” He hesitated. Jed turned his head to see the expression on Davy’s face, but there wasn’t much being expressed there at all. Eventually, Davy continued.</p>
|
||||
<p id = "para-63">“I think I realized that I had the tiniest bit of a crush on you.”</p>
|
||||
<p id = "para-64">On... <em>what</em>? Jed’s heart skipped a beat. What had Davy just said? Clearly, Davy was out of his mind. Or Jed was. Was he dreaming? Was he passed out from exhaustion somewhere, laying on the path, with Davy wondering what he’d gotten himself into? Jed shook his head. <em>No.</em> This seemed to real to be a dream.</p>
|
||||
<p id = "para-65">“You... you did?”, Jed stuttered. Davy chuckled.</p>
|
||||
<p id = "para-66">“I think so, yea. You were always kind of cute, and seeing you at the train station the other day... I don’t know, it felt like a sign.”</p>
|
||||
<p id = "para-67"><em>A sign</em>, Jed thought to himself. He could kind of see that. The hunky, adorable student who worked in a bakery, with his long hippy-like hair, believing in <em>signs</em> and probably <em>soulmates</em> and what have you. This made sense to Jed. But the fact that Davy was saying all of this to <em>him</em> made no sense at all.</p>
|
||||
<p id = "para-68">“Are you serious? I--”, Jed paused, trying to formulate a coherent sentence in his mind. Davy was looking at him with a sense of desperation in his eyes. <em>Tell me that you like me too</em>, they seemed to say.</p>
|
||||
<p id = "para-69">At this point, Jed went over the options in his mind. The rules, the meeting at the train station, the <em>coincidence</em> of it all. Maybe he believed in signs, too. Maybe he believed that, out of all the people he could’ve met that day, Davy was just the perfect one. Maybe, he thought to himself, his rules didn’t actually matter that much after all.</p>
|
||||
<p id = "para-70">“I actually really liked you too. In school. I always saw you with all of those girls and I thought, you know. I thought I’d never have a chance. Especially since you seemed so...” Davy cut him off.</p>
|
||||
<p id = "para-71">“So straight?”, he said and laughed.</p>
|
||||
<p id = "para-72">“I guess, yea.”</p>
|
||||
<p id = "para-73">“Well, I’m not. I mean, I am. I’m bi, actually,” he explained.</p>
|
||||
<p id = "para-74">“That makes sense,” Jed responded, not really sure what else to say. They were both silent for a moment, but their gazes were still interlocked. They were sitting close enough together now for Jed to feel both of their breathing warming up the air between them.</p>
|
||||
<p id = "para-75">“Do you want to...” Davy began, but he paused. Jed wanted a lot of things right now. He imagined moving closer to Davy, putting his hand on his thigh, maybe lower, deeper, and going through Davy’s hair with his hand. He didn’t, however, know what Davy wanted. So he didn’t do anything.</p>
|
||||
<p id = "para-76">“Can I kiss you?”, Davy asked after an uncomfortably long silence. Jed didn’t answer with words -- how could he possibly answer that question without melting into a puddle then and there -- but apparently, his wide smile was enough indication to Davy that Jed <em>did</em> want to kiss him.</p>
|
||||
<p id = "para-77">Davy moved in closer, grasping Jed’s hip with one hand, and as Davy leaned in closer with his head, Jed could see the veins in his arm twitching as he moved.</p>
|
||||
<p id = "para-78">Jed closed his eyes, and he felt Davy’s lips touch his own. He felt him reaching around Jed’s body with his other hand, fully enclosing him in his strong embrace now. It felt good. Jed wanted to continue, forever, staying here and kissing Davy until the end of time.</p>
|
||||
<p id = "para-79">This was good. To Jed, it was the perfect place to be.</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,644 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="generator" content="crowbook">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<meta name="author" content="Ell Peck">
|
||||
|
||||
<title>Ketchup, Mayo and Barbecue Sauce</title>
|
||||
<style type = "text/css">
|
||||
body {
|
||||
font-family: "Linux Libertine", "Georgia", serif;
|
||||
text-align: justify;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
p {
|
||||
text-indent: 1.25em;
|
||||
margin:0;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 1em;
|
||||
font-style: italic;
|
||||
}
|
||||
code {
|
||||
font-size: 80%;
|
||||
font-family: "Linux Libertine Mono", monospace;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
pre {
|
||||
font-family: "Linux Libertine Mono", monospace;
|
||||
margin: 1em;
|
||||
padding-top: 0;
|
||||
background-color: #F0F0F0;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
/* Try to disable hyphenation in titles */
|
||||
h1, h2, h3, h4, h5, h5 {
|
||||
adobe-hyphenate: none;
|
||||
-ms-hyphens: none; /* Trident (Windows) */
|
||||
-moz-hyphens: none; /* Gecko (Firefox) */
|
||||
-webkit-hyphens: none; /* Webkit */
|
||||
-epub-hyphens: none; /* EPUB 3 */
|
||||
hyphens: none; /* Futur standard */
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-align: left;
|
||||
font-family: Linux Biolinum, sans-serif;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
/* Title of a part */
|
||||
h1.part {
|
||||
font-size: 250%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* The `Part X` section of a part */
|
||||
h2.part {
|
||||
font-size: 175%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* The "Chapter X" section of a chapter */
|
||||
span.chapter-header {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
/* Title of the book */
|
||||
h1.title {
|
||||
text-align: center;
|
||||
font-size: 300%;
|
||||
}
|
||||
/* Author */
|
||||
h2.author {
|
||||
text-align: right;
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
/* Subtitle */
|
||||
h2.subtitle {
|
||||
text-align: center;
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
/* When toc is displayed inlined */
|
||||
#toc ol, #toc ul {
|
||||
padding: 0;
|
||||
margin-left: 1em;
|
||||
}
|
||||
#toc li {
|
||||
list-style-type: none;
|
||||
margin: 0; padding: 0;
|
||||
}
|
||||
|
||||
#toc li:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
#cover img {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.image {
|
||||
margin: auto;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.image img {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.rule {
|
||||
text-align: center !important;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
font-weight: bold;
|
||||
page-break-inside: avoid;
|
||||
break-inside: avoid;
|
||||
page-break-after: avoid;
|
||||
break-after: avoid;
|
||||
}
|
||||
|
||||
/* The number of the note in an expanded footnote (e.g. [3]) */
|
||||
.note-number {
|
||||
font-weight: bold;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
td.note-number {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* When footnotes (try to) be diplayed as margin notes */
|
||||
.sidenote {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 30%;
|
||||
border: 1px solid black;
|
||||
margin: 1em;
|
||||
padding: .5em;
|
||||
margin-right: -1.5em;
|
||||
}
|
||||
|
||||
.sidenote .note-number {
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* The div class displaying notes at the end of a chapter */
|
||||
div.notes {
|
||||
text-align: justify;
|
||||
border-top: thin dashed black;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
table.notes {
|
||||
border-collapse: collapse;
|
||||
border-style: hidden;
|
||||
}
|
||||
|
||||
table.notes tr td {
|
||||
margin-left: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
table.notes tr td p {
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
/* Every markdown table is included in a <div class = "table"> */
|
||||
.table {
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.table table {
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
border-style: solid;
|
||||
border-width: thin;
|
||||
border-color: black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.table table th, .table table td {
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.table table th {
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
|
||||
span.initial {
|
||||
float: left;
|
||||
font-size: 285%;
|
||||
font-weight: bold;
|
||||
margin-right: 0.05em;
|
||||
line-height: 0.8em;
|
||||
}
|
||||
|
||||
p.first-para {
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
/* Use this for escape narrow space so it is non-breaking */
|
||||
.nnbsp {
|
||||
/* white-space: nowrap;*/
|
||||
word-spacing: -0.13em;
|
||||
/* Following necessary for Kobo EPUB3 reader??? */
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Default HTML CSS file includes default EPUB CSS file */
|
||||
|
||||
/* Colors for the navigation menu (toc) */
|
||||
nav {
|
||||
background: #CBBFCC;
|
||||
color: black;
|
||||
border-right-color: black;
|
||||
}
|
||||
|
||||
#nav a:link {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#nav a:visited {
|
||||
color: black;
|
||||
}
|
||||
|
||||
/* Colors for top and footer */
|
||||
#top {
|
||||
background-color: #444343;
|
||||
color: white;
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color: #444343;
|
||||
color: white;
|
||||
}
|
||||
|
||||
footer a, #top a {
|
||||
color: #fc71ff;
|
||||
}
|
||||
|
||||
footer a:hover, #top a:hover {
|
||||
color: #b743fe;
|
||||
}
|
||||
|
||||
/* Additional elements, only use for proofreading */
|
||||
/* Grammar error */
|
||||
.grammar-error {
|
||||
color: red;
|
||||
text-decoration-line: underline;
|
||||
text-decoration-style: double;
|
||||
/* background: #d966ff;*/
|
||||
}
|
||||
|
||||
|
||||
p.first-para:first-letter {
|
||||
font-size: 300%;
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
margin-right: 0.05em;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
/* The nav element corresponding to the navigation menu */
|
||||
nav {
|
||||
z-index: 2;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 20%;
|
||||
overflow-y: auto;
|
||||
font-size: 80%;
|
||||
margin-left: 0;
|
||||
border-right-width: 2px;
|
||||
border-right-style: dashed;
|
||||
}
|
||||
|
||||
#nav code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#nav a:link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav a:visited {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#nav h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#nav li {
|
||||
list-style-type: none;
|
||||
text-indent: -1em;
|
||||
}
|
||||
|
||||
#nav li:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
#nav ul {
|
||||
padding-right: 1em;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
|
||||
/* The menu containing the button to display the navigation bar */
|
||||
#menu {
|
||||
position: fixed;
|
||||
z-index: 2;
|
||||
top: 0em;
|
||||
left: 1em;
|
||||
transition: left 1s;
|
||||
}
|
||||
|
||||
#menu img {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#menu img:hover {
|
||||
opacity: 1.0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#menu-button {
|
||||
height: 1.5em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
#book-button {
|
||||
height: 1.5em;
|
||||
padding: 0.5em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* Hide navigation bar */
|
||||
#nav {
|
||||
left: -21%;
|
||||
transition: left 1s;
|
||||
}
|
||||
|
||||
/* The main content of the book */
|
||||
#content {
|
||||
overflow-y: auto;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
transition: margin-left 1s;
|
||||
}
|
||||
|
||||
/* Used for multifiles HTML */
|
||||
.prev_chapter {
|
||||
text-align: left;
|
||||
text-indent: 0;
|
||||
margin-bottom: 1em;
|
||||
font-size: 120%;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.next_chapter {
|
||||
text-align: right;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
font-size: 120%;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Improving readability for the HTML format only */
|
||||
p, blockquote, li, .image {
|
||||
margin-right: auto;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
#content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#page {
|
||||
display: inline-block;
|
||||
text-align: justify;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
#nav-container {
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#nav-title {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#toolbar {
|
||||
top: 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#toolbar img {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#top {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
#top p {
|
||||
font-family: "Linux Biolinum";
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
footer, #top {
|
||||
padding-top: .25em;
|
||||
padding-bottom: .25em;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
text-align: center;
|
||||
transition: margin-left 1s;
|
||||
}
|
||||
|
||||
footer a, #top a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
footer p, #top p {
|
||||
text-indent: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 0.5em;
|
||||
margin-top: 0.5em;
|
||||
max-width: 33em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<style type = "text/css" media = "print">
|
||||
#page {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.chapter {
|
||||
page-break-before: always;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#nav {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function on(name) {
|
||||
var elements = document.getElementsByClassName(name);
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var elem = elements[i];
|
||||
elem.style.backgroundColor = "pink";
|
||||
}
|
||||
}
|
||||
function off(name) {
|
||||
var elements = document.getElementsByClassName(name);
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var elem = elements[i];
|
||||
elem.style.backgroundColor = "white";
|
||||
}
|
||||
}
|
||||
|
||||
var display_menu = false;
|
||||
function toggle() {
|
||||
if (display_menu == true) {
|
||||
display_menu = false;
|
||||
document.getElementById("nav").style.left = "-21%";
|
||||
document.getElementById("content").style.marginLeft = "0%";
|
||||
document.getElementById("menu").style.left = "1em";
|
||||
/* if(document.getElementById("top")) {
|
||||
document.getElementById("top").style.left = "0";
|
||||
}
|
||||
if(document.getElementById("footer")) {
|
||||
document.getElementById("footer").style.marginLeft = "0%";
|
||||
}*/
|
||||
} else {
|
||||
display_menu = true;
|
||||
document.getElementById("nav").style.left = "0";
|
||||
document.getElementById("content").style.marginLeft = "20%";
|
||||
document.getElementById("menu").style.left = "20%";
|
||||
/* if(document.getElementById("top")) {
|
||||
document.getElementById("top").style.left = "20%";
|
||||
}
|
||||
if(document.getElementById("footer")) {
|
||||
document.getElementById("footer").style.marginLeft = "20%";
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type = 'application/ld+json'>
|
||||
{
|
||||
"@context": "http://schema.org/",
|
||||
"@type": "Book",
|
||||
"author": "Ell Peck",
|
||||
"name": "Ketchup, Mayo and Barbecue Sauce",
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"inLanguage": "en"
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<div id = "content">
|
||||
|
||||
<div id = "page">
|
||||
<header>
|
||||
|
||||
<div id = "menu">
|
||||
</div>
|
||||
<h2 class="author">Ell Peck</h2>
|
||||
<h1 id = "link-0" class="title" >Ketchup, Mayo and Barbecue Sauce</h1>
|
||||
|
||||
</header>
|
||||
|
||||
<div id = "chapter-0" class = "chapter">
|
||||
<p id = "para-1">Sally strolled along the shopping street with her favorite, rainbow-colored bag swung over her left shoulder. Looking around the shops, she wondered if she’d gotten everything from her list. Unsure, but willing to be <em>absolutely certain</em>, she pulled her phone out of her shiny bag and opened her notes. There was one item left on it, unticked: <em>short skirt, blue, summer</em>. She held the bag open with one hand and started rummaging through it with the other. Sally had already bought a skirt, but it wasn’t blue, and it wasn’t fit for summer either. It was longer, and the colors made her think of the fall. Of dancing around in the rain, of jumping straight into a pile of leaves. Of <em>Joey</em>.</p>
|
||||
<p id = "para-2">Oh, God.</p>
|
||||
<p id = "para-3">She took the skirt out of its protective casing and checked the price tag, which was still firmly attached to the waistband. Forty-seven dollars, it said. That was a lot of money to pay for a skirt, wasn’t it? She jerked around on the busy street in an instant, almost bumping into a stranger, while trying to locate the store where she’d gotten this stupid thing.</p>
|
||||
<p id = "para-4">Ah, there it was. Without thinking much, she stuffed the skirt back into her bag and headed straight for the entrance of the small boutique.</p>
|
||||
<p id = "para-5">As she started scanning the other skirts on the racks close to the entrance, she concluded that this store was clearly ill-fitting for her goal of completing the last item on her to-do list. There were no skirts in fun, summery colors. Slightly outraged, and about ready to head to the counter to return the expensive fall skirt, she noticed a familiar face in line for the register.</p>
|
||||
<p id = "para-6">Was it really–? No, it couldn’t have been. As the long-haired guy turned around, she quickly ducked behind one of the racks as to not make it seem like she’d just been staring at him. Naturally. What could be a better way to make it seem like you’re <em>totally</em> minding your own business than hiding under some random clothes rack like a nine-year-old?</p>
|
||||
<p id = "para-7">Oh, well. It was too late now to seem normal.</p>
|
||||
<p id = "para-8">As she raised her head carefully above the rack, just enough to be able to spy– look at David, she realized how much he’d changed since the last time she saw him. He was wearing a flashy jacket, not the weird high school varsity kind, but a punky sort of dark, possibly faux-leather looking thing. His shoulders were–wow, his shoulders were broad, and they looked strong as hell. How much had he been lifting? Did he carry boulders for fun? For only a quick second, definitely absolutely not for longer, she imagined him scooping her up and carrying her like a princess. She imagined herself, staring up into his dark brown eyes, wondering what it would be like to look into them before she fell asleep.</p>
|
||||
<p id = "para-9">Joey would’ve never done anything like that with her. It wasn’t that he hadn’t been strong enough to carry her or anything, it’s that he just wasn’t the <em>romantic</em> type. The type of person to kiss her out of nowhere, the type to turn around while walking next to her and pull her into a tight, warm embrace. But David, <em>oh, David</em>, maybe he could be that, for her.</p>
|
||||
<p id = "para-10">After a few more minutes of dreaming, and possibly a tiny bit of <em>drooling</em>, she caught herself doing exactly the thing that she promised herself she’d never do again: <em>Pining</em> for someone, someone who probably didn’t even remember she existed. Someone she hadn’t even <em>talked to</em> yet. Jesus Christ.</p>
|
||||
<p id = "para-11">She needed to get her act together, she thought to herself. And what better way to do that than to return that ugly fall skirt she’d bought and get a perfect, blue summer one just like her to-do list demanded of her. She sat up, turned away from David, who looked like he was almost finished checking out by now, and pulled the stupid skirt back out of her bag. But looking at it, she realized again how beautiful the pattern on it was. How the thin lines connected to form what looked like a network of pathways, or maybe a tree with thousands of small branches.</p>
|
||||
<p id = "para-12">She stuffed the skirt right back into her bag and deliberated. She could always just get the blue summer skirt <em>on top</em> of the fall one, and keep both. But surely, she’d never <em>wear</em> both of them, because she already had so many other skirts, and dresses, and jeans. Why did she have <em>so many clothes</em>? She didn’t even need to buy any more today. This whole thing was so unnecessary, she realized.</p>
|
||||
<p id = "para-13">Determined to keep the skirt (because of the beautiful lines, et cetera), but not buy another skirt (because of the full closet), she headed straight for the exit with big, confident strides. So confident, in fact, that she ran right into the backside of none other than David, who had stopped in the doorway of the store, probably to check his phone or something.</p>
|
||||
<p id = "para-14">Oh, fucking hell.</p>
|
||||
<p id = "para-15">David leapt forward immediately and scrambled to keep his phone in his hand. He turned around and shot Sally a weird look.</p>
|
||||
<p id = "para-16">“I’m so sorry,” she mumbled, sounding overly apologetic. “I didn’t look where I was going.”</p>
|
||||
<p id = "para-17">“It’s no problem,” he said and the corner of his mouth tilted upwards a little. “Wait, don’t I know you from somewhere?”</p>
|
||||
<p id = "para-18">Sally paused. A person who <em>hadn’t</em> just stalked her old high school classmate from behind a fucking skirt rack would probably be confused for a second before, like her, immediately saying “Yea, hi, I’m Sally, back from school.”</p>
|
||||
<p id = "para-19">He arched an eyebrow. “Sally...,” he began. “Sally, like, debate team Sally?”</p>
|
||||
<p id = "para-20">“Is that what you thought of me as?”, she said almost instinctively. “I didn’t even do it for that long.”</p>
|
||||
<p id = "para-21">“Well,” David began awkwardly and stuffed his phone into his pocket. “The other Sally made it hard to think of you as just ‘Sally’”, he explained.</p>
|
||||
<p id = "para-22">Ah, that made a lot of sense, actually. Sally (the other one) was one of the popular girls, and <em>this</em> Sally was never that popular at school, or anywhere, really. She hung around the debate team for a while, but quit fairly quickly and moved on to a different club. And right now, still standing in the doorway of the store, awkwardly looking at David, she pulled a face and tried to remember what she <em>did</em> after she quit the debate team.</p>
|
||||
<p id = "para-23">“Anyway,” David said with a blank expression. “I was about to grab lunch...”</p>
|
||||
<p id = "para-24">He paused, and Sally just kind of stared. She was still thinking about that damn club.</p>
|
||||
<p id = "para-25">“You want to come?” David finally said.</p>
|
||||
<p id = "para-26">“Uh, what?” Sally began awkwardly. It took a second for her brain to process what David had just said. “Oh, yea, sure, that sounds great!”, and it really <em>did</em> sound great to her, too.</p>
|
||||
<p class = "rule">***</p>
|
||||
<p id = "para-27">Sally couldn’t quite believe it, but David had actually given her his <em>phone number</em> after their lunch date thing. They’d walked to a nearby fast food place and both ordered a burger and fries, and, while waiting for the food to arrive, they’d talked about what both of them had started doing after finishing school.</p>
|
||||
<p id = "para-28">Sally was sitting in her bed now and looking down at her phone, the bright screen displaying David’s contact information. He’d entered his first name only, along with his phone number. For a moment, Sally wondered if he might have given her some sort of fake number, but that wouldn’t make much sense, because <em>he</em> was the one who’d invited her to lunch, after all.</p>
|
||||
<p id = "para-29">She hovered over the green call button with her thumb, considering her options. Maybe she should just text him? What would she say, though? A call just seemed easier. Plus, it was cheaper, right? With her contract and all. Finally, she tapped the button with a shaky finger.</p>
|
||||
<p id = "para-30">“Hello?” a familiar voice said on the other end of the line.</p>
|
||||
<p id = "para-31">“Hey, it’s me, Sally, from lunch,” she said awkwardly. “Do you want to go out again, maybe?”</p>
|
||||
<p id = "para-32">Wow, that was <em>bold</em> of her, wasn’t it? What had gotten into her all of a sudden? She never used to be like this with Joey, or anyone else, for that matter. She shook her head and followed up with a <em>super</em> smooth “Only if you want, though. Of course.” Fucking hell.</p>
|
||||
<p id = "para-33">“I’d love to! I’m so glad you asked,” he said. “I was worried you weren’t going to call.”</p>
|
||||
<p id = "para-34">He was... <em>worried</em>? That was a surprise to Sally. And a nice thing to say, too, in a weird sort of way.</p>
|
||||
<p id = "para-35">They decided to meet up for lunch again the next day, and David picked out another fast food place in town that sold Asian takeout. Sally wasn’t sure if she was going to like it, but she knew she liked <em>David</em>, and that was the main thing that mattered to her.</p>
|
||||
<p id = "para-36">Later that night, she lay awake, staring at the ceiling, thinking about David. About how nice he’d been on the phone. About lunch. <em>Had</em> he been really nice, or had she just forgotten what talking to a nice person was like? The thought was a little depressing to her, so she dismissed it as quickly as it came. No, he <em>had</em> been very nice to her, she concluded. He was a great lunch buddy.</p>
|
||||
<p class = "rule">***</p>
|
||||
<p id = "para-37">David checked himself in the mirror and pulled a face. He wet his hand in the sink and tried to smooth over a rogue curl in his otherwise silky smooth, brown hair. As he let go, the stupid thing bounced back up, and he quickly admitted defeat. <em>Fine</em>, he thought to himself with a kind of confidence that he didn’t normally seem to possess. <em>This day will go great either way.</em></p>
|
||||
<p id = "para-38">Sally had suggested a place that he’d never been to this time around, a place that–from the images online–looked to be a small restaurant with a large outdoor seating area. For a moment, he thought to himself if maybe she picked this place because it looked romantic.</p>
|
||||
<p id = "para-39">He shrugged off the thought as a notification made his phone vibrate in his pocket. For a second, he wondered if this was Sally canceling their date– lunch meeting– <em>friendly hangout session</em>.</p>
|
||||
<p id = "para-40">It was, indeed, Sally. Evidently, she hadn’t messaged him to cancel, though.</p>
|
||||
<p id = "para-41">The little banner notification at the top of his screen captured the start of her message: <em>been deliberating. do you mind if we go to the thai place i talked abo...</em> David chuckled to himself as he tapped the notification. She’d already presented him with about seventeen choices last night, asking him which one <em>he</em> would choose. What was up with that girl?</p>
|
||||
<p id = "para-42"><em>Whatever you want</em>, he texted back. Damn it, did that sound too disinterested? <em>You’re choosing today</em>, he added. He liked the idea of doing what Sally wanted. Of seeing her happy. Of <em>making</em> her happy. Why was he so into her all of a sudden?</p>
|
||||
<p id = "para-43"><em>damn it</em>, she texted back. <em>reading online now that the thai place is closed, nvm</em>.</p>
|
||||
<p id = "para-44">Fair enough.</p>
|
||||
<p class = "rule">***</p>
|
||||
<p id = "para-45">David looked around the big seating area to spot Sally, sitting at a far table for two, awkwardly waving at him. He waved back briefly and made his way over to her. Sitting down at the table, he asked sarcastically, “Is this the place you want to eat, or should we check out some others instead?”</p>
|
||||
<p id = "para-46">She pulled a tiny frown and rolled her eyes. “Shut up.”</p>
|
||||
<p id = "para-47">They continued bantering as they ordered food and until after their drinks arrived. This seemed to be their rapport now: Making fun of each other over drinks and varying cuisine. It was good. No, actually. It was <em>great</em>.</p>
|
||||
<p id = "para-48">While eating his burger (and fries with mayonnaise, of course), he looked up to meet Sally’s eyes for a quick moment, who smiled back before returning her focus to her own burger, also with fries and mayo. And ketchup. <em>And</em> barbecue sauce. Jesus Christ.</p>
|
||||
<p id = "para-49">He continued looking at Sally for another few seconds, studying her features, taking in her eyes, which were nestled neatly between the rims of her glasses and below her long, blonde bangs. It was warm today, and Sally was wearing a flowy, bright top and a short, blue skirt that looked like she’d just bought it the same day.</p>
|
||||
<p id = "para-50">Sally looked back up at him. “You know,” she began. “I’ve really been enjoying our dates.”</p>
|
||||
<p id = "para-51"><em>Our dates</em>. Did she mean their lunch meetups? Or did she really mean <em>dates</em>? He gave her the benefit of the doubt, because for him, too, it was difficult to come up with names for this... arrangement.</p>
|
||||
<p id = "para-52">“Me too,” he shot back before stuffing a couple of fries into his mouth. After he swallowed, he raised an eyebrow and asked: “Dates?”</p>
|
||||
<p id = "para-53">She looked back up at him and smiled. “I mean, if you like. We’re eating, we’re talking, we’re... having fun.” She paused. “Isn’t that what a date is?”</p>
|
||||
<p id = "para-54">David let what that sink in for a moment. He looked at her and smiled. Of course, he admitted to himself, he’d been <em>hoping</em> that these were proper dates. And sitting across from Sally, right here, right now, <em>knowing</em> that she also thought of them as <em>dates</em>... it made him feel a sort of happiness that he hadn’t felt in a long time. He quietly smiled to himself and looked down at his plate again, stuffing another handful of fries into his mouth.</p>
|
||||
<p class = "rule">***</p>
|
||||
<p id = "para-55">As she arrived home and unlocked the front door, Sally realized that she’d been thinking about David, and David alone, for the last few days. Whenever she watched TV and saw a cute scene, she thought of David. When chatting with her friends about their relationships, she thought of David. And, yes, she admitted to herself, she’d also thought of David while touching herself. Once or twice.</p>
|
||||
<p id = "para-56">But that wasn’t bad, she concluded. In fact, she accepted all of it as what it was: A sign that she really liked David. She smiled to herself as she went up to her room, throwing her jacket onto a chair in the corner.</p>
|
||||
<p id = "para-57">She let herself drop backwards onto the bed like a brick and pulled out her phone, holding it over her head. She opened her message thread with David and typed the words <em>Today was fun.</em> Then, she followed up with another message: <em>I really like you, David.</em></p>
|
||||
<p id = "para-58">This was, for the first time since Sally could remember, something she was absolutely certain about. She didn’t have to think twice before sending those messages. She didn’t even <em>want</em> to think twice about them, because it was so unusually clear to her. She liked David, and there would be nothing she could tell herself, no question she could ask herself, to change that.</p>
|
||||
<p id = "para-59">Before he even read the message, Sally moved into her contact list with a few quick swipes, scrolling down to the entries that started with the letter J. <em>J</em>, as in <em>Joey</em>, of course. She tapped his name and immediately felt a weird sense of unease, a dread that she’d always felt when she had to think about him. She scrolled down past the phone numbers and his address until, right there, in the center of her screen, was a big red button with a trash can icon and the word <em>Delete</em> next to it.</p>
|
||||
<p id = "para-60">She thought of the lunches with David again, the way he stuffed fries into his mouth. The way he snickered when she asked the waiter for three different condiments. The way his smooth hair dissolved into more and more curls the longer he was outside in the dry summer heat. The way things seemed so <em>easy</em> with him. All of a sudden, the dread that Joey’s name brought up in her vanished, just like that.</p>
|
||||
<p id = "para-61">And then she pressed the button.</p>
|
||||
<p id = "para-62">As she watched Joey’s name slide off-screen in the contact list, all the other J names shuffling up and down neatly to fill the gap, a banner notification came down from the top of her screen. It was David.</p>
|
||||
<p id = "para-63"><em>I like you too, Sally. Really like you.</em></p>
|
||||
<p id = "para-64">Another notification came down. <em>Lunch again tomorrow?</em></p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,210 +0,0 @@
|
|||
[{
|
||||
"name": "Blogs are Cool, I Think",
|
||||
"summary": "The first post and how I created it",
|
||||
"id": "blogs_are_cool",
|
||||
"cat": ["Miscellaneous"],
|
||||
"date": "2/17/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1096937184601538566",
|
||||
"archived": true
|
||||
},
|
||||
{
|
||||
"name": "Why You Should Mod Minecraft",
|
||||
"summary": "About what makes Minecraft modding great and why you should probably try it if you enjoy programming",
|
||||
"id": "why_you_should_mod_minecraft",
|
||||
"cat": ["Minecraft", "Programming"],
|
||||
"date": "2/17/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1097177774337462272"
|
||||
},
|
||||
{
|
||||
"name": "Kindling the Reading Flame",
|
||||
"summary": "About the Kindle, Harry Potter and what I like and dislike about them",
|
||||
"id": "reading",
|
||||
"cat": ["Reading"],
|
||||
"date": "3/22/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1109102077911973888"
|
||||
},
|
||||
{
|
||||
"name": "Small Projects",
|
||||
"summary": "Why creating a small, unplanned project is sometimes good for you",
|
||||
"id": "small_projects",
|
||||
"cat": ["Programming"],
|
||||
"date": "5/1/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1123651624201871360"
|
||||
},
|
||||
{
|
||||
"name": "About Cross-Platform and Motivation",
|
||||
"summary": "How moving from Java to C# taught me how horrible it is to create a cross-platform application with little to no knowledge or documentation",
|
||||
"id": "cross_platform_trainwreck",
|
||||
"cat": ["Programming"],
|
||||
"date": "7/6/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1147502654236573697",
|
||||
"archived": true
|
||||
},
|
||||
{
|
||||
"name": "Big Projects",
|
||||
"summary": "How a once small project I even created a post about turned into the first game I'm selling: Foe Frenzy",
|
||||
"id": "big_projects",
|
||||
"cat": ["Programming"],
|
||||
"date": "9/15/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1173247686654517249"
|
||||
},
|
||||
{
|
||||
"name": "How to make a Rock Bottom mod",
|
||||
"summary": "My adventures back into a game I stopped working on about two years ago and how I start on a mod for it",
|
||||
"id": "rock_bottom_mod",
|
||||
"cat": ["Programming"],
|
||||
"date": "10/3/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1180092634410487808"
|
||||
},
|
||||
{
|
||||
"name": "Java Tutorial, Part 1: Hello World",
|
||||
"summary": "The first part of my post series for programming beginners where I explain how to write code in Java.",
|
||||
"id": "java_1",
|
||||
"cat": ["Java Tutorials", "Featured"],
|
||||
"date": "10/10/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1182080078827737088"
|
||||
},
|
||||
{
|
||||
"name": "Java Tutorial, Part 2: Intro to Conditions and Loops",
|
||||
"summary": "The second part of my post series for programming beginners. This one is all about conditions and loops.",
|
||||
"id": "java_2",
|
||||
"cat": ["Java Tutorials"],
|
||||
"date": "10/10/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1182354544707198976"
|
||||
},
|
||||
{
|
||||
"name": "Java Tutorial, Part 3: (Static) Methods",
|
||||
"summary": "In this Java tutorial for beginners, we cover what (static) methods, parameters and return types are.",
|
||||
"id": "java_3",
|
||||
"cat": ["Java Tutorials"],
|
||||
"date": "10/11/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1182775985885847558"
|
||||
},
|
||||
{
|
||||
"name": "Java Tutorial, Part 4: Classes and Objects",
|
||||
"summary": "In this Java tutorial for beginners, we cover the basics of creating classes with a constructor, some fields and some methods and creating objects of them.",
|
||||
"id": "java_4",
|
||||
"cat": ["Java Tutorials"],
|
||||
"date": "10/14/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1183857460660101133"
|
||||
},
|
||||
{
|
||||
"name": "Java Tutorial, Part 5: Things I Left Out So Far",
|
||||
"summary": "In this Java tutorial for beginners, we cover some shorthands, some more data types, the difference between pass-by-reference and pass-by-value, null, as well as arrays and lists.",
|
||||
"id": "java_5",
|
||||
"cat": ["Java Tutorials"],
|
||||
"date": "10/17/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1184894859133509632"
|
||||
},
|
||||
{
|
||||
"name": "Lows",
|
||||
"summary": "About depression and what it feels like when I don't know what to do with myself",
|
||||
"id": "lows",
|
||||
"cat": ["Miscellaneous"],
|
||||
"date": "10/20/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1186028260838334471",
|
||||
"archived": true
|
||||
},
|
||||
{
|
||||
"name": "Java Tutorial, Part 6: Inheritance",
|
||||
"summary": "In this Java tutorial for beginners, we cover classes extending other classes and the instanceof keyword.",
|
||||
"id": "java_6",
|
||||
"cat": ["Java Tutorials"],
|
||||
"date": "10/31/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1189904487722487809"
|
||||
},
|
||||
{
|
||||
"name": "Java Tutorial, Part 7: Overriding Methods",
|
||||
"summary": "In this Java tutorial for beginners, we cover overriding methods, calling superclass methods and toString().",
|
||||
"id": "java_7",
|
||||
"cat": ["Java Tutorials"],
|
||||
"date": "11/26/2019",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1199339701640945664"
|
||||
},
|
||||
{
|
||||
"name": "But Do You Really Care?",
|
||||
"summary": "On taking a break from social media",
|
||||
"id": "but_do_you_really_care",
|
||||
"cat": ["Miscellaneous"],
|
||||
"date": "5/6/2020"
|
||||
},
|
||||
{
|
||||
"name": "Oh God, Please Don't Port Actually Additions",
|
||||
"summary": "As Actually Additions celebrates its fifth birthday, I break down what I like and dislike about it.",
|
||||
"id": "actually_additions",
|
||||
"cat": ["Minecraft"],
|
||||
"date": "5/10/2020",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1259600490377216002"
|
||||
},
|
||||
{
|
||||
"name": "The Future of Actually Additions",
|
||||
"summary": "Not wanting to accept the fate of Actually Additions, someone has come to its rescue. 1.16, here we come?",
|
||||
"id": "future_actually_additions",
|
||||
"cat": ["Minecraft"],
|
||||
"date": "11/23/2020",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1330938597785169925"
|
||||
},
|
||||
{
|
||||
"name": "Your Minecraft Modding Questions, Answered",
|
||||
"summary": "I asked yall to send me your modding and programming questions on Twitter and Discord, and in this post, I try to answer all of those.",
|
||||
"id": "modding_ama",
|
||||
"cat": ["Minecraft", "Featured"],
|
||||
"date": "3/21/2021",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1373660751060160512"
|
||||
},
|
||||
{
|
||||
"name": "Em & Ben",
|
||||
"summary": "Ben hates public gatherings because he suffers from anxiety. He's also in love with his best friend Emily, who frequently tries to drag him out of his shell. At the spring festival, he has a panic attack. Will Emily manage to support him?",
|
||||
"id": "em_and_ben",
|
||||
"cat": ["Short Stories"],
|
||||
"date": "3/24/2021",
|
||||
"book": true,
|
||||
"prompt": "https://blog.reedsy.com/creative-writing-prompts/contests/86/submissions/59997/",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1374770369169653767"
|
||||
},
|
||||
{
|
||||
"name": "Emily's Fake Boyfriend",
|
||||
"summary": "Emily's aunt keeps going on about her love life. To solve this problem, she pretends to be in a relationship with her best friend, Ben, who'd much rather have a real relationship with her. How will an evening with the three of them at the same table play out?",
|
||||
"id": "emilys_fake_boyfriend",
|
||||
"cat": ["Short Stories"],
|
||||
"date": "4/2/2021",
|
||||
"book": true,
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1378014977999659016"
|
||||
},
|
||||
{
|
||||
"name": "Jed's Things to Avoid in Life",
|
||||
"summary": "Jed's rules are clear: No relationships. They interfere too much with his life, and he's not made for them anyway. But then, he sees his old crush from school in his hometown. Will he break his own rules for Davy?",
|
||||
"id": "jed_things_to_avoid_in_life",
|
||||
"cat": ["Short Stories"],
|
||||
"date": "4/23/2021",
|
||||
"book": true,
|
||||
"prompt": "https://blog.reedsy.com/creative-writing-prompts/contests/90/submissions/63882/",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1385686796911185920"
|
||||
},
|
||||
{
|
||||
"name": "One Year of Tiny Life, and Cursed Comment Time",
|
||||
"summary": "It's been exactly one year since I started working on my isometric Sims-style life simulation game Tiny Life, and since then, a lot has happened, especially in the realm of weird, funny and cursed comments in the code.",
|
||||
"id": "tiny_life_one_year",
|
||||
"cat": ["Programming", "Featured"],
|
||||
"date": "5/24/2021",
|
||||
"discuss": "https://ellpeck.itch.io/tiny-life/devlog/256839/one-year-of-tiny-life-and-cursed-comment-time"
|
||||
},
|
||||
{
|
||||
"name": "Ketchup, Mayo and Barbecue Sauce",
|
||||
"summary": "Sally can't quite decide what skirt to buy. When she starts going out for lunch with David, an old crush from high school, she can't quite decide what to order. But she's sure about one thing: She likes David. A lot.",
|
||||
"id": "ketchup_mayo_barbecue_sauce",
|
||||
"cat": ["Short Stories", "Featured"],
|
||||
"date": "5/28/2021",
|
||||
"book": true,
|
||||
"prompt": "https://blog.reedsy.com/creative-writing-prompts/contests/95/submissions/69321/",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1398049729582407686"
|
||||
},
|
||||
{
|
||||
"name": "Dog-Earing and Other Terrible Reading Habits",
|
||||
"summary": "Since I've been reading a lot more in recent history, I thought I'd start writing some blog posts about the reading. So first up, here are some of my terrible reading habits that would probably make a lot of book lovers angry. This isn't clickbait. I'm just terrible.",
|
||||
"id": "reading_habits",
|
||||
"cat": ["Reading", "Featured"],
|
||||
"date": "6/26/2021",
|
||||
"discuss": "https://twitter.com/Ellpeck/status/1408565191218978818"
|
||||
}
|
||||
]
|
254
index.html
|
@ -1,254 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Ellpeck.de</title>
|
||||
<meta name="author" content="Ellpeck">
|
||||
<meta name="description" content="Ellpeck's little internet place">
|
||||
<meta name="keywords" content="Ellpeck, Actually Additions, Rock Bottom, Programming, Minecraft, Game Development, Nature's Aura, C#, Java, Blog, Tutorial, Foe Frenzy">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto&display=swap">
|
||||
<link rel="stylesheet" href="./style/prettify.css">
|
||||
<link rel="stylesheet" href="./style/style.css">
|
||||
<link rel="icon" href="./favicon.ico">
|
||||
|
||||
<meta property="og:title" content="Ellpeck.de">
|
||||
<meta property="og:description" content="Ellpeck's little internet place">
|
||||
<meta property="og:image" content="https://ellpeck.de/res/logoSmall.png">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@Ellpeck">
|
||||
<meta name="twitter:creator" content="@Ellpeck">
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"></script>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/prettify.js"></script>
|
||||
<script src="./scripts/util.js"></script>
|
||||
<script src="./scripts/main.js"></script>
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XC0W9LJMCJ"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'G-XC0W9LJMCJ');
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body data-spy="scroll" data-target="#navbar">
|
||||
<!-- Navbar -->
|
||||
<nav class="navbar fixed-top navbar-expand-lg navbar-light bg-light rounded-bottom" id="navbar">
|
||||
<script src="./scripts/navbar.js"></script>
|
||||
|
||||
<!-- Navbar brand and logo -->
|
||||
<a class="navbar-brand mb-0 h1" href="#">
|
||||
<img src="./res/logo.png" width="40" height="40" alt="A pixelart version of Ellpeck"> Ellpeck.de
|
||||
</a>
|
||||
|
||||
<!-- Responsive navbar menu opener -->
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-content" aria-label="Navbar toggler">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<!-- Navbar content -->
|
||||
<div class="collapse navbar-collapse" id="navbar-content">
|
||||
<div class="navbar-nav mr-auto" id="nav-items">
|
||||
<a class="nav-item nav-link" href="#projects">Projects</a>
|
||||
<a class="nav-item nav-link" href="#social">Social</a>
|
||||
<a class="nav-item nav-link" href="#about">About</a>
|
||||
<a class="nav-item nav-link" href="#blog">Blog</a>
|
||||
</div>
|
||||
<span class="navbar-text">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="dark-mode">
|
||||
<label class="custom-control-label" for="dark-mode">Dark Mode</label>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="container main">
|
||||
<!-- Cookie notification -->
|
||||
<div id="cookieinfo"></div>
|
||||
<script src="./scripts/cookieinfo.js"></script>
|
||||
|
||||
<div id="main">
|
||||
<div class="no-blog">
|
||||
<!-- Home -->
|
||||
<div class="jumbotron">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-auto">
|
||||
<img src="./res/me.jpeg" class="rounded-circle" width="200" height="200" id="navbar-image" alt="A cover photo of Ellpeck">
|
||||
</div>
|
||||
<div class="col">
|
||||
<h1 class="display-4" id="intro-text"></h1>
|
||||
<script src="./scripts/greet.js"></script>
|
||||
<p class="lead">Welcome to my little website! I'm Ellpeck, a student and programmer from Germany. I do a lot of stuff, actually. My life is pretty busy.</p>
|
||||
|
||||
<!-- Sponsor buttons -->
|
||||
<div class="sellout">
|
||||
<iframe src="https://github.com/sponsors/Ellpeck/button" title="Sponsor Ellpeck" height="32" width="116" style="border: 0; margin-right: 10px;"></iframe>
|
||||
<a href="https://www.patreon.com/bePatron?u=2494595" class="patreon-button" style="padding: 5px;">
|
||||
<img src="./res/becomePatron.png" width="auto" height="34px" alt="Become a patron">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Projects -->
|
||||
<span class="anchor" id="projects"></span>
|
||||
<div class="list-display rounded">
|
||||
<h1>Projects</h1>
|
||||
<p>
|
||||
Here is a list of some of my bigger projects as well as some things you might know me from.<br>
|
||||
<span class="text-muted">For a more exhaustive list of my projects, you can also check out the <a href="#social">Social</a> section.</span>
|
||||
</p>
|
||||
<div id="project-list">
|
||||
<em>The content that should be here is dynamically generated. Please enable JavaScript if you see this.</em>
|
||||
</div>
|
||||
<script src="./scripts/projects.js"></script>
|
||||
</div>
|
||||
|
||||
<!-- Social -->
|
||||
<span class="anchor" id="social"></span>
|
||||
<div class="list-display rounded">
|
||||
<h1>Social</h1>
|
||||
<p>
|
||||
These are other websites where you can find me and the things I do, including the pages where I publish my code and games and where I sometimes stream and upload videos. This list also includes a lot of ways to reach me.
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div id="social-list">
|
||||
<em>The content that should be here is dynamically generated. Please enable JavaScript if you see this.</em>
|
||||
</div>
|
||||
|
||||
Additionally, here are some miscellaneous platforms:
|
||||
<ul>
|
||||
<li>My Nintendo Switch friend code is <strong>SW-5281-8834-6801</strong></li>
|
||||
<li>If you want to play my Mario Maker 2 levels, my ID is <strong>8BH-566-4WF</strong></li>
|
||||
<li>If you play The Sims 4, you can check out my builds on the gallery by searching for <strong>Ellpeck</strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-auto" id="discord-div">
|
||||
<em>The content that should be here is dynamically generated. Please enable JavaScript if you see this.</em>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="./scripts/social.js"></script>
|
||||
</div>
|
||||
|
||||
<!-- About -->
|
||||
<span class="anchor" id="about"></span>
|
||||
<div class="list-display rounded">
|
||||
<h1>About</h1>
|
||||
<p>
|
||||
Sometimes, some people ask me some questions about myself or my projects, so I decided to compile a list of some of the answers in a Q&A-like fashion so that I don't have to keep repeating them. If you're curious about me, this might be interesting to you!
|
||||
</p>
|
||||
<div id="about-list">
|
||||
<em>The content that should be here is dynamically generated. Please enable JavaScript if you see this.</em>
|
||||
</div>
|
||||
<script src="./scripts/about.js"></script>
|
||||
</div>
|
||||
|
||||
<!-- Blog -->
|
||||
<span class="anchor" id="blog"></span>
|
||||
<div class="list-display rounded">
|
||||
<h1>Blog</h1>
|
||||
<p>
|
||||
This is my blog, where I post about gaming, programming and life. The featured posts are the ones you'll probably be most interested in, but you can select a different category to see every post. Additionally, you can subscribe to this blog using <a href="/rss.xml">RSS</a>, <a href="/atom.xml">Atom</a> or <a href="/feed.json">JSON</a>.
|
||||
</p>
|
||||
|
||||
<div id="blog-cats"></div>
|
||||
<div id="blog-list">
|
||||
<em>The content that should be here is dynamically generated. Please enable JavaScript if you see this.</em>
|
||||
</div>
|
||||
<button type="button" class="btn btn-link" id="blog-archive-button">Show archived posts</button>
|
||||
<div id="blog-archive"></div>
|
||||
<script src="./scripts/blog.js"></script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Seasonal banner -->
|
||||
<a id="banner" class="rounded-top" hidden></a>
|
||||
<script src="./scripts/banner.js"></script>
|
||||
|
||||
<!-- Footer -->
|
||||
<div class="footer rounded-top">
|
||||
<span class="text-muted"><a href="https://git.ellpeck.de/Ellpeck/Web">© 2018-2021 Ellpeck</a> – <a href="#impressum">Impressum</a> – <a href="#privacy">Privacy</a></span>
|
||||
<div class="quote">
|
||||
<span id="quote-text"></span>
|
||||
<script src="./scripts/quote.js"></script>
|
||||
<img src="./res/blobheart.png" id="blobheart" alt="A blob emoji holding a heart">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Impressum -->
|
||||
<div class="modal fade" id="impressum-modal" tabindex="-1">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Impressum</h5>
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
Julian Schubert
|
||||
<br>Kastanienweg 27
|
||||
<br>52074 Aachen
|
||||
</p>
|
||||
<p>
|
||||
Telefon: 0241 45093753
|
||||
<br>E-Mail: me@ellpeck.de
|
||||
</p>
|
||||
<p>Die obenstehende Person ist ebenfalls verantwortlich für den Inhalt (gem. § 55 Abs. 2 RStV).</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Privacy -->
|
||||
<div class="modal fade" id="privacy-modal" tabindex="-1">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Privacy</h5>
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>This site uses cookies to store information about your browsing activity.</p>
|
||||
<p>Ellpeck.de stores the following information:</p>
|
||||
<ul>
|
||||
<li>A cookie named <code>dark</code> with the value <code>true</code> or <code>false</code> that stores if you have dark mode enabled</li>
|
||||
<li>A cookie named <code>notification</code> with the value <code>true</code> or <code>false</code> that stores if you have already closed the cookie notification that displays at the top of the page</li>
|
||||
</ul>
|
||||
<p>Due to widgets and embeds, additional information will be stored by other sites. Please refer to those sites' privacy policies for more information:</p>
|
||||
<ul>
|
||||
<li>Google uses cookies to serve ads based on a user's prior visits to this website. You may opt out of personal advertising by visiting <a href="https://www.google.com/settings/ads">Ad Settings</a>. For more information, see <a href="http://www.google.com/policies/privacy/partners/">how Google uses data when you use its partners' sites or apps</a>.</li>
|
||||
<li>Discord uses cookies for its widget embed. For more information, see <a href="https://discordapp.com/privacy">their privacy policy</a>.</li>
|
||||
<li>Twitter uses cookies for its tweet embeds. For more information, see <a href="https://twitter.com/en/privacy">their privacy policy</a>.</li>
|
||||
</ul>
|
||||
<p>
|
||||
Transparency is very important to us, and as such, if you have any doubts about the security of this website, you can view its source code <a href="https://git.ellpeck.de/Ellpeck/Web">on Gitea</a>.
|
||||
<br>Keep in mind that you can also review or delete stored cookies for any site at any time in your browser's settings.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
7
main/Gemfile
Normal file
|
@ -0,0 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
source "https://rubygems.org"
|
||||
|
||||
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
||||
|
||||
gem "jekyll"
|
72
main/Gemfile.lock
Normal file
|
@ -0,0 +1,72 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
coderay (1.1.3)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.1.9)
|
||||
em-websocket (0.5.2)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
eventmachine (1.2.7-x64-mingw32)
|
||||
ffi (1.15.3-x64-mingw32)
|
||||
forwardable-extended (2.6.0)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (1.8.10)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.2.0)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (~> 2.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 2.3)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (~> 0.4.0)
|
||||
pathutil (~> 0.9)
|
||||
rouge (~> 3.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (~> 2.0)
|
||||
jekyll-sass-converter (2.1.0)
|
||||
sassc (> 2.0.1, < 3.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (2.3.1)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
kramdown-syntax-coderay (1.0.1)
|
||||
coderay (~> 1.1)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.3)
|
||||
listen (3.5.1)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (4.0.6)
|
||||
rb-fsevent (0.11.0)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
rouge (3.26.0)
|
||||
safe_yaml (1.0.5)
|
||||
sassc (2.4.0-x64-mingw32)
|
||||
ffi (~> 1.9)
|
||||
terminal-table (2.0.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
unicode-display_width (1.7.0)
|
||||
|
||||
PLATFORMS
|
||||
x64-mingw32
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll
|
||||
kramdown-syntax-coderay
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.22
|
9
main/_config.yaml
Normal file
|
@ -0,0 +1,9 @@
|
|||
permalink: blog/:title
|
||||
kramdown:
|
||||
header_offset: 1
|
||||
typographic_syms:
|
||||
hellip: ...
|
||||
mdash: ---
|
||||
ndash: --
|
||||
laquo: "<<"
|
||||
raquo: ">>"
|
45
main/_data/about.json
Normal file
|
@ -0,0 +1,45 @@
|
|||
[{
|
||||
"q": "How old are you?",
|
||||
"a": "I'm XXX years old. This automatically updates now, too, so I won't ever forget to update it again!"
|
||||
},
|
||||
{
|
||||
"q": "Where are you from?",
|
||||
"a": "I am from Neuss, Germany and I'm currently living and going to university in Aachen, Germany."
|
||||
},
|
||||
{
|
||||
"q": "Why are you called Ellpeck?",
|
||||
"a": "Well, it actually isn't as interesting of a story as some of you might hope. Long story short, when I was little (and was, apparently, very bad at English), I decided to make a YouTube channel called \"LetsPlayEveryGames.\" Shortly after, I also made a Minecraft account that I was going to call the same thing. At the time, though, there was a limit for how many characters your name could have, and so I opted for calling myself \"LPEG\" instead. When a friend of mine came along and started trying to pronounce that name, instead of saying each individual letter on its own, he started pronouncing it like a word: Ell-Peg. ...Ellpeck. I liked that pronounciation and so I stuck with the name."
|
||||
},
|
||||
{
|
||||
"q": "What languages do you speak?",
|
||||
"a": "I speak German, English, Java and C# fluently. I'm okay at JavaScript and Python, and I can just about write something in C, HTML, CSS and Lua."
|
||||
},
|
||||
{
|
||||
"q": "How do you make games?",
|
||||
"a": "I usually use the .NET-based framework <a href=\"http://www.monogame.net/\">MonoGame</a> together with some libraries to make it a bit easier, including my own library, MLEM, which you can read about in the <a href=\"#projects\">Projects</a> section."
|
||||
},
|
||||
{
|
||||
"q": "When are you updating your Minecraft mods?",
|
||||
"a": "If you're asking about Actually Additions, <a href=\"https://ellpeck.de/blog/future_actually_additions\">I don't work on it anymore</a>. If you're asking about any of my other mods: Don't. I'll do it when I feel like it."
|
||||
},
|
||||
{
|
||||
"q": "What's your job/occupation?",
|
||||
"a": "I'm currently studying Computer Science at the <a href=\"https://www.rwth-aachen.de/\">RWTH Aachen</a>. I don't have a job on the side or anything, though."
|
||||
},
|
||||
{
|
||||
"q": "Are you for hire?",
|
||||
"a": "You can commission me to make a Minecraft mod for you. You can find more information on my <a href=\"https://ellpeck.de/commissions\">commissions page</a>. For other work, you can check out my page on <a href=\"https://www.linkedin.com/in/ellpeck/\">LinkedIn</a>."
|
||||
},
|
||||
{
|
||||
"q": "What do you use to code?",
|
||||
"a": "For Java, I use IntelliJ IDEA. For C#, I use JetBrains Rider. For most of my other projects, which are usually rather small, I use Visual Studio Code."
|
||||
},
|
||||
{
|
||||
"q": "What's your favorite programming language?",
|
||||
"a": "C#."
|
||||
},
|
||||
{
|
||||
"q": "What are your pronouns?",
|
||||
"a": "I'm cis male, so I go by he/him."
|
||||
}
|
||||
]
|
76
main/_data/projects.json
Normal file
|
@ -0,0 +1,76 @@
|
|||
[{
|
||||
"name": "Actually Additions",
|
||||
"desc": "Actually Additions is a rather popular Minecraft mod that I used to work on. It's become widely known in the modding community and has reached over 30 million downloads by now, which is crazy. I don't work on it anymore myself, but it's being maintained for current versions by someone else.",
|
||||
"links": [{
|
||||
"name": "CurseForge page",
|
||||
"link": "https://ellpeck.de/actadd"
|
||||
}, {
|
||||
"name": "Report an issue",
|
||||
"link": "https://github.com/Ellpeck/ActuallyAdditions/issues"
|
||||
}, {
|
||||
"name": "Online manual",
|
||||
"link": "https://ellpeck.de/actaddmanual/"
|
||||
}],
|
||||
"status": "Maintained",
|
||||
"icon": "aa"
|
||||
},
|
||||
{
|
||||
"name": "Nature's Aura",
|
||||
"desc": "Nature's Aura is a Minecraft mod about collecting, using and replenishing the Aura naturally present in the world to create useful devices and unique mechanics.",
|
||||
"status": "In development",
|
||||
"links": [{
|
||||
"name": "CurseForge page",
|
||||
"link": "https://minecraft.curseforge.com/projects/natures-aura"
|
||||
}, {
|
||||
"name": "Report an issue",
|
||||
"link": "https://github.com/Ellpeck/NaturesAura/issues"
|
||||
}],
|
||||
"icon": "na"
|
||||
},
|
||||
{
|
||||
"name": "Pretty Pipes",
|
||||
"desc": "Pretty Pipes is a simple to use, all-inclusive item transport mod for Minecraft. It features simple pipes that can be upgraded using modules to accomplish much more advanced tasks.",
|
||||
"status": "In development",
|
||||
"links": [{
|
||||
"name": "CurseForge page",
|
||||
"link": "https://www.curseforge.com/minecraft/mc-mods/pretty-pipes"
|
||||
}, {
|
||||
"name": "Report an issue",
|
||||
"link": "https://github.com/Ellpeck/PrettyPipes/issues"
|
||||
}],
|
||||
"icon": "pp"
|
||||
},
|
||||
{
|
||||
"name": "Tiny Life",
|
||||
"desc": "Tiny Life is a fun simulation game that tries to capture the essence of games like The Sims, but in an isometric pixelart style. It's currently in development, but you can already play it and even make your own mods!",
|
||||
"status": "In development",
|
||||
"links": [{
|
||||
"name": "Check it out",
|
||||
"link": "https://tinylifegame.com"
|
||||
}],
|
||||
"icon": "tiny"
|
||||
},
|
||||
{
|
||||
"name": "MLEM",
|
||||
"desc": "MLEM Library for Extending MonoGame is an addition to the game framework <a href=\"http://www.monogame.net/\">MonoGame</a> that provides extension methods, quality of life improvements and additional features like a Ui system and easy input handling.",
|
||||
"links": [{
|
||||
"name": "Get it on NuGet",
|
||||
"link": "https://www.nuget.org/packages?q=mlem"
|
||||
}, {
|
||||
"name": "See the website",
|
||||
"link": "https://mlem.ellpeck.de/"
|
||||
}],
|
||||
"status": "Side project",
|
||||
"icon": "mlem"
|
||||
},
|
||||
{
|
||||
"name": "Touchy Tickets",
|
||||
"desc": "Touchy Tickets is a fun idle game for Android that has you selling tickets with various theme park attractions.",
|
||||
"links": [{
|
||||
"name": "Google Play",
|
||||
"link": "https://play.google.com/store/apps/details?id=de.ellpeck.touchytickets"
|
||||
}],
|
||||
"status": "Released",
|
||||
"icon": "tt"
|
||||
}
|
||||
]
|
36
main/_data/socials.json
Normal file
|
@ -0,0 +1,36 @@
|
|||
[{
|
||||
"name": "Twitter",
|
||||
"link": "https://twitter.com/Ellpeck"
|
||||
},
|
||||
{
|
||||
"name": "Twitch",
|
||||
"link": "http://twitch.tv/ellpeck"
|
||||
},
|
||||
{
|
||||
"name": "GitHub",
|
||||
"link": "https://github.com/Ellpeck/",
|
||||
"darkIcon": true
|
||||
},
|
||||
{
|
||||
"name": "Gitea",
|
||||
"link": "https://git.ellpeck.de/Ellpeck"
|
||||
},
|
||||
{
|
||||
"name": "itch.io",
|
||||
"link": "https://ellpeck.itch.io/",
|
||||
"darkIcon": true
|
||||
},
|
||||
{
|
||||
"name": "YouTube",
|
||||
"link": "https://www.youtube.com/c/ellpeck"
|
||||
},
|
||||
{
|
||||
"name": "Instagram",
|
||||
"link": "https://instagram.com/Ellopecko"
|
||||
},
|
||||
{
|
||||
"name": "Email",
|
||||
"link": "mailto:me@ellpeck.de",
|
||||
"darkIcon": true
|
||||
}
|
||||
]
|
15
main/_includes/about.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
<span class="anchor" id="about"></span>
|
||||
<div class="list-display rounded">
|
||||
<h1>About</h1>
|
||||
<p>
|
||||
Sometimes, some people ask me some questions about myself or my projects, so I decided to compile a list of some of the answers in a Q&A-like fashion so that I don't have to keep repeating them. If you're curious about me, this might be interesting to you!
|
||||
</p>
|
||||
<div id="about-list">
|
||||
{% for item in site.data.about %}
|
||||
<p>
|
||||
<strong>Q: {{ item.q }}</strong><br>
|
||||
<strong>A:</strong> {{ item.a }}
|
||||
</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
38
main/_includes/blog.html
Normal file
|
@ -0,0 +1,38 @@
|
|||
<span class="anchor" id="blog"></span>
|
||||
<span class="anchor" id="blog-all"></span>
|
||||
{% for tag in site.tags %}
|
||||
<span class="anchor" id="blog-{{ tag[0] | slugify }}"></span>
|
||||
{% endfor %}
|
||||
|
||||
<div class="list-display rounded">
|
||||
<h1>Blog</h1>
|
||||
<p>
|
||||
This is my blog, where I post about gaming, programming and life. The featured posts are the ones you'll probably be most interested in, but you can select a different category to see every post.
|
||||
</p>
|
||||
<div id="blog-cats">
|
||||
{% include tagbtn.html tag="All" %}
|
||||
{%- assign sorted = site.tags | sort -%}
|
||||
{%- for tag in sorted -%}
|
||||
{%- assign name = tag[0] -%}
|
||||
{% include tagbtn.html tag=name %}
|
||||
{%- endfor -%}
|
||||
</div>
|
||||
|
||||
<div id="blog-list">
|
||||
{% for post in site.posts %}
|
||||
{% if post.archived != true %}
|
||||
{% include post.html post=post %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<button type="button" class="btn btn-link" id="blog-archive-button">Show archived posts</button>
|
||||
<div id="blog-archive">
|
||||
{% for post in site.posts %}
|
||||
{% if post.archived == true %}
|
||||
{% include post.html post=post %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<em id="no-archived-posts" hidden>There are no archived posts in this category.</em>
|
||||
</div>
|
||||
<script src="/scripts/blog.js"></script>
|
||||
</div>
|
67
main/_includes/footer.html
Normal file
|
@ -0,0 +1,67 @@
|
|||
<!-- Seasonal banner -->
|
||||
<a id="banner" class="rounded-top" hidden></a>
|
||||
<script src="/scripts/banner.js"></script>
|
||||
|
||||
<!-- Footer -->
|
||||
<div class="footer rounded-top">
|
||||
<span class="text-muted"><a href="https://git.ellpeck.de/Ellpeck/Web">© 2018-2021 Ellpeck</a> – <a href="#impressum">Impressum</a> – <a href="#privacy">Privacy</a></span>
|
||||
<div class="quote">
|
||||
<span id="quote-text"></span>
|
||||
<script src="/scripts/quote.js"></script>
|
||||
<img src="/res/blobheart.png" id="blobheart" alt="A blob emoji holding a heart">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Impressum -->
|
||||
<div class="modal fade" id="impressum-modal" tabindex="-1">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Impressum</h5>
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
Julian Schubert
|
||||
<br>Kastanienweg 27
|
||||
<br>52074 Aachen
|
||||
</p>
|
||||
<p>
|
||||
Telefon: 0241 45093753
|
||||
<br>E-Mail: me@ellpeck.de
|
||||
</p>
|
||||
<p>Die obenstehende Person ist ebenfalls verantwortlich für den Inhalt (gem. § 55 Abs. 2 RStV).</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Privacy -->
|
||||
<div class="modal fade" id="privacy-modal" tabindex="-1">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Privacy</h5>
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>This site uses cookies to store information about your browsing activity.</p>
|
||||
<p>Ellpeck.de stores the following information:</p>
|
||||
<ul>
|
||||
<li>A cookie named <code>dark</code> with the value <code>true</code> or <code>false</code> that stores if you have dark mode enabled</li>
|
||||
<li>A cookie named <code>notification</code> with the value <code>true</code> or <code>false</code> that stores if you have already closed the cookie notification that displays at the top of the page</li>
|
||||
</ul>
|
||||
<p>Due to widgets and embeds, additional information will be stored by other sites. Please refer to those sites' privacy policies for more information:</p>
|
||||
<ul>
|
||||
<li>Google uses cookies to serve ads based on a user's prior visits to this website. You may opt out of personal advertising by visiting <a href="https://www.google.com/settings/ads">Ad Settings</a>. For more information, see <a href="http://www.google.com/policies/privacy/partners/">how Google uses data when you use its partners' sites or apps</a>.</li>
|
||||
<li>Discord uses cookies for its widget embed. For more information, see <a href="https://discordapp.com/privacy">their privacy policy</a>.</li>
|
||||
<li>Twitter uses cookies for its tweet embeds. For more information, see <a href="https://twitter.com/en/privacy">their privacy policy</a>.</li>
|
||||
</ul>
|
||||
<p>
|
||||
Transparency is very important to us, and as such, if you have any doubts about the security of this website, you can view its source code <a href="https://git.ellpeck.de/Ellpeck/Web">on Gitea</a>.
|
||||
<br>Keep in mind that you can also review or delete stored cookies for any site at any time in your browser's settings.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
23
main/_includes/nav/blognav.html
Normal file
|
@ -0,0 +1,23 @@
|
|||
{% assign tag = page.tags[0] %}
|
||||
{% assign posts = site.tags[tag] %}
|
||||
|
||||
{% for post in posts %}
|
||||
{% if post.url != page.url %}
|
||||
{% continue %}
|
||||
{% endif %}
|
||||
{% if forloop.last == false %}
|
||||
{% assign prev = forloop.index0 | plus: 1 %}
|
||||
{% endif %}
|
||||
{% if forloop.first == false %}
|
||||
{% assign next = forloop.index0 | minus: 1 %}
|
||||
{% endif %}
|
||||
{% break %}
|
||||
{% endfor %}
|
||||
|
||||
<a class="nav-item nav-link" href="../#blog-{{ tag | slugify }}">Back to Main Page</a>
|
||||
{% if prev %}
|
||||
<a class="nav-item nav-link" href="{{ posts[prev].url }}">Previous {{ tag }} Post</a>
|
||||
{% endif %}
|
||||
{% if next %}
|
||||
<a class="nav-item nav-link" href="{{ posts[next].url }}">Next {{ tag }} Post</a>
|
||||
{% endif %}
|
4
main/_includes/nav/indexnav.html
Normal file
|
@ -0,0 +1,4 @@
|
|||
<a class="nav-item nav-link" href="#projects">Projects</a>
|
||||
<a class="nav-item nav-link" href="#social">Social</a>
|
||||
<a class="nav-item nav-link" href="#about">About</a>
|
||||
<a class="nav-item nav-link" href="#blog">Blog</a>
|
36
main/_includes/nav/navbar.html
Normal file
|
@ -0,0 +1,36 @@
|
|||
<nav class="navbar fixed-top navbar-expand-lg navbar-light bg-light rounded-bottom" id="navbar">
|
||||
<script>
|
||||
if (dark) {
|
||||
let navbar = $("#navbar");
|
||||
navbar.removeClass("navbar-light bg-light");
|
||||
navbar.addClass("navbar-dark bg-dark");
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- Navbar brand and logo -->
|
||||
<a class="navbar-brand mb-0 h1" href="#">
|
||||
<img src="/res/logo.png" width="40" height="40" alt="A pixelart version of Ellpeck"> Ellpeck.de
|
||||
</a>
|
||||
|
||||
<!-- Responsive navbar menu opener -->
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-content" aria-label="Navbar toggler">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<!-- Navbar content -->
|
||||
<div class="collapse navbar-collapse" id="navbar-content">
|
||||
<div class="navbar-nav mr-auto" id="nav-items">
|
||||
{% if page.nav %}
|
||||
{% include {{page.nav}} %}
|
||||
{% elsif layout.nav %}
|
||||
{% include {{layout.nav}} %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<span class="navbar-text">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="dark-mode">
|
||||
<label class="custom-control-label" for="dark-mode">Dark Mode</label>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</nav>
|
8
main/_includes/post.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
<div class="card bg-light blog-entry rounded-0 {% for tag in include.post.tags %} blog-tag-{{ tag | slugify}} {% endfor %}">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title blog-title"><a class="blog-button" href="{{ include.post.url }}">{{ include.post.title }}</a></h4>
|
||||
<div class="card-text blog-summary">{{ include.post.summary }}</div>
|
||||
<span class="text-muted project-status">{{ include.post.date | date_to_string }}</span>
|
||||
<span class="text-muted blog-cat">{{ include.post.tags | join: ", " }}</span>
|
||||
</div>
|
||||
</div>
|
27
main/_includes/projects.html
Normal file
|
@ -0,0 +1,27 @@
|
|||
<span class="anchor" id="projects"></span>
|
||||
<div class="list-display rounded">
|
||||
<h1>Projects</h1>
|
||||
<p>
|
||||
Here is a list of some of my bigger projects as well as some things you might know me from.<br>
|
||||
<span class="text-muted">For a more exhaustive list of my projects, you can also check out the <a href="#social">Social</a> section.</span>
|
||||
</p>
|
||||
<div id="project-list">
|
||||
{% for item in site.data.projects %}
|
||||
<div class="card bg-light project rounded-0">
|
||||
<div class="card-body">
|
||||
<img class="project-image" src="res/projects/{{ item.icon }}.png" alt="">
|
||||
<h4 class="card-title">{{ item.name }}</h4>
|
||||
<p class="card-text">{{ item.desc }}</p>
|
||||
|
||||
{% if item.status %}
|
||||
<span class="text-muted project-status">{{ item.status }}</span>
|
||||
{% endif %}
|
||||
|
||||
{%- for link in item.links -%}
|
||||
<a href="{{ link.link }}" class="card-link btn rounded-0 btn-outline-info">{{ link.name }}</a>
|
||||
{%- endfor -%}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
46
main/_includes/social.html
Normal file
|
@ -0,0 +1,46 @@
|
|||
<span class="anchor" id="social"></span>
|
||||
<div class="list-display rounded">
|
||||
<h1>Social</h1>
|
||||
<p>
|
||||
These are other websites where you can find me and the things I do, including the pages where I publish my code and games and where I sometimes stream and upload videos. This list also includes a lot of ways to reach me.
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div id="social-list">
|
||||
{% for item in site.data.socials %}
|
||||
<a class="btn btn-light social-button rounded-0" href="{{ item.link }}">
|
||||
<img class="social-image social-image-light" src="res/social/{{ item.name }}.png" alt="Social icon">
|
||||
|
||||
{% if item.darkIcon %}
|
||||
{% assign dark = item.name | append: "_dark" %}
|
||||
{% else %}
|
||||
{% assign dark = item.name %}
|
||||
{% endif %}
|
||||
<img class="social-image social-image-dark" src="res/social/{{ dark }}.png" alt="Social icon" hidden>
|
||||
|
||||
{{ item.name }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
Additionally, here are some miscellaneous platforms:
|
||||
<ul>
|
||||
<li>My Nintendo Switch friend code is <strong>SW-5281-8834-6801</strong></li>
|
||||
<li>If you want to play my Mario Maker 2 levels, my ID is <strong>8BH-566-4WF</strong></li>
|
||||
<li>If you play The Sims 4, you can check out my builds on the gallery by searching for <strong>Ellpeck</strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-auto" id="discord-div">
|
||||
<iframe id="discord-widget" title="Ellpeck's Discord server" width="300" height="450" allowtransparency="true" frameborder="0"></iframe>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
if (dark) {
|
||||
$(".social-image-light").attr("hidden", true);
|
||||
$(".social-image-dark").attr("hidden", false);
|
||||
}
|
||||
let theme = dark ? "dark" : "light";
|
||||
$("#discord-widget").attr("src", `https://discordapp.com/widget?id=181435613147430913&theme=${theme}`);
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
1
main/_includes/tagbtn.html
Normal file
|
@ -0,0 +1 @@
|
|||
<button type="button" class="btn btn-link blog-cat-button" id="{{ include.tag | slugify }}">{{ include.tag }}</button>
|
36
main/_layouts/blog.html
Normal file
|
@ -0,0 +1,36 @@
|
|||
---
|
||||
layout: default
|
||||
nav: nav/blognav.html
|
||||
---
|
||||
|
||||
{% if page.book %}
|
||||
<link rel="stylesheet" href="/style/book.css">
|
||||
{% else %}
|
||||
<script>
|
||||
let style = dark ? "native" : "default";
|
||||
addStyle(`https://cdn.jsdelivr.net/gh/jwarby/pygments-css@master/${style}.css`);
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
<div class="list-display rounded">
|
||||
<div class="blog-isolated">
|
||||
<h1>{{ page.title }}</h1>
|
||||
|
||||
{% if page.archived %}
|
||||
<p><i>This post has been archived.</i></p>
|
||||
{% endif %}
|
||||
|
||||
{% if page.reedsy %}
|
||||
<p><i>This story was inspired by a Reedsy Prompt and submitted to their competition. As such, it has also been published on <a href="{{ page.reedsy }}">their website</a>.</i></p>
|
||||
{% endif %}
|
||||
|
||||
<div class="post-content">
|
||||
{{ content }}
|
||||
</div>
|
||||
|
||||
<span class="text-muted project-status blog-isolated-status">{{ page.date | date_to_string }}</span>
|
||||
{% if page.discuss %}
|
||||
<a href="{{ page.discuss }}" class="blog-discuss">Discuss this post</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
61
main/_layouts/default.html
Normal file
|
@ -0,0 +1,61 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>{{ page.title }}</title>
|
||||
<meta name="author" content="Ellpeck">
|
||||
<meta name="description" content="{{ page.description }}">
|
||||
<meta name="keywords" content="Ellpeck, Actually Additions, Rock Bottom, Programming, Minecraft, Game Development, Nature's Aura, C#, Java, Blog, Tutorial, Foe Frenzy">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto&display=swap">
|
||||
|
||||
<link rel="stylesheet" href="/style/style.css">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
|
||||
<meta property="og:title" content="Ellpeck.de">
|
||||
<meta property="og:description" content="{{ page.description }}">
|
||||
<meta property="og:image" content="https://ellpeck.de/res/logoSmall.png">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@Ellpeck">
|
||||
<meta name="twitter:creator" content="@Ellpeck">
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"></script>
|
||||
|
||||
<script src="/scripts/util.js"></script>
|
||||
<script src="/scripts/main.js"></script>
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XC0W9LJMCJ"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'G-XC0W9LJMCJ');
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body data-spy="scroll" data-target="#navbar">
|
||||
{% include nav/navbar.html %}
|
||||
|
||||
<!-- Content -->
|
||||
<div class="container main">
|
||||
<!-- Cookie notification -->
|
||||
<div id="cookieinfo"></div>
|
||||
<script src="/scripts/cookieinfo.js"></script>
|
||||
<div id="main">
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include footer.html %}
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1,3 +1,12 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Blogs are Cool, I Think
|
||||
summary: The first post and how I created it
|
||||
tags: [Miscellaneous]
|
||||
discuss: https://twitter.com/Ellpeck/status/1096937184601538566
|
||||
archived: true
|
||||
---
|
||||
|
||||
So I've been wanting to make a blog for a while, but never found the motivation to do so. Especially with all of the blog softwares out there, it was hard to figure out which one to use to make it fit this website and its design nicely.
|
||||
I didn't really want to make a whole different page just for the blog because it would kind of throw the design off, so I took some inspiration from [Vazkii's blog](https://vazkii.us/#blog) and made mine work in a similar fashion. This still made it work with the single page design.
|
||||
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Why You Should Mod Minecraft
|
||||
summary: About what makes Minecraft modding great and why you should probably try it if you enjoy programming
|
||||
tags: [Minecraft, Programming]
|
||||
discuss: https://twitter.com/Ellpeck/status/1097177774337462272
|
||||
---
|
||||
|
||||
So... for the last couple of years, the main thing I've been doing in my free time is game development and modding Minecraft, but the latter far more often and more consistently. I've learned a lot while doing this, but not only when it comes to programming and game development, but also when it comes to a lot of other things.
|
||||
So in this post, I want to introduce you to what's so great about Minecraft modding and, honestly, why you should try doing it as well.
|
||||
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Kindling the Reading Flame
|
||||
summary: About the Kindle, Harry Potter and what I like and dislike about them
|
||||
tags: [Reading]
|
||||
discuss: https://twitter.com/Ellpeck/status/1109102077911973888
|
||||
---
|
||||
|
||||
Recently, my boyfriend gave me his old Amazon Kindle (because he got one of the newer models). This inspired me, after about four or five years of not really picking up a book outside of school, to start reading for fun again. The first book that I "picked up" was Harry Potter and the.. stone.. of the wise ("Harry Potter and the Philosopher's Stone" apparently).
|
||||
|
||||
# The book
|
|
@ -1,10 +1,18 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Small Projects
|
||||
summary: Why creating a small, unplanned project is sometimes good for you
|
||||
tags: [Programming]
|
||||
discuss: https://twitter.com/Ellpeck/status/1123651624201871360
|
||||
---
|
||||
|
||||
As it turns out, I struggle a lot with maintaining interest and motivation for working on bigger projects like my [other game](https://rockbottom.ellpeck.de/) or my Minecraft mods. However, an easy fix for that would be to just start less big projects and focus more on smaller ones, like **Foe Frenzy**. Foe Frenzy is a game I've been working on for about a month now.
|
||||
|
||||
![](res/small_projects/contrib.png =100%x*)
|
||||
<img src="/blog/res/small_projects/contrib.png" width="100%">
|
||||
|
||||
The basic gameplay is finished, as is enough content for my friends to have been testing it for the last week or so and saying that they enjoy it quite a bit, both visually and gameplay-wise. I thought I'd make a blog post about my process of working on it, showing what it's about and what I did this time around to make sure that I don't get burnt out with it.
|
||||
|
||||
![](res/small_projects/overview.png =100%x*)
|
||||
<img src="/blog/res/small_projects/overview.png" width="100%">
|
||||
|
||||
_Foe Frenzy is a fast-paced fighting game where you battle up to three of your friends with random, short-lasting items in an attempt to be the last survivor._
|
||||
|
||||
|
@ -14,9 +22,9 @@ A lot of times, I'll find myself getting stuck on making art for my game project
|
|||
|
||||
So, this time around, what I did instead of doing that all over again, I just decided to go with _simple art_ instead. For example, as you can see, all the tiles in the world only have 8x8 pixels, and all of them follow a really simple pattern: The top and left side are slightly darker, giving the world a really tiled feel and making the levels seem like they were made with actual building bricks. As well as that, the character movement animations are _really_ simple.
|
||||
|
||||
![](res/small_projects/wobble.gif =100%x*)
|
||||
<img src="/blog/res/small_projects/wobble.gif" width="100%">
|
||||
|
||||
![](res/small_projects/water_wobble.gif =100%x*)
|
||||
<img src="/blog/res/small_projects/water_wobble.gif" width="100%">
|
||||
|
||||
Both of those aren't even real animations per se, because what they really are is just the player's static texture rotating around a sin wave that is centered on the player's feet. It looks cute, though.
|
||||
|
||||
|
@ -27,7 +35,7 @@ What I did for this game instead is just kind of... let the code take me where i
|
|||
|
||||
For example, the map parsing system is really simple: It consists of an XML file, which stores all the important information about a map like its name and the positions that players spawn in, and a png file.
|
||||
|
||||
![](res/small_projects/map.png =100%x*)
|
||||
<img src="/blog/res/small_projects/map.png" width="100%">
|
||||
|
||||
Each pixel in the file determines which tile will be put at its location. In this instance, black is deep water, blue is shallow water, yellow is sand and green is grass. And the cool thing is that this is really easy to deal with (reading pixels is a simple thing that's present in almost every game framework), because changing something on the map just takes an image editing program, no custom map editor needed.
|
||||
|
||||
|
@ -49,14 +57,14 @@ Keep updated about the game on [my Discord](https://ellpeck.de/discord) as well
|
|||
|
||||
To finish off, here are some more pictures of the game for your enjoyment.
|
||||
|
||||
![](res/small_projects/cave.png =100%x*)
|
||||
<img src="/blog/res/small_projects/cave.png" width="100%">
|
||||
A cave being lit up by torches and lava. This is where a rubber hammer can spawn that you can use to knock the other players into the lava.
|
||||
|
||||
![](res/small_projects/map_select.png =100%x*)
|
||||
<img src="/blog/res/small_projects/map_select.png" width="100%">
|
||||
The map selection screen, where each player can choose the map that they'd like to play most.
|
||||
|
||||
![](res/small_projects/flame_thrower.gif =100%x*)
|
||||
<img src="/blog/res/small_projects/flame_thrower.gif" width="100%">
|
||||
The favorite item I've added so far: The flamethrower.
|
||||
|
||||
![](res/small_projects/win.gif =100%x*)
|
||||
<img src="/blog/res/small_projects/win.gif" width="100%">
|
||||
Killing the last person alive and winning
|
|
@ -1,3 +1,12 @@
|
|||
---
|
||||
layout: blog
|
||||
title: About Cross-Platform and Motivation
|
||||
summary: How moving from Java to C# taught me how horrible it is to create a cross-platform application with little to no knowledge or documentation
|
||||
tags: [Programming]
|
||||
discuss: https://twitter.com/Ellpeck/status/1147502654236573697
|
||||
archived: true
|
||||
---
|
||||
|
||||
As originally a java kid, I've never had much trouble with making any of my programs work on Windows, Linux and Mac. With Java, all you have to do is make a jar and then tell people to install Java on their machine. That's it. But oh boy, am I getting hit in the face hard now that I'm making a game with MonoGame and .NET Framework.
|
||||
|
||||
# The story, with all its horrible parts
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Big Projects
|
||||
summary: "How a once small project I even created a post about turned into the first game I'm selling: Foe Frenzy"
|
||||
tags: [Programming]
|
||||
discuss: https://twitter.com/Ellpeck/status/1173247686654517249
|
||||
---
|
||||
|
||||
So I'm releasing a game soon. In December, to be exact. Here's some stuff I did and learned after telling myself that [Foe Frenzy](https://ellpeck.itch.io/FoeFrenzy) would be a [Small Project](https://ellpeck.de/#blog-small_projects) until it suddenly became the first game I'd ever release as a commercial product.
|
||||
|
||||
# In Discord
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: How to make a Rock Bottom mod
|
||||
summary: My adventures back into a game I stopped working on about two years ago and how I start on a mod for it
|
||||
tags: [Programming]
|
||||
discuss: https://twitter.com/Ellpeck/status/1180092634410487808
|
||||
---
|
||||
|
||||
So it's been a hot minute since I stopped working on my first big game project, [Rock Bottom](https://rockbottomgame.com). Since then, I've changed a lot, but the game hasn't changed that much: For a long time, the project was vacant, until I decided to make it open source. From that point on, a couple of my friends started working on it, adding some new features and fixing some bugs, until it seemingly fell back into vacancy over the last couple of weeks.
|
||||
|
||||
So let's port my recent Minecraft mod, [Nature's Aura](https://www.curseforge.com/minecraft/mc-mods/natures-aura), to Rock Bottom!
|
||||
|
@ -13,7 +21,7 @@ Okay, finding [a build of the game](https://github.com/RockBottomGame/RockBottom
|
|||
|
||||
Hm. Okay.
|
||||
So something's already broken.
|
||||
![](res/rock_bottom_mod/1.png =100%x*)
|
||||
<img src="/blog/res/rock_bottom_mod/1.png" width="100%">
|
||||
|
||||
It looks like here
|
||||
```
|
||||
|
@ -27,7 +35,7 @@ That didn't seem to fix it either. Huh. Taking a look at [the maven](https://mav
|
|||
|
||||
Okay, it's now the next day and it looks like the maven has been fixed, which is nice. So all the compile issues are finally resolved, I put the build into the `/gamedata` folder like explained in the tutorial, I renamed the examplemod to `NaturesAura`, and I can now finally try running the game!
|
||||
|
||||
![](res/rock_bottom_mod/2.png =100%x*)
|
||||
<img src="/blog/res/rock_bottom_mod/2.png" width="100%">
|
||||
Ah! That worked quite well in the end.
|
||||
|
||||
# Actually making something
|
||||
|
@ -76,7 +84,7 @@ public void preInit(IGameInstance game, IApiHandler apiHandler, IEventHandler ev
|
|||
So far, so good. Let's figure out how to add a texture to the thing.
|
||||
I somewhat remember that I made a horrible json-based asset system (instead of just loading all of the assets in the mod's jar automatically), so I'm going to try to add my tile to the `assets.json` file the example mod provided me with and also add a texture into the actual file system.
|
||||
|
||||
![](res/rock_bottom_mod/3.png =100%x*)
|
||||
<img src="/blog/res/rock_bottom_mod/3.png" width="100%">
|
||||
This is the folder structure I decided on. I also created a quick golden version of the game's leaves texture by going to the [asset repository](https://github.com/RockBottomGame/Assets), stealing the leaves texture and recoloring it to be golden-ish.
|
||||
|
||||
Also, I put this in the assets file, but I have no idea if that's actually the right path. We'll find out.
|
||||
|
@ -101,7 +109,7 @@ public static final Tile GOLDEN_LEAVES = new TileGoldenLeaves(NaturesAura.create
|
|||
```
|
||||
*Crisis averted*.
|
||||
|
||||
![](res/rock_bottom_mod/4.png =100%x*)
|
||||
<img src="/blog/res/rock_bottom_mod/4.png" width="100%">
|
||||
Yaaay, it... worked? *Somewhat?*
|
||||
|
||||
You're probably yelling at your screen by now, but yes, I finally noticed it as well: My assets path says `examplemod` instead of `naturesaura`. Easy fix, though.
|
||||
|
@ -119,7 +127,7 @@ While I'm at it though, I can also add a localization entry for the golden leave
|
|||
|
||||
Let's try again.
|
||||
|
||||
![](res/rock_bottom_mod/5.png =100%x*)
|
||||
<img src="/blog/res/rock_bottom_mod/5.png" width="100%">
|
||||
Ta-da! Success, at last.
|
||||
|
||||
After some investigation, I realized that Rock Bottom's normal leaves can be walked through, so let's see how to make that happen. Typing `@Override` while in the `TileGoldenLeaves` class causes my IDE to list all of the methods I can override. Among them are two that interest me:
|
||||
|
@ -136,13 +144,13 @@ public BoundBox getBoundBox(IWorld world, TileState state, int x, int y, TileLay
|
|||
```
|
||||
It seems like this is what I have to do to make the tile walk-through...able. Let's try it out.
|
||||
|
||||
![](res/rock_bottom_mod/6.png =100%x*)
|
||||
<img src="/blog/res/rock_bottom_mod/6.png" width="100%">
|
||||
Yay, that seems to have worked. Great.
|
||||
|
||||
# Making an item
|
||||
Now that I have somewhat of a grip of this whole Rock Bottom stuff again, I'm quickly going to make an item. I won't bore you with the details as it's pretty similar to making a tile, but the gist of it is this: I made an `ItemGoldPowder` class that extends `ItemBasic`, and I initialized and registered an instance of that in my newly created `Items` class, of which I created an instance in my mod class's `preInit` method so that it gets initialized at the right time. Also, I did all of the annoying asset mumbo jumbo.
|
||||
|
||||
![](res/rock_bottom_mod/7.png =100%x*)
|
||||
<img src="/blog/res/rock_bottom_mod/7.png" width="100%">
|
||||
*Oh, C#, you've ruined me.*
|
||||
|
||||
# Making stuff happen
|
||||
|
@ -164,7 +172,7 @@ While writing this code, I quickly remembered that Rock Bottom has a tile state
|
|||
|
||||
Let's try it out! ...yea, no. The Java version that gradle uses to compile a Rock Bottom mod isn't new enough yet: You can't use the `var` keyword. Oh, my poor, poor C# soul. So let's swap that `var` out for a `TileState`.
|
||||
|
||||
![](res/rock_bottom_mod/8.gif =100%x*)
|
||||
<img src="/blog/res/rock_bottom_mod/8.gif" width="100%">
|
||||
Yay, it works! *Except that, in the gif, the mouse position is weirdly offset for some reason. It's correct in person, I promise!*
|
||||
|
||||
# Conclusion
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: "Java Tutorial, Part 1: Hello World"
|
||||
summary: The first part of my post series for programming beginners where I explain how to write code in Java.
|
||||
tags: [Java Tutorials, Featured]
|
||||
discuss: https://twitter.com/Ellpeck/status/1182080078827737088
|
||||
---
|
||||
|
||||
So you want to learn to code. In my opinion, a good language for beginners is Java, because it's a rather easy to understand language, and it's cross-platform, meaning it can run on any operating system without the need for the programmer (you!) to change anything based on the platform. Also, Java is object-oriented (more on that later), meaning it's pretty good for writing any sort of simple or complex program.[^1]
|
||||
|
||||
So let's start!
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: "Java Tutorial, Part 2: Intro to Conditions and Loops"
|
||||
summary: The second part of my post series for programming beginners. This one is all about conditions and loops.
|
||||
tags: [Java Tutorials]
|
||||
discuss: https://twitter.com/Ellpeck/status/1182354544707198976
|
||||
---
|
||||
|
||||
If you're reading this, then I assume you have already read the first part of this tutorial series, in which we covered setting up a program, making it print "Hello World" to the console, as well as how to declare and set the values of variables.
|
||||
|
||||
Today, we'll be talking about conditions and loops.[^1] As with the last tutorial, I'll be writing most of the code snippets first and then explaining what exactly they mean and do right after.
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: "Java Tutorial, Part 3: (Static) Methods"
|
||||
summary: In this Java tutorial for beginners, we cover what (static) methods, parameters and return types are.
|
||||
tags: [Java Tutorials]
|
||||
discuss: https://twitter.com/Ellpeck/status/1182775985885847558
|
||||
---
|
||||
|
||||
I've been thinking about how to structure this tutorial a lot, and I decided to teach you all about methods *before* I get into object orientation, so you'll have to wait a little while longer before we get into the real nitty-gritty. To understand this one, you should've already read and understood tutorials 1 and 2. If you haven't, you can get to them by clicking the "Previous Post" button in the navigation bar.
|
||||
|
||||
So, here goes!
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: "Java Tutorial, Part 4: Classes and Objects"
|
||||
summary: In this Java tutorial for beginners, we cover the basics of creating classes with a constructor, some fields and some methods and creating objects of them.
|
||||
tags: [Java Tutorials]
|
||||
discuss: https://twitter.com/Ellpeck/status/1183857460660101133
|
||||
---
|
||||
|
||||
So you've gotten far enough into Java now that you'll finally be able to learn about what this "object orientation" jazz is that everyone keeps talking about. I feel like this is a somewhat complicated topic to explain, so bear with me.
|
||||
|
||||
# Classes
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: "Java Tutorial, Part 5: Things I Left Out So Far"
|
||||
summary: In this Java tutorial for beginners, we cover some shorthands, some more data types, the difference between pass-by-reference and pass-by-value, null, as well as arrays and lists.
|
||||
tags: [Java Tutorials]
|
||||
discuss: https://twitter.com/Ellpeck/status/1184894859133509632
|
||||
---
|
||||
|
||||
After that complicated stuff we did in the last tutorial, how about we take it down a notch in this one and talk about some additional things that I haven't mentioned this far, but that will still be very useful to you as a programmer. Most of these things won't really have much connection to each other, but I'll give you an example at the end of this tutorial that combines some of them into a single use case.
|
||||
|
||||
# Shorthands
|
|
@ -1,3 +1,12 @@
|
|||
---
|
||||
layout: blog
|
||||
title: "Lows"
|
||||
summary: About depression and what it feels like when I don't know what to do with myself
|
||||
tags: [Miscellaneous]
|
||||
discuss: https://twitter.com/Ellpeck/status/1186028260838334471
|
||||
archived: true
|
||||
---
|
||||
|
||||
So some of you might be disappointed that this *isn't* the next Java tutorial. Well, today and the last couple of days, I haven't been feeling like working on those, because.. I've been depressed again. I never know how to describe it, or how to say it without seeming like it's just.. something I say when I'm too lazy to work on things.
|
||||
|
||||
This post will probably be a little all over the place, because that's also the mood that my head is currently in, but I'll try to explain to you what it feels like to me to have a low low follow a high high, mood-wise.
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: "Java Tutorial, Part 6: Inheritance"
|
||||
summary: In this Java tutorial for beginners, we cover classes extending other classes and the instanceof keyword.
|
||||
tags: [Java Tutorials]
|
||||
discuss: https://twitter.com/Ellpeck/status/1189904487722487809
|
||||
---
|
||||
|
||||
For this tutorial, let's expand on the car dealership example from the end of the last tutorial: You have a car dealership, and you want to expand it to sell various other types of motor vehicles; let's say... motorbikes and trucks as well. Obviously, these different kinds of vehicles all have different properties: A motorbike requires the use of a helmet, and an important piece of information about a truck might be how big its storage area is.
|
||||
|
||||
Now, this is where object-oriented languages like Java shine.
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: "Java Tutorial, Part 7: Overriding Methods"
|
||||
summary: In this Java tutorial for beginners, we cover overriding methods, calling superclass methods and toString().
|
||||
tags: [Java Tutorials]
|
||||
discuss: https://twitter.com/Ellpeck/status/1199339701640945664
|
||||
---
|
||||
|
||||
So it's been a hot minute since the last tutorial, and I apologize for that. However, it seems like there are some people that actually use these tutorials to properly learn Java, and so I didn't want to leave you all hanging.
|
||||
|
||||
Today's tutorial is going to cover method overrides, which are another awesome object orientation concept that will help you out greatly when programming.
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: The Future of Actually Additions
|
||||
summary: Not wanting to accept the fate of Actually Additions, someone has come to its rescue. 1.16, here we come?
|
||||
tags: [Minecraft]
|
||||
discuss: https://twitter.com/Ellpeck/status/1330938597785169925
|
||||
---
|
||||
|
||||
*TLDR: Actually Additions for 1.16.4 in the future. No ETA. No Fabric port. No 1.13, 1.14 or 1.15. Beautiful art overhaul. Don't ask Ellpeck anything ever. Stay awesome.*
|
||||
|
||||
Before I start this post, I want to re-iterate that I haven't had a direct programming-related connection to Actually Additions in [over three years](https://github.com/Ellpeck/ActuallyAdditions/commits/main?after=896a082d747a3e19755ded1973544d59fa992787+244). I don't plan on changing this. This means that, if you have *anything* to say about the mod, be it issue reports or feature requests, **do not talk to me about that**. Go to [the issue tracker](https://github.com/Ellpeck/ActuallyAdditions/issues) or [my Discord](https://ellpeck.de/discord)'s `#minecraft` channel.
|
||||
|
@ -18,11 +26,11 @@ MiKeY and Rid are going to port Actually Additions to **Forge** for **Minecraft
|
|||
|
||||
The art overhaul has already started (and even been finished, I believe), and because it is *gorgeous*, I'm going to show you some of the preview pictures that Rid has sent me right now. Enjoy.
|
||||
|
||||
![](res/future_actually_additions/1.png =100%x*)
|
||||
<img src="/blog/res/future_actually_additions/1.png" width="100%">
|
||||
|
||||
![](res/future_actually_additions/2.png =100%x*)
|
||||
<img src="/blog/res/future_actually_additions/2.png" width="100%">
|
||||
|
||||
![](res/future_actually_additions/3.png =100%x*)
|
||||
<img src="/blog/res/future_actually_additions/3.png" width="100%">
|
||||
|
||||
Don't they look *so good*?
|
||||
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Oh God, Please Don't Port Actually Additions
|
||||
summary: As Actually Additions celebrates its fifth birthday, I break down what I like and dislike about it.
|
||||
tags: [Minecraft]
|
||||
discuss: https://twitter.com/Ellpeck/status/1259600490377216002
|
||||
---
|
||||
|
||||
On March 7 of this year, my overwhelmingly popular Minecraft mod Actually Additions [celebrated its fifth birthday](https://www.curseforge.com/minecraft/mc-mods/actually-additions/files/2229705). I personally made my last real contribution to the project [around mid-June 2017](https://github.com/Ellpeck/ActuallyAdditions/commits/main?after=896a082d747a3e19755ded1973544d59fa992787+244), so basically three years ago. Every now and again, though (and by that, I mean almost constantly), I still get asked about the project. The main question I get is: "Will you port Actually Additions to Minecraft 1.15?"
|
||||
|
||||
Here's the short answer: No, I won't. I haven't worked on the project in *three years*. But this post isn't about that. It's about why *you* probably shouldn't port it either.
|
|
@ -1,3 +1,10 @@
|
|||
---
|
||||
layout: blog
|
||||
title: But Do You Really Care?
|
||||
summary: On taking a break from social media
|
||||
tags: [Miscellaneous]
|
||||
---
|
||||
|
||||
Over the years, my views on social media and its purpose have changed many times. When I first started out using the internet, playing Minecraft and watching YouTube videos about it, I didn't really care about social media in general. Eventually, I created a Twitter account, just to be able to follow people and see their tweets, to see what the people I cared about were... caring about. Eventually, as Discord rolled around, I first just used it to talk to my friends, but I eventually decided that a server would probably be a good idea. So I created the "Ellpeck and Friends" server, which eventually evolved into the server [that it is today](https://ellpeck.de/discord).
|
||||
|
||||
So, the more I used Discord and Twitter, the more... *obsessive* I became about them. Every time I'd write a tweet, I'd sit there, staring at my screen for the better part of half an hour, seeing if anyone would reply, if anyone would like the tweet, if anyone would retweet, if anyone had an opinion on what I was saying. *If anyone approved*. Every time I'd say something in my Discord server, I'd actively wait for people to respond. To answer my question, to react to my joke. I wanted to know *if anyone approved*. Every time I saw that little red dot appear next to the Discord icon in the taskbar, I'd instantly stop whatever I was doing and figuratively *run* into my server to see what was going on. Did someone need my help? Did someone *finally* reply to that one message I posted two hours ago? No, it was just a new server member who joined, triggering one of those weird "a new user joined" messages.
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Your Minecraft Modding Questions, Answered
|
||||
summary: I asked yall to send me your modding and programming questions on Twitter and Discord, and in this post, I try to answer all of those.
|
||||
tags: [Minecraft, Featured]
|
||||
discuss: https://twitter.com/Ellpeck/status/1373660751060160512
|
||||
---
|
||||
|
||||
Hi, I'm Ellpeck. I'm the creator of a bunch of Minecraft mods, including Actually Additions, Nature's Aura and Pretty Pipes. A while ago, I also started taking [commissions](https://ellpeck.de/commissions), so the list of Minecraft mods I've created is slowly, but surely, growing.
|
||||
|
||||
I asked all of you on Twitter and in [my Discord server](https://ellpeck.de/discord) if there are any modding and programming-related questions you'd like me to answer. Since most of the questions yall ended up asking were related to Minecraft modding, I thought I'd make the post exclusively about that after all. It also means that you might find this post interesting even if you don't program or make Minecraft mods yourself, because the questions ended up being pretty general.
|
142
main/_posts/2021-3-24-em_and_ben.md
Normal file
|
@ -0,0 +1,142 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Em & Ben
|
||||
summary: Ben hates public gatherings because he suffers from anxiety. He's also in love with his best friend Emily, who frequently tries to drag him out of his shell. At the spring festival, he has a panic attack. Will Emily manage to support him?
|
||||
tags: [Short Stories]
|
||||
book: true
|
||||
reedsy: https://blog.reedsy.com/creative-writing-prompts/contests/86/submissions/59997/
|
||||
discuss: https://twitter.com/Ellpeck/status/1374770369169653767
|
||||
---
|
||||
|
||||
# Chapter 1
|
||||
There'd never been a day quite like Tuesday, February 17. It was a warm, spring day, and the newly awakened sun was warming Ben's freckle-ridden face. He didn't know it just yet, but this would be the day that Ben would almost die. Well, that's the way he'd think of it *afterwards*, anyway.
|
||||
|
||||
The park was unusually packed with people, and for a second, Ben debated whether turning back was a good idea after all. He'd had these thoughts a lot recently; wanting to just turn back and run away from things. He ran a hand through his long, silky hair and turned around. *Damn it*, he thought, before he snapped back to facing the center of the park. *I have to do this.*
|
||||
|
||||
From afar, he could just about make out what was going on around the large fountain. The water was splashing out of what he'd always just assumed to be a large fish, though he didn't have the ability to tell for sure, because the fountain was old and rugged and had probably been just-about-fixed one too many times before. Ben squinted a bit before raising his glasses in an attempt to make out the faces of the people he saw, sitting and standing around the fountain, talking. He was looking for his best friend, Emily. She was really the kind of person that would drag him to outings like this; public gatherings and any sort of parties were terrifying to Ben. It was natural then that he would find a best friend that is his absolute polar opposite: Popular, blonde and, of course, an absolute party animal. *Damn it, Em, where are you?*, he mumbled to no one in particular.
|
||||
|
||||
He started approaching the fountain and the square around it. Several small crowds of people were standing around little stalls that emitted vastly different smells. Amidst all of this mess, he was almost certain he could smell bubblegum ice cream. Hectically looking around in an attempt to find his friend, he tried to suppress any memory related to bubble gum. To ice cream. To the life that he'd had before he changed. *Fuck*, he quietly said to himself.
|
||||
|
||||
The smell of the bubblegum ice cream started getting too strong for him to handle, and memories started welling up inside of him. His brain was unfolding like a book, too heavy to close. Ben pictured a red, rickety swing set in the middle of a park much like the one he was in right now. He pictured Emily, and for a moment, he pictured the way it had felt. The way the wind blew through his hair as he threw his legs back and forth on the swings, laughing with Em about wanting to do a three hundred and sixty degree turn. Had he already called her *Em* back then?
|
||||
|
||||
He immediately snapped back into reality when he felt the tap of something on his shoulder. Immediately might have been generous, because the tap really did feel like a heavy knock. Maybe it had taken him a few seconds to come back. His eyes felt a bit watery and his knees were shaking, but he told himself that he was probably just hungry (he wasn't) and turned around to discover the source of the heavy tapping.
|
||||
|
||||
"Ben!", Emily exclaimed right behind him. She was a beautiful woman with curly hair and a smile that probably tasted like bubblegum ice cream. *Tasted?*
|
||||
|
||||
"Hey, Emily, why'd you take so long?", he asked in the flattest possible tone.
|
||||
|
||||
"Shut up", she returned with a snarky grin. *Damn*, she looked extra beautiful today. Ben looked down at her flowy, blue skirt and matching light purple ballerinas. Even though his eyes were still watery, he couldn't help but smile at the look of her, standing there right in front of him. This is exactly what she did to him.
|
||||
|
||||
"Oh man, I want some fro-yo right about now!", Emily sighed yearningly as she grasped Ben's upper arm and started pulling him towards one of the stalls by the fountain. "You want some too? I can pay."
|
||||
|
||||
"Are you kidding me? You're *broke*, I'm not letting you pay for *anything*!"
|
||||
|
||||
"*Broke*? Come on, that's a bit harsh", she countered and frowned. She stopped dead in her tracks, let go of his upper arm and, after a few seconds of fondling with her cardigan, produced a thirty-dollar bill out of what he could only assume to be a hidden pocket somewhere. "See?"
|
||||
|
||||
Not entirely convinced of Emily's sudden wealth, he raised an eyebrow and tilted his head slightly in disapproval. "Fine."
|
||||
|
||||
# Chapter 2
|
||||
Over the next few hours, Ben was dragged back and forth between stalls and attractions. For every single one, he was apprehensive at first but rather quickly changed his mind once Emily frowned. It was such a heart-melting frown, worse than the faces that his aunt's dogs would make when they wanted to be taken for a long walk. Every single thing about Emily was just so beautiful that he could be happy doing anything with her. Even going to a shoddy, uncomfortable carnival in the middle of February.
|
||||
|
||||
They'd already stopped at almost every ride and stall, and so Ben decided that now was enough. He wasn't usually the type of person to make decisions like this (he'd just leave it up to whoever else was actually in charge), but this time, he'd put his foot down. He would, absolutely.
|
||||
|
||||
"Em, I'm getting tired."
|
||||
|
||||
"Are you serious? We haven't even eaten any churros yet!" Emily smiled devilishly at him while tugging on his blue sweatshirt's right sleeve. She was staring at him, as if trying to extract the information directly from his eyes. Her blonde locks were flowing over her brow and almost into her eyes, but that didn't seem to bother her. He guessed that, after a while, you'd probably get used to it, like you do with seeing your own nose. He really liked seeing her nose, though.
|
||||
|
||||
"You *love* churros," she pointed out with an overly exaggerated *o* in *love*.
|
||||
|
||||
*In love*, he thought. This time, he was going to put his foot down, right? That's what he'd decided. He didn't want people to control him anymore. But was that really what Emily was doing here? No. She was his best friend, she knew what was good for him. Right? She was looking at him, in obvious anticipation of his answer. He did really like churros. But did he love them? He wasn't sure about that. Okay, he did love them, but did he love them enough to warrant another thirty minutes at this godforsaken carnival?
|
||||
|
||||
He loved Emily, that was for certain.
|
||||
|
||||
Wait, what? Had he really just thought that? No, he couldn't have. That was just one of those jokes his brain made up sometimes. Amusing, albeit slightly infuriating. *Fuck off*, he said to himself.
|
||||
|
||||
"What?", Emily replied, clearly confused as to what he was saying. He wasn't saying anything though, right? What had he said?
|
||||
|
||||
"I'm, the," he mumbled, trying to make sense of what Emily could've just heard him say. Maybe she didn't hear anything, maybe it was just the wind. What could he have said to her? Surely he didn't say the love part out loud, right?
|
||||
|
||||
He stared at her face. Her brown eyes were intensely focusing on him, her lips slightly curled into a smile. She tugged on his sweatshirt one last time.
|
||||
|
||||
"So, churros?" Oh Thank God.
|
||||
|
||||
"*Fine.*"
|
||||
|
||||
***
|
||||
|
||||
As they were eating their churros, Ben couldn't help but notice how much chocolate sauce Emily had on hers with every bite. They'd ordered a little square box filled with twelve or so standing churros, along with a small tub of chocolate sauce that tasted criminally close to Nutella without actually being Nutella.
|
||||
|
||||
"You know this sauce is for dipping, right?", he said to her with a grin before taking another huge bite. "It's not supposed to be a full-on coating."
|
||||
|
||||
"What do you know, huh? Where does it say that?" She tutted and shoved her churro into the tub of sauce with ostentation. While pulling out the excessively coated pastry, she got ready to put her other hand under it as to prevent any of the chocolate sauce from dripping down onto her dress.
|
||||
"Try it!", she said with an impish smile and held the dripping mess right up to Ben's mouth.
|
||||
|
||||
"No, I don't—" He tried to interject, but Emily had already rammed the chocolate-covered churro directly into his face. He resisted opening his mouth, so the chocolate sauce smeared all over this face and chin and then continued to drip onto his sweatshirt in big, brown globs. "Damn it, Em."
|
||||
|
||||
"I'm sorry, but why didn't you open your mouth?", she asked jokingly while holding back laughter.
|
||||
|
||||
"Fuck," he said angrily and fumbled around his pockets, trying to find a tissue or something. In the scramble, the smells of the chocolate on his face and the odor of bubblegum ice cream in the air mixed to create something awfully unpleasant in his nose. He was trying really hard to find a tissue now.
|
||||
|
||||
"Damn it, Em, why do you always have to do that?"
|
||||
|
||||
"Oh, *come on*, that isn't fair! I was just trying to have fun!"
|
||||
|
||||
"Fun? You know I hate these kinds of things. I hate *people*!"
|
||||
|
||||
She tutted. "Lighten up a bit, Ben!"
|
||||
|
||||
"Lighten the *fuck* up?" His brain was unfolding again, this time like floodgates, unable to be stopped by the water pushing against them. "You don't understand me at all!"
|
||||
|
||||
He was yelling now, and some people around them were beginning to notice. Fuck. He finally looked over at Emily, his face still covered in chocolate sauce, but she wasn't smiling anymore. Instead, she had this look on her face that she'd sometimes get. When watching a sad documentary, or when her mom prepared food that she didn't particularly enjoy. It wasn't a frown, it was more of a neutral expression of… disapproval? Disgust?
|
||||
|
||||
"Why is everything such a big fucking deal to you, Ben?", she yelled, tears starting to escape from her half-shut, pained eyes.
|
||||
|
||||
That was the moment a switch in his brain finally flicked. A switch that was probably in a back room, guarded by multiple doors with multiple, separate keys. Use only in emergencies, a sign somewhere close to the switch probably said. Don't use even, maybe. Ben tried to force his eyes shut with extreme determination. No, he wouldn't cry.
|
||||
|
||||
But he did. Tears started running down his face like waterfalls, and he tried to cover them up and wipe them away with the sleeve of his sweatshirt. He wiped his cheeks with the sleeves of his blue sweatshirt, and large amounts of chocolate sauce transferred from his face to the sleeves. God fucking damn it, he muttered to himself. The world around him was turning into a very small part of his vision, the rest filled with blurry streams of tears. He tried to get up from the bench they were sitting on and stumbled around the square where the festival was happening. He was sure he'd bumped into a few people on the way, but couldn't tell for absolute certain. After what felt like an hour and a half, he finally arrived at a tree a few meters away from the fountain square.
|
||||
|
||||
He rested one hand against the bark and tried to catch his breath. The thought of bubblegum ice cream was fresh in his mind again, the thought of the red, rickety swing set was morphing and mixing with the thought of churros, the thought of chocolate sauce in his face. The thought of Emily's smile, the thought of her frown, the thought of her sad movie face. Fuck.
|
||||
|
||||
He tried telling himself to breathe. *Five in, six hold, seven out.* That's what his therapist had told him. *One, two, three.* What's the worst that could realistically happen?, that's what he was supposed to ask himself. *Four, five.* Well. *One, two, three.* Emily might never talk to him again. *Four, five, six.* She might hate him, now that she'd just tried to be cute by shoving a churro into his face, and now that he'd reacted like a total fucking asshole. *One, two.* Was he already breathing in again? *Fuck.* He kept telling his body to calm down, his mind to stop racing. His heart to stop racing. He started leaning against the bark and then slowly slid down the tree trunk, sitting down on the ground with his knees close to his chest. He observed the rickety swing set in the middle of the field, and saw himself and Emily swinging back and forth again, talking about three hundred and sixty degree swings. He saw himself, laughing and giggling and occasionally licking a cone of bubble gum soft serve he had in his left hand. He saw Emily doing the same. He saw himself wobbling a bit on the swing, trying to hold himself steady with just his right hand. He tried to breathe again. *One, two, three.* He saw himself, still holding the cone, sliding out of the swing's seat and yelling something. He saw himself landing in the rough, wet sand, the cone having left his hand and landing face-down in the sand next to him. *Four, five.* Tears were still running down his face. He saw himself turning around as Emily jumped off of her swing and came to his rescue.
|
||||
|
||||
"Are you alright?", he heard her say in her beautiful, melodic voice. *One, two, three.*
|
||||
|
||||
"I would've been, if you hadn't forced me to get this stupid ice cream!", he heard himself shoot back aggressively.
|
||||
|
||||
He felt something tap on his shoulder again.
|
||||
|
||||
"Are you alright?", he heard someone say. "I'm sorry, I shouldn't have said that."
|
||||
|
||||
It was Emily, standing next to him, bending down a bit to reach his shoulders. She slid down the tree trunk next to him. "I'm really sorry."
|
||||
|
||||
Ben tried to catch his breath, but with Emily here, it felt much easier all of a sudden. It's like a tension had been lifted from him, like someone had come to push on the floodgates from the other side. "It's alright. I'm sorry I yelled, too."
|
||||
|
||||
Emily tutted.
|
||||
|
||||
"You know, sometimes I think of that day on the swings."
|
||||
|
||||
"What day?"
|
||||
|
||||
"The day we had our first fight. Don't you remember?"
|
||||
|
||||
Emily tutted again. She placed her hand back on his shoulder, which he liked, because it was Emily's hand. That's all that mattered to him.
|
||||
|
||||
He wiped the remaining tears and chocolate sauce off of his face, his sweatshirt's sleeves now completely covered in both. "I keep remembering that day, being scared that I'll re-live it. That we'll have another fight. That you'll leave."
|
||||
|
||||
"*Leave*? Come on."
|
||||
|
||||
"I'm serious."
|
||||
|
||||
"I am, too. I'm not leaving."
|
||||
|
||||
She scooched closer and rested her head on his shoulder. "You know, I think about stuff too."
|
||||
|
||||
"Like what?", he asked while also resting his head on her head, which made him feel really close to her. Intertwined, even.
|
||||
|
||||
"You", she said quietly and grunted. "I really like hanging out with you, you know?"
|
||||
|
||||
"I do too," he said almost immediately. Did this mean what he thought it meant?
|
||||
|
||||
"Do you want to go home? I'm sure my mom has cookies."
|
||||
|
||||
He nodded. Maybe it did.
|
148
main/_posts/2021-4-23-emilys_fake_boyfriend.md
Normal file
|
@ -0,0 +1,148 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Emily's Fake Boyfriend
|
||||
summary: Emily's aunt keeps going on about her love life. To solve this problem, she pretends to be in a relationship with her best friend, Ben, who'd much rather have a real relationship with her. How will an evening with the three of them at the same table play out?
|
||||
tags: [Short Stories]
|
||||
book: true
|
||||
discuss: https://twitter.com/Ellpeck/status/1378014977999659016
|
||||
---
|
||||
|
||||
# Chapter 1
|
||||
For Emily, Saturdays always seemed to be the days when most things went wrong. She didn't exactly know why, but she was almost certain that there was some pattern, some sort of spiteful spirit that hated Saturdays, hated her, or both. This Saturday would be one of the most bizarre ones so far, but she didn't know that yet.
|
||||
|
||||
The alarm rang, its screeching noises filling Emily's bedroom. With a huge sigh, she pulled the cover off of her body and jumped out of bed. As she picked up her phone from the nightstand, she sighed again. *Oh God*, she thought. *What now?* She tapped various locations of the device's large screen until she ended up in a text message chain with her mom, her brother and her younger sister. Her eyes kept trying to entice her to fall back asleep while she was scanning the lines of the last ten or so messages as carefully as she could.
|
||||
|
||||
*Damn it*, she thought as she got to the last message. *That's today*? She quickly gathered her things, put on her favorite, pastel pink cardigan, messily fluffed up her hair as she ran past her large mirror and made her way downstairs.
|
||||
|
||||
"Good morning!" Her mom said with a slight smile. She was standing in the kitchen, as she usually did, preparing homemade waffles. Emily's mother was a very good cook and baker, but waffles weren't her strong suit, for some reason. Every time she tried (and she tried too much), they'd end up burnt or somehow taste of licorice. The thought made Emily grimace as she walked past the kitchen.
|
||||
|
||||
"Morning, mom!" she hastily said and made her way to the front door.
|
||||
|
||||
"Not so fast," her mom shouted back from the kitchen. "Don't forget your waffles!"
|
||||
|
||||
*Oh, God.* "Of course," Emily replied with a sigh.
|
||||
|
||||
***
|
||||
|
||||
Ben was sitting on the side of his bed with his laptop firmly planted on his crossed legs. With the speed of a twenty-fingered person, he was typing away on an essay for school. He heard a knock on his room door and, while *very* annoyed by this, he still managed to calmly shout "Come in!"
|
||||
|
||||
"Emily's here," his mom said while peeking her head through the slightly opened door. "She says it's important."
|
||||
|
||||
Almost immediately, far too many thoughts started sprinting through his head: It's *important*? What could that possibly mean? Was Em, his best friend since kindergarten, *dying*? No, that's unlikely. But what if she *was*? Why wouldn't she just *call*? Oh God, no, a call would be *even worse*. Still begging his brain to shut up, he trotted down the stairs and arrived in the house's main hallway. A myriad of family photos plastered the walls, most of them from when Ben was still a child. His mom *loved* showing off pictures of his "little baby boy," evidently in the most embarrassing ways possible.
|
||||
|
||||
"Ben!" Emily said hastily as he opened the door. "I need you to be my boyfriend!"
|
||||
|
||||
*His what*? His mind began racing again. Not only was that a very weird way to phrase that sort of thing, but it was also an extremely unexpected request in general. Emily, while insanely beautiful and extremely charming, wasn't really known to start relationships with anyone. Ben occasionally talked to her about it. It didn't seem to be her favorite topic, so usually, he'd lay off after only two or three questions. They weren't necessarily the easiest of questions for him to ask her, either, because he was *obsessed* with her, almost uncomfortably so. Not in a stalker-y, watch-her-every-night, masturbate-to-her-daily sort of way, but in an I-love-you-and-I-want-to-marry-you kind of way. Of course, Ben (being who he is) was far too self-conscious to *ever* bring it up.
|
||||
|
||||
"You need to *what*?", he responded quickly.
|
||||
|
||||
"Well," she said and took a deep breath. "My aunt is coming to town and I may or may not have told her that we're, uh, together."
|
||||
|
||||
"You did *what*?"
|
||||
|
||||
"I know, I know. It's bad." She tutted. "The thing is that my aunt can be really *annoying*. She always goes on and on about my love life, about how I haven't found a boyfriend yet, even though I'm already 19, and how that is *absolutely unacceptable*. So, I decided to put a stop to it."
|
||||
|
||||
Ben closed his eyes. *Fuck.* Of course, it wasn't what he'd hoped it was. *Of course*, she didn't want to be his *actual* girlfriend. Who'd want to be? Nobody. Especially not her.
|
||||
|
||||
She was standing there, her blonde locks swaying back and forth in the breeze that the open front door let in, and Ben was lost for words.
|
||||
|
||||
She tutted again. "Aren't you going to say anything?"
|
||||
|
||||
"Well," he started. How could he say yes to this? If anything, wouldn't it just cause him more pain to have an entirely fake relationship than none at all? Maybe. But maybe, this could lead to something. Maybe, he thought, this could be like those cheesy romance films that he sometimes watched when he was in a *particular* mood. Maybe this could really be the start of something.
|
||||
|
||||
"What do you need me to do?" He asked.
|
||||
|
||||
***
|
||||
|
||||
Emily breathed a huge sigh of relief. "Let's sit down somewhere," she said quietly.
|
||||
|
||||
As she finally entered the house, and they started making their way over to Ben's living room, she felt a kind of unease course through her body. It wasn't the *bad Saturday waffles* kind. She couldn't quite put her finger on what this feeling was, but she felt her heart beating faster when they sat down on a rickety, brown sofa.
|
||||
|
||||
She knew, of course, that Ben didn't enjoy this whole situation. She knew that he wasn't the best liar, and she knew that he didn't *enjoy* lying all that much either. But this was different, she thought to herself. Emily never understood what, if anything, Ben felt for her. It wasn't that he was secretive about his feelings, it's that she was incredibly bad at reading them. To her, it was weird that so many people automatically *assumed* that she was amazing at talking to people, making conversation, and understanding what other people want. But this wasn't really the case. While Emily *did* love hanging out with people, the part of her brain that was meant for understanding people's feelings was probably being repurposed to store excessive amounts of Ariana Grande quotes. And it made her feel bad, too, because her best friend Ben was absolutely *packed* with feelings.
|
||||
|
||||
While poking at a small hole in the brown fabric she was sitting on, she recalled a situation from a few months ago. She and Ben were in the park, and there was some sort of spring festival going on. She had dragged him out to it because, even though she didn't necessarily *like* taking this role in his life, she'd often try to take him out of his shell and help him fight his anxiety. During that festival, he had a full-on *panic attack* (the kind of thing that she, as an avid Ariana Grande listener, did not understand), which caused him to run off and hide.
|
||||
|
||||
Was this really such a good idea?
|
||||
|
||||
"Okay, so," she said and let out a big sigh. "Let's talk relationship. What kind of boyfriend do you want to be?"
|
||||
|
||||
"I'm sorry?" He said, flustered.
|
||||
|
||||
"Well, I didn't tell my aunt that many lies about you, so the whole thing is pretty open. You can be super caring, or, you know, the bad boy type."
|
||||
|
||||
"The *bad boy type*?"
|
||||
|
||||
"Yea, like, uncaring and aloof, you know? Maybe wear a leather jacket."
|
||||
|
||||
"A leather- have you *met me*?" He responded in playful disgust.
|
||||
|
||||
"Okay, super caring it is, then," she laughed and moved her hands around in the air as if writing something down on a giant, invisible notebook.
|
||||
|
||||
Honestly, *super caring* was exactly the kind of boyfriend that she actually wanted. Of course, she would never say this out loud, but occasionally she dreamed of the perfect storybook romance. *Romeo and Juliet*, just without all the tragic stuff. Just like that one Taylor Swift song. While she'd fooled around with some of her girlfriends once or twice, she'd never actually had a relationship with anyone, especially not a guy. She didn't really know why, either. She briefly wondered if any guys had ever been visibly into her. Maybe she'd just missed it.
|
||||
|
||||
She'd also never admit *this*, of course, but Ben seemed like a fairly good candidate for the position of the super caring boyfriend. He was innocent, sweet, and he had the mane of an extremely gentle lion.
|
||||
|
||||
Uncomfortable silence had set in between the two, as it sometimes seemed to do. It didn't help that Emily had one of those weird thoughts again. Very occasionally, she'd have this intrusive image in her head: Ben, lion-like as he looked, not-so-gently on top of her. Sometimes he'd touch her breasts; sometimes they'd be kissing. Was she sexualizing her friendship? Maybe. Was that bad? She didn't know. She also didn't know if she cared yet. After all, she didn't *mean to*. It just kind of happened every now and again. If anything, didn't that speak to her fondness of Ben?
|
||||
|
||||
In an attempt to quickly change the subject on her mind, she started telling a story about her aunt.
|
||||
|
||||
"You're going to *love* my aunt," she said sarcastically. He looked at her with a sense of dread in his eyes. "Okay, one time, we were at this restaurant, the whole family all packed into this corner booth, and she would not stop pestering the poor waiter with question after question about the most ridiculous stuff! Every time she waved him back over to our table, he looked more and more tired of her shit."
|
||||
|
||||
"That's actually kind of horrifying," he responded and shook his head slowly.
|
||||
|
||||
"Right?"
|
||||
|
||||
# Chapter 2
|
||||
In the early evening, Ben found himself sitting at a big dinner table, straight across from an overly cheerful looking lady. If he had to guess, Em's aunt was probably around fifty-five years old, maybe a little older. She was slightly hunched over the table, resting one of her arms on it. *That's not how you sit at a table, young man*, he heard his own aunt's voice echoing in his head. Clearly, Emily's aunt didn't care, and from what he'd been told, this wasn't surprising.
|
||||
|
||||
When Emily's mom came into the room from the kitchen, she was carrying a large tray that held a variety of sweet pastries and cookies. Homemade, Ben assumed, waiting to bite into one of those chocolate croissants. Emily's mom set the tray down in the center of the table and pointed at it with an open hand as if to say *There you go, dig in*. So Emily and her sister did. After they finished selecting something they liked, Ben also felt comfortable taking a croissant.
|
||||
|
||||
A chocolate cookie in her delicate fingers, Emily's aunt turned to Emily. "So," she began while raising her thickly overdrawn, black eyebrows. "How have you been, my love?"
|
||||
|
||||
"Well, school's been going pretty well. I've only gotten good grades this semester, and my classes have been bearable."
|
||||
|
||||
Her aunt started smiling wide. "A perfect student as always! I expected nothing less of you, dear."
|
||||
|
||||
Emily provocatively rolled her eyes and sighed. Her aunt didn't seem affected by that at all. Instead, she continued smiling as she bit into her cookie. "And you, love?"
|
||||
|
||||
Confused for a second, Ben realized that she was talking to him now.
|
||||
|
||||
"Me? Oh, well," he stuttered. "School is also going great for me. Emily and I are pretty much on the same level in terms of grades and stuff."
|
||||
|
||||
"On the same level, you say? Maybe that's why you two get along so well! For years now, I've been *absolutely positive* that you two would make the cutest couple. And now it's *finally* happened, God bless."
|
||||
|
||||
Emily sighed, louder this time. Ben let out a stifled chuckle. *I wish*, he thought to himself.
|
||||
|
||||
***
|
||||
|
||||
As the conversation continued over dinner, followed by coffee, Ben felt himself zoning out from time to time. As he continued to observe Em and her aunt conversing, he felt his mind wander to a different world without his control.
|
||||
|
||||
A world where him and Em really *were* a couple. A world where, against all odds, they'd happily been together for years, with their own apartment, with floor-length windows and a balcony. They'd sit outside in the evenings, eating ice cream and sipping on cocktails. They would laugh and share stories of their day while watching the sunset over the park. They'd go into town on the weekends and eat at that little Italian place he keeps wanting to go to. They'd never fight anymore, because they'd be happy. He'd never cry alone, never wonder why he was too *stupid* to tell her how he felt.
|
||||
|
||||
Emily grabbed his hand. "We're going upstairs now," she said and got up from her chair.
|
||||
|
||||
Even though he knew it was fake; even though he knew that her hand in his meant *nothing*, it felt good. He craved contact like this, with someone he really cared about. He'd hug Emily more if it wasn't for his fear of being overbearing. Of being a nuisance. Why did he have to feel that way?
|
||||
|
||||
Emily dragged Ben behind her as she walked up the stairs, her palm still resting in his. When they got to the door of her room, she still hadn't let go of his hand. Why? Was Ben just reading into things again, or did she *enjoy* holding his hand? *Surely not. She'd never enjoy that*, he told himself. Then, as he frequently did, he told himself to stop telling himself things like that.
|
||||
|
||||
Emily finally let go of his hand upon entering her room. This was one of Ben's favorite places to be. Sometimes, he'd imagine him and Em cuddled up together on her bed, sharing a blanket, watching a movie or playing *GTA*.
|
||||
|
||||
He thought about this kind of thing a lot. Of course, he also thought a lot about the fact that he thought about this kind of thing so frequently. Was it bad to have these thoughts? Was he risking ruining his perfect friendship with Emily by making some big romance out of it in his head? Was it unfair to her to keep quiet about it? As they sat down next to each other on the bed, he tried to let these thoughts fade.
|
||||
|
||||
"Thank you *so damn much*, man," Emily said and let out a sigh of relief. "What a nightmare."
|
||||
|
||||
"Oh come on, it wasn't *that* bad."
|
||||
|
||||
"Did you hear what she *said*?" Emily put on a very bad, fake British accent. "I was *absolutely positive*," she mocked. "*My dear.*"
|
||||
|
||||
Ben couldn't help but laugh. "She's not that bad! I thought she was nice."
|
||||
|
||||
"Oh shut up, I *know* you." Did she? "People like her drive you *mad*! You never miss out on an opportunity to hide in your room. You don't *like* her."
|
||||
|
||||
Maybe she did know him. And maybe it was this realization that made him unable to think about the words flying out of his mouth. He let out a quiet, but emotional sigh, and said "I like *you*, though."
|
||||
|
||||
Emily turned and looked into his eyes. As he stared back, he could see a tiny reflection of his face in her brown irises. "I like you too, Ben. You know that," she said.
|
||||
|
||||
Maybe she didn't know him after all. He focused intensely on her face. What if this was the moment to be honest? What if, in the light of this fake relationship, he could finally be true to how he felt? Anxiety boiled up inside him. This was a panic attack just waiting to happen. But he had to try. Right?
|
||||
|
||||
"No," he said and gently took her hand. "I *really* like you, Em."
|
171
main/_posts/2021-4-23-jed_things_to_avoid_in_life.md
Normal file
|
@ -0,0 +1,171 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Jed's Things to Avoid in Life
|
||||
summary: "Jed's rules are clear: No relationships. They interfere too much with his life, and he's not made for them anyway. But then, he sees his old crush from school in his hometown. Will he break his own rules for Davy?"
|
||||
tags: [Short Stories]
|
||||
book: true
|
||||
reedsy: https://blog.reedsy.com/creative-writing-prompts/contests/90/submissions/63882/
|
||||
discuss: https://twitter.com/Ellpeck/status/1385686796911185920
|
||||
---
|
||||
|
||||
Jed didn't do relationships. That was just one of his rules. Actually, it had become such an important rule to him that he added it to his very official, *highly* scientific List of Things to Avoid in Life. They were too complicated, and the touchy-feely stuff usually left him feeling inadequate about his ability to be there for someone. He also just didn't have the time, with his fifty-hour work week and all that. So not wasting his time trying to care for another person, especially considering that they'd probably notice pretty quickly how little he was able to care for them and ultimately leave him to be on his own again. So why bother, right?
|
||||
|
||||
He was sitting on a crowded, noisy train on his way to visit his parents in his childhood hometown. He didn't necessarily enjoy going there again, but this weekend was his mom's birthday, and he loved her too much to skip it. Even though his grandma would also be there, who he had a particular grudge with after finding out a few years ago about her dislike of a *pretty important* part of his life. So he wasn't particularly looking forward to talking to her about "the girls she envisions him marrying."
|
||||
|
||||
He looked out the window, the lush, pine-plastered mountains in the distance slowly creeping by, and imagined what it would be like if he really *was* as much into girls as his grandma wished he was. It's not like he hadn't thought about it. Of course, it would be easier for him to be straight. In fact, maybe his rules about relationships were only so airtight because he was afraid of being bullied. He didn't enjoy the thought of holding hands with his boyfriend, only to be attacked by some idiot in an alley. But his other reasons were good, too, right? He *was* a little emotionally unavailable at times. He *did* have that horrible work week. *Yes*, he thought to himself. *Those are good enough reasons to avoid the perfect, storybook romance you dreamed of as a kid, damn it.*
|
||||
|
||||
After leaving the train, he stopped in the middle of the platform and looked around to get his bearings again. Out of the corner of his eye, he noticed something odd. He turned to face the front window of a small bakery, the glass protecting delicious looking pastries and cakes that were quietly sitting in a large vitrine. But that wasn't the odd thing.
|
||||
|
||||
He started closely inspecting the head of the person standing behind the register, currently handing a glazed donut to an old lazy. After a few seconds, the person turned in his direction, and started looking directly at him. And there he was, standing in the middle of a train station, locking eyes with the *last* person he wanted to see in this town. He smiled and waved awkwardly, and the person behind the register did the same, before turning back to the old lady and finishing their transaction.
|
||||
|
||||
Jed, clearly having lost his mind, thought it would only be right to go inside and say hello. A little bell that was mounted behind the door rang. Now, he was standing right in front of him. His long, wavy brown hair had the same elegance as it did the last time Jed saw him, as if nothing had changed. Davy must've been sat in a time capsule for the last four years, because he still looked exactly as beautiful as he did all those years ago at school. No, better. Davy had broad shoulders and a wide frame. His arms were thick and muscular and Jed imagined them again, wrapped around his body, warming him. Protecting him.
|
||||
|
||||
"Jed! I didn't know you still lived in town," he said with a smile that penetrated all of Jed's defenses.
|
||||
|
||||
"I don't, actually," he stuttered. "I'm visiting my parents."
|
||||
|
||||
"Ah, that makes sense. Train station." Davy laughed awkwardly and pushed the hair out of his face with his hand. His motions were smooth and soft, and Jed couldn't help but notice the veins in his arms twitching as he moved his hands. *Jesus Christ*, he said to himself. *Get a grip.*
|
||||
|
||||
"How have you been?" Davy asked and raised an eyebrow.
|
||||
|
||||
"I've been pretty good, actually," Jed mumbled, still mesmerized by Davy's movements. The grip clearly hadn't been gotten yet. "I'm working at a pretty big software company."
|
||||
|
||||
"That's awesome," Davy said with a very real, supportive air of enthusiasm.
|
||||
|
||||
"And you?"
|
||||
|
||||
"Been working here to help with uni. That shit's really expensive, man." Davy chuckled.
|
||||
|
||||
Jed nodded his head slightly. "Yea, I can imagine," he said.
|
||||
|
||||
"Anyway, it's cool that you're here. Do you maybe want to catch up some time?"
|
||||
|
||||
Jed froze. *Oh my God*, he thought. Had Davy really just asked him on a date? Okay, well. Not a *proper* date, but...
|
||||
|
||||
"Uh, yea, that sounds great," he mumbled. If Davy was a mirror, he'd probably see his entire face turn into a tomato right now. *Oh, God.* "I'm free the whole weekend," he continued.
|
||||
|
||||
They exchanged phone numbers, and Jed breathed a sigh of relief when he exited the bakery. Thankfully, Davy didn't seem to have noticed how awkwardly Jed was acting around him. Was he even acting that awkwardly? Possibly. Probably.
|
||||
|
||||
***
|
||||
|
||||
Only a few days later, Jed arrived at a coffee shop that he used to go to with his friends after school sometimes. It was small, filled with small nooks with comfortable looking armchairs that had colorful blankets thrown over them. Taking in the romance that this place clearly emitted, he sighed to himself. *Oh God, this is a* proper *date, isn't it?*
|
||||
|
||||
He waited in the entryway of the café until Davy arrived. And *boy*, did he arrive. He walked into the room wearing a jean jacket over a black logo tee and jeans. His hair was blowing in the wind let in by the open door, and it reminded Jed of their first encounter at the train station. The whole outfit made Davy seem strong. For a second, Jed imagined what it would be like to be scooped up by his strong, muscular arms like a princess. Like a *prince*.
|
||||
|
||||
*Get a grip*, he thought to himself.
|
||||
|
||||
"Hey man," Davy said with a smile as he saw Jed. *Hey, 'man'?*, he repeated in his head.
|
||||
|
||||
"Hey Davy," said Jed with an awkward half-smile. He tried to wipe it off. "You look," he started, but he didn't know how to finish.
|
||||
|
||||
"Gay?" Davy suggested. "I know. I just love this jacket so much."
|
||||
|
||||
"That's not-", Jed stuttered. "I didn't ... you look *good*." He hesitated. Why did he *say* that?
|
||||
|
||||
"Thanks. You don't look too bad yourself," Davy said and started making his way towards one of the seating nooks. He brushed Jed's arm with his own while passing him, and it made that place tingle with... with something.
|
||||
|
||||
Jed realized that he didn't even know for sure if Davy was into guys. He wondered for a second if that comment about his jacket was confirmation that he was, in fact, gay. Was anything he'd done so far confirmation that he was?
|
||||
|
||||
A weird feeling of unease creeped up in Jed's chest, and it immediately entered his heart. *What if he's not even into guys?*, he thought to himself. He didn't do relationships anyway, though, so why would it matter -- right? They were too complicated, too time-consuming, and too draining of the small amount of emotions that Jed had. So it was of no value to know whether Davy was into him or not.
|
||||
|
||||
He really enjoyed the idea though. As he watched Davy sit down on a sofa in one of the nooks, he imagined what it'd be like to be on that sofa with him. Sitting next to him. Close. Kissing him. Davy's hand moving closer to Jed's--
|
||||
|
||||
"Are you coming?", Davy called and waved. *Oh God*, Jed thought to himself. *Hopefully not.*
|
||||
|
||||
Jed started walking towards him, and Davy started patting the spot next to him on the sofa. He wanted Jed to sit next to him. *Great.*
|
||||
|
||||
Of course, being the gentleman he was, it was only right of Jed to actually go ahead and sit down next to Davy. That was the only reason, *of course*.
|
||||
|
||||
They both ordered drinks (hot chocolate) and food (cheesecake and apple pie) and started chatting about how they'd been since school. Davy talked about his university courses and the bakery job and how he'd sometimes see his old friends at the train station, and Jed was *fascinated*. It wasn't that Davy's stories were actually *fascinating*, but somehow, because *he* was the one telling them, they seemed more alive than Jed ever thought a story could be.
|
||||
|
||||
When Jed started talking about his job, about the long work hours and about his family, Davy turned a bit to face him. Now they were sitting closer, almost opposite one another, and Davy's gaze seemed to be locked onto Jed's eyes while he told his stories. He'd never met someone, Jed thought to himself, who seemed so genuinely interested in his life. Somehow, the two of them were just fascinated with each other, it seemed. But Jed's rule was clear: *No relationships*. They were a waste of time, and that was a final, reasonable, and educated decision.
|
||||
|
||||
That was, of course, until they started talking about Jed's homophobic grandma. As soon as he mentioned that his grandma didn't 'approve' of his sexuality, Davy's smile faded, and he rolled his eyes. The sight made Jed chuckle.
|
||||
|
||||
"Relatable?", Jed asked with a tiny grin.
|
||||
|
||||
Davy tutted. "Oh God, don't get me *started*."
|
||||
|
||||
He shifted a little on the sofa, and they were sitting even closer to each other now. Was he doing this on purpose?
|
||||
|
||||
"My mom's the same way."
|
||||
|
||||
"Your *mom*? That's terrible!", Jed hissed.
|
||||
|
||||
"Eh, I've been getting by alright. I don't need her, you know? It's her loss." Davy began smiling again. "I've got enough people in my life who support me."
|
||||
|
||||
"That's good," Jed responded. Overwhelmed with the flood of endearing sentiments rushing through his chest -- the homophobic mom, the sweet sentiment about Davy's chosen family, and just how close to each other they were sitting right now -- Jed couldn't stop himself from saying more. "I'd support you too, you know."
|
||||
|
||||
"You know what," Davy began. *Oh God*, Jed thought to himself. This was it. He'd ruined it. *You're getting a bit creepy*, that's what Davy was about to say. Right? He'd said too much. But Davy's smile didn't fade. Instead, he chuckled and put his hand on Jed's shoulder.
|
||||
|
||||
"You're great to hang out with, Jed," Davy continued. "But I really have to go now, sadly. I really want to see you again, though."
|
||||
|
||||
Jed's cheeks warmed up, and he began to smile again. "Me, too," he said shakily.
|
||||
|
||||
Over the next few days, Jed kept daydreaming about Davy. His cute smile, his wavy hair and his muscular, strong arms. He kept picturing, over and over, how Davy grabbed his arm when they sat so close in the café. He should've kissed him then and there. No, it would've been too soon. Plus, they had another date lined up. Because he hadn't seen town in a while, Davy came up with the idea of hiking to the top of the nearby mountain and looking down at the cityscape from there.
|
||||
|
||||
But maybe he shouldn't get closer to Davy, he thought. He didn't want to give him the wrong idea. His list of rules was very strict, and Jed intended to continue following it. No relationships, because they are too complicated and time-consuming. But Davy could've happily consumed all of his time without Jed even remembering that his list of rules *exists*.
|
||||
|
||||
***
|
||||
|
||||
There he was. Strong as always, wearing a t-shirt that made his muscular upper arms even more pronounced than usual. Today, his long, silky hair wasn't flowing over his shoulders, though. He had tied it up into a ponytail, presumably so it wouldn't bother him during their hike.
|
||||
|
||||
Jed approached him on the parking lot close to the hike trail leading up the mountain, and Davy turned around slowly.
|
||||
|
||||
"Hey," he said in a rough voice. He cleared his throat, before saying "hey" again, less raspy this time.
|
||||
|
||||
"Hi. I'm excited!" Jed blurted out with an unusual amount of confidence. *The rules, damn it*, he thought to himself. *Get a grip.*
|
||||
|
||||
"Me too. I packed some snacks for us, as well," said Davy and pointed to his backpack. He shifted his upper body and laughed, causing what sounded to be loose food items to rustle in the bag.
|
||||
|
||||
Halfway up the trail, Jed started getting exhausted. It wasn't that he was out of shape (he'd been working out occasionally because of the part of his List of Things to Avoid in Life that read *getting out of shape*, of course), but something about this hike was different to him. Stopping on the trail, he grabbed a bottle of water out of his backpack and started gulping it down without hesitation. Davy stopped as well, and observed Jed as he almost finished the entire bottle.
|
||||
|
||||
"Want to take a break?", he asked slyly.
|
||||
|
||||
"Shut up, I can do this!", Jed blurted out without much thought. *Oops.* "I'm just-"
|
||||
|
||||
Davy cut him off. "Well, I know you can, but you can also relax with me for a little while."
|
||||
|
||||
Relaxing sounded like a great idea to Jed. He wiped his mouth and chin with his forearm and looked over at Davy, who had already found a nice bit of grass to sit down on. *Laying down on the grass together*, he thought, remembering this very fantasy having been stuck in his head for the last few days. *Of course. Damn it.*
|
||||
|
||||
Jed walked up to Davy and looked down questioningly. Davy looked back up at him and smiled.
|
||||
|
||||
"Come sit," he said with a grin, pointing to the ground right next to him. Jed did as he was told.
|
||||
|
||||
And now, there they were, just like in Jed's *stupid* fantasies. Sitting next to each other, looking out over the forest and a small part of town, with Jed feeling the cool, green grass underneath him.
|
||||
|
||||
"You know," Davy began. "I used to think that you were kind of weird. In school, you know. I only realized afterwards that..." He hesitated. Jed turned his head to see the expression on Davy's face, but there wasn't much being expressed there at all. Eventually, Davy continued.
|
||||
|
||||
"I think I realized that I had the tiniest bit of a crush on you."
|
||||
|
||||
On... *what*? Jed's heart skipped a beat. What had Davy just said? Clearly, Davy was out of his mind. Or Jed was. Was he dreaming? Was he passed out from exhaustion somewhere, laying on the path, with Davy wondering what he'd gotten himself into? Jed shook his head. *No.* This seemed to real to be a dream.
|
||||
|
||||
"You... you did?", Jed stuttered. Davy chuckled.
|
||||
|
||||
"I think so, yea. You were always kind of cute, and seeing you at the train station the other day... I don't know, it felt like a sign."
|
||||
|
||||
*A sign*, Jed thought to himself. He could kind of see that. The hunky, adorable student who worked in a bakery, with his long hippy-like hair, believing in *signs* and probably *soulmates* and what have you. This made sense to Jed. But the fact that Davy was saying all of this to *him* made no sense at all.
|
||||
|
||||
"Are you serious? I--", Jed paused, trying to formulate a coherent sentence in his mind. Davy was looking at him with a sense of desperation in his eyes. *Tell me that you like me too*, they seemed to say.
|
||||
|
||||
At this point, Jed went over the options in his mind. The rules, the meeting at the train station, the *coincidence* of it all. Maybe he believed in signs, too. Maybe he believed that, out of all the people he could've met that day, Davy was just the perfect one. Maybe, he thought to himself, his rules didn't actually matter that much after all.
|
||||
|
||||
"I actually really liked you too. In school. I always saw you with all of those girls and I thought, you know. I thought I'd never have a chance. Especially since you seemed so..." Davy cut him off.
|
||||
|
||||
"So straight?", he said and laughed.
|
||||
|
||||
"I guess, yea."
|
||||
|
||||
"Well, I'm not. I mean, I am. I'm bi, actually," he explained.
|
||||
|
||||
"That makes sense," Jed responded, not really sure what else to say. They were both silent for a moment, but their gazes were still interlocked. They were sitting close enough together now for Jed to feel both of their breathing warming up the air between them.
|
||||
|
||||
"Do you want to..." Davy began, but he paused. Jed wanted a lot of things right now. He imagined moving closer to Davy, putting his hand on his thigh, maybe lower, deeper, and going through Davy's hair with his hand. He didn't, however, know what Davy wanted. So he didn't do anything.
|
||||
|
||||
"Can I kiss you?", Davy asked after an uncomfortably long silence. Jed didn't answer with words -- how could he possibly answer that question without melting into a puddle then and there -- but apparently, his wide smile was enough indication to Davy that Jed *did* want to kiss him.
|
||||
|
||||
Davy moved in closer, grasping Jed's hip with one hand, and as Davy leaned in closer with his head, Jed could see the veins in his arm twitching as he moved.
|
||||
|
||||
Jed closed his eyes, and he felt Davy's lips touch his own. He felt him reaching around Jed's body with his other hand, fully enclosing him in his strong embrace now. It felt good. Jed wanted to continue, forever, staying here and kissing Davy until the end of time.
|
||||
|
||||
This was good. To Jed, it was the perfect place to be.
|
|
@ -1,6 +1,14 @@
|
|||
---
|
||||
layout: blog
|
||||
title: One Year of Tiny Life, and Cursed Comment Time
|
||||
summary: It's been exactly one year since I started working on my isometric Sims-style life simulation game Tiny Life, and since then, a lot has happened, especially in the realm of weird, funny and cursed comments in the code.
|
||||
tags: [Programming, Featured]
|
||||
discuss: https://ellpeck.itch.io/tiny-life/devlog/256839/one-year-of-tiny-life-and-cursed-comment-time
|
||||
---
|
||||
|
||||
On this day, exactly one year ago, I made my first commit to the Tiny Life repository. Since that first commit, which included some code for the isometric perspective that the game uses, Tiny Life has come *a long way*.
|
||||
|
||||
![](res/tiny_life_one_year/commit.png =100%x*)
|
||||
<img src="/blog/res/tiny_life_one_year/commit.png" width="100%">
|
||||
|
||||
If you don't recall just how long of a way it has come, or you don't even know about the game yet: Tiny Life is, as I wrote on its [itch page](https://ellpeck.itch.io/tiny-life):
|
||||
|
||||
|
@ -12,7 +20,7 @@ So, to celebrate, and because of a Twitter poll I did a while ago that made it c
|
|||
|
||||
While this blog post *does* include a lot of programming-related humor, most of the comments are still funny and a bit ridiculous out of context, so you don't have to be a programmer to laugh along by any means.
|
||||
|
||||
![](res/tiny_life_one_year/search.png =100%x*)
|
||||
<img src="/blog/res/tiny_life_one_year/search.png" width="100%">
|
||||
|
||||
That should do for now. *Oh, boy.* Note that I'll just be going through them using the order they appear in these search results, so the funniest ones won't be at the start or the end, but just... somewhere in between.
|
||||
|
|
@ -1,3 +1,11 @@
|
|||
---
|
||||
layout: blog
|
||||
title: Dog-Earing and Other Terrible Reading Habits
|
||||
summary: Since I've been reading a lot more in recent history, I thought I'd start writing some blog posts about the reading. So first up, here are some of my terrible reading habits that would probably make a lot of book lovers angry. This isn't clickbait. I'm just terrible.
|
||||
tags: [Reading, Featured]
|
||||
discuss: https://twitter.com/Ellpeck/status/1408565191218978818
|
||||
---
|
||||
|
||||
So recently, I've been reading a lot more again. Since I got my first Kindle [and talked about it](https://ellpeck.de/blog/reading) a while ago, I have now also started tracking my reading progress on [the StoryGraph](https://app.thestorygraph.com/profile/ellpeck). I also started watching some more book- and reading-related YouTube videos, and I came across this tag that I thought would be *perfect* for me to talk about for one specific reason, which I'll get to shortly.
|
||||
|
||||
To sum it up: My boyfriend thinks dog-earing books (that you own!) is the worst, and he despises me for doing it. But I want all of you to *hear my case* about this. So read on. Please.
|
Before Width: | Height: | Size: 632 KiB After Width: | Height: | Size: 632 KiB |
Before Width: | Height: | Size: 380 KiB After Width: | Height: | Size: 380 KiB |
Before Width: | Height: | Size: 630 KiB After Width: | Height: | Size: 630 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 5 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 133 KiB |
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 158 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 4.3 MiB After Width: | Height: | Size: 4.3 MiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
35
main/index.html
Normal file
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
layout: default
|
||||
title: Ellpeck.de
|
||||
description: Ellpeck's little internet place
|
||||
nav: nav/indexnav.html
|
||||
---
|
||||
|
||||
<!-- Home -->
|
||||
<div class="jumbotron">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-auto">
|
||||
<img src="./res/me.jpeg" class="rounded-circle" width="200" height="200" id="navbar-image" alt="A cover photo of Ellpeck">
|
||||
</div>
|
||||
<div class="col">
|
||||
<h1 class="display-4" id="intro-text"></h1>
|
||||
<script src="./scripts/greet.js"></script>
|
||||
<p class="lead">Welcome to my little website! I'm Ellpeck, a student and programmer from Germany. I do a lot of stuff, actually. My life is pretty busy.</p>
|
||||
|
||||
<!-- Sponsor buttons -->
|
||||
<div class="sellout">
|
||||
<iframe src="https://github.com/sponsors/Ellpeck/button" title="Sponsor Ellpeck" height="32" width="116" style="border: 0; margin-right: 10px;"></iframe>
|
||||
<a href="https://www.patreon.com/bePatron?u=2494595" class="patreon-button" style="padding: 5px;">
|
||||
<img src="./res/becomePatron.png" width="auto" height="34px" alt="Become a patron">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include projects.html %}
|
||||
{% include social.html %}
|
||||
{% include about.html %}
|
||||
{% include blog.html %}
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 148 B After Width: | Height: | Size: 148 B |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 583 B After Width: | Height: | Size: 583 B |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 203 KiB |
Before Width: | Height: | Size: 178 B After Width: | Height: | Size: 178 B |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |