mirror of
https://github.com/ganelson/inform.git
synced 2024-06-17 07:40:47 +03:00
Windows variation on advice texts
This commit is contained in:
parent
b4327d135b
commit
6c42df5bc4
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
[Version](notes/versioning.md): 10.1.0-beta+6V40 'Krypton' (12 August 2022)
|
||||
[Version](notes/versioning.md): 10.1.0-beta+6V41 'Krypton' (15 August 2022)
|
||||
|
||||
## About Inform
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 12 August 2022
|
||||
Build Number: 6V40
|
||||
Build Date: 15 August 2022
|
||||
Build Number: 6V41
|
||||
|
|
|
@ -74,6 +74,7 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">inbuild_registry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">selected_registry</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">filter_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">preprocess_HTML_destination</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">preprocess_HTML_app</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Main routine. </b>When Inbuild is called at the command line, it begins at <span class="extract"><span class="extract-syntax">main</span></span>, like all C
|
||||
programs.
|
||||
|
@ -401,6 +402,7 @@ other options to the selection defined here.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">BUILD_REGISTRY_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PREPROCESS_HTML_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PREPROCESS_HTML_TO_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PREPROCESS_APP_CLSW</span>
|
||||
</pre>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Read the command line</span><span class="named-paragraph-number">2.8</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
@ -457,6 +459,8 @@ other options to the selection defined here.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"construct HTML page based on X"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PREPROCESS_HTML_TO_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"preprocess-html-to"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"set destination for -preprocess-html to be X"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PREPROCESS_APP_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"preprocess-app"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"use CSS suitable for app platform X (macos, windows, linux)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::declare_options</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="identifier-syntax">argv</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &</span><a href="1-mn.html#SP3" class="function-link"><span class="function-syntax">Main::option</span></a><span class="plain-syntax">, &</span><a href="1-mn.html#SP4" class="function-link"><span class="function-syntax">Main::bareword</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -509,12 +513,15 @@ other options to the selection defined here.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PREPROCESS_HTML_TO_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preprocess_HTML_destination</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PREPROCESS_APP_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preprocess_HTML_app</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PREPROCESS_HTML_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">preprocess_HTML_destination</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"must specify -preprocess-html-to P to give destination path P first"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">preprocess_HTML_destination</span><span class="plain-syntax">, </span><a href="../../../inweb/foundation-module/3-fln.html#SP7" class="function-link"><span class="function-syntax">Filenames::get_leafname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/2-rgs.html#SP28" class="function-link"><span class="function-syntax">Registries::preprocess_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/2-rgs.html#SP28" class="function-link"><span class="function-syntax">Registries::preprocess_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">preprocess_HTML_app</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP7" class="function-link"><span class="function-syntax">Supervisor::option</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">state</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -75,6 +75,7 @@ and those not documented in this manual are covered in that one.
|
|||
<span class="plain-syntax">-graph show dependency graph of target(s) but take no action</span>
|
||||
<span class="plain-syntax">-inspect show target(s) but take no action</span>
|
||||
<span class="plain-syntax">-matching X apply to all works in nest(s) matching requirement X</span>
|
||||
<span class="plain-syntax">-preprocess-app X use CSS suitable for app platform X (macos, windows, linux)</span>
|
||||
<span class="plain-syntax">-preprocess-html X construct HTML page based on X</span>
|
||||
<span class="plain-syntax">-preprocess-html-to X set destination for -preprocess-html to be X</span>
|
||||
<span class="plain-syntax">-rebuild completely rebuild target(s)</span>
|
||||
|
|
|
@ -244,7 +244,7 @@ through exactly as written.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><a href="2-rgs.html#SP6" class="function-link"><span class="function-syntax">Registries::scan_line</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PPS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Registries::scan_line</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Registries::scan_line</span></span>:<br/><a href="2-rgs.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Registries::scan_line</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Registries::scan_line</span></span>:<br/><a href="2-rgs.html#SP8">§8</a>, <a href="2-rgs.html#SP28">§28</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preprocessor_state</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PPS</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">preprocessor_state</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">X</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">PPS</span><span class="plain-syntax">-></span><span class="identifier-syntax">dest</span><span class="plain-syntax">, </span><span class="string-syntax">"%S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">line</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -270,7 +270,7 @@ files for the named platform. It's an <span class="extract"><span class="extract
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Registries::css_expander</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Registries::css_expander</span></span>:<br/><a href="2-rgs.html#SP5_1">§5.1</a>, <a href="2-rgs.html#SP28">§28</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">preprocessor_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mm</span><span class="plain-syntax">, </span><span class="identifier-syntax">preprocessor_state</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PPS</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Registries::css_expander</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Registries::css_expander</span></span>:<br/><a href="2-rgs.html#SP5_1">§5.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">preprocessor_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mm</span><span class="plain-syntax">, </span><span class="identifier-syntax">preprocessor_state</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PPS</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> **</span><span class="identifier-syntax">parameter_values</span><span class="plain-syntax">, </span><span class="identifier-syntax">preprocessor_loop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loop</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">platform</span><span class="plain-syntax"> = </span><span class="identifier-syntax">parameter_values</span><span class="plain-syntax">[0];</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prototype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstalledFiles::filename_for_platform</span><span class="plain-syntax">(</span><span class="identifier-syntax">CSS_SET_BY_PLATFORM_IRES</span><span class="plain-syntax">, </span><span class="identifier-syntax">platform</span><span class="plain-syntax">);</span>
|
||||
|
@ -761,17 +761,43 @@ they may need platform-specific CSS in order to display properly in Dark Mode,
|
|||
use congenial fonts, and so on.
|
||||
</p>
|
||||
|
||||
<p class="commentary">We preprocess from <span class="extract"><span class="extract-syntax">F</span></span> to <span class="extract"><span class="extract-syntax">T</span></span>:
|
||||
<p class="commentary">We preprocess from <span class="extract"><span class="extract-syntax">F</span></span> to <span class="extract"><span class="extract-syntax">T</span></span>, except that we look to see if there's a platform
|
||||
variant of the file <span class="extract"><span class="extract-syntax">F</span></span> first: for example, if <span class="extract"><span class="extract-syntax">F</span></span> is <span class="extract"><span class="extract-syntax">Fruits/bananas.html</span></span>, and
|
||||
the platform is <span class="extract"><span class="extract-syntax">wii</span></span>, then we look for <span class="extract"><span class="extract-syntax">Fruits/bananas-wii.html</span></span> and use that
|
||||
instead. (If not, we just use <span class="extract"><span class="extract-syntax">F</span></span>.) In practice, for example, this allows the
|
||||
file in the apps which lists keyboard shortcuts to vary with platform.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Registries::preprocess_HTML</span><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Registries::preprocess_HTML</span><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">platform</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ML</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">preprocessor_macro</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Preprocessor::new_macro</span><span class="plain-syntax">(</span><span class="identifier-syntax">ML</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"include-css"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"?platform: PLATFORM"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rgs.html#SP8" class="function-link"><span class="function-syntax">Registries::css_expander</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rgs.html#SP28" class="function-link"><span class="function-syntax">Registries::preprocess_css_expander</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">variant</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::write_unextended_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">variant</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">variant</span><span class="plain-syntax">, </span><span class="string-syntax">"-%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">platform</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::write_extension</span><span class="plain-syntax">(</span><span class="identifier-syntax">variant</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">variant_F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">Filenames::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">), </span><span class="identifier-syntax">variant</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">variant_F</span><span class="plain-syntax">)) </span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">variant_F</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">variant</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="string-syntax">"%f -> %f\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Preprocessor::preprocess</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ML</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NULL_GENERAL_POINTER</span><span class="plain-syntax">, </span><span class="character-syntax">'#'</span><span class="plain-syntax">, </span><span class="identifier-syntax">UTF8_ENC</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_text_stream</span><span class="plain-syntax">(</span><span class="identifier-syntax">platform</span><span class="plain-syntax">), </span><span class="character-syntax">'#'</span><span class="plain-syntax">, </span><span class="identifier-syntax">UTF8_ENC</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Registries::preprocess_css_expander</span><span class="plain-syntax">(</span><span class="identifier-syntax">preprocessor_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mm</span><span class="plain-syntax">, </span><span class="identifier-syntax">preprocessor_state</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PPS</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> **</span><span class="identifier-syntax">parameter_values</span><span class="plain-syntax">, </span><span class="identifier-syntax">preprocessor_loop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loop</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">platform</span><span class="plain-syntax"> = </span><span class="identifier-syntax">parameter_values</span><span class="plain-syntax">[0];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">platform</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">platform</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_text_stream</span><span class="plain-syntax">(</span><span class="identifier-syntax">PPS</span><span class="plain-syntax">-></span><span class="identifier-syntax">specifics</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prototype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstalledFiles::filename_for_platform</span><span class="plain-syntax">(</span><span class="identifier-syntax">CSS_SET_BY_PLATFORM_IRES</span><span class="plain-syntax">, </span><span class="identifier-syntax">platform</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">PPS</span><span class="plain-syntax">-></span><span class="identifier-syntax">dest</span><span class="plain-syntax">, </span><span class="string-syntax">"<style type=\"text/css\">\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">PPS</span><span class="plain-syntax">-></span><span class="identifier-syntax">dest</span><span class="plain-syntax">, </span><span class="string-syntax">"<!--\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TextFiles::read</span><span class="plain-syntax">(</span><span class="identifier-syntax">prototype</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="string-syntax">"can't open include file"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><a href="2-rgs.html#SP6" class="function-link"><span class="function-syntax">Registries::scan_line</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PPS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">prototype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstalledFiles::filename_for_platform</span><span class="plain-syntax">(</span><span class="identifier-syntax">CSS_FOR_STANDARD_PAGES_IRES</span><span class="plain-syntax">, </span><span class="identifier-syntax">platform</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TextFiles::read</span><span class="plain-syntax">(</span><span class="identifier-syntax">prototype</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="string-syntax">"can't open include file"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><a href="2-rgs.html#SP6" class="function-link"><span class="function-syntax">Registries::scan_line</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PPS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">PPS</span><span class="plain-syntax">-></span><span class="identifier-syntax">dest</span><span class="plain-syntax">, </span><span class="string-syntax">"--></style>\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -16,6 +16,7 @@ usage: inbuild [-TASK] TARGET1 TARGET2 ...
|
|||
-graph show dependency graph of target(s) but take no action
|
||||
-inspect show target(s) but take no action
|
||||
-matching X apply to all works in nest(s) matching requirement X
|
||||
-preprocess-app X use CSS suitable for app platform X (macos, windows, linux)
|
||||
-preprocess-html X construct HTML page based on X
|
||||
-preprocess-html-to X set destination for -preprocess-html to be X
|
||||
-rebuild completely rebuild target(s)
|
||||
|
|
|
@ -667,13 +667,24 @@ on the launcher panels. There's nothing interesting about those files except tha
|
|||
they may need platform-specific CSS in order to display properly in Dark Mode,
|
||||
use congenial fonts, and so on.
|
||||
|
||||
We preprocess from |F| to |T|:
|
||||
We preprocess from |F| to |T|, except that we look to see if there's a platform
|
||||
variant of the file |F| first: for example, if |F| is |Fruits/bananas.html|, and
|
||||
the platform is |wii|, then we look for |Fruits/bananas-wii.html| and use that
|
||||
instead. (If not, we just use |F|.) In practice, for example, this allows the
|
||||
file in the apps which lists keyboard shortcuts to vary with platform.
|
||||
|
||||
=
|
||||
void Registries::preprocess_HTML(filename *T, filename *F, text_stream *platform) {
|
||||
linked_list *ML = NEW_LINKED_LIST(preprocessor_macro);
|
||||
Preprocessor::new_macro(ML, I"include-css", I"?platform: PLATFORM",
|
||||
Registries::preprocess_css_expander, NULL);
|
||||
TEMPORARY_TEXT(variant)
|
||||
Filenames::write_unextended_leafname(variant, F);
|
||||
WRITE_TO(variant, "-%S", platform);
|
||||
Filenames::write_extension(variant, F);
|
||||
filename *variant_F = Filenames::in(Filenames::up(F), variant);
|
||||
if (TextFiles::exists(variant_F)) F = variant_F;
|
||||
DISCARD_TEXT(variant)
|
||||
WRITE_TO(STDOUT, "%f -> %f\n", F, T);
|
||||
Preprocessor::preprocess(F, T, NULL, ML,
|
||||
STORE_POINTER_text_stream(platform), '#', UTF8_ENC);
|
||||
|
|
|
@ -1,33 +1,32 @@
|
|||
100.0% in inform7 run
|
||||
71.2% in compilation to Inter
|
||||
49.7% in //Sequence::undertake_queued_tasks//
|
||||
4.8% in //MajorNodes::pre_pass//
|
||||
3.8% in //MajorNodes::pass_1//
|
||||
2.0% in //ImperativeDefinitions::assess_all//
|
||||
68.9% in compilation to Inter
|
||||
48.4% in //Sequence::undertake_queued_tasks//
|
||||
4.4% in //MajorNodes::pre_pass//
|
||||
3.4% in //MajorNodes::pass_1//
|
||||
2.0% in //RTPhrasebook::compile_entries//
|
||||
1.8% in //ImperativeDefinitions::assess_all//
|
||||
1.4% in //RTKindConstructors::compile//
|
||||
1.0% in //Sequence::lint_inter//
|
||||
0.6% in //MajorNodes::pass_2//
|
||||
0.6% in //World::stage_V//
|
||||
0.4% in //ImperativeDefinitions::compile_first_block//
|
||||
0.4% in //MajorNodes::pass_2//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
0.2% in //CompletionModule::compile//
|
||||
0.2% in //InferenceSubjects::emit_all//
|
||||
0.2% in //RTKindConstructors::compile_permissions//
|
||||
0.2% in //Task::make_built_in_kind_constructors//
|
||||
0.2% in //World::stages_II_and_III//
|
||||
2.8% not specifically accounted for
|
||||
25.7% in running Inter pipeline
|
||||
9.9% in step 14/15: generate inform6 -> auto.inf
|
||||
5.6% in step 5/15: load-binary-kits
|
||||
5.2% in step 6/15: make-synoptic-module
|
||||
3.1% not specifically accounted for
|
||||
28.0% in running Inter pipeline
|
||||
12.0% in step 14/15: generate inform6 -> auto.inf
|
||||
6.1% in step 5/15: load-binary-kits
|
||||
5.3% in step 6/15: make-synoptic-module
|
||||
1.4% in step 9/15: make-identifiers-unique
|
||||
0.4% in step 12/15: eliminate-redundant-operations
|
||||
0.4% in step 4/15: compile-splats
|
||||
0.4% in step 7/15: shorten-wiring
|
||||
0.2% in step 11/15: eliminate-redundant-labels
|
||||
0.2% in step 8/15: detect-indirect-calls
|
||||
1.9% not specifically accounted for
|
||||
1.5% not specifically accounted for
|
||||
2.6% in supervisor
|
||||
0.5% not specifically accounted for
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
{include-css}
|
||||
<style type="text/css">
|
||||
th,td
|
||||
\{
|
||||
text-align: left;
|
||||
padding: 0px;
|
||||
\}
|
||||
table
|
||||
\{
|
||||
border-spacing:16px 0px;
|
||||
\}
|
||||
</style>
|
||||
<title>Keyboard Shortcuts</title>
|
||||
</head>
|
||||
<body>
|
||||
<p><span class="headingpaneltext">Keyboard Shortcuts</span></p>
|
||||
|
||||
<table>
|
||||
<tr><td>Shift F1</td><td>Summon/Dismiss Launcher</td></tr>
|
||||
|
||||
<tr><td colspan=2> </td></tr>
|
||||
<tr><th colspan=2>Projects</th></tr>
|
||||
<tr><td>Ctrl O</td><td>Open...</td></tr>
|
||||
<tr><td>Ctrl N</td><td>New Project</td></tr>
|
||||
<tr><td>Alt F4</td><td>Close Project</td></tr>
|
||||
<tr><td>F5</td><td>Go</td></tr>
|
||||
<tr><td>F9</td><td>Replay</td></tr>
|
||||
<tr><td>Ctrl R</td><td>Release</td></tr>
|
||||
<tr><td>Ctrl Shift T</td><td>Go and then type "Test Me"</td></tr>
|
||||
<tr><td>F7</td><td>Refresh Index</td></tr>
|
||||
<tr><td>Ctrl Shift M</td><td>Open Materials Folder in Explorer</td></tr>
|
||||
|
||||
<tr><td colspan=2> </td></tr>
|
||||
<tr><th colspan=2>Switching Panes</th></tr>
|
||||
<tr><td>Ctrl 1</td><td>Go to Left Pane</td></tr>
|
||||
<tr><td>Ctrl 2</td><td>Go to Right Pane</td></tr>
|
||||
<tr><td>F6</td><td>Switch Panes</td></tr>
|
||||
<tr><td>Ctrl F1</td><td>Source</td></tr>
|
||||
<tr><td>Ctrl F2</td><td>Results</td></tr>
|
||||
<tr><td>Ctrl F3</td><td>Story</td></tr>
|
||||
<tr><td>Ctrl F4</td><td>Testing</td></tr>
|
||||
<tr><td>Ctrl F5</td><td>Index</td></tr>
|
||||
<tr><td>Ctrl 3</td><td>Index: Welcome Page</td></tr>
|
||||
<tr><td>Ctrl 4</td><td>Index: Contents Page</td></tr>
|
||||
<tr><td>Ctrl 5</td><td>Index: Actions Page</td></tr>
|
||||
<tr><td>Ctrl 6</td><td>Index: Kinds Page</td></tr>
|
||||
<tr><td>Ctrl 7</td><td>Index: Phrasebook Page</td></tr>
|
||||
<tr><td>Ctrl 8</td><td>Index: Rules Page</td></tr>
|
||||
<tr><td>Ctrl 9</td><td>Index: Scenes Page</td></tr>
|
||||
<tr><td>Ctrl 0</td><td>Index: World Page</td></tr>
|
||||
<tr><td>Ctrl F6</td><td>Documentation</td></tr>
|
||||
<tr><td>Ctrl F7</td><td>Extensions</td></tr>
|
||||
<tr><td>Ctrl F8</td><td>Settings</td></tr>
|
||||
|
||||
<tr><td colspan=2> </td></tr>
|
||||
<tr><th colspan=2>Within the Source Pane</th></tr>
|
||||
<tr><td>Ctrl Shift H</td><td>Show Headings</td></tr>
|
||||
<tr><td>Ctrl .</td><td>Show Only This Section in Source</td></tr>
|
||||
<tr><td>Ctrl /</td><td>Show More Sections in Source</td></tr>
|
||||
<tr><td>Ctrl ,</td><td>Show Fewer Sections in Source</td></tr>
|
||||
<tr><td>F4</td><td>Show Entire Source</td></tr>
|
||||
<tr><td>Ctrl ;</td><td>Shift View to Previous Section</td></tr>
|
||||
<tr><td>Ctrl '</td><td>Shift View to Next Section</td></tr>
|
||||
<tr><td>Ctrl M</td><td>Renumber All Sections</td></tr>
|
||||
|
||||
<tr><td colspan=2> </td></tr>
|
||||
<tr><th colspan=2>Editing the Source</th></tr>
|
||||
<tr><td>Ctrl C</td><td>Copy</td></tr>
|
||||
<tr><td>Ctrl V</td><td>Paste</td></tr>
|
||||
<tr><td>Ctrl X</td><td>Cut</td></tr>
|
||||
<tr><td>Ctrl Z</td><td>Undo</td></tr>
|
||||
<tr><td>Ctrl Y</td><td>Redo</td></tr>
|
||||
<tr><td colspan=2> </td></tr>
|
||||
<tr><td>Ctrl A</td><td>Select All</td></tr>
|
||||
<tr><td>Alt ]</td><td>Shift Selection Right</td></tr>
|
||||
<tr><td>Alt [</td><td>Shift Selection Left</td></tr>
|
||||
<tr><td>Alt /</td><td>Comment Out Selection</td></tr>
|
||||
<tr><td>Alt Shift /</td><td>Uncomment Selection</td></tr>
|
||||
<tr><td colspan=2> </td></tr>
|
||||
<!--<tr><td>⌘:</td><td>Show Spelling and Grammar</td></tr>-->
|
||||
<tr><td>Ctrl G</td><td>Check Spelling</td></tr>
|
||||
|
||||
<tr><td colspan=2> </td></tr>
|
||||
<tr><th colspan=2>Find</th></tr>
|
||||
<tr><td>Ctrl F</td><td>Find...</td></tr>
|
||||
<tr><td>F10</td><td>Find In Files...</td></tr>
|
||||
<tr><td>F8</td><td>Find Next</td></tr>
|
||||
<tr><td>Shift F8</td><td>Find Previous</td></tr>
|
||||
<tr><td>Ctrl J</td><td>Scroll To Selection</td></tr>
|
||||
|
||||
<tr><td colspan=2> </td></tr>
|
||||
<tr><th colspan=2>Application Control</th></tr>
|
||||
|
||||
<tr><td>Ctrl Shift N</td><td>(Inform) Preferences</td></tr>
|
||||
<tr><td>Ctrl S</td><td>Save</td></tr>
|
||||
<tr><td>Ctrl Shift S</td><td>Save As...</td></tr>
|
||||
<!--<tr><td>⌘P</td><td>Print</td></tr>-->
|
||||
<!--<tr><td>⇧⌘P</td><td>Page Setup</td></tr>-->
|
||||
<tr><td>Ctrl Q</td><td>Quit</td></tr>
|
||||
|
||||
</td></tr>
|
||||
</table>
|
||||
<hr style="margin-top: 18px;">
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,58 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
{include-css}
|
||||
<style type="text/css">
|
||||
.red
|
||||
\{
|
||||
color:rgb(255,0,0);
|
||||
\}
|
||||
</style>
|
||||
<title>Materials Folder</title>
|
||||
</head>
|
||||
<body>
|
||||
<p><span class="headingpaneltext">Materials Folder</span></p>
|
||||
<p>Every project has a ".materials" folder, which is always stored next to it on disc. (Use Ctrl+Shift+M to show the current project's .materials in Windows Explorer.) This screenshot shows how the .materials folder would look for a project which used it in every possible way. In practice, this is very unlikely.</p>
|
||||
|
||||
<img src="MaterialsDiagram.png" width="275" height="403"/>
|
||||
|
||||
<p>Project (<span class="red">1</span>) and .materials folder (<span class="red">2</span>) live side by side in Windows Explorer: everything else here is inside .materials (<span class="red">2</span>). The author of this story decided that it should be given to players along with a PDF booklet (<span class="red">3</span>), by including this Release instruction in the source text:
|
||||
|
||||
<blockquote>
|
||||
Release along with a file of "A Guide to Arboreal Fauna" called "A Guide to Arboreal Fauna.pdf".
|
||||
</blockquote>
|
||||
|
||||
<p>Every released project needs cover art. Authors have to provide two files, full-sized at 960 by 960 (<span class="red">4</span>) and reduced at 120 by 120 (<span class="red">18</span>): they can either be "Cover.jpg" and "Small Cover.jpg" or "Cover.png" and "Small Cover.png".</p>
|
||||
|
||||
<p>Extensions to Inform are usually centrally installed, and available to all projects. But this project has its own private copy of "Feeding Squirrels by Emily Short" (<span class="red">7</span>), in its own private Extensions folder (<span class="red">5</span>). This would override any installed copy of the same extension. It has to have the correct name and .i7x ending, and it has to live inside a folder with its author's name (<span class="red">6</span>).</p>
|
||||
|
||||
<p>Projects which include pictures as well as text need to store the necessary images, in JPEG or PNG format, in the Figures folder (<span class="red">8</span>). This one was declared in the source text like so:</p>
|
||||
|
||||
<blockquote>
|
||||
Figure of Red Admiral Butterfly is the file "butterfly.jpg".
|
||||
</blockquote>
|
||||
|
||||
<p>Sound effects are similar, use AIFF or OGG format, and live in Sounds (<span class="red">19</span>). There's one here (<span class="red">20</span>), declared by:</p>
|
||||
|
||||
<blockquote>
|
||||
Sound of Rustling Leaves is the file "Rustling Leaves.aiff".
|
||||
</blockquote>
|
||||
|
||||
<p>Projects which read or write files of data as they play should have a Files folder (<span class="red">10</span>) to hold these. This one (<span class="red">11</span>) was declared by:
|
||||
|
||||
<blockquote>
|
||||
The File of Nut Storage Locations is called "nutstorage".
|
||||
</blockquote>
|
||||
|
||||
<p>Now for some expert-only features which hardly anybody needs in practice. The I6T folder (<span class="red">12</span>) provides extra template files (<span class="red">13</span>), or indeed replacement ones (<span class="red">14</span>), and allows a project to include substantial portions of raw Inform 6 code. The Languages folder (<span class="red">16</span>) is for experimenting with language bundles, a feature still in its early stages. The Templates folder (<span class="red">21</span>) is for providing the project with a non-standard Javascript engine, called an "interpreter", when it's released as a website. Here there's an intepreter called "Experimental" (<span class="red">22</span>) which can be selected by putting this into the source:</p>
|
||||
|
||||
<blockquote>
|
||||
Release along with the "Experimental" interpreter.
|
||||
</blockquote>
|
||||
|
||||
<p>And that just leaves the Release folder (<span class="red">17</span>). Inform creates this automatically if the project's Release button is clicked, and then writes into it whatever will eventually go out to players. So never store anything permanent here: it's intended to be just a holding area.
|
||||
</p>
|
||||
<hr style="margin-top: 18px;">
|
||||
</body>
|
||||
</html>
|
|
@ -45,7 +45,7 @@
|
|||
The File of Nut Storage Locations is called "nutstorage".
|
||||
</blockquote>
|
||||
|
||||
<p>Now for some expert-only features which hardly anybody needs in practice. The I6T folder (<span class="red">12</span>) provides extra template files (<span class="red">13</span>), or indeed replacement ones (<span class="red">14</span>), and allows a project to include substantial portions of raw Inform 6 code. The Languages folder (<span class="red">16</span>) is for experimenting with new language bundles, a 2014 feature still in its early stages. The Templates folder (<span class="red">21</span>) is for providing the project with a non-standard Javascript engine, called an "interpreter", when it's released as a website. Here there's an intepreter called "Experimental" (<span class="red">22</span>) which can be selected by putting this into the source:</p>
|
||||
<p>Now for some expert-only features which hardly anybody needs in practice. The I6T folder (<span class="red">12</span>) provides extra template files (<span class="red">13</span>), or indeed replacement ones (<span class="red">14</span>), and allows a project to include substantial portions of raw Inform 6 code. The Languages folder (<span class="red">16</span>) is for experimenting with language bundles, a feature still in its early stages. The Templates folder (<span class="red">21</span>) is for providing the project with a non-standard Javascript engine, called an "interpreter", when it's released as a website. Here there's an intepreter called "Experimental" (<span class="red">22</span>) which can be selected by putting this into the source:</p>
|
||||
|
||||
<blockquote>
|
||||
Release along with the "Experimental" interpreter.
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
{include-css}
|
||||
<title>New To Inform?</title>
|
||||
</head>
|
||||
<body>
|
||||
<p><span class="headingpaneltext">New To Inform?</span></p>
|
||||
<p>Inform is both an application and a language for creating text-based
|
||||
interactive stories. Interactive fiction is an art form which evolved out of the
|
||||
adventure games of the 1970s, in the same way that today's graphic novels
|
||||
evolved out of the newspaper cartoons of the 1930s. Inform has been the design
|
||||
tool of choice for many, indeed most, of the world's leading writers in this
|
||||
genre since 1993, and is also widely used in education at a variety of levels.
|
||||
It's completely free, even when used to create commercial works. Thanks for
|
||||
downloading this copy, and we hope you'll enjoy it.</p>
|
||||
|
||||
<p>As you've seen, the app begins with a launcher panel. (Bring it back or
|
||||
remove it by typing Shift+F1.) You might like to try clicking Onyx, the smallest
|
||||
of the samples, under the "Open a Sample Project" list: it's a very
|
||||
short Russian folk-tale. Inform will ask you to choose somewhere on disc to
|
||||
store it, and then make a copy there. You can play with this and alter it
|
||||
freely, then throw it away when you're done: it's just a copy.</p>
|
||||
|
||||
<p>You can have several Inform projects open at once, but each one lives in a
|
||||
single window which is divided in half. The left and right sides are called
|
||||
"panes" and you can choose what's shown in them with the side tabs: it
|
||||
starts out as Source on the left, Documentation on the right.</p>
|
||||
|
||||
<p>Inform "translates" the instructions in the Source into a playable
|
||||
story. To see that in action, click the Go button for the Onyx project. You'll
|
||||
have to wait just a moment - an Inform project is a surprisingly complicated
|
||||
thing to make, even when the instructions look short - but then the Story pane
|
||||
will open, and you can type in commands as if you were the player. If you're not
|
||||
sure what to type, try typing:</p>
|
||||
|
||||
<blockquote>
|
||||
TEST ME
|
||||
</blockquote>
|
||||
|
||||
<p>The Launcher also offers a larger sample project called "Disenchantment
|
||||
Bay", a story about a boat trip in Alaska. Beyond that, there are around
|
||||
450 Examples in the Documentation, and by clicking on the "save as
|
||||
project" icon you can get playable versions of all of those, too.</p>
|
||||
|
||||
<hr style="margin-top: 18px;">
|
||||
</body>
|
||||
</html>
|
69
resources/Documentation/Advice/TestingTemplate-windows.html
Normal file
69
resources/Documentation/Advice/TestingTemplate-windows.html
Normal file
|
@ -0,0 +1,69 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
{include-css}
|
||||
<title>Testing</title>
|
||||
<script type='text/javascript'>
|
||||
function showBlock(id) \{ if( document.getElementById(id) ) document.getElementById(id).style.display = 'block'; \}
|
||||
function hideBlock(id) \{ if( document.getElementById(id) ) document.getElementById(id).style.display = 'none'; \}
|
||||
</script>
|
||||
</head>
|
||||
<body onLoad="test();">
|
||||
<div id="welcome"><p>Welcome to the new Testing panel. This combines the old Skein and
|
||||
Transcript panels. Like them, it records every play through the story. It helps with testing
|
||||
because it compares the text this time with the "blessed" text on previous plays. The panel
|
||||
shows oval "knots" representing turns of play.</p></div>
|
||||
|
||||
<div id="title" style="content: ''; clear: both; display: table;"><p><img style="float:left" src="inform://Skein/HelpStoryTitle.png"> The topmost knot is
|
||||
the start position, representing the story before any choices are made.</p></div>
|
||||
|
||||
<div id="purple" style="content: ''; clear: both; display: table;"><p><img style="float:left" src="inform://Skein/HelpPurpleKnot.png">
|
||||
The purple knot marks the position reached at any given moment in the Story panel.</p></div>
|
||||
|
||||
<div id="grey" style="content: ''; clear: both; display: table;"><p><img style="float:left" src="inform://Skein/HelpGreyKnot.png"> Each
|
||||
grey knot represents a command typed in, and the text which resulted. Grey means it's not
|
||||
selected: click it to select.</p></div>
|
||||
|
||||
<div id="blue" style="content: ''; clear: both; display: table;"><p><img style="float:left" src="inform://Skein/HelpBlueKnot.png"> A blue
|
||||
knot is a grey knot that has been selected. Click it again to unselect.</p></div>
|
||||
|
||||
<div id="report" style="content: ''; clear: both; display: table;"><p>The yellow box shows the text produced the last time the selected (blue
|
||||
knot) commands were typed in. The arrows show which command led to what.</p></div>
|
||||
|
||||
<div id="tick" style="content: ''; clear: both; display: table;"><p>Text is automatically compared against an earlier version known to be
|
||||
correct, called the "blessed" version.
|
||||
|
||||
<p><img style="float:left" src="inform://Skein/Trans-tick-off.png"> The tick icon
|
||||
is shown if that turn's text failed to match. Green highlighting shows text added since the
|
||||
"blessed" version, red highlighting shows text removed. (All green must mean there's no
|
||||
"blessed" version, so that all text is new.) If you agree that the current text is correct,
|
||||
click the tick icon. If you don't agree, you'll need to rewrite your story to produce
|
||||
different text next time.</div>
|
||||
|
||||
<div id="cross" style="content: ''; clear: both; display: table;"><p><img style="float:left" src="inform://Skein/Trans-cross-off.png">
|
||||
The cross icon is only shown if that turn's text was correct, that is, if it exactly
|
||||
matched the "blessed" version. Click the cross to "curse" the turn - that removes the blessing.</p></div>
|
||||
|
||||
<div id="badge" style="content: ''; clear: both; display: table;"><p><img style="float:left" src="inform://Skein/HelpBadgedBlueKnot.png">
|
||||
The red star on a knot means that the text definitely had a "blessed" version but that the
|
||||
most recent play failed to match it - so this is a knot where there's a problem.</p></div>
|
||||
|
||||
<div id="threads" style="content: ''; clear: both; display: table;"><p>The black "threads" between the knots show the sequence of play. Time runs
|
||||
downwards, so later turns are below earlier ones.</p></div>
|
||||
|
||||
<div id="knots" style="content: ''; clear: both; display: table;"><p>Once a turn is played in the Story panel, by typing in a command, another knot will appear here.</p></div>
|
||||
|
||||
<div id="moreknots" style="content: ''; clear: both; display: table;"><p>As more turns are played in the Story panel, more knots will appear here.</p></div>
|
||||
|
||||
<div id="menu" style="content: ''; clear: both; display: table;"><p><img style="float:left" src="inform://Skein/HelpGreyKnotMenu.png"> Hover the mouse over a knot to see the
|
||||
pop-up menu button for it - clicking this gives more advanced options.</p></div>
|
||||
|
||||
<div id="welcomead" style="content: ''; clear: both; display: table;"><p>In addition to Hide/Show Help, the top of this panel has two buttons for advanced users. Save Transcript
|
||||
lets you save out the text from the currently selected thread of play. Play All
|
||||
systematically plays through every variation in the diagram, restarting the story
|
||||
as needed to do so, so that it tests every knot.</p></div>
|
||||
<hr style="margin-top: 18px;">
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in a new issue