Improve tagging and toki pona support
This commit is contained in:
parent
d4a9dc9dbc
commit
18e98cdb3b
89 changed files with 971 additions and 956 deletions
src
content
config.ts
games
stories
accommodation.mdaddictive-additions.mdannivoresary.mdbetter-in-bully-batter.mdbig-haul.mdbirdroom.mdbladder-filler.mdbottom-of-the-food-chain.mdbutting-into-their-plans.mddelicacy-s-dare.mdeggs-for-months.mdengaging-contacts.mdflavorful-favor.mdfor-the-night.mdgentle-and-cruel.mdhate-to-sea-it.mdhungry-for-love.mdhyper-hunger.mdinsistence-and-assistance.mdlactation-action.mdlatest-catch.mdnever-too-late.mdnoble-fire.mdoverzealous-zenko.mdpart-of-the-show.mdpet-sit-saturday.mdreaching-for-the-full-moon.mdruffling-some-feathers.mdspontaneous-sleepover.mdtaken-in.mdtasting-high-consequences.mdteam-building.mdteam-effort.mdthe-last-livestream.md
the-lost-of-the-marshes
bonus-1-quince-s-fantasy.mdchapter-1.mdchapter-10.mdchapter-11.mdchapter-2.mdchapter-3.mdchapter-4.mdchapter-5.mdchapter-6.mdchapter-7.mdchapter-8.mdchapter-9.md
tomo-moku.mdtrouble-sleeping.mdwarped-friendship.mdwithin-limits.mdyou-re-home.mdtag-categories
body-types.yamlgenders.yamlother-kinks.yamlrecurring-characters.yamlrelative-size.yamlsexual-content.yamltype-of-content.yamltypes-of-vore.yamlvore-related-scenarios.yamlwillingness.yaml
users
layouts
pages
|
@ -10,6 +10,7 @@ export const WEBSITE_LIST = [
|
|||
"twitter",
|
||||
"mastodon",
|
||||
"bluesky",
|
||||
"itaku",
|
||||
] as const;
|
||||
|
||||
const lang = z.enum(["eng", "tok"]).default("eng");
|
||||
|
@ -89,8 +90,19 @@ const usersCollection = defineCollection({
|
|||
}),
|
||||
});
|
||||
|
||||
const tagCategoriesCollection = defineCollection({
|
||||
type: "data",
|
||||
schema: z.object({
|
||||
// Required
|
||||
name: z.string(),
|
||||
index: z.number().int(),
|
||||
tags: z.array(z.union([z.string(), z.record(lang, z.string())])),
|
||||
}),
|
||||
});
|
||||
|
||||
export const collections = {
|
||||
stories: storiesCollection,
|
||||
games: gamesCollection,
|
||||
users: usersCollection,
|
||||
"tag-categories": tagCategoriesCollection,
|
||||
};
|
||||
|
|
|
@ -27,17 +27,15 @@ descriptionPlaintext: >
|
|||
A challenging physics-based fishing minigame with scaling difficulty;
|
||||
And a special cutscene...
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"male predator",
|
||||
"non-binary prey",
|
||||
"micro prey",
|
||||
"soul vore",
|
||||
"implied perma endo",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- willing predator
|
||||
- willing prey
|
||||
- male predator
|
||||
- non-binary prey
|
||||
- micro prey
|
||||
- soul vore
|
||||
- implied perma endo
|
||||
---
|
||||
|
||||
<iframe
|
||||
|
|
|
@ -11,20 +11,18 @@ description: |
|
|||
|
||||
First post of 2023. This was originally going to be another short in my latest compilation, but I felt that 1400 words didn't do it justice (especially with multiple scenes), so I ended up rewriting it!
|
||||
tags:
|
||||
[
|
||||
"anal vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"female predator",
|
||||
"male prey",
|
||||
"unwilling predator",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"willing prey",
|
||||
"size difference",
|
||||
"long-term endo",
|
||||
"straight sex",
|
||||
]
|
||||
- anal vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- female predator
|
||||
- male prey
|
||||
- unwilling predator
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- willing prey
|
||||
- size difference
|
||||
- long-term endo
|
||||
- straight sex
|
||||
---
|
||||
|
||||
The okapi woke up with that familiar weight on her. Cynthia rubbed her eyes and yawned before carefully lowering her hands onto the spherical dome on her body below her breasts, rubbing its sides. Not too forcefully, just enough to appreciate how good it felt on her...and to get ready and lift it, in order to get up.
|
||||
|
|
|
@ -11,26 +11,24 @@ description: |
|
|||
|
||||
My first commission ever, with a very unique and kinky scenario. This has been lovely to work on! I hope you enjoy it too.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anal vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"female prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"semi-willing prey",
|
||||
"similar size",
|
||||
"perma endo",
|
||||
"straight sex",
|
||||
"gay sex",
|
||||
"hyper",
|
||||
"netorare",
|
||||
"commission",
|
||||
]
|
||||
- oral vore
|
||||
- anal vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- female prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- semi-willing prey
|
||||
- similar size
|
||||
- perma endo
|
||||
- straight sex
|
||||
- gay sex
|
||||
- hyper
|
||||
- netorare
|
||||
- commission
|
||||
commissioner: scion
|
||||
copyrightedCharacters:
|
||||
"": scion
|
||||
|
|
|
@ -9,17 +9,15 @@ thumbnail: /src/assets/thumbnails/bm_3_annivoresary.png
|
|||
description: |
|
||||
Happy Vore Day! These two boyfriends certainly have been awaiting this date eagerly...
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"smaller predator",
|
||||
"BDSM",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- smaller predator
|
||||
- BDSM
|
||||
---
|
||||
|
||||
"Is this okay for you, hun?" The gray wolf asked. "They aren't too tight, are they?"
|
||||
|
|
|
@ -11,24 +11,23 @@ description: |
|
|||
|
||||
My second commission for Scion! This one is entirely dedicated to long-term cock vore, which I've never written at this scale before. Although I haven't ever written anything at this scale; this is my longest standalone story to date by far, because I went way overboard on descriptions. Enjoy!
|
||||
tags:
|
||||
[
|
||||
"cock vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"similar size",
|
||||
"perma endo",
|
||||
"straight sex",
|
||||
"gay sex",
|
||||
"masturbation",
|
||||
"hyper",
|
||||
"netorare",
|
||||
"commission",
|
||||
]
|
||||
- cock vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- similar size
|
||||
- perma endo
|
||||
- straight sex
|
||||
- gay sex
|
||||
- orgy
|
||||
- masturbation
|
||||
- hyper
|
||||
- netorare
|
||||
- commission
|
||||
commissioner: scion
|
||||
copyrightedCharacters:
|
||||
"": scion
|
||||
|
|
|
@ -9,20 +9,18 @@ thumbnail: /src/assets/thumbnails/bm_16_big_haul.png
|
|||
description: |
|
||||
Coming back empty-handed from his latest heist, a space pirate ends up getting his hands on an even better haul.
|
||||
tags:
|
||||
[
|
||||
"unbirth",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"trans male predator",
|
||||
"male prey",
|
||||
"semi-willing predator",
|
||||
"unwilling prey",
|
||||
"size difference",
|
||||
"long-term endo",
|
||||
"gay sex",
|
||||
"daddy play",
|
||||
]
|
||||
- unbirth
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- trans male predator
|
||||
- male prey
|
||||
- semi-willing predator
|
||||
- unwilling prey
|
||||
- size difference
|
||||
- long-term endo
|
||||
- gay sex
|
||||
- daddy play
|
||||
---
|
||||
|
||||
'RECALIBRATE PITCH. RECALIBRATE PITCH. RECALIBRATE ...'
|
||||
|
|
|
@ -9,7 +9,7 @@ thumbnail: /src/assets/thumbnails/bm_10_birdroom.png
|
|||
description: |
|
||||
Beetle finds an odd-shaped friend deep in his work, and does what he does best: be a messy distraction.
|
||||
|
||||
This silly short was inspired by [a wonderful commission](https://aryion.com/g4/view/893564) that I got from [Eli-Eternity](https://www.furaffinity.net/user/eli-eternity) and was supposed to go along with it, but this story doesn't even come close to doing it justice. Seriously, check out his piece if you haven't! It's turned out amazing, and he's done an incredible job, and I love it so much!
|
||||
This silly short was inspired by [a wonderful commission](https://booru.badmanners.xyz/index.php?q=post/view/4) that I got from [Eli-Eternity](https://www.furaffinity.net/user/eli-eternity) and was supposed to go along with it, but this story doesn't even come close to doing it justice. Seriously, check out his piece if you haven't! It's turned out amazing, and he's done an incredible job, and I love it so much!
|
||||
|
||||
Why are you still reading this instead of clicking the link above?!
|
||||
descriptionPlaintext: >
|
||||
|
@ -17,19 +17,17 @@ descriptionPlaintext: >
|
|||
|
||||
This silly short was inspired by a wonderful commission that I got from Eli-Eternity and was supposed to go along with it, but this story doesn't even come close to doing it justice. Seriously, check out his piece if you haven't! It's turned out amazing, and he's done an incredible job, and I love it so much!
|
||||
tags:
|
||||
[
|
||||
"Sam Brendan",
|
||||
"Beetle",
|
||||
"anal vore",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"similar size",
|
||||
"gay sex",
|
||||
]
|
||||
- Sam Brendan
|
||||
- Beetle
|
||||
- anal vore
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- similar size
|
||||
- gay sex
|
||||
copyrightedCharacters:
|
||||
Beetle: bad-manners
|
||||
"Sam Brendan": bad-manners
|
||||
|
|
|
@ -19,21 +19,19 @@ descriptionPlaintext: >
|
|||
|
||||
...In all seriousness, I wanted to do something more daring for a PoV story. With a dragon, instead of a generic anthro, this time. And not to mention bladder vore, which is also a first for me. I'll still stick to third person narration for most of my stories, but let me know if PoV is something that you want to see more of.
|
||||
tags:
|
||||
[
|
||||
"Beetle",
|
||||
"cock vore",
|
||||
"feral predator",
|
||||
"feral prey",
|
||||
"male predator",
|
||||
"ambiguous gender prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"bladder vore",
|
||||
"size difference",
|
||||
"long-term endo",
|
||||
"point of view",
|
||||
"flash fiction",
|
||||
]
|
||||
- Beetle
|
||||
- cock vore
|
||||
- feral predator
|
||||
- feral prey
|
||||
- male predator
|
||||
- ambiguous gender prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- bladder vore
|
||||
- size difference
|
||||
- long-term endo
|
||||
- point of view
|
||||
- flash fiction
|
||||
copyrightedCharacters:
|
||||
Beetle: bad-manners
|
||||
---
|
||||
|
|
|
@ -15,17 +15,15 @@ descriptionPlaintext: >
|
|||
|
||||
I know everyone is already thinking about October and Halloween, but I still have a Snektember addition to share! This story follows Muno the snake after the events of "Ruffling Some Feathers", although you don't need to read that story to enjoy this one.
|
||||
tags:
|
||||
[
|
||||
"Muno",
|
||||
"oral vore",
|
||||
"feral predator",
|
||||
"feral prey",
|
||||
"male predator",
|
||||
"ambiguous gender prey",
|
||||
"semi-willing predator",
|
||||
"semi-willing prey",
|
||||
"size difference",
|
||||
]
|
||||
- Muno
|
||||
- oral vore
|
||||
- feral predator
|
||||
- feral prey
|
||||
- male predator
|
||||
- ambiguous gender prey
|
||||
- semi-willing predator
|
||||
- semi-willing prey
|
||||
- size difference
|
||||
prev: ruffling-some-feathers
|
||||
copyrightedCharacters:
|
||||
Muno: bad-manners
|
||||
|
|
|
@ -11,18 +11,16 @@ description: |
|
|||
|
||||
First time explicitly using PoV in a story, with first person in this one. I did try writing in second person before, but couldn't really do it in a manner where I was satisfied with the result. Third person narration still feels more natural to me, but this was still a fun experiment.
|
||||
tags:
|
||||
[
|
||||
"anal vore",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"ambiguous gender prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"size difference",
|
||||
"point of view",
|
||||
"flash fiction",
|
||||
]
|
||||
- anal vore
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- ambiguous gender prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- size difference
|
||||
- point of view
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
"Hey! Glad you came!" From the kitchen, I could hear my roommate answering the door. "Make yourself comfortable."
|
||||
|
|
|
@ -15,18 +15,16 @@ descriptionPlaintext: >
|
|||
|
||||
I was inspired by a certain dragon's writings, and wanted to try my hand at a few messier themes! Check out destinyisbad1's gallery if you enjoy stories like this.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"feral prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"unwilling prey",
|
||||
"micro prey",
|
||||
"messy stomach",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- feral prey
|
||||
- male predator
|
||||
- male prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- unwilling prey
|
||||
- micro prey
|
||||
- messy stomach
|
||||
---
|
||||
|
||||
It was a beautiful morning in Mag Skeima, but frankly, why would it be any different in paradise? The sunless sky shone a wonderful blue over fluffy pink clouds, bringing light to the idyllic plains of the fairy lands. The sounds of a new day came from the critters of the grasslands, before the population's blathering was gradually added to the ambiance. Mag Skeima was inhabited by magical folk, some of which would travel between planes to visit the mortal world during the day, while others were perfectly content to spend every moment in this utopia.
|
||||
|
|
|
@ -9,19 +9,17 @@ thumbnail: /src/assets/thumbnails/bm_1_eggs_for_months.png
|
|||
description: |
|
||||
Avelia needs help with a curse, but things quickly take a weird turn. Egg shenanigans ensue.
|
||||
tags:
|
||||
[
|
||||
"sheath vore",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"female prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"size difference",
|
||||
"egg play",
|
||||
"dubcon",
|
||||
"straight sex",
|
||||
]
|
||||
- sheath vore
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- female prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- size difference
|
||||
- egg play
|
||||
- dubcon
|
||||
- straight sex
|
||||
---
|
||||
|
||||
Avelia woke up to realize that it was that time of the month again, which she hated. The anthro crow recognized the weight and discomfort in her enormous belly. It was filled with eggs, but not normal ones. Each one of them was unfertilized, had a very hard shell, and worst of all, was about as big as a cantaloupe. Having one of them would have been an awful burden to bear, but right now, with a huge belly staring back at her, she must have been carrying six or seven of them!
|
||||
|
|
|
@ -11,21 +11,19 @@ description: |
|
|||
|
||||
This story was not a request by anyone! No one asked for this story to exist! ...In all seriousness, I just wanted to do something extra, themed around Vore Day, to go along with the uploads of the raffle requests. Enjoy!
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"female predator",
|
||||
"female prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"semi-willing prey",
|
||||
"willing prey",
|
||||
"unbirth",
|
||||
"implied full tour",
|
||||
"lesbian sex",
|
||||
]
|
||||
- oral vore
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- female predator
|
||||
- female prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- semi-willing prey
|
||||
- willing prey
|
||||
- unbirth
|
||||
- implied full tour
|
||||
- lesbian sex
|
||||
---
|
||||
|
||||
Sally stared back at her phone, checking the message that she'd gotten a while ago. This was definitely the right address...but something else still bothered her.
|
||||
|
|
|
@ -9,33 +9,31 @@ thumbnail: /src/assets/thumbnails/bm_8_flavorful_favor.png
|
|||
description: |
|
||||
One, fearful and furry; one, formidable and feathery; and one, fired-up for the follow-up. A threesome fatefully forced into a fantastical face-to-face.
|
||||
|
||||
So many ideas that I want to write...! I just haven't found a lot of motivation to write as much as before. But I'm still working, and haven't gone anywhere. At least I finally managed to churn out this one, featuring Beetle, one of my OCs! You might recognize him from [one of the few things](https://aryion.com/g4/view/878971) I actually uploaded this last month. Quite a fun personality to play with, along with my sona Sam and another OC, Muno - someone might remember that last name from one of my previous stories. All of my characters featured in stories are fun really, with a few that I wanna revisit or new ones that I make for each new setting. Just wish I had a better writing rhythm to put all those ideas to life like I used to, though! Managing to finish this story is a start, I guess.
|
||||
So many ideas that I want to write...! I just haven't found a lot of motivation to write as much as before. But I'm still working, and haven't gone anywhere. At least I finally managed to churn out this one, featuring Beetle, one of my OCs! You might recognize him from [one of the few things](https://booru.badmanners.xyz/index.php?q=post/view/3) I actually uploaded this last month. Quite a fun personality to play with, along with my sona Sam and another OC, Muno - someone might remember that last name from one of my previous stories. All of my characters featured in stories are fun really, with a few that I wanna revisit or new ones that I make for each new setting. Just wish I had a better writing rhythm to put all those ideas to life like I used to, though! Managing to finish this story is a start, I guess.
|
||||
descriptionPlaintext: >
|
||||
One, fearful and furry; one, formidable and feathery; and one, fired-up for the follow-up. A threesome fatefully forced into a fantastical face-to-face.
|
||||
|
||||
So many ideas that I want to write...! I just haven't found a lot of motivation to write as much as before. But I'm still working, and haven't gone anywhere. At least I finally managed to churn out this one, featuring Beetle, one of my OCs! You might recognize him from one of the few things I actually uploaded this last month. Quite a fun personality to play with, along with my sona Sam and another OC, Muno - someone might remember that last name from one of my previous stories. All of my characters featured in stories are fun really, with a few that I wanna revisit or new ones that I make for each new setting. Just wish I had a better writing rhythm to put all those ideas to life like I used to, though! Managing to finish this story is a start, I guess.
|
||||
tags:
|
||||
[
|
||||
"Beetle",
|
||||
"oral vore",
|
||||
"cock vore",
|
||||
"unbirth",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"feral prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"female prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"size difference",
|
||||
"micro prey",
|
||||
"full tour",
|
||||
"prey transfer",
|
||||
"straight sex",
|
||||
"gay sex",
|
||||
]
|
||||
- Beetle
|
||||
- oral vore
|
||||
- cock vore
|
||||
- unbirth
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- feral prey
|
||||
- male predator
|
||||
- male prey
|
||||
- female prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- size difference
|
||||
- micro prey
|
||||
- full tour
|
||||
- prey transfer
|
||||
- straight sex
|
||||
- gay sex
|
||||
copyrightedCharacters:
|
||||
Beetle: bad-manners
|
||||
---
|
||||
|
|
|
@ -9,18 +9,16 @@ thumbnail: /src/assets/thumbnails/bm_ff_7_for_the_night.png
|
|||
description: |
|
||||
Sometimes, what a couple needs is a third-party to spice things up. And Brand will make sure that this night is unforgettable.
|
||||
tags:
|
||||
[
|
||||
"anal vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"female prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"same size",
|
||||
"straight sex",
|
||||
"flash fiction",
|
||||
]
|
||||
- anal vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- female prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- same size
|
||||
- straight sex
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
"Hmmm, yeah...!" Kente moaned as he thrust into Miru's lubed ass slowly, picking up pace. The pony had wanted to do anal with his same-species girlfriend for quite a while, but she also wanted to do it to him. However, he didn't want to be on the receiving end, so those conversations never got anywhere... Until Miru brought the idea of doing a threesome.
|
||||
|
|
|
@ -11,19 +11,17 @@ description: |
|
|||
|
||||
So... yeah, managed to get a Halloween story done in time! Despite the craziness that this month was, for personal reasons. The start of November should be rocky too (also for personal reasons), but hopefully I can get into a better upload rhythm than 'once a month'. Maybe.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"unwilling prey",
|
||||
"size difference",
|
||||
"regurgitation",
|
||||
"transformation",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- unwilling prey
|
||||
- size difference
|
||||
- regurgitation
|
||||
- transformation
|
||||
---
|
||||
|
||||
Jack smiled to himself while sitting on the couch. His paws ran over the short fur on his black belly, focusing on the bulge jutting out from the midriff. They were slow as to not stir the small lynx inside. The badger had swallowed the wild cat a few hours ago, and both of them knew that he would be perfectly safe within. It was the first time that Jack had swallowed Abdis – but not the first that either of them had experienced vore.
|
||||
|
|
|
@ -11,18 +11,16 @@ description: |
|
|||
|
||||
My initial notes for this one were simply "hatefuck but it's vore". No wonder this was the longest one to finish out of this batch... But hey, at least it was a good excuse to write some cetacean vore!
|
||||
tags:
|
||||
[
|
||||
"unbirth",
|
||||
"feral predator",
|
||||
"feral prey",
|
||||
"female predator",
|
||||
"male prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"size difference",
|
||||
"straight sex",
|
||||
"flash fiction",
|
||||
]
|
||||
- unbirth
|
||||
- feral predator
|
||||
- feral prey
|
||||
- female predator
|
||||
- male prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- size difference
|
||||
- straight sex
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
"Is it in yet?" The orca shouted to the smaller cetacean near her folds. Mara's tone was annoyed; the dolphin just hadn't been a good choice of a mate.
|
||||
|
|
|
@ -9,17 +9,15 @@ thumbnail: /src/assets/thumbnails/bm_7_hungry_for_love.png
|
|||
description: |
|
||||
Aloe has been bitten by the Valentine's Day bug, though her plans for some kinky fun go through an unforeseen change.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"female prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"size difference",
|
||||
"straight sex",
|
||||
]
|
||||
- oral vore
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- female prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- size difference
|
||||
- straight sex
|
||||
---
|
||||
|
||||
Finally, Aloe thought, she was home for Valentine's! The gray American badger didn't have anyone special to spend the night with, but that didn't mean that she didn't have any plans! Perusing her phone, she would book a 'predator' through a specialized escort app, HungryLuv, for some sexy, kinky fun. It was a shame that this service was not as cheap as she'd have liked, but Aloe was always excited to treat herself to some of the hottest fucks she had ever had before being swallowed alive...and then being let out safely, of course.
|
||||
|
|
|
@ -9,20 +9,18 @@ thumbnail: /src/assets/thumbnails/bm_ff_1_hyper_hunger.png
|
|||
description: |
|
||||
Fulfilling some hungers sometimes requires some additional, unwilling help.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"feral prey",
|
||||
"male predator",
|
||||
"ambiguous gender prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"size difference",
|
||||
"messy stomach",
|
||||
"hyper",
|
||||
"masturbation",
|
||||
"flash fiction",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- feral prey
|
||||
- male predator
|
||||
- ambiguous gender prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- size difference
|
||||
- messy stomach
|
||||
- hyper
|
||||
- masturbation
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
He was sitting down naked at the table, patting his large belly, looking at all of that food that would be filling it very soon. A massive roasted turkey, a plate full of mashed potatoes, a big bowl of hot green bean soup, and a string of smoked sausages... Staring at everything he'd gotten for himself only made him hungrier, and his hyper cock twitched in anticipation.
|
||||
|
|
|
@ -9,18 +9,16 @@ thumbnail: /src/assets/thumbnails/bm_ff_3_insistence_and_assistance.png
|
|||
description: |
|
||||
Some are predators, some are prey. And some want to keep things that way.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"semi-willing predator",
|
||||
"unwilling prey",
|
||||
"same size",
|
||||
"regurgitation",
|
||||
"flash fiction",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- semi-willing predator
|
||||
- unwilling prey
|
||||
- same size
|
||||
- regurgitation
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
"Yo, I'm home!" Cesar dropped his car key on the counter, announcing his arrival across the house to his brother Kevin. The two adult mice lived alone here. "Did you grab dinner or do I order something?" No response. He was probably in his room by now, playing that Super Slosh Bros. videogame alone or with one of his friends. Cesar walked over, knocked on the door, and called. "Bro...?" It sounded like someone was inside, but they didn't reply to him, so he cautiously turned the knob.
|
||||
|
|
|
@ -9,25 +9,23 @@ thumbnail: /src/assets/thumbnails/bm_ff_6_lactation_action.png
|
|||
description: |
|
||||
Amy doesn't shirk from her friend's shrinking plans, hoping to milk as much fun as possible.
|
||||
tags:
|
||||
[
|
||||
"nipple vore",
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"female predator",
|
||||
"male prey",
|
||||
"female prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"asleep prey",
|
||||
"micro prey",
|
||||
"prey transfer",
|
||||
"straight sex",
|
||||
"sizeplay",
|
||||
"flash fiction",
|
||||
]
|
||||
- nipple vore
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- female predator
|
||||
- male prey
|
||||
- female prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- asleep prey
|
||||
- micro prey
|
||||
- prey transfer
|
||||
- straight sex
|
||||
- sizeplay
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
The ferret looked at the couple, still skeptical. "Are you really sure this is safe?"
|
||||
|
|
|
@ -9,21 +9,19 @@ thumbnail: /src/assets/thumbnails/bm_ff_5_latest_catch.png
|
|||
description: |
|
||||
A predatory rabbit likes snakes...perhaps a bit too much.
|
||||
tags:
|
||||
[
|
||||
"cock vore",
|
||||
"anthro predator",
|
||||
"feral prey",
|
||||
"non-binary predator",
|
||||
"ambiguous gender prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"semi-willing predator",
|
||||
"willing prey",
|
||||
"size difference",
|
||||
"masturbation",
|
||||
"perma endo",
|
||||
"flash fiction",
|
||||
]
|
||||
- cock vore
|
||||
- anthro predator
|
||||
- feral prey
|
||||
- non-binary predator
|
||||
- ambiguous gender prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- semi-willing predator
|
||||
- willing prey
|
||||
- size difference
|
||||
- masturbation
|
||||
- perma endo
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
"Gotcha!" Rou celebrated their latest catch, holding the garter snake behind its head. The rust-red rabbit had set down a water plate in their backyard some time ago, and the slithering reptile was drinking from it when it was found by the lagomorph. It was thinner than his index finger and almost three feet long, the longest snake they had caught so far. Rou ran a finger over the black and yellow scales on its neck, and the wild animal was being calm about the whole situation, which was a good sign.
|
||||
|
|
|
@ -9,19 +9,17 @@ thumbnail: /src/assets/thumbnails/bm_ff_2_never_too_late.png
|
|||
description: |
|
||||
After a night full of fun, Mirembe tries to squeeze out the last pleasures she can.
|
||||
tags:
|
||||
[
|
||||
"cock vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"female prey",
|
||||
"asleep predator",
|
||||
"willing prey",
|
||||
"same size",
|
||||
"masturbation",
|
||||
"straight sex",
|
||||
"flash fiction",
|
||||
]
|
||||
- cock vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- female prey
|
||||
- asleep predator
|
||||
- willing prey
|
||||
- same size
|
||||
- masturbation
|
||||
- straight sex
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
"Bye, guys!" Mirembe bade as she closed the door of her apartment. The aardwolf was still naked, enjoying the orgy in her house until the very last. And with those last guests gone, she could call it a night. It was a lot of fun, but the rooms were obviously a mess now; she brushed it off as a problem for future-Mirembe.
|
||||
|
|
|
@ -11,17 +11,15 @@ description: |
|
|||
|
||||
I wasn't really sure if I wanted to finish this story, let alone post it, given the dark themes in this. But some friends convinced me that I still should share it anyway, so here it is, I guess. I'm posting a more uplifting story today as well, if you'd rather read that.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"willing predator",
|
||||
"semi-willing prey",
|
||||
"same size",
|
||||
"nudity",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- willing predator
|
||||
- semi-willing prey
|
||||
- same size
|
||||
- nudity
|
||||
---
|
||||
|
||||
"Here we are," Blume smiled back to his labrador companion. The lion's fangs nearly shone white in his smiling lips. "This is what I wanted to show you."
|
||||
|
|
|
@ -11,19 +11,17 @@ description: |
|
|||
|
||||
This story was a request for a raffle winner, as part of an anniversary raffle I held!
|
||||
tags:
|
||||
[
|
||||
"chest maw vore",
|
||||
"taur predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"trans male predator",
|
||||
"female prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"size difference",
|
||||
"perma endo",
|
||||
"request",
|
||||
]
|
||||
- chest maw vore
|
||||
- taur predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- trans male predator
|
||||
- female prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- size difference
|
||||
- perma endo
|
||||
- request
|
||||
requester: dee-lumeni
|
||||
copyrightedCharacters:
|
||||
Kuronosuke: dee-lumeni
|
||||
|
|
|
@ -9,25 +9,23 @@ thumbnail: /src/assets/thumbnails/bm_ff_14_part_of_the_show.png
|
|||
description: |
|
||||
You attend a show, unaware of how personal it can turn out...
|
||||
|
||||
This is a story based off of a YCH that I got from [Helkumurrr](https://www.furaffinity.net/user/helkumurrr) which [you should definitely check out](https://aryion.com/g4/view/902201). First piece with myself as pred, to complement my previous commission where I was prey – and also with a short (and hopefully fun) story to go along with it!
|
||||
This is a story based off of a YCH that I got from [Helkumurrr](https://www.furaffinity.net/user/helkumurrr) which [you should definitely check out](https://booru.badmanners.xyz/index.php?q=post/view/5). First piece with myself as pred, to complement my previous commission where I was prey – and also with a short (and hopefully fun) story to go along with it!
|
||||
descriptionPlaintext: >
|
||||
You attend a show, unaware of how personal it can turn out...
|
||||
|
||||
This is a story based off of a YCH that I got from Helkumurrr which you should definitely check out. First piece with myself as pred, to complement my previous commission where I was prey – and also with a short (and hopefully fun) story to go along with it!
|
||||
tags:
|
||||
[
|
||||
"Sam Brendan",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"ambiguous gender prey",
|
||||
"willing predator",
|
||||
"semi-willing prey",
|
||||
"oral vore",
|
||||
"same size",
|
||||
"point of view",
|
||||
"flash fiction",
|
||||
]
|
||||
- Sam Brendan
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- ambiguous gender prey
|
||||
- willing predator
|
||||
- semi-willing prey
|
||||
- oral vore
|
||||
- same size
|
||||
- point of view
|
||||
- flash fiction
|
||||
copyrightedCharacters:
|
||||
"Sam Brendan": bad-manners
|
||||
---
|
||||
|
|
|
@ -9,23 +9,21 @@ thumbnail: /src/assets/thumbnails/bm_2_pet_sit_saturday.png
|
|||
description: |
|
||||
It's Hepje's first time pet-sitting, and a huge zorgoia might be too much for the inexperienced anteater...
|
||||
tags:
|
||||
[
|
||||
"anal vore",
|
||||
"anthro predator",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"feral prey",
|
||||
"female predator",
|
||||
"female prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"willing prey",
|
||||
"same size",
|
||||
"object vore",
|
||||
"prey transfer",
|
||||
"masturbation",
|
||||
]
|
||||
- anal vore
|
||||
- anthro predator
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- feral prey
|
||||
- female predator
|
||||
- female prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- willing prey
|
||||
- same size
|
||||
- object vore
|
||||
- prey transfer
|
||||
- masturbation
|
||||
---
|
||||
|
||||
"You are now approaching your destination."
|
||||
|
|
|
@ -11,18 +11,17 @@ description: |
|
|||
|
||||
I've decided to start posting my short stories separately instead of doing compilations, but still bundle the uploads together. A bit more work to organize, but this should make it easier to find and read individual stories. Anyway! For this one, I wanted to take a fun trope from vore scenarios and flip it on its head. Though maybe I should've saved it for Halloween...
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"ambiguous gender prey",
|
||||
"multiple prey",
|
||||
"unwilling predator",
|
||||
"willing prey",
|
||||
"smaller predator",
|
||||
"flash fiction",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- ambiguous gender prey
|
||||
- multiple prey
|
||||
- unwilling predator
|
||||
- willing prey
|
||||
- smaller predator
|
||||
- role reversal
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
A lupine howl pierced the full moon night, reaching Mark's large ears. The rabbit had been sprinting away from its source, trying to increase his distance from that terrifying call. It was bad enough that he'd decided to walk through the creepy forest trail in the darkness of night, but stumbling upon a werewolf?! How could things get any worse...?
|
||||
|
|
|
@ -15,18 +15,16 @@ descriptionPlaintext: >
|
|||
|
||||
I'd created Muno for a different purpose, but since I wanted a story with snake prey, I thought, "why not just use him instead of making a new OC"? Also, I blame Mr.Arcaneus's artwork for putting me in a bird/snake mood!
|
||||
tags:
|
||||
[
|
||||
"Muno",
|
||||
"oral vore",
|
||||
"feral predator",
|
||||
"feral prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"willing predator",
|
||||
"semi-willing prey",
|
||||
"size difference",
|
||||
"flash fiction",
|
||||
]
|
||||
- Muno
|
||||
- oral vore
|
||||
- feral predator
|
||||
- feral prey
|
||||
- male predator
|
||||
- male prey
|
||||
- willing predator
|
||||
- semi-willing prey
|
||||
- size difference
|
||||
- flash fiction
|
||||
next: bottom-of-the-food-chain
|
||||
copyrightedCharacters:
|
||||
Muno: bad-manners
|
||||
|
|
|
@ -9,20 +9,18 @@ thumbnail: /src/assets/thumbnails/bm_ff_8_spontaneous_sleepover.png
|
|||
description: |
|
||||
Akene is tired after a long trip, and her new acquaintance is happy to provide a comfy bed - despite their mutual friend's protestations.
|
||||
tags:
|
||||
[
|
||||
"tail vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"female prey",
|
||||
"trans female prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"unwilling prey",
|
||||
"same size",
|
||||
"flash fiction",
|
||||
]
|
||||
- tail vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- female prey
|
||||
- trans female prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- unwilling prey
|
||||
- same size
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
Eulis couldn't contain her excitement. "I still can't believe you're here!" The pangolin took a bite off her burger, while grinning at the stoat sitting across the table. Akene was an online acquaintance of hers, and after years of only talking through a screen, she'd finally traveled all the way here for her vacation, to spend these next days with her friend, in the flesh.
|
||||
|
|
|
@ -9,18 +9,16 @@ thumbnail: /src/assets/thumbnails/bm_17_taken_in.png
|
|||
description: |
|
||||
A silly little story where I re-imagine my sona as a feral! It was a fun concept to play with. One more quick PoV story before I go back to the usual 3rd person narration style. I hope you still enjoy it!
|
||||
tags:
|
||||
[
|
||||
"Sam Brendan",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"ambiguous gender prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"oral vore",
|
||||
"full tour",
|
||||
"point of view",
|
||||
]
|
||||
- Sam Brendan
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- ambiguous gender prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- oral vore
|
||||
- full tour
|
||||
- point of view
|
||||
copyrightedCharacters:
|
||||
"Sam Brendan": bad-manners
|
||||
---
|
||||
|
|
|
@ -11,19 +11,17 @@ description: |
|
|||
|
||||
Not much to say about this one in particular. Just a fun and short-ish 4/20 story, 'cause why the hell not. Probably the quickest pace I've worked on for the writing stage, getting around 5600 words done in 2 days. My usual process for standalone stories like this one goes something along the lines of: premise > research > summary > writing > editing. The last step, editing, typically inflates the final word count by 5% as I add more clarification or last minute ideas to certain sections, that's why that number doesn't match the actual word count. Research also took about 2 days, which is probably too much for a short story, but when it takes that long, it's normally a sign that I was having too much fun coming up with ideas, which was definitely the case here! Anyway, I doubt this is interesting to anyone other than me, but this part of the description now feels sufficiently padded out, so I'll leave it at that.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"female predator",
|
||||
"female prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"similar size",
|
||||
"micro prey",
|
||||
"object vore",
|
||||
]
|
||||
- oral vore
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- female predator
|
||||
- female prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- similar size
|
||||
- micro prey
|
||||
- object vore
|
||||
---
|
||||
|
||||
Cabira returned home from the guild, having turned in her bounty for the day. It was a simple task, slaying those pestilent slimes... They were dangerous to farmers' crops and animals, but clobbering them with her mace once would disintegrate the invasive, mindless creatures. Maybe twice, for some of the big ones. After collecting their hearts and turning them in as proof of the deed, Cabira made it out of the guild with her reward, a small pouch jingling with coins. Though she was more interested in her plans for the night than the silver she'd gotten for the menial task, the smiling moth-dragon let her long and fluffy tail swish happily behind her wings while she walked to the inn.
|
||||
|
|
|
@ -15,24 +15,22 @@ descriptionPlaintext: >
|
|||
|
||||
This commission is a sequel to the raffle request, Team Effort!
|
||||
tags:
|
||||
[
|
||||
"cock vore",
|
||||
"anal vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"prey transfer",
|
||||
"same size",
|
||||
"long-term endo",
|
||||
"hyper",
|
||||
"inflation",
|
||||
"gay sex",
|
||||
"commission",
|
||||
]
|
||||
- cock vore
|
||||
- anal vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- prey transfer
|
||||
- same size
|
||||
- long-term endo
|
||||
- hyper
|
||||
- inflation
|
||||
- gay sex
|
||||
- commission
|
||||
commissioner: yolkmonkey
|
||||
copyrightedCharacters:
|
||||
Yolk: yolkmonkey
|
||||
|
|
|
@ -11,22 +11,20 @@ description: |
|
|||
|
||||
This story was a request for a raffle winner, as part of an anniversary raffle I held!
|
||||
tags:
|
||||
[
|
||||
"cock vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"multiple prey",
|
||||
"semi-willing predator",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"same size",
|
||||
"hyper",
|
||||
"inflation",
|
||||
"gay sex",
|
||||
"request",
|
||||
]
|
||||
- cock vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- multiple prey
|
||||
- semi-willing predator
|
||||
- willing predator
|
||||
- willing prey
|
||||
- same size
|
||||
- hyper
|
||||
- inflation
|
||||
- gay sex
|
||||
- request
|
||||
requester: yolkmonkey
|
||||
copyrightedCharacters:
|
||||
Yolk: yolkmonkey
|
||||
|
|
|
@ -9,19 +9,17 @@ thumbnail: /src/assets/thumbnails/bm_ff_4_the_last_livestream.png
|
|||
description: |
|
||||
Happy Vore Day! These two boyfriends certainly have been awaiting this date eagerly...
|
||||
tags:
|
||||
[
|
||||
"unbirth",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"female predator",
|
||||
"female prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"similar size",
|
||||
"masturbation",
|
||||
"lesbian sex",
|
||||
"flash fiction",
|
||||
]
|
||||
- unbirth
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- female predator
|
||||
- female prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- similar size
|
||||
- masturbation
|
||||
- lesbian sex
|
||||
- flash fiction
|
||||
---
|
||||
|
||||
The video started, and the fennec fox, wearing a portable light and camera on a band on her forehead, smiled in the webcam's live feed. "Hey, guys! Samba here. Glad to see we already have so many people in chat today, even though this is gonna be my last livestream here. No game today, we're gonna see how much we can break the 'ToS' before we get banned from the platform."
|
||||
|
|
|
@ -16,24 +16,22 @@ descriptionPlaintext: >
|
|||
|
||||
I had this idea while working on the next chapter, and wanted to try something a bit more experimental involving these characters. It's self-indulgent and loose canon, and something of a departure from my usual stories! I don't even know how to describe it... Well, whatever it is, it's certainly a mash of different thoughts and ideas that had been boiling in my head, and simmering them down into something legible was an interesting exercise. Hope it's an enjoyable read too!
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"feral prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"unwilling prey",
|
||||
"non-binary predator",
|
||||
"male predator",
|
||||
"non-binary prey",
|
||||
"male prey",
|
||||
"nested vore",
|
||||
"macro predator",
|
||||
"size difference",
|
||||
"transformation",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- feral prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- unwilling prey
|
||||
- non-binary predator
|
||||
- male predator
|
||||
- non-binary prey
|
||||
- male prey
|
||||
- nested vore
|
||||
- macro predator
|
||||
- size difference
|
||||
- transformation
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-4
|
||||
next: the-lost-of-the-marshes/chapter-5
|
||||
|
|
|
@ -10,16 +10,14 @@ thumbnail: /src/assets/thumbnails/tlotm_ch1.png
|
|||
description: |
|
||||
Hey! This is my first vore story, and the first story I've written in years. It's also the first chapter in a vore series, The Lost of the Marshes, focusing on non-fatal vore. I've always wanted to do a project like this and I finally decided to actually do it, so enjoy!
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"male predator",
|
||||
"non-binary prey",
|
||||
"macro predator",
|
||||
]
|
||||
- oral vore
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- male predator
|
||||
- non-binary prey
|
||||
- macro predator
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
next: the-lost-of-the-marshes/chapter-2
|
||||
summary: |
|
||||
|
|
|
@ -12,23 +12,21 @@ description: |
|
|||
|
||||
It has been almost one year since I've posted the first chapter of this story. And this has been, by far, the longest and most challenging one to write. In fact, it's been almost four months between the ninth chapter and this one! I've ended up rewriting this chapter multiple times until I was satisfied, which is the main reason why it took so long, and I'm proud to finally present this. And even after about 100k words that I've written for the entire story, there's still more to be told! Hopefully, the next chapter won't take as long to put out, so stay tuned!
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anal vore",
|
||||
"cock vore",
|
||||
"slit vore",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"female prey",
|
||||
"non-binary prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"macro predator",
|
||||
"gay sex",
|
||||
]
|
||||
- oral vore
|
||||
- anal vore
|
||||
- cock vore
|
||||
- slit vore
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- female prey
|
||||
- non-binary prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- macro predator
|
||||
- gay sex
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-9
|
||||
next: the-lost-of-the-marshes/chapter-11
|
||||
|
|
|
@ -10,23 +10,21 @@ thumbnail: /src/assets/thumbnails/tlotm_ch11.png
|
|||
description: |
|
||||
Given a respite from their pursuers while they stay in Saisa, the gang reflects on what they themselves seek to pursue.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"cock vore",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"female prey",
|
||||
"non-binary prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"macro predator",
|
||||
"size difference",
|
||||
"gay sex",
|
||||
"transformation",
|
||||
]
|
||||
- oral vore
|
||||
- cock vore
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- female prey
|
||||
- non-binary prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- macro predator
|
||||
- size difference
|
||||
- gay sex
|
||||
- transformation
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-10
|
||||
next: ~
|
||||
|
|
|
@ -12,19 +12,17 @@ description: |
|
|||
|
||||
If you are enjoying the story, there are a bunch of chapters coming after this, so stay tuned.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"semi-willing prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"non-binary prey",
|
||||
"macro predator",
|
||||
]
|
||||
- oral vore
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- semi-willing prey
|
||||
- male predator
|
||||
- male prey
|
||||
- non-binary prey
|
||||
- macro predator
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-1
|
||||
next: the-lost-of-the-marshes/chapter-3
|
||||
|
|
|
@ -12,21 +12,19 @@ description: |
|
|||
|
||||
This chapter was a lot more work than the previous two, and not only in terms of word count (around 11k instead of 7k), but also research, moving stuff around, reviewing, etc. That said, it was very fun to work on, and I hope you enjoy it too. Chapter 4 is next, and it will probably take some extra work (initially it was going to be a 2-parter, so there's a lot to condense), but it'll come along eventually.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"macro predator",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"male predator",
|
||||
"non-binary predator",
|
||||
"male prey",
|
||||
"non-binary prey",
|
||||
"size difference",
|
||||
"transformation",
|
||||
]
|
||||
- oral vore
|
||||
- macro predator
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- male predator
|
||||
- non-binary predator
|
||||
- male prey
|
||||
- non-binary prey
|
||||
- size difference
|
||||
- transformation
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-2
|
||||
next: the-lost-of-the-marshes/chapter-4
|
||||
|
|
|
@ -18,21 +18,19 @@ descriptionPlaintext: >
|
|||
|
||||
This chapter took a lot longer to churn out than any other so far. It was still a bunch of fun to write, but each chapter so far has been a lot more work than the last... So before chapter 5 comes out (and don't worry, it will – there are plenty more chapters with these three still planned!), I might put out a few separate standalone stories that focus more on "hot sauce" and less on world-building, just so I can have a more regular posting schedule.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"feral prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"male predator",
|
||||
"non-binary prey",
|
||||
"role reversal",
|
||||
"size difference",
|
||||
"nudity",
|
||||
"transformation",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- feral prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- male predator
|
||||
- non-binary prey
|
||||
- role reversal
|
||||
- size difference
|
||||
- nudity
|
||||
- transformation
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-3
|
||||
next: the-lost-of-the-marshes/chapter-5
|
||||
|
|
|
@ -18,17 +18,15 @@ descriptionPlaintext: >
|
|||
|
||||
This chapter turned out pretty heavy, both dialogue- and theme-wise... Regardless, I hope you enjoy it. I want to work on something short for the 8/8, and next will be chapter 6, which should hopefully be more positive and have more emphasis on vore.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"feral prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"female predator",
|
||||
"male prey",
|
||||
"size difference",
|
||||
"transformation",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- feral prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- female predator
|
||||
- male prey
|
||||
- size difference
|
||||
- transformation
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-4
|
||||
next: the-lost-of-the-marshes/chapter-6
|
||||
|
|
|
@ -12,23 +12,21 @@ description: |
|
|||
|
||||
Let's pretend that I didn't disappear for two months while I sorted my priorities... Anyway, I'm back with another chapter, and TLoTM now broke over 50k words, which boggles my mind honestly. Either way, I'm not nearly done with these characters, so as usual, expect more chapters... eventually.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"unbirth",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"feral prey",
|
||||
"female predator",
|
||||
"male prey",
|
||||
"non-binary prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"size difference",
|
||||
"masturbation",
|
||||
"gay sex",
|
||||
"transformation",
|
||||
]
|
||||
- oral vore
|
||||
- unbirth
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- feral prey
|
||||
- female predator
|
||||
- male prey
|
||||
- non-binary prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- size difference
|
||||
- masturbation
|
||||
- gay sex
|
||||
- transformation
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-5
|
||||
next: the-lost-of-the-marshes/chapter-7
|
||||
|
|
|
@ -12,26 +12,24 @@ description: |
|
|||
|
||||
If Nikili makes Quince cry one more time, I will slap him.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anal vore",
|
||||
"feral predator",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"feral prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"female prey",
|
||||
"non-binary prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"semi-willing predator",
|
||||
"willing prey",
|
||||
"macro predator",
|
||||
"size difference",
|
||||
"gay sex",
|
||||
"transformation",
|
||||
]
|
||||
- oral vore
|
||||
- anal vore
|
||||
- feral predator
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- feral prey
|
||||
- male predator
|
||||
- male prey
|
||||
- female prey
|
||||
- non-binary prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- semi-willing predator
|
||||
- willing prey
|
||||
- macro predator
|
||||
- size difference
|
||||
- gay sex
|
||||
- transformation
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-6
|
||||
next: the-lost-of-the-marshes/chapter-8
|
||||
|
|
|
@ -10,27 +10,25 @@ thumbnail: /src/assets/thumbnails/tlotm_ch8.png
|
|||
description: |
|
||||
Nurta is forced to confront the ghosts of her past, once and for all.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anal vore",
|
||||
"anthro predator",
|
||||
"feral predator",
|
||||
"anthro prey",
|
||||
"feral prey",
|
||||
"male predator",
|
||||
"female predator",
|
||||
"male prey",
|
||||
"non-binary prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"semi-willing predator",
|
||||
"semi-willing prey",
|
||||
"willing prey",
|
||||
"nested vore",
|
||||
"macro predator",
|
||||
"size difference",
|
||||
"transformation",
|
||||
]
|
||||
- oral vore
|
||||
- anal vore
|
||||
- anthro predator
|
||||
- feral predator
|
||||
- anthro prey
|
||||
- feral prey
|
||||
- male predator
|
||||
- female predator
|
||||
- male prey
|
||||
- non-binary prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- semi-willing predator
|
||||
- semi-willing prey
|
||||
- willing prey
|
||||
- nested vore
|
||||
- macro predator
|
||||
- size difference
|
||||
- transformation
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-7
|
||||
next: the-lost-of-the-marshes/chapter-9
|
||||
|
|
|
@ -10,23 +10,21 @@ thumbnail: /src/assets/thumbnails/tlotm_ch9.png
|
|||
description: |
|
||||
A whole week away from Kaati causes some uncertainties among the recluse trio.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"slit vore",
|
||||
"feral predator",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"non-binary prey",
|
||||
"multiple prey",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"macro predator",
|
||||
"size difference",
|
||||
"gay sex",
|
||||
"transformation",
|
||||
]
|
||||
- oral vore
|
||||
- slit vore
|
||||
- feral predator
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- non-binary prey
|
||||
- multiple prey
|
||||
- willing predator
|
||||
- willing prey
|
||||
- macro predator
|
||||
- size difference
|
||||
- gay sex
|
||||
- transformation
|
||||
series: { "The Lost of the Marshes": "/stories/the-lost-of-the-marshes" }
|
||||
prev: the-lost-of-the-marshes/chapter-8
|
||||
next: the-lost-of-the-marshes/chapter-10
|
||||
|
|
|
@ -11,16 +11,14 @@ description: |
|
|||
|
||||
mi pilin e ni: lipu ni li lipu pi moku musi nanpa wan kepeken toki pona. mi pali e lipu ni kepeken ala toki Inli tan seme? tan la, tenpo suno nanpa wan pi tenpo mun nanpa tu tu li lon. tenpo suno ni li musi. toki pona li musi kin. mi kepeken toki pona la, mi pilin musi! mi pali e lipu ni la, mi pilin pona. moku musi kepeken toki pona li musi!
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"ambiguous predator",
|
||||
"ambiguous prey",
|
||||
"ambiguous gender predator",
|
||||
"ambiguous gender prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"flash fiction",
|
||||
]
|
||||
- oral vore
|
||||
- ambiguous predator
|
||||
- ambiguous prey
|
||||
- ambiguous gender predator
|
||||
- ambiguous gender prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- flash fiction
|
||||
summary: |
|
||||
For those curious, here's a summary of the story in English:
|
||||
|
||||
|
|
|
@ -9,18 +9,16 @@ thumbnail: /src/assets/thumbnails/bm_13_trouble_sleeping.png
|
|||
description: |
|
||||
An aflutter sparrow can't get any rest, and seeks an unconventional refuge in his lupine crush.
|
||||
tags:
|
||||
[
|
||||
"unbirth",
|
||||
"anthro predator",
|
||||
"feral prey",
|
||||
"female predator",
|
||||
"male prey",
|
||||
"asleep predator",
|
||||
"willing prey",
|
||||
"size difference",
|
||||
"long-term endo",
|
||||
"straight sex",
|
||||
]
|
||||
- unbirth
|
||||
- anthro predator
|
||||
- feral prey
|
||||
- female predator
|
||||
- male prey
|
||||
- asleep predator
|
||||
- willing prey
|
||||
- size difference
|
||||
- long-term endo
|
||||
- straight sex
|
||||
---
|
||||
|
||||
Cantaloupe couldn't sleep. Even puffing out his feathers didn't really help the sentient sparrow beat out the cold that came from the air conditioner. Or maybe something else was still keeping him awake. He looked around from his perch, city lights sneaking through the blinds to reveal most outlines in the larger room. His attention was turned to the anthro wolfess, sprawled out on her bed with her belly up.
|
||||
|
|
|
@ -11,19 +11,17 @@ description: |
|
|||
|
||||
This story was a request for a raffle winner, as part of an anniversary raffle I held!
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"male predator",
|
||||
"male prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"willing prey",
|
||||
"same size",
|
||||
"long-term endo",
|
||||
"request",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- male predator
|
||||
- male prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- willing prey
|
||||
- same size
|
||||
- long-term endo
|
||||
- request
|
||||
requester: avour-inden
|
||||
copyrightedCharacters:
|
||||
Avour: avour-inden
|
||||
|
|
|
@ -9,35 +9,34 @@ thumbnail: /src/assets/thumbnails/bm_comm_3_within_limits.png
|
|||
description: |
|
||||
Ushitora tries out her latest invention on herself, with a bunch of lewd and eager participants to help her out.
|
||||
tags:
|
||||
[
|
||||
"unbirth",
|
||||
"cock vore",
|
||||
"anthro predator",
|
||||
"taur predator",
|
||||
"anthro prey",
|
||||
"human prey",
|
||||
"female predator",
|
||||
"male predator",
|
||||
"female prey",
|
||||
"male prey",
|
||||
"multiple prey",
|
||||
"nested vore",
|
||||
"willing predator",
|
||||
"willing prey",
|
||||
"smaller predator",
|
||||
"similar size",
|
||||
"size difference",
|
||||
"prey transfer",
|
||||
"hyper",
|
||||
"straight sex",
|
||||
"gay sex",
|
||||
"lesbian sex",
|
||||
"orgy",
|
||||
"commission",
|
||||
]
|
||||
commissioner: asofyeun
|
||||
- unbirth
|
||||
- cock vore
|
||||
- anthro predator
|
||||
- taur predator
|
||||
- anthro prey
|
||||
- human prey
|
||||
- female predator
|
||||
- male predator
|
||||
- female prey
|
||||
- male prey
|
||||
- multiple prey
|
||||
- nested vore
|
||||
- hammerspace vore
|
||||
- willing predator
|
||||
- willing prey
|
||||
- smaller predator
|
||||
- similar size
|
||||
- size difference
|
||||
- prey transfer
|
||||
- hyper
|
||||
- straight sex
|
||||
- gay sex
|
||||
- lesbian sex
|
||||
- orgy
|
||||
- commission
|
||||
commissioner: asof-yeun
|
||||
copyrightedCharacters:
|
||||
Ushitora: asofyeun
|
||||
Ushitora: asof-yeun
|
||||
---
|
||||
|
||||
Tonight was going to be Ushitora's big night, but she showed no signs of nervousness. She had no reason to. The holographic readings on her bracelet were all nominal, of course, but she checked on them to make sure that all sensors were on. The technician didn't want to lose a single bit of data for her research.
|
||||
|
|
|
@ -9,22 +9,20 @@ thumbnail: /src/assets/thumbnails/bm_4_you_re_home.png
|
|||
description: |
|
||||
Vesper finds himself perplexed with his home situation, but when a friend offers to help, things quickly spiral out of control.
|
||||
tags:
|
||||
[
|
||||
"oral vore",
|
||||
"anthro predator",
|
||||
"anthro prey",
|
||||
"female predator",
|
||||
"male predator",
|
||||
"female prey",
|
||||
"male prey",
|
||||
"willing predator",
|
||||
"unwilling prey",
|
||||
"nested vore",
|
||||
"similar size",
|
||||
"implied perma endo",
|
||||
"straight sex",
|
||||
"masturbation",
|
||||
]
|
||||
- oral vore
|
||||
- anthro predator
|
||||
- anthro prey
|
||||
- female predator
|
||||
- male predator
|
||||
- female prey
|
||||
- male prey
|
||||
- willing predator
|
||||
- unwilling prey
|
||||
- nested vore
|
||||
- similar size
|
||||
- implied perma endo
|
||||
- straight sex
|
||||
- masturbation
|
||||
---
|
||||
|
||||
Vesper slumped down on the office cafeteria's chair, placing his tray on the table with enough force that his soda can toppled over. The black bearcat grabbed it before it could roll away as well, and carefully opened it. Unsurprisingly, the drink sizzled as a good portion was expelled from the can and onto the tray and food, and the binturong sighed.
|
||||
|
|
13
src/content/tag-categories/body-types.yaml
Normal file
13
src/content/tag-categories/body-types.yaml
Normal file
|
@ -0,0 +1,13 @@
|
|||
name: Body types
|
||||
index: 1
|
||||
tags:
|
||||
- anthro predator
|
||||
- feral predator
|
||||
- taur predator
|
||||
- eng: ambiguous predator
|
||||
tok: sijelo pi jan pi wawa mute li ale
|
||||
- human prey
|
||||
- anthro prey
|
||||
- feral prey
|
||||
- eng: ambiguous prey
|
||||
tok: sijelo pi jan pi wawa lili li ale
|
15
src/content/tag-categories/genders.yaml
Normal file
15
src/content/tag-categories/genders.yaml
Normal file
|
@ -0,0 +1,15 @@
|
|||
name: Genders
|
||||
index: 2
|
||||
tags:
|
||||
- male predator
|
||||
- trans male predator
|
||||
- female predator
|
||||
- non-binary predator
|
||||
- eng: ambiguous gender predator
|
||||
tok: jan pi wawa mute li meli anu mije
|
||||
- male prey
|
||||
- female prey
|
||||
- trans female prey
|
||||
- non-binary prey
|
||||
- eng: ambiguous gender prey
|
||||
tok: jan pi wawa lili li meli anu mije
|
12
src/content/tag-categories/other-kinks.yaml
Normal file
12
src/content/tag-categories/other-kinks.yaml
Normal file
|
@ -0,0 +1,12 @@
|
|||
name: Other kinks
|
||||
index: 7
|
||||
tags:
|
||||
- hyper
|
||||
- egg play
|
||||
- transformation
|
||||
- netorare
|
||||
- sizeplay
|
||||
- inflation
|
||||
- daddy play
|
||||
- BDSM
|
||||
- dubcon
|
6
src/content/tag-categories/recurring-characters.yaml
Normal file
6
src/content/tag-categories/recurring-characters.yaml
Normal file
|
@ -0,0 +1,6 @@
|
|||
name: Recurring characters
|
||||
index: 9
|
||||
tags:
|
||||
- Sam Brendan
|
||||
- Beetle
|
||||
- Muno
|
9
src/content/tag-categories/relative-size.yaml
Normal file
9
src/content/tag-categories/relative-size.yaml
Normal file
|
@ -0,0 +1,9 @@
|
|||
name: Relative size
|
||||
index: 3
|
||||
tags:
|
||||
- macro predator
|
||||
- micro prey
|
||||
- size difference
|
||||
- similar size
|
||||
- same size
|
||||
- smaller predator
|
9
src/content/tag-categories/sexual-content.yaml
Normal file
9
src/content/tag-categories/sexual-content.yaml
Normal file
|
@ -0,0 +1,9 @@
|
|||
name: Sexual content
|
||||
index: 6
|
||||
tags:
|
||||
- nudity
|
||||
- masturbation
|
||||
- straight sex
|
||||
- gay sex
|
||||
- lesbian sex
|
||||
- orgy
|
7
src/content/tag-categories/type-of-content.yaml
Normal file
7
src/content/tag-categories/type-of-content.yaml
Normal file
|
@ -0,0 +1,7 @@
|
|||
name: Type of content
|
||||
index: 8
|
||||
tags:
|
||||
- request
|
||||
- commission
|
||||
- eng: flash fiction
|
||||
tok: lipu lili
|
13
src/content/tag-categories/types-of-vore.yaml
Normal file
13
src/content/tag-categories/types-of-vore.yaml
Normal file
|
@ -0,0 +1,13 @@
|
|||
name: Types of vore
|
||||
index: 0
|
||||
tags:
|
||||
- eng: oral vore
|
||||
tok: moku musi kepeken uta
|
||||
- anal vore
|
||||
- cock vore
|
||||
- unbirth
|
||||
- tail vore
|
||||
- slit vore
|
||||
- sheath vore
|
||||
- nipple vore
|
||||
- chest maw vore
|
19
src/content/tag-categories/vore-related-scenarios.yaml
Normal file
19
src/content/tag-categories/vore-related-scenarios.yaml
Normal file
|
@ -0,0 +1,19 @@
|
|||
name: Vore-related scenarios
|
||||
index: 5
|
||||
tags:
|
||||
- point of view
|
||||
- regurgitation
|
||||
- long-term endo
|
||||
- perma endo
|
||||
- implied perma endo
|
||||
- full tour
|
||||
- implied full tour
|
||||
- prey transfer
|
||||
- object vore
|
||||
- role reversal
|
||||
- nested vore
|
||||
- multiple prey
|
||||
- messy stomach
|
||||
- hammerspace vore
|
||||
- bladder vore
|
||||
- soul vore
|
13
src/content/tag-categories/willingness.yaml
Normal file
13
src/content/tag-categories/willingness.yaml
Normal file
|
@ -0,0 +1,13 @@
|
|||
name: Willingness
|
||||
index: 4
|
||||
tags:
|
||||
- eng: willing predator
|
||||
tok: jan pi wawa mute li wile e moku musi
|
||||
- semi-willing predator
|
||||
- unwilling predator
|
||||
- asleep predator
|
||||
- willing prey
|
||||
- semi-willing prey
|
||||
- eng: unwilling prey
|
||||
tok: jan pi wawa lili li wile ala e moku musi
|
||||
- asleep prey
|
8
src/content/users/asof-yeun.yaml
Normal file
8
src/content/users/asof-yeun.yaml
Normal file
|
@ -0,0 +1,8 @@
|
|||
name: Asof Yeun
|
||||
links:
|
||||
eka: https://aryion.com/g4/user/asofyeun
|
||||
furaffinity: https://www.furaffinity.net/user/asofyeun
|
||||
inkbunny: https://inkbunny.net/asofyeun
|
||||
sofurry: https://asofyeun.sofurry.com/
|
||||
weasyl: https://www.weasyl.com/~asofyeun
|
||||
preferredLink: furaffinity
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"name": "Asof Yeun",
|
||||
"links": {
|
||||
"eka": "https://aryion.com/g4/user/asofyeun",
|
||||
"furaffinity": "https://www.furaffinity.net/user/asofyeun",
|
||||
"inkbunny": "https://inkbunny.net/asofyeun",
|
||||
"sofurry": "https://asofyeun.sofurry.com/",
|
||||
"weasyl": "https://www.weasyl.com/~asofyeun"
|
||||
},
|
||||
"preferredLink": "furaffinity"
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"name": "Avour Inden",
|
||||
"links": {
|
||||
"furaffinity": "https://furaffinity.net/user/pppp0000"
|
||||
},
|
||||
"preferredLink": "furaffinity"
|
||||
}
|
4
src/content/users/avour-inden.yaml
Normal file
4
src/content/users/avour-inden.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
name: Avour Inden
|
||||
links:
|
||||
furaffinity: https://furaffinity.net/user/pppp0000
|
||||
preferredLink: furaffinity
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"name": "Bad Manners",
|
||||
"nameLang": {
|
||||
"eng": "Bad Manners",
|
||||
"tok": "nasin ike Pemene"
|
||||
},
|
||||
"avatar": "/src/assets/images/logo_bm.png",
|
||||
"links": {
|
||||
"website": "https://badmanners.xyz",
|
||||
"eka": ["https://aryion.com/g4/user/BadManners", "BadManners"],
|
||||
"furaffinity": ["https://www.furaffinity.net/user/BadManners", "BadManners"],
|
||||
"inkbunny": ["https://inkbunny.net/BadManners", "BadManners"],
|
||||
"sofurry": ["https://bad-manners.sofurry.com/", "Bad Manners"],
|
||||
"weasyl": ["https://www.weasyl.com/~BadManners", "BadManners"],
|
||||
"twitter": "https://twitter.com/BadManners__",
|
||||
"mastodon": "https://meow.social/@BadManners",
|
||||
"bluesky": "https://bsky.app/profile/badmanners.xyz"
|
||||
},
|
||||
"preferredLink": null
|
||||
}
|
18
src/content/users/bad-manners.yaml
Normal file
18
src/content/users/bad-manners.yaml
Normal file
|
@ -0,0 +1,18 @@
|
|||
name: Bad Manners
|
||||
nameLang:
|
||||
eng: Bad Manners
|
||||
tok: nasin ike Pemene
|
||||
avatar: /src/assets/images/logo_bm.png
|
||||
links:
|
||||
website: https://badmanners.xyz
|
||||
eka: https://aryion.com/g4/user/BadManners
|
||||
furaffinity: https://www.furaffinity.net/user/BadManners
|
||||
inkbunny: https://inkbunny.net/BadManners
|
||||
sofurry:
|
||||
- https://bad-manners.sofurry.com/
|
||||
- Bad Manners
|
||||
weasyl: https://www.weasyl.com/~BadManners
|
||||
twitter: https://twitter.com/BadManners__
|
||||
mastodon: https://meow.social/@BadManners
|
||||
bluesky: https://bsky.app/profile/badmanners.xyz
|
||||
preferredLink: ~
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"name": "Dee Lumeni",
|
||||
"links": {
|
||||
"eka": ["https://aryion.com/g4/user/KeeperofLillies", "KeeperofLillies"]
|
||||
},
|
||||
"preferredLink": "eka"
|
||||
}
|
4
src/content/users/dee-lumeni.yaml
Normal file
4
src/content/users/dee-lumeni.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
name: Dee Lumeni
|
||||
links:
|
||||
eka: https://aryion.com/g4/user/KeeperofLillies
|
||||
preferredLink: eka
|
4
src/content/users/destiny-is-bad.yaml
Normal file
4
src/content/users/destiny-is-bad.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
name: destinyisbad1
|
||||
links:
|
||||
furaffinity: https://www.furaffinity.net/user/destinyisbad1
|
||||
preferredLink: furaffinity
|
6
src/content/users/hans-woofington.yaml
Normal file
6
src/content/users/hans-woofington.yaml
Normal file
|
@ -0,0 +1,6 @@
|
|||
name: Hans Woofington
|
||||
links:
|
||||
furaffinity:
|
||||
- https://furaffinity.net/user/HansLewdington
|
||||
- Hans_Lewdington
|
||||
preferredLink: furaffinity
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"name": "Holi",
|
||||
"links": {
|
||||
"furaffinity": ["https://furaffinity.net/user/CinnamonStars", "CinnamonStars"]
|
||||
},
|
||||
"preferredLink": "furaffinity"
|
||||
}
|
4
src/content/users/holi.yaml
Normal file
4
src/content/users/holi.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
name: Holi
|
||||
links:
|
||||
furaffinity: https://furaffinity.net/user/CinnamonStars
|
||||
preferredLink: furaffinity
|
4
src/content/users/petra.yaml
Normal file
4
src/content/users/petra.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
name: Petra
|
||||
links:
|
||||
furaffinity: https://www.furaffinity.net/user/PetraThinksUsernamesAreDumb
|
||||
preferredLink: furaffinity
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"name": "Scion",
|
||||
"links": {
|
||||
"eka": "https://aryion.com/g4/user/Scion",
|
||||
"furaffinity": ["https://www.furaffinity.net/user/Scionic", "Scionic"]
|
||||
},
|
||||
"preferredLink": "eka"
|
||||
}
|
5
src/content/users/scion.yaml
Normal file
5
src/content/users/scion.yaml
Normal file
|
@ -0,0 +1,5 @@
|
|||
name: Scion
|
||||
links:
|
||||
eka: https://aryion.com/g4/user/Scion
|
||||
furaffinity: https://www.furaffinity.net/user/Scionic
|
||||
preferredLink: eka
|
4
src/content/users/very-smol-lee.yaml
Normal file
4
src/content/users/very-smol-lee.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
name: Lee
|
||||
links:
|
||||
furaffinity: https://www.furaffinity.net/user/verysmolLee
|
||||
preferredLink: furaffinity
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"name": "YolkMonkey",
|
||||
"links": {
|
||||
"furaffinity": ["https://furaffinity.net/user/Vampire101", "Vampire101"],
|
||||
"sofurry": ["https://vampire101.sofurry.com/", "Vampire101"]
|
||||
},
|
||||
"preferredLink": "furaffinity"
|
||||
}
|
7
src/content/users/yolkmonkey.yaml
Normal file
7
src/content/users/yolkmonkey.yaml
Normal file
|
@ -0,0 +1,7 @@
|
|||
name: YolkMonkey
|
||||
links:
|
||||
furaffinity: https://furaffinity.net/user/Vampire101
|
||||
sofurry:
|
||||
- https://vampire101.sofurry.com/
|
||||
- Vampire101
|
||||
preferredLink: furaffinity
|
4
src/content/users/zilu.yaml
Normal file
4
src/content/users/zilu.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
name: Zilu
|
||||
links:
|
||||
furaffinity: https://www.furaffinity.net/user/Zilu
|
||||
preferredLink: furaffinity
|
|
@ -18,6 +18,7 @@ const { pageTitle } = Astro.props;
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="generator" content={Astro.generator} />
|
||||
<title>{pageTitle || "Gallery"} | Bad Manners</title>
|
||||
<link rel="me" href="https://meow.social/@BadManners" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Gallery | Bad Manners" href={`${Astro.site}feed.xml`} />
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
@ -18,7 +18,8 @@ const { pageTitle } = Astro.props;
|
|||
loading="eager"
|
||||
src={logoBM}
|
||||
alt="Logo for Bad Manners"
|
||||
class="my-4 w-full max-w-48 rounded-sm border-2 border-green-950 shadow-md"
|
||||
class="my-4 w-full max-w-[192px] rounded-sm border-2 border-green-950 shadow-md"
|
||||
width={192}
|
||||
/>
|
||||
<span class="my-2 text-2xl font-semibold">Bad Manners</span>
|
||||
<Navigation />
|
||||
|
|
|
@ -10,6 +10,7 @@ import Authors from "../components/Authors.astro";
|
|||
import UserComponent from "../components/UserComponent.astro";
|
||||
import CopyrightedCharacters from "../components/CopyrightedCharacters.astro";
|
||||
import Prose from "../components/Prose.astro";
|
||||
import { getCollection } from "astro:content";
|
||||
|
||||
type Props = CollectionEntry<"stories">["data"];
|
||||
|
||||
|
@ -30,6 +31,24 @@ Object.keys(props.copyrightedCharacters).forEach(async (character) => {
|
|||
copyrightedCharacters[character] = await getEntry(props.copyrightedCharacters[character]);
|
||||
});
|
||||
const relatedStories = (await getEntries(props.relatedStories)).filter((story) => !story.data.isDraft);
|
||||
const categorizedTags = Object.fromEntries((await getCollection("tag-categories")).flatMap(category => category.data.tags.map(tag => {
|
||||
if (typeof tag === "string") {
|
||||
return [tag, tag]
|
||||
}
|
||||
const key = tag["eng"]!
|
||||
if (props.lang in tag) {
|
||||
return [key, tag[props.lang]!]
|
||||
}
|
||||
return [key, key]
|
||||
})));
|
||||
const tags = props.tags.map<[string, string]>(tag => {
|
||||
const tagSlug = slug(tag)
|
||||
if (!(tag in categorizedTags)) {
|
||||
console.log(`Tag "${tag}" doesn't have a category in tag-categories!`)
|
||||
return [tagSlug, tag]
|
||||
}
|
||||
return [tagSlug, categorizedTags[tag]!]
|
||||
});
|
||||
// const relatedGames = (await getEntries(props.relatedGames)).filter(
|
||||
// (game) => !game.data.isDraft,
|
||||
// );
|
||||
|
@ -45,7 +64,7 @@ const relatedStories = (await getEntries(props.relatedStories)).filter((story) =
|
|||
<a
|
||||
href={props.series ? Object.values(props.series)[0] : "/stories/1"}
|
||||
class="text-link my-1 h-9 w-9 p-2"
|
||||
aria-label={`Return to ${props.series ? Object.keys(props.series)[0] : "stories"}`}
|
||||
aria-label={props.lang === "eng" ? `Return to ${props.series ? Object.keys(props.series)[0] : "stories"}` : props.lang === "tok" ? "o tawa e lipu ale" : null}
|
||||
>
|
||||
<svg viewBox="0 0 512 512" class="fill-current" aria-hidden="true">
|
||||
<path
|
||||
|
@ -56,7 +75,7 @@ const relatedStories = (await getEntries(props.relatedStories)).filter((story) =
|
|||
<a
|
||||
href="#description"
|
||||
class="text-link my-1 h-9 w-9 border-l border-stone-300 p-2 dark:border-stone-700"
|
||||
aria-label="Go to description"
|
||||
aria-label={props.lang === "eng" ? "Go to description" : props.lang === "tok" ? "o tawa e lipu lili" : null}
|
||||
>
|
||||
<svg viewBox="0 0 512 512" class="fill-current" aria-hidden="true">
|
||||
<path
|
||||
|
@ -67,7 +86,7 @@ const relatedStories = (await getEntries(props.relatedStories)).filter((story) =
|
|||
<button
|
||||
id="button-dark-mode"
|
||||
class="text-link my-1 h-9 w-9 border-l border-stone-300 p-2 dark:border-stone-700"
|
||||
aria-label="Toggle dark mode"
|
||||
aria-label={props.lang === "eng" ? "Toggle dark mode" : props.lang === "tok" ? "o ante e kule" : null}
|
||||
>
|
||||
<svg viewBox="0 0 512 512" class="hidden fill-current dark:block" aria-hidden="true">
|
||||
<path
|
||||
|
@ -191,7 +210,7 @@ const relatedStories = (await getEntries(props.relatedStories)).filter((story) =
|
|||
aria-label="Publish date"
|
||||
aria-description={formatDate(props.pubDate, "MMMM do, yyyy", { locale: enUSLocale })}
|
||||
>
|
||||
{formatDate(props.pubDate, "yyyy-MM-dd")}
|
||||
{props.lang === "tok" ? `tenpo suno ${formatDate(props.pubDate, "yyyy-MM-dd")}` : formatDate(props.pubDate, "yyyy-MM-dd")}
|
||||
</p>
|
||||
)
|
||||
}
|
||||
|
@ -273,10 +292,10 @@ const relatedStories = (await getEntries(props.relatedStories)).filter((story) =
|
|||
</h2>
|
||||
<ul class="flex flex-wrap gap-x-2 gap-y-2 px-2">
|
||||
{
|
||||
props.tags.map((tag) => (
|
||||
tags.map(([tagSlug, tagText]) => (
|
||||
<li class="rounded-full bg-bm-300 px-3 py-1 text-sm text-black shadow-sm dark:bg-bm-600 dark:text-white print:bg-none">
|
||||
<a class="hover:underline focus:underline" href={`/tags/${slug(tag)}`}>
|
||||
{tag}
|
||||
<a class="hover:underline focus:underline" href={`/tags/${tagSlug}`}>
|
||||
{tagText}
|
||||
</a>
|
||||
</li>
|
||||
))
|
||||
|
@ -285,7 +304,7 @@ const relatedStories = (await getEntries(props.relatedStories)).filter((story) =
|
|||
</section>
|
||||
</main>
|
||||
<div class="pt-6 text-center text-xs text-black dark:text-white">
|
||||
<span>© {formatDate(props.pubDate, "yyyy")} | </span>
|
||||
<span>© {props.lang === "tok" ? `tenpo pi sike suno ${formatDate(props.pubDate, "yyyy")}` : formatDate(props.pubDate, "yyyy")} | </span>
|
||||
<a class="hover:underline focus:underline" href="/licenses.txt" target="_blank"
|
||||
>{props.lang === "eng" ? "Licenses" : props.lang === "tok" ? "lipu lawa" : null}</a
|
||||
>
|
||||
|
|
|
@ -20,14 +20,13 @@ const games = (await getCollection("games", (game) => !game.data.isDraft)).sort(
|
|||
<a class="text-link hover:underline focus:underline" href={`/games/${game.slug}`}>
|
||||
{game.data.thumbnail ? (
|
||||
<Image
|
||||
class="max-w-72"
|
||||
class="max-w-[288px]"
|
||||
src={game.data.thumbnail}
|
||||
alt={`Thumbnail for ${game.data.title}`}
|
||||
width={game.data.thumbnailWidth}
|
||||
height={game.data.thumbnailHeight}
|
||||
width={288}
|
||||
/>
|
||||
) : null}
|
||||
<div class="max-w-72 text-sm">
|
||||
<div class="max-w-[288px] text-sm">
|
||||
<>
|
||||
<span>{game.data.title}</span>
|
||||
<br />
|
||||
|
|
|
@ -24,7 +24,7 @@ const totalPages = Math.ceil(page.total / page.size);
|
|||
|
||||
<GalleryLayout pageTitle="Stories">
|
||||
<h1 class="m-2 text-2xl font-semibold text-stone-800 dark:text-stone-100">Stories</h1>
|
||||
<p class="my-4">My main collection of content so far.</p>
|
||||
<p class="my-4">The bulk of my content!</p>
|
||||
<p class="text-center font-light text-stone-950 dark:text-white">
|
||||
{
|
||||
page.start == page.end
|
||||
|
@ -68,19 +68,16 @@ const totalPages = Math.ceil(page.total / page.size);
|
|||
<a class="text-link hover:underline focus:underline" href={`/stories/${story.slug}`}>
|
||||
{story.data.thumbnail ? (
|
||||
<Image
|
||||
class="w-48"
|
||||
class="max-w-[192px]"
|
||||
src={story.data.thumbnail}
|
||||
alt={`Thumbnail for ${story.data.title}`}
|
||||
width={story.data.thumbnailWidth}
|
||||
height={story.data.thumbnailHeight}
|
||||
width={192}
|
||||
/>
|
||||
) : null}
|
||||
<div class="max-w-48 text-sm">
|
||||
<>
|
||||
<span>{story.data.title}</span>
|
||||
<br />
|
||||
<span class="italic">{formatDate(story.data.pubDate, "MMM d, yyyy", { locale: enUSLocale })}</span>
|
||||
</>
|
||||
<div class="max-w-[192px] text-sm">
|
||||
<span>{story.data.title}</span>
|
||||
<br />
|
||||
<span class="italic">{formatDate(story.data.pubDate, "MMM d, yyyy", { locale: enUSLocale })}</span>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
@ -92,6 +92,12 @@ function getUsernameForWebsite(user: CollectionEntry<"users">, website: Website)
|
|||
return bskyMatch[1];
|
||||
}
|
||||
break;
|
||||
case "itaku":
|
||||
const itakuMatch = link.match(/^.*\bitaku\.ee\/profile\/([^\/]+)\/?$/);
|
||||
if (itakuMatch && itakuMatch[1]) {
|
||||
return itakuMatch[1];
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unhandled website "${website}" in getUsernameForWebsite`);
|
||||
}
|
||||
|
|
|
@ -3,13 +3,15 @@ import { getCollection } from "astro:content";
|
|||
import { slug } from "github-slugger";
|
||||
import GalleryLayout from "../layouts/GalleryLayout.astro";
|
||||
|
||||
const [stories, games] = await Promise.all([
|
||||
getCollection("stories", (story) => !story.data.isDraft),
|
||||
getCollection("games", (game) => !game.data.isDraft),
|
||||
const [stories, games, tagCategories] = await Promise.all([
|
||||
getCollection("stories"),
|
||||
getCollection("games"),
|
||||
getCollection("tag-categories"),
|
||||
]);
|
||||
const tagsSet = new Set<string>();
|
||||
const draftOnlyTagsSet = new Set<string>();
|
||||
const seriesList: Record<string, string> = {};
|
||||
stories.forEach((story) => {
|
||||
stories.filter((story) => !story.data.isDraft).forEach((story) => {
|
||||
story.data.tags.forEach((tag) => {
|
||||
tagsSet.add(tag);
|
||||
});
|
||||
|
@ -26,7 +28,7 @@ stories.forEach((story) => {
|
|||
}
|
||||
}
|
||||
});
|
||||
games.forEach((game) => {
|
||||
games.filter((game) => !game.data.isDraft).forEach((game) => {
|
||||
game.data.tags.forEach((tag) => {
|
||||
tagsSet.add(tag);
|
||||
});
|
||||
|
@ -43,96 +45,53 @@ games.forEach((game) => {
|
|||
}
|
||||
}
|
||||
});
|
||||
|
||||
const categorizedTags: Record<string, string[]> = {
|
||||
"Types of vore": [
|
||||
"oral vore",
|
||||
"anal vore",
|
||||
"cock vore",
|
||||
"unbirth",
|
||||
"tail vore",
|
||||
"slit vore",
|
||||
"sheath vore",
|
||||
"nipple vore",
|
||||
"chest maw vore",
|
||||
],
|
||||
"Body types": [
|
||||
"anthro predator",
|
||||
"feral predator",
|
||||
"taur predator",
|
||||
"ambiguous predator",
|
||||
"human prey",
|
||||
"anthro prey",
|
||||
"feral prey",
|
||||
"ambiguous prey",
|
||||
],
|
||||
Genders: [
|
||||
"male predator",
|
||||
"trans male predator",
|
||||
"female predator",
|
||||
"non-binary predator",
|
||||
"ambiguous gender predator",
|
||||
"male prey",
|
||||
"female prey",
|
||||
"trans female prey",
|
||||
"non-binary prey",
|
||||
"ambiguous gender prey",
|
||||
],
|
||||
"Relative size": ["macro predator", "micro prey", "size difference", "similar size", "same size", "smaller predator"],
|
||||
Willingness: [
|
||||
"willing predator",
|
||||
"semi-willing predator",
|
||||
"unwilling predator",
|
||||
"asleep predator",
|
||||
"willing prey",
|
||||
"semi-willing prey",
|
||||
"unwilling prey",
|
||||
"asleep prey",
|
||||
],
|
||||
"Vore-related scenarios": [
|
||||
"point of view",
|
||||
"regurgitation",
|
||||
"long-term endo",
|
||||
"perma endo",
|
||||
"implied perma endo",
|
||||
"full tour",
|
||||
"implied full tour",
|
||||
"prey transfer",
|
||||
"object vore",
|
||||
"role reversal",
|
||||
"nested vore",
|
||||
"multiple prey",
|
||||
"messy stomach",
|
||||
"bladder vore",
|
||||
"soul vore",
|
||||
],
|
||||
"Sexual content": ["nudity", "masturbation", "straight sex", "gay sex", "lesbian sex", "orgy"],
|
||||
"Other kinks": [
|
||||
"hyper",
|
||||
"egg play",
|
||||
"transformation",
|
||||
"netorare",
|
||||
"sizeplay",
|
||||
"inflation",
|
||||
"daddy play",
|
||||
"BDSM",
|
||||
"dubcon",
|
||||
],
|
||||
"Type of content": ["request", "commission", "flash fiction"],
|
||||
"Recurring characters": ["Sam Brendan", "Beetle", "Muno"],
|
||||
};
|
||||
|
||||
Object.entries(categorizedTags).forEach(([category, tagList]) => {
|
||||
tagList.forEach((tag) => {
|
||||
if (!tagsSet.delete(tag)) {
|
||||
throw new Error(`Tag "${tag}" was added to category "${category}" but isn't present in any content`);
|
||||
stories.filter((story) => story.data.isDraft).forEach((story) => {
|
||||
story.data.tags.forEach((tag) => {
|
||||
if (!tagsSet.has(tag)) {
|
||||
draftOnlyTagsSet.add(tag);
|
||||
}
|
||||
});
|
||||
});
|
||||
games.filter((game) => game.data.isDraft).forEach((game) => {
|
||||
game.data.tags.forEach((tag) => {
|
||||
if (!tagsSet.has(tag)) {
|
||||
draftOnlyTagsSet.add(tag);
|
||||
}
|
||||
});
|
||||
});
|
||||
const uncategorizedTagsSet = new Set(tagsSet);
|
||||
|
||||
if (tagsSet.size > 0) {
|
||||
console.log("The following tags have no category:", [...tagsSet]);
|
||||
categorizedTags["Uncategorized tags"] = [...tagsSet];
|
||||
const categorizedTags: Array<[string, string, string[]]> = tagCategories.sort((a, b) => a.data.index - b.data.index).map(category => {
|
||||
const tagList = category.data.tags.map(tag => {
|
||||
if (typeof tag === "string") {
|
||||
return tag
|
||||
}
|
||||
if (!("eng" in tag)) {
|
||||
throw new Error(`"{[lang]: text}" tag must have an "eng" key: ${tag}`)
|
||||
}
|
||||
return tag["eng"]!
|
||||
})
|
||||
tagList.forEach((tag, index) => {
|
||||
if (index !== tagList.findLastIndex((val) => tag == val)) {
|
||||
throw new Error(`Duplicated tag "${tag}" found in multiple tag-categories`)
|
||||
}
|
||||
})
|
||||
return [category.data.name, category.id, tagList.filter(tag => {
|
||||
if (draftOnlyTagsSet.has(tag)) {
|
||||
console.log(`Omitting draft-only tag "${tag}"`);
|
||||
return false;
|
||||
}
|
||||
if (tagsSet.has(tag)) {
|
||||
uncategorizedTagsSet.delete(tag);
|
||||
}
|
||||
return true;
|
||||
})];
|
||||
})
|
||||
|
||||
if (uncategorizedTagsSet.size > 0) {
|
||||
const tagList = [...uncategorizedTagsSet];
|
||||
console.log("The following tags have no category:", tagList);
|
||||
categorizedTags.push(["Uncategorized tags", "others", tagList]);
|
||||
}
|
||||
---
|
||||
|
||||
|
@ -154,21 +113,23 @@ if (tagsSet.size > 0) {
|
|||
</ul>
|
||||
</section>
|
||||
{
|
||||
Object.entries(categorizedTags).map(([category, tagList]) => (
|
||||
<section class="my-2" aria-labelledby={`category-${slug(category)}`}>
|
||||
<h2 id={`category-${slug(category)}`} class="p-2 text-xl font-semibold text-stone-800 dark:text-stone-100">
|
||||
{category}
|
||||
</h2>
|
||||
<ul class="flex max-w-3xl flex-wrap gap-x-2 gap-y-2 px-2">
|
||||
{tagList.map((tag) => (
|
||||
<li class="rounded-full bg-bm-300 px-3 py-1 text-sm text-black shadow-sm dark:bg-bm-600 dark:text-white">
|
||||
<a class="hover:underline focus:underline" href={`/tags/${slug(tag)}`}>
|
||||
{tag}
|
||||
</a>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</section>
|
||||
))
|
||||
categorizedTags.map(([category, categorySlug, tagList]) =>
|
||||
tagList.length > 0 ? (
|
||||
<section class="my-2" aria-labelledby={`category-${categorySlug}`}>
|
||||
<h2 id={`category-${categorySlug}`} class="p-2 text-xl font-semibold text-stone-800 dark:text-stone-100">
|
||||
{category}
|
||||
</h2>
|
||||
<ul class="flex max-w-3xl flex-wrap gap-x-2 gap-y-2 px-2">
|
||||
{tagList.map((tag) => (
|
||||
<li class="rounded-full bg-bm-300 px-3 py-1 text-sm text-black shadow-sm dark:bg-bm-600 dark:text-white">
|
||||
<a class="hover:underline focus:underline" href={`/tags/${slug(tag)}`}>
|
||||
{tag}
|
||||
</a>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</section>
|
||||
) : null,
|
||||
)
|
||||
}
|
||||
</GalleryLayout>
|
||||
|
|
Loading…
Add table
Reference in a new issue