gmninkle

what is it?

gmninkle is a nodejs script that tries to transform an inklewriter JSON file into a series of Gemini docs:

gmninkle source snapshot (Apr 25, 2021)

stories pulled from the web

None of these stories have been tested.

Aaron buys a pet by Caitlin Kneemiller (28 stitches)
A Day In (Ancient) Athens by Tyler (15 stitches)
A Product Safety Adventure by Matt Howsare (142 stitches)
Bad Narrator - Your story, as told by an unstable person by AndHeDrew (220 stitches)
bedtime story by aloysius khoo (30 stitches)
Before Alice: Xenization by Moola Hoola (103 stitches)
CHOOSE YOUR OWN RESEARCH ADVENTURE by Candise Branum (45 stitches)
CONGRATULATIONS, YOU ARE NOW A KOTAKU COMMENTER by Emily Gera (249 stitches)
Cover Up by Dave Miller (52 stitches)
Da Auxilio! by BHS 11 (20 stitches)
Education Recap by Victoria Radford (88 stitches)
Eit eventyr by SisselBT (16 stitches)
Elbow Kid by Freddie, Sydney, Ben, Katie, and Margaret (22 stitches)
Every 90's Story Ever! by Cool 90's Dude (12 stitches)
First Sleuth by Perils Of Dawn (170 stitches)
Haircut by A Writer (101 stitches)
Halloween Night by Samantha Lechene (41 stitches)
Independència? Tria la teva aventura! by Pere Cardús (20 stitches)
interactieve kersttoespraak by Erno Mijland (23 stitches)
IT's Formula by Group 1, ENG 333 (24 stitches)
Key to some insects likely to be found at CSU Stanislaus by Kara T for BIOL 1150 (43 stitches)
Knock, Knock by Wes Locher (148 stitches)
Let`s go to work (Part one of an epic story) by William Cauble (31 stitches)
levél egy barátnak by Anonymous (49 stitches)
Living Lucia by Matt Planchon, Makenzie Mahar, and Cameron Dreher (240 stitches)
Mein Freund Kotze by Eduard van Balls (47 stitches)
Module 1 Path Choice by Dystopian or Anglo-Saxon (38 stitches)
Module 3 Literature Choice by English IV (23 stitches)
The Monkey's Paw by Scott Thompson (126 stitches)
No Death by Alic Szecsei (62 stitches)
Pet Adoption by Madi & Ashley (14 stitches)
Romeo and Juliet: How Could the Story Change? by Annie, Martina, Ayesha, Odina and Sophie (34 stitches)
SAVE MERLIN THE PIG! A rescue quest of dubious proportions by Leigh Alexander (199 stitches)
Take it or Leave it by Charlotte DeRosa (113 stitches)
THATCamp Games 2013 by bewmaynes (168 stitches)
The Argument by R.J. Virkler (44 stitches)
The Last Voyage of the Cinnabar by John Hunter (59 stitches)
The Letter by Myriah H. (23 stitches)
The Lost Kingdom by Carmen (90 stitches)
The Secrets of the Mountains by Daniel Powell (166 stitches)
Sleuth Stranded! by Ultimate-Clash & Perils of Dawn (584 stitches)
Story 2: Resistance Inside Concentration Camps by Henry Payne And Hudson Sakai (36 stitches)
Story of a Celt Warrior by the Cool Story Bros. (29 stitches)
The short story of death. by Calvin Dai (17 stitches)
The Stollaz Parable by Wingnut45 (89 stitches)
The Gates of Elandin, Harmony by Sandy AIDY Hoffman (15 stitches)
The Warlock Of Gay Marrying-top Mountain by @gideondefoe (18 stitches)
The White Room by Kym Poxon (93 stitches)
Think or Lose: A Baseball Story by Josh Vardaman (16 stitches)
To Post or Not to Post by John S. (16 stitches)
Try The Swan by JMR HIGGS (124 stitches)
Vendetta by Tom Pratchett (24 stitches)
You Got This by Robert Florence (101 stitches)
Your Law: the Legislative Process in California by Jonathon Howard (70 stitches)

caveats

The stories linked above don't use these attributes, but others do, and gmninkle doesn't support them:

These are likely to rely on per-user session state, persisted via the query component of the Gemini URI, and/or managed on the server for each user, so maybe one could develop this with something like Jetforce.

2012 Inkle blog post on adding conditional logic to the platform
Jetforce Gemini server

running it

Running the script successfully should output how many Gemini documents were created and which file represents the initial stitch:

$ gmninkle.js content/gmninkle/JSON/bqfx.json content/gmninkle/bqfx

 gmninkle.js generated 125 gemini documents.
 content/gmninkle/bqfx/i.gmi

$ 

If you run the script with the DEBUG environmental variable set, the script should output a line for each file it attempts to create:

$ DEBUG=1 gmninkle.js content/gmninkle/JSON/6000.json content/gmninkle/6000
writing content/gmninkle/6000/its_a_fine_autumn_da.gmi...done.
writing content/gmninkle/6000/the_school_becomes.gmi...done.
writing content/gmninkle/6000/you_pump_your_legs_h.gmi...done.
writing content/gmninkle/6000/locking_your_bike_p.gmi...done.
writing content/gmninkle/6000/based_on_your_previ.gmi...done.
writing content/gmninkle/6000/youre_not_yet_a_girl.gmi...done.
writing content/gmninkle/6000/the_door_opens_with.gmi...done.
writing content/gmninkle/6000/maybe_all_of_feldme.gmi...done.
writing content/gmninkle/6000/you_reassure_yours.gmi...done.
...
writing content/gmninkle/6000/creeping_up_to_the_d.gmi...done.
writing content/gmninkle/6000/peering_down_the_st.gmi...done.

 gmninkle.js generated 168 gemini documents.
 content/gmninkle/6000/its_a_fine_autumn_da.gmi

sample JSON files

This folder contains inklewriter interactive stories, encoded in the JSON format, downloaded from the web, and prettified.

Stories that rely on inklewriter features that gmninkle doesn't currently support are in a subfolder called missing_features:

inklewriter JSON exports

todo

thanks

GemIF
Jon Ingold and Joseph Humfrey for inklewriter
Korneliusz Łapacz for gmnigit

__________________________________________

❃ 双子座 ❃ gamiri Apr 25 06:42:52 UTC 2021