Merge remote-tracking branch 'origin/master' into typography
This commit is contained in:
commit
905e2e9808
@ -20,7 +20,7 @@ onMounted(async () => {
|
|||||||
<template>
|
<template>
|
||||||
<div class="prose dark:prose-invert">
|
<div class="prose dark:prose-invert">
|
||||||
<HomeStatBox
|
<HomeStatBox
|
||||||
:href="href"
|
:href
|
||||||
id="github-commit-a"
|
id="github-commit-a"
|
||||||
color="lightgray"
|
color="lightgray"
|
||||||
darkcolor="slategray"
|
darkcolor="slategray"
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
import { getPrettyDate, getUtcDate } from "~~/shared/metadata";
|
import { getPrettyDate, getUtcDate } from "~~/shared/metadata";
|
||||||
import type { AnyParsedContent } from "~~/shared/types";
|
import type { AnyParsedContent } from "~~/shared/types";
|
||||||
|
|
||||||
const props = defineProps<{ doc: AnyParsedContent }>();
|
const { doc } = defineProps<{ doc: AnyParsedContent }>();
|
||||||
|
|
||||||
const prettyDate = getPrettyDate(props.doc);
|
const prettyDate = getPrettyDate(doc);
|
||||||
const utcDate = getUtcDate(props.doc);
|
const utcDate = getUtcDate(doc);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { Color, ViewportLength } from "csstype";
|
import type { Color, ViewportLength } from "csstype";
|
||||||
|
|
||||||
const props = withDefaults(
|
const {
|
||||||
defineProps<{
|
color = "pink",
|
||||||
|
darkcolor = "#c88994",
|
||||||
|
clearstyles = false,
|
||||||
|
...props
|
||||||
|
} = defineProps<{
|
||||||
href?: string;
|
href?: string;
|
||||||
id?: string;
|
id?: string;
|
||||||
color?: Color;
|
color?: Color;
|
||||||
@ -10,11 +14,9 @@ const props = withDefaults(
|
|||||||
title?: string;
|
title?: string;
|
||||||
clearstyles?: boolean;
|
clearstyles?: boolean;
|
||||||
forceheight?: ViewportLength<"rem">;
|
forceheight?: ViewportLength<"rem">;
|
||||||
}>(),
|
}>();
|
||||||
{ color: "pink", darkcolor: "#c88994", clearstyles: false }
|
|
||||||
);
|
|
||||||
|
|
||||||
const padding = props.clearstyles ? "0" : "1rem";
|
const padding = clearstyles ? "0" : "1rem";
|
||||||
const height = props.forceheight ?? "100%";
|
const height = props.forceheight ?? "100%";
|
||||||
|
|
||||||
// v-bind DOES NOT WORK on initial render
|
// v-bind DOES NOT WORK on initial render
|
||||||
@ -23,17 +25,13 @@ const height = props.forceheight ?? "100%";
|
|||||||
const cssVars = {
|
const cssVars = {
|
||||||
"--padding": padding,
|
"--padding": padding,
|
||||||
"--height": height,
|
"--height": height,
|
||||||
"--color": props.color,
|
"--color": color,
|
||||||
"--darkcolor": props.darkcolor,
|
"--darkcolor": darkcolor,
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<a
|
<a class="no-underline inline-block flex flex-col items-stretch" :href :id>
|
||||||
class="no-underline inline-block flex flex-col items-stretch"
|
|
||||||
:href="href"
|
|
||||||
:id="id"
|
|
||||||
>
|
|
||||||
<div class="container box" :style="cssVars">
|
<div class="container box" :style="cssVars">
|
||||||
<p class="m-0 w-full title">{{ title }}</p>
|
<p class="m-0 w-full title">{{ title }}</p>
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import ColourPicker from "./ColourPicker.vue";
|
import ColourPicker from "./ColourPicker.vue";
|
||||||
import { navItems } from "@/data/navItems";
|
import { navItems } from "@/data/navItems";
|
||||||
|
|
||||||
const props = defineProps<{ activeItem?: string }>();
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -85,9 +83,15 @@ li.home-text {
|
|||||||
* {
|
* {
|
||||||
--trans: 0.2s ease;
|
--trans: 0.2s ease;
|
||||||
--box-trans-time: 0.4s;
|
--box-trans-time: 0.4s;
|
||||||
transition: opacity var(--trans), transform var(--trans), gap var(--trans),
|
transition:
|
||||||
width var(--trans), box-shadow var(--box-trans-time) ease,
|
opacity var(--trans),
|
||||||
filter var(--trans), padding-left var(--trans), padding-right var(--trans);
|
transform var(--trans),
|
||||||
|
gap var(--trans),
|
||||||
|
width var(--trans),
|
||||||
|
box-shadow var(--box-trans-time) ease,
|
||||||
|
filter var(--trans),
|
||||||
|
padding-left var(--trans),
|
||||||
|
padding-right var(--trans);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 600px) {
|
@media screen and (max-width: 600px) {
|
||||||
|
@ -4,15 +4,15 @@ import { calcReadingTime } from "@/shared/metadata";
|
|||||||
import { SpecialTags } from "@/data/specialTags";
|
import { SpecialTags } from "@/data/specialTags";
|
||||||
import IconStar from "@/assets/images/star.svg?component";
|
import IconStar from "@/assets/images/star.svg?component";
|
||||||
|
|
||||||
const props = defineProps<{
|
const { post, type } = defineProps<{
|
||||||
post: AnyParsedContent;
|
post: AnyParsedContent;
|
||||||
type: "stories" | "blog";
|
type: "stories" | "blog";
|
||||||
highlighttags?: string[];
|
highlighttags?: string[];
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const readingTime = calcReadingTime(props.post);
|
const readingTime = calcReadingTime(post);
|
||||||
const descText =
|
const descText =
|
||||||
props.type === "stories"
|
type === "stories"
|
||||||
? `${readingTime.words.total} words`
|
? `${readingTime.words.total} words`
|
||||||
: `${readingTime.minutes} min read`;
|
: `${readingTime.minutes} min read`;
|
||||||
</script>
|
</script>
|
||||||
@ -22,10 +22,7 @@ const descText =
|
|||||||
class="break-words max-w-full rounded-lg p-4 shadow-md border border-2 border-gray-300 dark:border-gray-600"
|
class="break-words max-w-full rounded-lg p-4 shadow-md border border-2 border-gray-300 dark:border-gray-600"
|
||||||
>
|
>
|
||||||
<h3 class="m-0 flex items-center gap-1.5">
|
<h3 class="m-0 flex items-center gap-1.5">
|
||||||
<a
|
<a :href="`/tags/${type}/featured`" v-if="post.tags.includes('featured')">
|
||||||
:href="`/tags/${props.type}/featured`"
|
|
||||||
v-if="post.tags.includes('featured')"
|
|
||||||
>
|
|
||||||
<IconStar class="fill-yellow-500 outline-none" />
|
<IconStar class="fill-yellow-500 outline-none" />
|
||||||
</a>
|
</a>
|
||||||
<a
|
<a
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { Project } from "@/data/projects";
|
import type { Project } from "@/data/projects";
|
||||||
import { unref as _unref } from "vue";
|
import { unref as _unref } from "vue";
|
||||||
const props = defineProps<{
|
const { project } = defineProps<{
|
||||||
project: Project;
|
project: Project;
|
||||||
reverse?: boolean;
|
reverse?: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const imgUrl = props.project.img
|
const imgUrl = project.img ? `url(/images/projects/${project.img})` : "none";
|
||||||
? `url(/images/projects/${props.project.img})`
|
|
||||||
: "none";
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
const props = defineProps<{
|
const { img } = defineProps<{
|
||||||
name: string;
|
name: string;
|
||||||
href: string;
|
href: string;
|
||||||
img: string;
|
img: string;
|
||||||
@ -7,7 +7,7 @@ const props = defineProps<{
|
|||||||
broken?: boolean;
|
broken?: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const imgUrl = `/images/services/${props.img}`;
|
const imgUrl = `/images/services/${img}`;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -17,7 +17,7 @@ const imgUrl = `/images/services/${props.img}`;
|
|||||||
>
|
>
|
||||||
<div class="card flex flex-col items-center justify-around">
|
<div class="card flex flex-col items-center justify-around">
|
||||||
<img class="m-0" :src="imgUrl" :alt="`${name} logo`" />
|
<img class="m-0" :src="imgUrl" :alt="`${name} logo`" />
|
||||||
<h3 class="m-0">{{ props.name }}</h3>
|
<h3 class="m-0">{{ name }}</h3>
|
||||||
<p class="desc-text text-gray-600 dark:text-gray-200"><slot /></p>
|
<p class="desc-text text-gray-600 dark:text-gray-200"><slot /></p>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
const props = defineProps<{
|
const { highlight } = defineProps<{
|
||||||
name: string;
|
name: string;
|
||||||
dest: string;
|
dest: string;
|
||||||
highlight?: boolean;
|
highlight?: boolean;
|
||||||
@ -8,20 +8,18 @@ const props = defineProps<{
|
|||||||
// const isLinkableTag = !props.name.includes(" ");
|
// const isLinkableTag = !props.name.includes(" ");
|
||||||
const isLinkableTag = true;
|
const isLinkableTag = true;
|
||||||
const tagClass = [
|
const tagClass = [
|
||||||
"inline-block text-xs rounded-lg py-1 px-2 mt-1 mr-1 transition border border-pink-200 dark:border-pink-900 border-2 font-medium",
|
"inline-block text-xs rounded-lg py-1 px-2 mt-1 mr-1 transition border border-pink-200 dark:border-pink-900 border-2 font-medium no-underline",
|
||||||
{ "bg-pink-200 dark:bg-pink-900": props.highlight },
|
{ "bg-pink-200 dark:bg-pink-900": highlight },
|
||||||
{ "shadow-md": isLinkableTag },
|
{ "shadow-md": isLinkableTag },
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<a :href="dest" v-if="isLinkableTag">
|
|
||||||
<div :class="tagClass">
|
<div :class="tagClass">
|
||||||
|
<a :href="dest" v-if="isLinkableTag">
|
||||||
{{ name }}
|
{{ name }}
|
||||||
</div>
|
|
||||||
</a>
|
</a>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div :class="tagClass">
|
|
||||||
{{ name }}
|
{{ name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
const props = withDefaults(defineProps<{ src: string; alt?: string }>(), {
|
const { src, alt = "" } = defineProps<{ src: string; alt?: string }>();
|
||||||
alt: "",
|
|
||||||
});
|
|
||||||
|
|
||||||
const src = props.src;
|
|
||||||
const imgSrc =
|
const imgSrc =
|
||||||
src.startsWith("http://") || src.startsWith("https://")
|
src.startsWith("http://") || src.startsWith("https://")
|
||||||
? src
|
? src
|
||||||
|
67
content/stories/nanowrimo/excerpts-2021.md
Normal file
67
content/stories/nanowrimo/excerpts-2021.md
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
title: "Selected Excerpts from NaNoWriMo 2021"
|
||||||
|
date: 2024-09-23
|
||||||
|
tags:
|
||||||
|
- nanowrimo
|
||||||
|
- featured
|
||||||
|
---
|
||||||
|
|
||||||
|
You're lucky he hasn't spotted you, otherwise you might've had to talk to the man in the moustache. It's not that you're intimidated by his moustache, but adults — probably Mesa's father — are just hard to talk to. Especially if they have a glorious moustache like that. You rub the skin above your upper lip longingly. Only the tiniest of hairs there.
|
||||||
|
|
||||||
|
<!-- more -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
You nod politely in return, standing up straight to make use of your 162 (nearly 163) centimetres of height as best as possible.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
How educated this man must be, to have such an open mind that he would even read the truth! And what courage to hide the forbidden book in such a copy!
|
||||||
|
|
||||||
|
Your respect for his moustache increases tenfold.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Chopsticks? Your eyes search for but fail to find a spoon, let alone a fork or knife. The two Baccaloreans in front of you are nomming away contentedly. Savan glances up first but returns to eating, your acting skills easily passing off your ignorance of the useless and convoluted sticks as genuine admiration of the dish.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Of course something is wrong, you're going to make a fool of yourself by not knowing how to use two sticks to pick up food! What's the point of sticks over straight-up using your own hands? At least refined utensils like the spoon provide extra functionality that you weren't naturally born with. How is he picking up that rice with those things!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Both of their eyes are on you now as you reach for the chopsticks. You can't lose face now. The handbook on Baccalorean included a section on using chopsticks, but you've never had any practical experience with them. You check that you're picking up the right side — why are they also unidirectional — and clutch them with your left hand, then deftly moving them so that they become clamped between your right thumb and index finger.
|
||||||
|
|
||||||
|
Success!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Ah. You'd forgotten he was asking for your opinion for the salmon. As your eyes flick to the block, your mind runs through calculations in the fraction of a second it takes for them to get there. _The salmon block is too big to fit in your mouth. Your chopsticks wouldn't be able to grip a block of that size, anyway. There is no way you can orient the block or your chopsticks to change the above two facts._
|
||||||
|
|
||||||
|
It's impossible. You have only one option.
|
||||||
|
|
||||||
|
You subtly stare at Mesa's chopsticks as they squeeze around her salmon block, forcing it into two, then elegantly twist to surround the smaller chunk and raise it to her mouth. It may be a technique you will never master.
|
||||||
|
|
||||||
|
But it will be enough for the current situation. Your chopsticks descend once more to your plate, squeezing the salmon pip until it nearly bursts, several tiny pieces that you are certain you will not be able to recover falling to your plate. A small sacrifice for the greater good. The chopsticks raise once more, this time precariously balancing a mutilated piece of salmon between their tips.
|
||||||
|
|
||||||
|
And they slide perfectly into your mouth, securing your prize once and for all, thereby ending the chopstick saga forever.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
You keep your praise minimal so as not to inflate Savan's ego and to keep him humble.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"A _benevolent_ dictatorship," Savan corrects you. "Our goddess has a moderating effect on society so that no one gets into really heated debates because she's the ultimate mediator. She prevents problems before they get worse. That's compared to Constu, where you guys break things halfway through and revert to normalcy."
|
||||||
|
|
||||||
|
"Nonsense. We call that 'agile' development. It's the fastest way of finding out which things stick and which don't. My teachers always said that taking risks is an important life skill to have. Your goddess never takes risks and so you guys are all stuck in your small little bubble of stagnation."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Hey, kid!"
|
||||||
|
|
||||||
|
You keep walking. They must be talking about someone else. Not only are you _not_ a child, you're doing very well collecting strawberries and nothing anyone can say is going to change your mind.
|
||||||
|
|
||||||
|
"Kid standing up with the funky hair!"
|
||||||
|
|
||||||
|
You whirl around to face the perpetrator of the grave insult, sending your sharpest glare his way. _"Excuse me?"_ Your hair is immaculately styled, not _funky_.
|
227
content/stories/nanowrimo/excerpts-2022.md
Normal file
227
content/stories/nanowrimo/excerpts-2022.md
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
---
|
||||||
|
title: "Selected Excerpts from NaNoWriMo 2022"
|
||||||
|
date: 2024-09-24
|
||||||
|
tags:
|
||||||
|
- nanowrimo
|
||||||
|
- featured
|
||||||
|
---
|
||||||
|
|
||||||
|
Ganyu frowns as she pulls out a black leather straitjacket out of one of Yanfei's boxes. "Hey, Yanfei?" She holds it out in front of her. "What's this for?"
|
||||||
|
|
||||||
|
Yanfei looks up from organising her hats on the shelf. "What do you mean? Obviously, you wear it…?" Her expression is puzzled.
|
||||||
|
|
||||||
|
There's a small pause before the reply. "Never mind…"
|
||||||
|
|
||||||
|
<!-- more -->
|
||||||
|
|
||||||
|
Xiao stifles a snort. "That's right, Ganyu. Use your imagination. What else could you possibly use it for?" The straitjacket flies toward his face. Chuckling, he catches it and tosses it back at Ganyu.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Uh oh, Xiao. You might want to reconsider biting into Jolly Ranchers around Yanfei," she teases. "She'll roast you on a spit."
|
||||||
|
|
||||||
|
Yanfei laughs while pinning pictures to the board on her closet. "The gummies get stuck on your teeth\! But imagine chewing a hard — wait." Her eyes narrow as her expression suddenly stills. "You meant the soft ones, right?"
|
||||||
|
|
||||||
|
Xiao looks away and proceeds to hang up a Drake poster.
|
||||||
|
|
||||||
|
_"You meant the soft ones, right?"_
|
||||||
|
|
||||||
|
"It's like a nutcracker going off every few seconds," Ganyu supplies.
|
||||||
|
|
||||||
|
Yanfei stares at Xiao, who is decidedly not looking at her. "How have your teeth not fallen out?"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Nope. University math is not real math. There are no numbers."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_"Pink team\!"_ The sudden shout startles them, and they turn to see a man in a pink rabbit suit holding a megaphone. Yanfei's jaw drops. She's amazed she missed him in the first place. The chatter in their team stops. "Give me your attention\! Excellent. Now," he says authoritatively, pacing back and forth, "during this orientation, I am responsible for you. You will not like me. But you will _learn_. And you will understand, freshmen, that I speak for the university. From now on, you will only speak when spoken to. _Is that clear?"_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
The rabbit man's mouth twitches but makes no comment. "Now, we head to the opening presentation. Do not lose me, or you will be severely beaten."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Miko leans in, smirking. "Don't go around underestimating UTI, now," she winks. "You'll be in for quite a bit of pain if you do."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"With free food as motivation, who could lose?"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Yanfei blanches. "Uh…" She scooches back. "You do make…food."
|
||||||
|
|
||||||
|
"Does she?" Xingqiu mutters. Hu Tao chops him again. "Ow\!"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Where. Are. The. Vegetables?" He shudders. "I only saw _boiled carrots_."
|
||||||
|
|
||||||
|
They all look down at their plates. "There's napa in my _gyoza_," Shinobu says.
|
||||||
|
|
||||||
|
"Tofu has beans." Yanfei offers. "Those are vegetables, right?"
|
||||||
|
|
||||||
|
"What's a vegetable?" Hu Tao asks innocently.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Yanfei empties her own bowl. It soon fills up again to accommodate the recent group of refugees from her body. "It's not the tofu," she insists weakly, squeezing her eyes shut. "It's _never_ the tofu." Tofu wouldn't cause her physical pain to stand up. Tofu would embrace her and tell her everything's okay, that her stomach isn't the one cramping out and vomiting in the wrong direction, that the mouth on her other end isn't retching gravy and spitting all over the bowl of chocolate soup.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
It doesn't stop. A river is flowing through her body. She imagines all of the microbes going whitewater rafting to exit her system. Only the water is neither white nor water. And the raft has spikes on the outside, as if designed to cause her the most suffering possible.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
She's ascended to a higher plane, she feels. It's freeing — until her stomach brings her back to reality with a cheerful _mrrgle_ as if taunting her.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Why is there so much work\! I have. Three. Tests. Next. Monday."
|
||||||
|
|
||||||
|
"Yeah," Keqing nods. "It's always easiest the first two weeks." Ganyu elbows her. "Oh? I mean — it's really rough the first two weeks."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Ganyu chuckles, eyes unfocused. For some reason, Yanfei feels a sense of dread looming behind her — oh, that's just Xiao.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"That's too much, Keqing."
|
||||||
|
|
||||||
|
"Ganyu, I need it\!" Keqing wails. "Are you really going to deny your girlfriend the only thing she truly loves?"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Sorry, Yanfei. Kazuha's high again."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Sliding on her glasses, Ganyu reads the question aloud. "As _n_ approaches infinity, evaluate the limit of the *n*th root of the sine of pi over two _n_ times the sine of two pi over two _n_, all the way up to _n_ minus one pi over two _n_…" she murmurs. "Okay. What don't you get?"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"No, you messed up again here, I'm not sure how you got that. Five plus two isn't seven, it's… Oh. Wait, it is seven."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Xiao continues to watch television. "Yes. Yanfei helped. Your recipe is quite based — there's more left in the fridge for you."
|
||||||
|
|
||||||
|
Ganyu pauses. "Huh. Thanks. Nothing burned down, I hope?" She peeks around as if searching for scorch marks.
|
||||||
|
|
||||||
|
"No. Yanfei almost tried to grind the almonds with an egg beater though. That was cringe and unbased."
|
||||||
|
|
||||||
|
A few seconds pass in silence. Xiao looks up. "Ganyu?"
|
||||||
|
|
||||||
|
Ganyu stares at him with an expression of unbridled horror. "W-what happened to you?"
|
||||||
|
|
||||||
|
"Is there something that is sus? Yanfei taught me some common slang used by university students. That was very poggers of her."
|
||||||
|
|
||||||
|
A quiet _thump_ resounds as Ganyu sits down heavily on the nearest chair she can drag over. Eyes unfocused, she gazes into empty space. "No — just —" She abruptly gets up. "I'm going to talk to Yanfei."
|
||||||
|
|
||||||
|
"Kek-double-U," Xiao states.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Good decision," Yanfei nodded. "If you don't overflow on CRIT Rate, it's your best-in-slot in freeze teams. Second BiS in melt, too."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Evidently, the fish did not want to be a new member of Yanfei's family and splashed out of the chest right onto her face.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Yanfei nodded agreeably. "Yeah, Magikarp kinda sucks. The only thing it does is splash around. Magikarp," she declared, "you have disappointed me for the last time. By the power invested in me by myself, I sentence you…to exile\!"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
She shudders, imagining the explosion in her gut if she had to live off of dorm food. Then the state of the communal bathrooms for everyone who has to live off of dorm food.
|
||||||
|
|
||||||
|
Nope. She's _very_ glad to be living off-campus, actually.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
She can only imagine the level of flex Hu Tao has by having the ability to hand out _bubble tea_ to people who come over.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Yanfei's fake moustache falls off from how long her jaw has been stuck to the table. She pushes up her sunglasses, rubbing her eyes as if she can't believe what she's seeing.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"I mean, I totally get why," Hu Tao says dreamily. "Yun Jin's a real piece of eye candy. I just want to _bite_ into her pompoms\! It's too bad she doesn't lean that way."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Here in my apartment, we've just got this new blender, so don't mind Ganyu being vegetarian over there. But you know what I like a lot more than materialistic things?"
|
||||||
|
|
||||||
|
Yanfei points at the television. "Knowledge. And where else can you find more knowledge than in appreciating art?" She claps her hands. "So that's why we're gonna play Mario Kart\! I read in a book somewhere that competition nurtures the mind."
|
||||||
|
|
||||||
|
Hu Tao nods along like it all makes perfect sense. "So if I win, I get smarter?"
|
||||||
|
|
||||||
|
"Damn," Shinobu says. "We're all gonna be geniuses by the end of this. Except for Hu Tao."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
He knows her much better — she wouldn't get him something mortifying like a _Link body pillow_. Ganyu's box is smaller than Yanfei's, which is a strong sign that it doesn't contain a Link body pillow.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"I noticed that your Pikachu pyjamas were starting to wear out. You must have had them for _years_ now. So I got you another pair\!"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"By the way," Yanfei says as Xiao takes his very first bite, "we knew you didn't want something too unhealthy for breakfast, so we tried out spinach as the main ingredient this time. What do you think?"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
A girl and a boy sit in a Meet Fresh booth, its logo prominently displayed on the wall behind them. "Have a shaved ice," the girl whispers to the boy in the movie. "It's delicious. Made out of 100% fresh fruit. Just like me."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Yanfei averts her eyes until the subtitles stop saying \*\*SLURP SLURP SLURP\*\*.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Then don't you want to eat me out?" the girl says huskily, caressing his cheek. "Like you eat out Meet Fresh's watermelon shaved ice, only available here for $9.99?"
|
||||||
|
|
||||||
|
"But isn't that expensive?" The girl gives him a look of utmost concern like he's just said that he's about to die.
|
||||||
|
|
||||||
|
"Our love is worth it," he reassures her. "Just like how the taro red bean soup is worth the $5.99 at Meet Fresh." He pulls out the dish from behind him. It looks overly bright and shiny, almost exactly like the picture in the menu. "Wouldn't you like to try one?" The boy takes a sip, then holds it up to the girl, who lovingly meets his gaze as she eats the rest of the spoonful. Both of them sigh with joy in unison.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Instead of the usual beach boy masquerade, today Xiao's hairdo looks like Morax decided to play cat's cradle with it but got bored before he finished.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Welcome to the fourth meeting of the Debate Club. May we recognise that we are nothing but pawns to the great…Debate Club." She holds out a spiked metal bat to the skies.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Objection\!" Yanfei buzzes. "Chewbacca override."
|
||||||
|
|
||||||
|
"Sustained. Sumeru, please be aware that the club formally forbade use of the Chewbacca Defense effective the 21st of November."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Yanfei spreads her arms. "Respectfully, Fontaine requests that the opposing counsel consider the implications of curves on pancakes. In reality, the inherent lack of structure _inside_ the pancake must lead to highly undesirable flopping, just like Mondstadt's tiny pp when he sees one\!"
|
||||||
|
|
||||||
|
Chongyun slaps the table, standing up and pointing at Yanfei. "Objection\! Inadmissible evidence\! The counsel from Fontaine…has highly exaggerated the size…of my colleague's…" Xingqiu practically drags him back down beside him, mildly red.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"It's okay. It's not actually losing if you lose against Numeron."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"They are. For this question, you're supposed to apply IBP twice. See how you can rearrange it with _u_\-substitution to make negative _x_ squared with _e_ to the negative _x_? That leaves you with another integral of negative _e_ to the negative _x_ by two _x · dx_. Then by doing IBP again, you end up with this negative _e_ and a quadratic."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Is this really life, though? Dogs chasing their tails in circles over and over again?"
|
||||||
|
|
||||||
|
Yanfei nods firmly. "It is the very pinnacle of life. The epitome of all we strive for."
|
367
content/stories/nanowrimo/excerpts-2023.md
Normal file
367
content/stories/nanowrimo/excerpts-2023.md
Normal file
@ -0,0 +1,367 @@
|
|||||||
|
---
|
||||||
|
title: "Selected Excerpts from NaNoWriMo 2023"
|
||||||
|
date: 2024-09-25
|
||||||
|
tags:
|
||||||
|
- nanowrimo
|
||||||
|
- featured
|
||||||
|
---
|
||||||
|
|
||||||
|
My, little Peony must have such pain in his heart to so coldly shrug off an earnest request. Perhaps he suffered from childhood trauma in which his family was brutally murdered and thus he was forced to be independent, grew up much too fast, and now his heart is locked away, waiting for someone with a kind heart to bring him back to the world. But I digress.
|
||||||
|
|
||||||
|
<!-- more -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
A rather melancholic tune, if I do say so myself. If I were forced to speculate, I might say that he suffered through a traumatic in his adolescent years that closed him from the outside world. A troubled soul, lost and alone, dreaming of the golden years of his past\! But I digress.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Sialia, humans are fascinating characters. Oftentimes quite dim, but fascinating nonetheless. Simply because _you_ have the brain the size of an earthworm — don't chortle on me now — does not mean that my _dear, cherished_ grandson isn't intelligent enough to desire a broader perspective."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Don't give me that, young sir\! If your wings are sore already, you'll be stuck in Los Angeles for the winter\! And what sort of self-respecting bluebird would let themselves stay in _LA_? The place is for lazy, sheltered, never-had-to-work-a-single-day-in-their-life cocks, that's what it's for. I shan't let you do it, not while these old bones can still slap you out of the sky\!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Are you still sore? Yes? Stick a worm in it. Here. Some nutrition. _Properly_ prepared earthworm, not like that bland, processed feed I came back to last night. I had thought your mother would have properly taught you how to feed yourself.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Keep an eye on the blue car beast. Humans feed them stinky earth juice, and in return, they regurgitate the humans when the human feels like it's traveled far enough.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Observe. This is one of the many human education institutions. Humans are incredibly stupid, so unlike us bluebirds, in order to do anything, they have to attend years of classes simply to learn what they can and cannot eat. See? They can't even eat nuts. Truly, I pity the poor species.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
If there is one appendage to admire from the humans, I must say it has to be their nose. Not only can they smell far better than we can, it's so expressive when they wrinkle it so.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
What a wonderful girl. When she wants something, she takes it. Be like her when you grow up. She also understands what power she has, and makes full use of it. If you never show off your skills and abilities, you'll never attract a good mate. It's important that every single bird around you knows just how competent, how amazing, how fearsome you are. _Oh, David…_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
What's a little bloodshed between friends?
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
My, the poor girl must be suffering from whiplash more than the time I slammed into a car's windshield\!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"No, I can't\! Every time I even _think_ about being nice to that girl, I want to sock her so hard that her head springs back to knock both of us out so we don't have to interact. Please, Brooke. Be my Pamela shield."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
They call it The Spanking. When a student and a teacher hate each other very much,
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Lady, if your eyebrow lifts any higher, it might grow wings and migrate to Vancouver with us.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
When you grow up, dearest Archie, desire nothing but to survive, thrive, and bear children. You'll be happier that way.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
What is this nonsense? If you can back up anything you say by beating other birds up, you're right. Who's going to tell you otherwise? This isn't the first time I've heard this argument from humans. No wonder they bicker so uselessly among themselves so often and never get anything done.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Mind your wings — best not to get lost in the scent of Subway, lest you become addicted. Your great-grandfather was once a renowned human-watcher, but he strayed too close, too many times, and was Subway-ridden for the rest of his life. Couldn't fly a quarter mile away before his wings would lock up and he fell out of the sky.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Hm. Perhaps there is a flaw in this human. I do not believe that I have ever seen so many crosses.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
We do not poke fun at those unable to fly — we can only look down upon them, sympathise, and offer our condolences.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Get up, or I'll make you live in Los Angeles for a week\!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
I was once an engineer, you know. I was present at the founding gathering of the International Engineering Society. _Delicious_ seeds. Truly some of the best food I've ever had.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
So what if you've heard it three times? This is an important cultural milestone of our species' history\! You should listen to it at least ten times\!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Perhaps I chose a flawed human. I do not believe that they are supposed to sprint across the middle of the road quite like that. Or be struck by their car companions like that.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Personally, I must interject to say that carrots are an abomination. Along with potatoes. No fruit, and you have to pull them out of the ground to eat them. And what do you get for all that effort? A bloody chore of a food, that's what you get\! Disgusting, starchy, barely juicy things, those are. Humans are a truly a different breed, they are. I'll forgive the child just this once for this transgression.
|
||||||
|
|
||||||
|
Bah. Mind your tongue. Simply because you hold objectively incorrect opinions close to your heart does not mean that you can spout off such nonsense in front of civilised birds such as myself. Didn't your father tell you to respect your elders? Be grateful that I refrain from using strong language in front of underage birds.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
One of the any churches in the world. Legend has it that some idiot human strapped himself to the cross and got killed.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
No, Elizabeth, snap yourself out of it\! Remember the vomiting. Remember the vomiting. Yes. Ahh…
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
What kind of stupid, arrogant, _deranged_ bird would voluntarily come to _Los Angeles_?
|
||||||
|
|
||||||
|
Oh, my. Ahem. What I mean to ask was — what kind of strong, dashing, chiselled, courageous, alluring, scarred-backstory bird would voluntarily come to _Los Angeles?_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Liz, I swear, the next chance I get, I am going to take the gleeful, probably cancerous prick growing out of your head and ram it up your —"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"I still cannot believe that you're here because you wanted to check out a hot bird."
|
||||||
|
|
||||||
|
I very explicitly _did not_ say that, Sialia. Stop putting words into my beak.
|
||||||
|
|
||||||
|
"Right. How did you put it? 'The most incredible bird you've seen in years. His physique, his manner, his scars'? I can't possibly imagine how that could be construed as something even remotely romantic. No, not at all."
|
||||||
|
|
||||||
|
Your harsh words wound me. Still so sarcastic.
|
||||||
|
|
||||||
|
"She calls me harsh\! Archie, who do you think is harsher? Me or your grandmother? It's okay if you say me. Liz is completely harmless."
|
||||||
|
|
||||||
|
What did you say? Are you calling me _old?_
|
||||||
|
|
||||||
|
"Aren't I?"
|
||||||
|
|
||||||
|
Why, Sialia, if I weren't so generous, I would have your head pinned to the ground under my claw until you begged for mercy.
|
||||||
|
|
||||||
|
"Aw, thanks\! I have to say — you have better lines this time. If you want to get this William Swainson —"
|
||||||
|
|
||||||
|
That's William _John_ Swainson to you.
|
||||||
|
|
||||||
|
"— this William _John_ Swainson — between your legs, you have to try a little harder than _that_."
|
||||||
|
|
||||||
|
I have _years_ of experience, Sialia. I'm not a fledgling anymore.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Don't be so picky, child. Eat it. You heard Sialia. She'll be very much heartbroken if you don't try it, you know? She'll fall over, bawling her eyes out to the world, body wracked with sobs at the sheer offense brought to her by one small bluebird named Archie. But I digress.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Ah, young love. The boy and the girl look so happy together. You know, child, that in my youth, I was _hounded_ by men for who they thought I was? It is wonderful to see that today's human youth have moved on past such frivolities. To my knowledge, it is still an ongoing issue with us. If the boy and the girl were bluebirds, they would treat every interaction like a transaction, until they realise that it isn't worth being so on guard to every single person around them and decide to love each other unconditionally.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
I have seen humans gleefully _stab_ each other simply because of infatuation, just like bluebirds. Literally _every single_ couple in human society has major issues that prevent them from being a perfectly functional unit. Every single one.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Ice cream is another food that will kill you. No matter how much sugar you detect, it's poison\! All poison. Humans should be ashamed, leaving out bait for good, honest birds to consume. And it's not like they eat them either\! We simply die for nothing. How incredibly rude.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"It exists. Therefore it's wrong. And because you're defending it, it must be wrong. See how everything logically ties in together so neatly?"
|
||||||
|
|
||||||
|
"I'm gonna throw you off the hill."
|
||||||
|
|
||||||
|
"With your noodle arms? Fat chance."
|
||||||
|
|
||||||
|
"These noodle arms picked up your skinny ass once before, Jeremy."
|
||||||
|
|
||||||
|
What did I tell you, Sialia? They're already threatening violence. We just skip the discussion bit and go straight to the violencing. Another way how birds are significantly more efficient than humans.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Every human relationship ends up like this eventually. They argue back and forth with each other until one of them breaks.
|
||||||
|
|
||||||
|
"Archie, don't listen to your grandmother. She doesn't understand a bit of friendly ribbing. Banter, if you will."
|
||||||
|
|
||||||
|
_Banter?_ You call this _banter?_ No wonder you don't have a partner, Sialia. If you consider this "friendly ribbing", I shudder to imagine what you must consider verbal abuse.
|
||||||
|
|
||||||
|
"Have you listened to yourself recently?"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Just one question. Did it hurt?"
|
||||||
|
|
||||||
|
"What do you mean, sir?"
|
||||||
|
|
||||||
|
"When you fell…"
|
||||||
|
|
||||||
|
"I didn't fall?" An important lesson to you, child. Although the girl has a blissfully unaware expression on her face, you must hone your instinct to realise that we are moments before disaster. Sialia, if you don't let me leave, I will hide ants in your nest.
|
||||||
|
|
||||||
|
"…from heaven."
|
||||||
|
|
||||||
|
I'm going to vomit. Let me vomit, Sialia. You can't tell me what to do. I don't care how much seed will pour out of my beak. I cannot spend one more minute listening to this sappy nonsense.
|
||||||
|
|
||||||
|
"Uh, it's a metaphor. It means you're beautiful. Are you an angel?"
|
||||||
|
|
||||||
|
"…No. Thank you. Will that be all?"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Yeah, you'd like that, wouldn't you? You dirty, dirty freak."
|
||||||
|
|
||||||
|
"Yes, I'm your dirty, _dirty_ freak\! I want it so, so much."
|
||||||
|
|
||||||
|
"Now get on your knees. The handcuffs stay on. That's an _order_."
|
||||||
|
|
||||||
|
"Ha… Yes, yes, of course\!"
|
||||||
|
|
||||||
|
"Did I say you could talk back to me?"
|
||||||
|
|
||||||
|
See? Now _this_ is proper flirting. Mind the whip. At this range, it could clip your wing off. If I were a human, I'd marry this human right now and here\!
|
||||||
|
|
||||||
|
What are you two looking at me like that for?
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Sorry about that. You must be tired."
|
||||||
|
|
||||||
|
"Yeah."
|
||||||
|
|
||||||
|
"After running around my head all day."
|
||||||
|
|
||||||
|
No, _do not smile, girl,_ what is wrong with you. I have had it with this couple\!
|
||||||
|
|
||||||
|
"That was terrible and you should feel terrible."
|
||||||
|
|
||||||
|
"Aw… But you love me anyway. You smiled\!"
|
||||||
|
|
||||||
|
"I did and I hate it. But I love you anyway."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Liz, sometimes I get the feeling that you're not listening to me."
|
||||||
|
|
||||||
|
Of course I do. When have I ever not acknowledged anything you've said?
|
||||||
|
|
||||||
|
"I mean, I feel like you never really consider it."
|
||||||
|
|
||||||
|
I consider everything from everyone at great length. I am always correct, after all. In order to be so correct, I must acquire any new information as fast as possible.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
If I hear that _inane_ word one more time, I might have to commit bodily assault on one of the humans here. Thank you, child, I do not need the earplugs.
|
||||||
|
|
||||||
|
"Dude\! You're so based. It's so fire, bro\!"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Rio, pass me the laptop\! To save the dragons, I've got to hack into the Nomekop mainframe and eliminate all traces of Aderyn before we land\!"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
I can only imagine the people at the ends of those sticks, poking and jabbing him in all the most sensitive places to make him squeal.
|
||||||
|
|
||||||
|
What do you mean, _you'd love that?_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Maybe I should get a new cardigan for myself. Just in time for spring. How about this purple-and-yellow polka dotted one?"
|
||||||
|
|
||||||
|
Gah\! My eyes\! The contrast is too great\! Yet I can't tear my eyes away. It is — it is _objectively_ offensive to the eyes.
|
||||||
|
|
||||||
|
"Gah\! My eyes\! That is the most _offensive_ cardigan I've ever seen. I didn't even know they could make them like that. You should get it."
|
||||||
|
|
||||||
|
"You think so? I think it'd be funny to stroll around in this. Change up the look a little."
|
||||||
|
|
||||||
|
"I agree\! You should totally buy it."
|
||||||
|
|
||||||
|
"Hang on, let me get someone else's opinion on it. Hold my stuff while I change?"
|
||||||
|
|
||||||
|
I see. She must remove her existing outer layer of clothes before putting on a new outer layer of clothes. Such a hassle that they even have a dedicated private room for it.
|
||||||
|
|
||||||
|
Oh my goodness. I cannot look at her. I think I might go blind. My eyes feel like they're flying into a glass sliding door over and over again. It's horrifying.
|
||||||
|
|
||||||
|
"Honestly? It's better than I thought. For some reason, it doesn't look nearly as offensive on you as it did alone. They won't run you out of the store for this or anything. I'm still going to pretend that I don't know you." Pardon me? Madam? Do you need to see an eye doctor? Perhaps acquire some glasses? Are we looking at the same shirt? Did your eyes perhaps lock themselves into place looking at her face and steadfastly ignoring every other part of the outfit for the sake of their sanity?
|
||||||
|
|
||||||
|
"Strange. Don't be a scaredy-cat, Shayla. I thought it was abominable. Come on. Excuse me? Hi." She's roped in a new poor woman. May Garuda have mercy on your eyes. "So sorry to bother you, but on a scale from one to ten, how offensive is this outfit?"
|
||||||
|
|
||||||
|
"One. No contest."
|
||||||
|
|
||||||
|
"One being least offensive."
|
||||||
|
|
||||||
|
"Yeah, still a one. I feel like I can barely see it. It's pretty hard to notice." Her eyes are locked onto Mira's face. No wonder it's difficult to notice. The sight is elicits such a visceral reaction that their eyes dedicate all of their power toward self-preservation.
|
||||||
|
|
||||||
|
Mira must not be able to see the full thing, so when she looks down at her cardigan and back up, she doesn't get the full effect.
|
||||||
|
|
||||||
|
"Huh. Thank you very much. Shayla, I think I want a third opinion. I think maybe both of you are gaslighting me or something."
|
||||||
|
|
||||||
|
"It's fine, Mira. How could we both be gaslighting you?"
|
||||||
|
|
||||||
|
"I don't think I saw either of you actually look at the cardigan. It kinda felt like you were staring directly in my eyes the whole time."
|
||||||
|
|
||||||
|
"No way."
|
||||||
|
|
||||||
|
"Let me find someone else who might have functioning eyes. Ah. Excuse me\!"
|
||||||
|
|
||||||
|
"Hello, yes? How may I help you — _good glory\!_ My _eyes,_ my _EYES\!_ Ma'am, I am so sorry, but my brain is restraining me from looking in your direction — it's the cardigan, I swear, not you personally."
|
||||||
|
|
||||||
|
I knew it\! Finally, my opinion validated. I was beginning to wonder if our superior inhuman eyesight was the only thing that let us recognise truly how ugly that cardigan was.
|
||||||
|
|
||||||
|
"Thank god\! I was about to believe my friend when she said that it looked fine. How could dull yellow polka dots work on a purple fabric?"
|
||||||
|
|
||||||
|
"Absolutely — wait. Was that from _here_?"
|
||||||
|
|
||||||
|
"You bet. Picked it up from the bunch of cardigans over there."
|
||||||
|
|
||||||
|
"Yeah, no. That is not okay, ma'am. Sorry, but — ahem. In my professional opinion, I would advise you remove that cardigan and let me take it to the incinerator."
|
||||||
|
|
||||||
|
Such a wise employee.
|
||||||
|
|
||||||
|
"I kinda wanna take it home, though. It gets really good reactions."
|
||||||
|
|
||||||
|
"Look, ma'am, if you want to take it home, I'm not going to stop you. But I hope you know what you're doing."
|
||||||
|
|
||||||
|
"Of _course_ I do. Right, Shayla? When have I ever not known what I was doing?"
|
||||||
|
|
||||||
|
"Shockingly, very few times."
|
||||||
|
|
||||||
|
"Exactly. So let's go check out. I still want to visit the market on Main Street going on this week\!"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
It's a classic\! A man and a woman meet in a bar. She comes here looking for a drink and an escape from her reality, but instead, she finds a man who, although he seems aloof, is actually the mask in front of a troubled soul who, after a great shift in his life, is trying to get his life back together.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
All of your problems are solved now that you've found a man\!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
I have seen _worms_ inching faster than these two progressing their relationship.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Look at the development. The progression. At this rate, they might even get together before I die.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
That sputter is reminiscent of the tractor that killed your Uncle Jordan.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Now, some mouth-to-mouth action — that's what we're here for. The way the human lips lock together…the way the heads move as one as hands scrabble for grip… Even an old bird such as I can tell how much passion there is in a good, long kiss\! If birds had lips, Marty would be blown away by how much love I'd make to him.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Let me show you how to use a carving knife…"
|
||||||
|
|
||||||
|
I wish he would show her how to carve out a future for them together instead.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
"Son, maybe the times are changing. And I respect that. But no matter what happens, never lose that fighting spirit. Can't fight the girls? Fine. There's still a good half of the population you can beat some sense into. Now, if they say that _fighting is bad_ and that _no one should do it_ or whatever? That's when you put your fist down and screw the rules. Let no one tell you what you can or can't do."
|
||||||
|
|
||||||
|
"I'll do my best, dad\!"
|
||||||
|
|
||||||
|
"I know you will, son. Make me proud. Nothing like a good fist to the noggin to help loosen any lips."
|
||||||
|
|
||||||
|
Wonderful parenting. _This_ I can get behind one hundred percent. I know I have a lot of negative things to say about humans, but in reality, they're so diverse that there are so many different viewpoints to learn from. There are some that are objectively wrong, some that are objectively right, and then most are in the middle. It's rather refreshing to have one's opinions validated every once in a while.
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: "A Triden(t) Against the World"
|
title: "A Triden(t) Against the World"
|
||||||
date: 2024-02-29
|
date: 2024-02-29
|
||||||
|
_draft: true
|
||||||
tags:
|
tags:
|
||||||
- shorts
|
- shorts
|
||||||
- "content warning: political fluff"
|
- "content warning: political fluff"
|
||||||
|
@ -2,6 +2,7 @@ import { defineNuxtConfig } from "nuxt/config";
|
|||||||
import svgLoader from "vite-svg-loader";
|
import svgLoader from "vite-svg-loader";
|
||||||
// https://v3.nuxtjs.org/api/configuration/nuxt.config
|
// https://v3.nuxtjs.org/api/configuration/nuxt.config
|
||||||
export default defineNuxtConfig({
|
export default defineNuxtConfig({
|
||||||
|
compatibilityDate: "2024-10-16",
|
||||||
app: {
|
app: {
|
||||||
head: {
|
head: {
|
||||||
htmlAttrs: {
|
htmlAttrs: {
|
||||||
@ -15,7 +16,7 @@ export default defineNuxtConfig({
|
|||||||
{ rel: "icon", type: "image/x-icon", href: "/favicon.ico" },
|
{ rel: "icon", type: "image/x-icon", href: "/favicon.ico" },
|
||||||
{
|
{
|
||||||
rel: "stylesheet",
|
rel: "stylesheet",
|
||||||
href: "https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css",
|
href: "https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
script: [
|
script: [
|
||||||
@ -55,6 +56,13 @@ export default defineNuxtConfig({
|
|||||||
},
|
},
|
||||||
vite: {
|
vite: {
|
||||||
plugins: [svgLoader()],
|
plugins: [svgLoader()],
|
||||||
|
css: {
|
||||||
|
preprocessorOptions: {
|
||||||
|
scss: {
|
||||||
|
api: "modern",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
content: {
|
content: {
|
||||||
documentDriven: false,
|
documentDriven: false,
|
||||||
|
24
package.json
24
package.json
@ -7,20 +7,20 @@
|
|||||||
"preview": "nuxt preview"
|
"preview": "nuxt preview"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@nuxt/content": "^2.12.0",
|
"@nuxt/content": "^2.13.4",
|
||||||
"@nuxtjs/color-mode": "^3.3.2",
|
"@nuxtjs/color-mode": "^3.5.1",
|
||||||
"@nuxtjs/sitemap": "^5.1.0",
|
"@nuxtjs/sitemap": "^6.1.2",
|
||||||
"@nuxtjs/tailwindcss": "^6.11.4",
|
"@nuxtjs/tailwindcss": "^6.12.1",
|
||||||
"@tailwindcss/typography": "^0.5.10",
|
"@tailwindcss/typography": "^0.5.15",
|
||||||
"@types/node": "^20.11.24",
|
"@types/node": "^22.7.5",
|
||||||
"dayjs": "^1.11.10",
|
"dayjs": "^1.11.13",
|
||||||
"nuxt": "3.10.3",
|
"nuxt": "3.13.2",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.3.3",
|
||||||
"reading-time": "^2.0.0-1",
|
"reading-time": "^2.0.0-1",
|
||||||
"rehype-katex": "^7.0.0",
|
"rehype-katex": "^7.0.1",
|
||||||
"remark-math": "^6.0.0",
|
"remark-math": "^6.0.0",
|
||||||
"sass": "^1.71.1",
|
"sass": "^1.79.5",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.6.3",
|
||||||
"vite-svg-loader": "^5.1.0"
|
"vite-svg-loader": "^5.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ const tags = new Set(
|
|||||||
<PostPreviewCard
|
<PostPreviewCard
|
||||||
v-for="(post, index) in docs"
|
v-for="(post, index) in docs"
|
||||||
:key="index"
|
:key="index"
|
||||||
:post="post"
|
:post
|
||||||
type="blog"
|
type="blog"
|
||||||
/>
|
/>
|
||||||
</main>
|
</main>
|
||||||
|
@ -34,7 +34,7 @@ useTitle(title + " Posts", details.description);
|
|||||||
<PostPreviewCard
|
<PostPreviewCard
|
||||||
v-for="(post, index) in docs"
|
v-for="(post, index) in docs"
|
||||||
:key="index"
|
:key="index"
|
||||||
:post="post"
|
:post
|
||||||
:highlighttags="[tag]"
|
:highlighttags="[tag]"
|
||||||
type="blog"
|
type="blog"
|
||||||
/>
|
/>
|
||||||
|
Loading…
Reference in New Issue
Block a user