mirror of
https://github.com/ganelson/inform.git
synced 2024-07-16 22:14:23 +03:00
181 lines
12 KiB
HTML
181 lines
12 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>Using Inblorb</title>
|
|
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<meta name="viewport" content="width=device-width initial-scale=1">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<meta http-equiv="Content-Language" content="en-gb">
|
|
|
|
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/ConsoleText-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
|
|
</head>
|
|
<body class="commentary-font">
|
|
<nav role="navigation">
|
|
<h1><a href="../index.html">
|
|
<img src="../docs-assets/Inform.png" height=72">
|
|
</a></h1>
|
|
<ul><li><a href="../index.html">home</a></li>
|
|
</ul><h2>Compiler</h2><ul>
|
|
<li><a href="../structure.html">structure</a></li>
|
|
<li><a href="../inbuildn.html">inbuild</a></li>
|
|
<li><a href="../inform7n.html">inform7</a></li>
|
|
<li><a href="../intern.html">inter</a></li>
|
|
<li><a href="../services.html">services</a></li>
|
|
</ul><h2>Other Tools</h2><ul>
|
|
<li><a href="../inblorbn.html">inblorb</a></li>
|
|
<li><a href="../indocn.html">indoc</a></li>
|
|
<li><a href="../inform6.html">inform6</a></li>
|
|
<li><a href="../inpolicyn.html">inpolicy</a></li>
|
|
<li><a href="../inrtpsn.html">inrtps</a></li>
|
|
</ul><h2>Resources</h2><ul>
|
|
<li><a href="../extensions.html">extensions</a></li>
|
|
<li><a href="../kits.html">kits</a></li>
|
|
</ul><h2>Repository</h2><ul>
|
|
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
|
|
</ul><h2>Related Projects</h2><ul>
|
|
<li><a href="../../../inweb/docs/index.html">inweb</a></li>
|
|
<li><a href="../../../intest/docs/index.html">intest</a></li>
|
|
|
|
</ul>
|
|
</nav>
|
|
<main role="main">
|
|
<!--Weave of 'Using Inblorb' generated by Inweb-->
|
|
<div class="breadcrumbs">
|
|
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="index.html">inblorb</a></li><li><a href="index.html#M">Manual</a></li><li><b>Using Inblorb</b></li></ul></div>
|
|
<p class="purpose">How to use this tool, either from the command line or inside the Inform app.</p>
|
|
|
|
<ul class="toc"><li><a href="M-ui.html#SP1">§1. What Inblorb is</a></li><li><a href="M-ui.html#SP2">§2. Inblorb at the command line</a></li><li><a href="M-ui.html#SP3">§3. Inblorb within the Inform user interface</a></li></ul><hr class="tocbar">
|
|
|
|
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. What Inblorb is. </b>Inblorb is a command-line tool which forms one of the components of the
|
|
Inform 7 design system for interactive fiction. Inblorb is the successor to
|
|
cBlorb (2008), which was itself the successor to perlBlorb (2001).
|
|
All installations of Inform 7 contain it, though few users are aware of that.
|
|
They typically write sentences such as:
|
|
</p>
|
|
|
|
<blockquote>
|
|
<p>Release along with public source text, cover art, and a website.</p>
|
|
</blockquote>
|
|
|
|
<p class="commentary">Inform 7 uses the instructions in such sentences to contribute to the
|
|
writing of a script called a "blurb". In effect, this is a detailed set
|
|
of instructions for Inblorb to follow, and when the user clicks Release
|
|
in the Inform application, the Inblorb tool is called. (This is a slightly
|
|
simplified description — see below for the full details.)
|
|
</p>
|
|
|
|
<p class="commentary">Inblorb has two main jobs: to bind up the translated project, together with
|
|
any pictures, sounds, or cover art, into a single file called a "blorb" which
|
|
can be given to players on other machines to play; and to produce associated
|
|
websites, solution files and so on as demanded by "Release..." instruction(s)
|
|
in the source text.
|
|
</p>
|
|
|
|
<p class="commentary">"Blorb" is a general-purpose wrapper format designed as a way to gather
|
|
together audiovisual media and bibliographic data for works of IF. The
|
|
format was devised and formally specified by Andrew Plotkin around 2000,
|
|
and its name is borrowed from that of a magic spell in Infocom's classic
|
|
work, "Enchanter". ("The blorb spell (safely protect a small object as
|
|
though in a strong box).")
|
|
</p>
|
|
|
|
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Inblorb at the command line. </b>If you have compiled the standard distribution of the command-line tools
|
|
for Inform then the Inblorb executable will be at <span class="extract"><span class="extract-syntax">inblorb/Tangled/inblorb/</span></span>.
|
|
Usage is very simple:
|
|
</p>
|
|
|
|
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
|
<span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">inblorb/Tangled/inblorb</span><span class="ConsoleText-plain-syntax"> [OPTIONS] BLURBFILE [BLORBFILE]</span>
|
|
</pre>
|
|
<p class="commentary">This follows the given blurb file. Not all blurbs instruct Inblorb to make
|
|
a blorb, which is why BLORBFILE is optional.
|
|
</p>
|
|
|
|
<p class="commentary">The OPTIONS are very simple. Inblorb's predecessor cBlorb needed to be told
|
|
what platform it was running on, by specifying <span class="extract"><span class="ConsoleText-extract-syntax">-osx</span></span>, <span class="extract"><span class="ConsoleText-extract-syntax">-windows</span></span> or
|
|
<span class="extract"><span class="ConsoleText-extract-syntax">-linux</span></span> at the command line, but these have gone. What remains is:
|
|
</p>
|
|
|
|
<p class="commentary"><span class="extract"><span class="ConsoleText-extract-syntax">-verbose</span></span> causes Inblorb to print a running narrative of what it's doing;
|
|
</p>
|
|
|
|
<p class="commentary"><span class="extract"><span class="ConsoleText-extract-syntax">-project X</span></span> tells Inblorb to assume the usual settings for this project,
|
|
which means that BLURBFILE is set to <span class="extract"><span class="ConsoleText-extract-syntax">X/Release.blurb</span></span> and BLORBFILE
|
|
to <span class="extract"><span class="ConsoleText-extract-syntax">X/Build/output.gblorb</span></span>. <span class="extract"><span class="ConsoleText-extract-syntax">X</span></span> is usually something like <span class="extract"><span class="ConsoleText-extract-syntax">Whatever.inform</span></span>.
|
|
</p>
|
|
|
|
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Inblorb within the Inform user interface. </b>This is the sequence of events when the user clicks Release in the user
|
|
interface application (the "interface"):
|
|
</p>
|
|
|
|
<ul class="items"><li>(1) The interface calls the Inform 7 compiler as normal except that the
|
|
<span class="extract"><span class="ConsoleText-extract-syntax">-release</span></span> command-line switch is specified.
|
|
</li><li>(2) If Problems occur, the compiler exits with a return code of 1, and the
|
|
interface displays those, and then stops the process.
|
|
</li><li>(3) If no Problems occur, the compiler generates Inform 6 code, and also
|
|
two additional files for the project's <span class="extract"><span class="ConsoleText-extract-syntax">Build</span></span> folder:
|
|
<ul class="items"><li>(a) <span class="extract"><span class="ConsoleText-extract-syntax">Metadata.iFiction</span></span>, an iFiction record;
|
|
</li><li>(b) <span class="extract"><span class="ConsoleText-extract-syntax">Release.blurb</span></span>, a blurb file of instructions for Inblorb to follow later.
|
|
</li></ul>
|
|
<li>(4) The interface next calls the Inform 6 compiler. The interface calls it
|
|
with the <span class="extract"><span class="ConsoleText-extract-syntax">S</span></span> and <span class="extract"><span class="ConsoleText-extract-syntax">D</span></span> switches, for strict checking and for debugging, off
|
|
instead of on. Inform 6 should certainly not produce syntax errors, though
|
|
it will surely produce warnings; all the same it can fail if, say, Z-machine
|
|
memory limits are exceeded. The interface should deal with such failures
|
|
exactly as it would in a non-Release run.
|
|
</li><li>(5) Inform 6 having returned 0 to indicate success, the interface next calls
|
|
Inblorb as follows. Let <span class="extract"><span class="ConsoleText-extract-syntax">Path</span></span> be the path to the folder containing the Inform
|
|
project being released, which we'll call <span class="extract"><span class="ConsoleText-extract-syntax">This.inform</span></span>. Then the interface
|
|
should call:
|
|
</li></ul>
|
|
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
|
<span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">inblorb</span><span class="ConsoleText-plain-syntax"> "Path/This.inform/Release.blurb" "Path/This.inform/Build/output.gblorb"</span>
|
|
</pre>
|
|
<ul class="items"><li> These two filename arguments are the Blurb script for Inblorb to
|
|
follow, which was written by Inform 7 at step 3, and the filename of the Blorb
|
|
file which it should write. Note that the interface should give this the
|
|
extension ".gblorb" if the Glulx setting is in force, and ".zblorb" if
|
|
the Z-machine.
|
|
</li><li>(6) Like its predecessors, Inblorb can produce error messages, and it returns
|
|
0 (success) or 1 (failure). But the interface doesn't actually need to look
|
|
at that, because Inblorb also produces a much fuller report in the form of
|
|
an HTML page to be displayed on the Problems tab. This is <span class="extract"><span class="ConsoleText-extract-syntax">StatusCblorb.html</span></span>,
|
|
in the project's <span class="extract"><span class="ConsoleText-extract-syntax">Build</span></span> folder. (This is a change made in 2010: in the past,
|
|
the interface simply chose between a generic success and failure page on the
|
|
basis of the return code. The filename <span class="extract"><span class="ConsoleText-extract-syntax">StatusCblorb.html</span></span> is not hard-wired:
|
|
it just happens to be what the Blurb file generated by Inform 7 requests.)
|
|
</li><li>(7) There are no more tools to call, but the interface has one last duty (if
|
|
Inblorb succeeded) — to move the blorb somewhere sensible on disc, where the
|
|
user can see it. Leaving it where it is will not do — the user never looks
|
|
inside the Build project of a folder, which on Mac OS X, for instance, is
|
|
not even visible. To see what to do, the interface must look at the textual
|
|
output from Inblorb, printed to <span class="extract"><span class="ConsoleText-extract-syntax">stdout</span></span> (of course the interface is free
|
|
to redirect this if it wants to). If Inblorb printed a line in the form:
|
|
</li></ul>
|
|
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
|
<span class="ConsoleText-plain-syntax"> Copy blorb to: [[...]]</span>
|
|
</pre>
|
|
<ul class="items"><li> then the interface should do as it's told. For instance:
|
|
</li></ul>
|
|
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
|
<span class="ConsoleText-plain-syntax"> Copy blorb to: [[/Users/gnelson/Examples/Bronze Materials/Release/Bronze.gblorb]]</span>
|
|
</pre>
|
|
<ul class="items"><li> If Inblorb printed no such line, the interface should put up a Save As...
|
|
dialogue box, and invite the user to choose a destination.
|
|
</li></ul>
|
|
<nav role="progress"><div class="progresscontainer">
|
|
<ul class="progressbar"><li class="progressprevoff">❮</li><li class="progresscurrentchapter">M</li><li class="progresscurrent">ui</li><li class="progresssection"><a href="M-tbl.html">tbl</a></li><li class="progresssection"><a href="M-rc.html">rc</a></li><li class="progresschapter"><a href="1-bsc.html">1</a></li><li class="progresschapter"><a href="2-bw.html">2</a></li><li class="progresschapter"><a href="3-rls.html">3</a></li><li class="progressnext"><a href="M-tbl.html">❯</a></li></ul></div>
|
|
</nav><!--End of weave-->
|
|
|
|
</main>
|
|
</body>
|
|
</html>
|
|
|