<!--Weave of 'What This Module Does' generated by Inweb-->
<divclass="breadcrumbs">
<ulclass="crumbs"><li><ahref="../index.html">Home</a></li><li><ahref="../compiler.html">Inform7</a></li><li><ahref="index.html">if</a></li><li><ahref="index.html#P">Preliminaries</a></li><li><b>What This Module Does</b></li></ul></div>
<pclass="purpose">An overview of the if module's role and abilities.</p>
<ulclass="toc"><li><ahref="P-wtmd.html#SP1">§1. Prerequisites</a></li><li><ahref="P-wtmd.html#SP2">§2. So many plugins</a></li></ul><hrclass="tocbar">
<pclass="commentary firstcommentary"><aid="SP1"class="paragraph-anchor"></a><b>§1. Prerequisites. </b>The if module is a part of the Inform compiler toolset. It is presented as a
literate program or "web". Before diving in:
</p>
<ulclass="items"><li>(a) It helps to have some experience of reading webs: see <ahref="../../../inweb/docs/index.html"class="internal">inweb</a> for more.
</li><li>(b) The module is written in C, in fact ANSI C99, but this is disguised by the
fact that it uses some extension syntaxes provided by the <ahref="../../../inweb/docs/index.html"class="internal">inweb</a> literate
programming tool, making it a dialect of C called InC. See <ahref="../../../inweb/docs/index.html"class="internal">inweb</a> for
full details, but essentially: it's C without predeclarations or header files,
and where functions have names like <spanclass="extract"><spanclass="extract-syntax">Tags::add_by_name</span></span> rather than just <spanclass="extract"><spanclass="extract-syntax">add_by_name</span></span>.
</li><li>(c) This module uses other modules drawn from the <ahref="../compiler.html"class="internal">compiler</a>, and also
uses a module of utility functions called <ahref="../../../inweb/docs/foundation-module/index.html"class="internal">foundation</a>.
For more, see <ahref="../../../inweb/docs/foundation-module/P-abgtf.html"class="internal">A Brief Guide to Foundation (in foundation)</a>.
</li></ul>
<pclass="commentary firstcommentary"><aid="SP2"class="paragraph-anchor"></a><b>§2. So many plugins. </b>This module consists entirely of plugins, and when they are all inactive,
as for example with a Basic Inform project, it's as if the module does not exist
at all: it does nothing.
</p>
<pclass="commentary">The module is divided into four substantive parts, which form Chapters 2 to 5,
and are largely independent of each other:
</p>
<ulclass="items"><li>●<ahref="2-bd.html"class="internal">Chapter 2: Bibliographic Data</a> is a single plugin, "bibliographic data".
This manages metadata on projects, notably the Interactive Fiction ID, and
follows a number of Internet standards for such things. <ahref="2-ri.html"class="internal">Release Instructions</a>
collates release details included in the source text, and acts as a bridge to
the releasing agent <ahref="../inblorb/index.html"class="internal">inblorb</a>.