/inform-public-library

The server side for the Inform Public Library.

Artistic License 2.0Artistic-2.0

inform-public-library

The server side for the Inform Public Library.

How this works

The Public Library is presented in the GUI Inform apps as a source for downloading commonly needed extensions which aren't bundled with the apps.

In versions of Inform up to 9.3, the PL was housed at emshort.com/pl), where the crucial index file was at emshort.com/pl/index.html. That server remains in place for the benefit of users of copies of the apps released before 2022.

From version 10.1, however, the Inform apps for Linux, MacOS and Windows use the Github Pages-served form of this repository, at the address:

https://ganelson.github.io/inform-public-library/

Moreover, there are three different forms of the index page:

https://ganelson.github.io/inform-public-library/index-linux.html
https://ganelson.github.io/inform-public-library/index-macos.html
https://ganelson.github.io/inform-public-library/index-windows.html

These differ only in the CSS used, which is tweaked to look right on each platform (and in particular so that Dark Mode works well on the Mac).

Changing and updating the contents of the Library

The index pages are generated by inbuild from the metadata file docs/roster.json: so to update the contents of the Public Library, rewrite that file, put new extensions (or change old ones) in docs/resources/Extensions, and then rebuild the index pages.

This is done as follows:

    1. Pull and make the contents of the inform repository, so that you have a working copy of inbuild.
    1. Pull this repository alongside inform.
    1. Change directory to inform. Run the command:
inbuild/Tangled/inbuild -build-registry ../inform-public-library/docs

What this does is to build (currently) ten indexing files from templates in docs/source to produce the indexes into docs itself. Specifically, it turns:

  • docs/source/index.html into docs/index.html
  • docs/source/index-linux.html into docs/index-linux.html
  • docs/source/index-macos.html into docs/index-macos.html
  • docs/source/index-windows.html into docs/index-windows.html
  • docs/source/pl404.html into docs/pl404.html
  • docs/source/pl404-linux.html into docs/pl404-linux.html
  • docs/source/pl404-macos.html into docs/pl404-macos.html
  • docs/source/pl404-windows.html into docs/pl404-windows.html
  • docs/source/catalogue.txt into docs/catalogue.txt
  • docs/source/headings.txt into docs/headings.txt

The pl404.html page is not actually needed on the server, but instead is used in the apps, to be displayed if the Internet (or the server) is down.

There are different versions for each app in order to customise the CSS. Windows needs different font choices, MacOS does idiosyncratic things to make Dark Mode work with the app. The versions with no platform indicated are generic in the same way that the v9 Inform Public Library page was generic: i.e., looking sort of okay but not ideal across the board.

The catalogue.txt and headings.txt files are purely for human convenience, and aren't needed by either the server or the apps.

Current state of the Library

The resources in this registry are the final state of the version 9.3 Public Library as curated by Mark Musante - thus, the content has been migrated but not really changed. (Though the HTML and CSS are all different, and there is explanatory text on the Public Library index page about the status of things.)