From 4451a02ee6df067907519bd67bce6d9ba4e9b7b9 Mon Sep 17 00:00:00 2001 From: Dannii Willis Date: Sat, 30 Mar 2024 11:42:31 +1000 Subject: [PATCH] Mention the IFTF grant and the sitegen in the readme --- README.md | 13 ++++++++----- src/iplayif.com/app/src/sitegen.ts | 21 +++++++++++++-------- tools/iftf-logo.png | Bin 0 -> 9554 bytes 3 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 tools/iftf-logo.png diff --git a/README.md b/README.md index a683028b..3ec627a5 100644 --- a/README.md +++ b/README.md @@ -3,16 +3,19 @@ Parchment Parchment is the Interactive Fiction player for the web. To play a story with Parchment go to ! +![IFTF logo](tools/iftf-logo.png) + +Parchment is made with the support of [a grant](https://blog.iftechfoundation.org/2024-02-18-announcing-iftf-grant-recipients.html) from the [Interactive Fiction Technology Foundation](https://iftechfoundation.org/). + Parchment for Inform 7 ---------------------- -[Inform 7](http://inform7.com/) includes Parchment, allowing you to produce [personal websites for your stories](http://inform7.com/book/WI_25_11.html). If you want to update the version of Parchment used by Inform 7, grab [parchment-for-inform7.zip](https://github.com/curiousdannii/parchment/raw/gh-pages/dist/inform7/parchment-for-inform7.zip) and unzip it into the Templates subfolder of your project's Materials folder. +[Inform 7](http://inform7.com/) includes Parchment, allowing you to produce [personal websites for your stories](http://inform7.com/book/WI_25_11.html). If you want to update the version of Parchment used by Inform 7, get it [from the releases page](https://github.com/curiousdannii/parchment/releases) and unzip it into the Templates subfolder of your project's Materials folder. -If you would like to make a website like what Inform 7 would produce, but for a pre-existing storyfile, we recommend [ifsitegen.py](https://intfiction.org/t/ifsitegen-py/50576). You can download parchment-for-inform7.zip and pass it with the `-i` option and it will use the new version instead of the old one bundled with Inform 7: +Site Generator +-------------- -``` -python3 ifsitegen.py -i parchment-for-inform7.zip Storyfile.ulx -``` +For those who aren't using Inform 7 (or who can no longer recompile their storyfile), the [Parchment Site Generator](https://iplayif.com/api/sitegen) allows you to make a single file version of Parchment. This supports any of the formats supported by Parchment (Adrift 4, Glulx, Hugo, TADS 2/3, Z-Code). Single File Build ----------------- diff --git a/src/iplayif.com/app/src/sitegen.ts b/src/iplayif.com/app/src/sitegen.ts index 16566864..dde71539 100644 --- a/src/iplayif.com/app/src/sitegen.ts +++ b/src/iplayif.com/app/src/sitegen.ts @@ -41,14 +41,19 @@ export default class SiteGenerator { async sitegen(ctx: Koa.Context) { if (ctx.request.method === 'GET') { ctx.type = 'text/html; charset=UTF-8' - ctx.body = `Parchment HTML Converter - -

Parchment HTML Converter

-

Upload a Zcode, Glulx, TADS, Hugo, or ADRIFT 4 file to convert it to a self-contained HTML file, suitable for distribution or offline play.

-
- - -
` + ctx.body = ` + + + Parchment Site Generator + + + +

Parchment Site Generator

+

Upload a Z-Code, Glulx, TADS, Hugo, or ADRIFT 4 file to generator a self-contained HTML file, suitable for distribution or offline play.

+
+ + +
` return } const story_file = flatten_query(ctx.request.files!.story_file)! diff --git a/tools/iftf-logo.png b/tools/iftf-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5d27bd2a8e1181987ae5594b2d0518329b7cad41 GIT binary patch literal 9554 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 literal 0 HcmV?d00001