mirror of
https://github.com/ganelson/inform.git
synced 2024-06-26 04:00:43 +03:00
Improved HTML documentation rendering (needs latest inweb)
This commit is contained in:
parent
35fe42ece3
commit
9dd1f7a69e
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6X60 'Krypton' (12 May 2024)
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6X61 'Krypton' (13 May 2024)
|
||||
|
||||
## About Inform
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 12 May 2024
|
||||
Build Number: 6X60
|
||||
Build Date: 13 May 2024
|
||||
Build Number: 6X61
|
||||
|
|
|
@ -1014,7 +1014,8 @@ in the secondary (if there is one).
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</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">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">) </span><span class="identifier-syntax">md</span><span class="plain-syntax"> = </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">md</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> != </span><span class="identifier-syntax">HEADING_MIT</span><span class="plain-syntax">)) </span><span class="identifier-syntax">md</span><span class="plain-syntax"> = </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">md</span><span class="plain-syntax">) && (</span><a href="7-dc.html#SP18" class="function-link"><span class="function-syntax">DocumentationCompiler::skippable_item</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">eg</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">md</span><span class="plain-syntax"> = </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">eg_header</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">; </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">eg_header</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
|
@ -1024,7 +1025,8 @@ in the secondary (if there is one).
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">eg_header</span><span class="plain-syntax">-></span><span class="identifier-syntax">user_state</span><span class="plain-syntax"> = </span><span class="identifier-syntax">STORE_POINTER_IFM_example</span><span class="plain-syntax">(</span><span class="identifier-syntax">eg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">markdown_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">md</span><span class="plain-syntax"> = </span><span class="identifier-syntax">stc</span><span class="plain-syntax">-></span><span class="element-syntax">secondary_placement</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">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">) </span><span class="identifier-syntax">md</span><span class="plain-syntax"> = </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">md</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> != </span><span class="identifier-syntax">HEADING_MIT</span><span class="plain-syntax">)) </span><span class="identifier-syntax">md</span><span class="plain-syntax"> = </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">md</span><span class="plain-syntax">) && (</span><a href="7-dc.html#SP18" class="function-link"><span class="function-syntax">DocumentationCompiler::skippable_item</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">eg</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">md</span><span class="plain-syntax"> = </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">eg_header</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">; </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">eg_header</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
|
@ -1034,6 +1036,21 @@ in the secondary (if there is one).
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">DocumentationCompiler::skippable_item</span><span class="plain-syntax">(</span><span class="identifier-syntax">markdown_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">md</span><span class="plain-syntax">, </span><span class="identifier-syntax">IFM_example</span><span class="plain-syntax"> *</span><span class="identifier-syntax">by</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">md</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</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">md</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">HEADING_MIT</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">Markdown::get_heading_level</span><span class="plain-syntax">(</span><span class="identifier-syntax">md</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</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">Markdown::get_heading_level</span><span class="plain-syntax">(</span><span class="identifier-syntax">md</span><span class="plain-syntax">) == </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</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">md</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INFORM_EXAMPLE_HEADING_MIT</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IFM_example</span><span class="plain-syntax"> *</span><span class="identifier-syntax">already</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_IFM_example</span><span class="plain-syntax">(</span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="identifier-syntax">user_state</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">already</span><span class="plain-syntax">-></span><span class="element-syntax">star_count</span><span class="plain-syntax"> > </span><span class="identifier-syntax">by</span><span class="plain-syntax">-></span><span class="element-syntax">star_count</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</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">already</span><span class="plain-syntax">-></span><span class="element-syntax">star_count</span><span class="plain-syntax"> < </span><span class="identifier-syntax">by</span><span class="plain-syntax">-></span><span class="element-syntax">star_count</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</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">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">already</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b>And lastly, we can number the examples. This is done as a third stage of
|
||||
processing and not as part of the second because we must also pick up
|
||||
|
|
|
@ -888,7 +888,8 @@ void DocumentationCompiler::place_example_heading_items(compiled_documentation *
|
|||
}
|
||||
} else {
|
||||
if (md->next) md = md->next;
|
||||
while ((md) && (md->next) && (md->next->type != HEADING_MIT)) md = md->next;
|
||||
while ((md) && (DocumentationCompiler::skippable_item(md->next, eg)))
|
||||
md = md->next;
|
||||
eg_header->next = md->next; md->next = eg_header;
|
||||
}
|
||||
|
||||
|
@ -898,7 +899,8 @@ void DocumentationCompiler::place_example_heading_items(compiled_documentation *
|
|||
eg_header->user_state = STORE_POINTER_IFM_example(eg);
|
||||
markdown_item *md = stc->secondary_placement;
|
||||
if (md->next) md = md->next;
|
||||
while ((md) && (md->next) && (md->next->type != HEADING_MIT)) md = md->next;
|
||||
while ((md) && (DocumentationCompiler::skippable_item(md->next, eg)))
|
||||
md = md->next;
|
||||
eg_header->next = md->next; md->next = eg_header;
|
||||
}
|
||||
|
||||
|
@ -909,6 +911,21 @@ void DocumentationCompiler::place_example_heading_items(compiled_documentation *
|
|||
}
|
||||
}
|
||||
|
||||
int DocumentationCompiler::skippable_item(markdown_item *md, IFM_example *by) {
|
||||
if (md == NULL) return FALSE;
|
||||
if (md->type == HEADING_MIT) {
|
||||
if (Markdown::get_heading_level(md) == 1) return FALSE;
|
||||
if (Markdown::get_heading_level(md) == 2) return FALSE;
|
||||
}
|
||||
if (md->type == INFORM_EXAMPLE_HEADING_MIT) {
|
||||
IFM_example *already = RETRIEVE_POINTER_IFM_example(md->user_state);
|
||||
if (already->star_count > by->star_count) return FALSE;
|
||||
if (already->star_count < by->star_count) return TRUE;
|
||||
if (Str::cmp(already->name, by->name) > 0) return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ And lastly, we can number the examples. This is done as a third stage of
|
||||
processing and not as part of the second because we must also pick up
|
||||
example headers explicitly written in the source text of a single-file extension,
|
||||
|
|
|
@ -267,7 +267,7 @@ Total memory consumption was 143681K = 140 MB
|
|||
|
||||
99.9% was used for memory not allocated for objects:
|
||||
|
||||
63.1% text stream storage 92847756 bytes in 541398 claims
|
||||
63.1% text stream storage 92848204 bytes in 541402 claims
|
||||
3.9% dictionary storage 5795776 bytes in 7837 claims
|
||||
---- sorting 6424 bytes in 1489 claims
|
||||
4.8% source text 7200000 bytes in 3 claims
|
||||
|
|
|
@ -1,29 +1,28 @@
|
|||
100.0% in inform7 run
|
||||
66.9% in compilation to Inter
|
||||
45.2% in //Sequence::undertake_queued_tasks//
|
||||
4.7% in //MajorNodes::pre_pass//
|
||||
3.6% in //MajorNodes::pass_1//
|
||||
67.4% in compilation to Inter
|
||||
45.3% in //Sequence::undertake_queued_tasks//
|
||||
4.8% in //MajorNodes::pre_pass//
|
||||
3.3% in //MajorNodes::pass_1//
|
||||
1.8% in //ImperativeDefinitions::assess_all//
|
||||
1.4% in //RTKindConstructors::compile//
|
||||
1.4% in //RTPhrasebook::compile_entries//
|
||||
1.1% in //Sequence::lint_inter//
|
||||
0.7% in //ImperativeDefinitions::compile_first_block//
|
||||
0.3% in //CompletionModule::compile//
|
||||
0.3% in //ImperativeDefinitions::compile_first_block//
|
||||
0.3% in //MajorNodes::pass_2//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.3% in //World::stage_V//
|
||||
4.8% not specifically accounted for
|
||||
27.2% in running Inter pipeline
|
||||
8.8% in step 14/15: generate inform6 -> auto.inf
|
||||
6.9% in step 5/15: load-binary-kits
|
||||
5.8% in step 6/15: make-synoptic-module
|
||||
5.7% not specifically accounted for
|
||||
26.5% in running Inter pipeline
|
||||
8.6% in step 14/15: generate inform6 -> auto.inf
|
||||
7.1% in step 5/15: load-binary-kits
|
||||
5.6% in step 6/15: make-synoptic-module
|
||||
1.8% in step 9/15: make-identifiers-unique
|
||||
0.3% in step 11/15: eliminate-redundant-labels
|
||||
0.3% in step 12/15: eliminate-redundant-operations
|
||||
0.3% in step 4/15: compile-splats
|
||||
0.3% in step 7/15: shorten-wiring
|
||||
0.3% in step 8/15: detect-indirect-calls
|
||||
1.9% not specifically accounted for
|
||||
5.1% in supervisor
|
||||
1.8% not specifically accounted for
|
||||
5.2% in supervisor
|
||||
0.8% not specifically accounted for
|
||||
|
|
|
@ -46,7 +46,8 @@
|
|||
--button-text-background-colour: #ffffff;
|
||||
|
||||
--syntaxdefinition-colour: #000040;
|
||||
--syntaxfunction-colour: #000040;
|
||||
--syntaxheading-colour: #7f0000;
|
||||
--syntaxfunction-colour: #5f0000;
|
||||
--syntaxreserved-colour: #000040;
|
||||
--syntaxelement-colour: #000040;
|
||||
--syntaxidentifier-colour: #000040;
|
||||
|
@ -166,7 +167,8 @@
|
|||
--button-text-background-colour: #ffffff;
|
||||
|
||||
--syntaxdefinition-colour: #e0e0ff;
|
||||
--syntaxfunction-colour: #e0e0ff;
|
||||
--syntaxheading-colour: #7f0000;
|
||||
--syntaxfunction-colour: #ffe0e0;
|
||||
--syntaxreserved-colour: #e0e0ff;
|
||||
--syntaxelement-colour: #e0e0ff;
|
||||
--syntaxidentifier-colour: #e0e0ff;
|
||||
|
@ -754,10 +756,17 @@ button.dangerousbutton {
|
|||
|
||||
.markdowncontent div.extract-transcript {
|
||||
margin: 0.75em;
|
||||
margin-inline-start: 40px;
|
||||
margin-inline-end: 40px;
|
||||
padding: 0.75em;
|
||||
border: 1px dotted var(--md-dashed-border-colour);
|
||||
background-color: var(--md-transcript-background-colour);
|
||||
}
|
||||
|
||||
.markdowncontent div.extract-transcript pre {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.markdowncontent div.extract-code {
|
||||
margin: 0.75em;
|
||||
padding: 0.75em;
|
||||
|
@ -813,7 +822,8 @@ button.dangerousbutton {
|
|||
/* Used in syntax-colouring for extension documentation */
|
||||
|
||||
span.syntaxdefinition { color: var(--syntaxdefinition-colour); }
|
||||
span.syntaxfunction { color: var(--syntaxfunction-colour); }
|
||||
span.syntaxheading { color: var(--syntaxheading-colour); text-decoration: underline; }
|
||||
span.syntaxfunction { color: var(--syntaxfunction-colour); font-style: italic; }
|
||||
span.syntaxplain { color: var(--syntaxplain-colour); }
|
||||
span.syntaxelement { color: var(--syntaxelement-colour); }
|
||||
span.syntaxidentifier { color: var(--syntaxidentifier-colour); }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "Architecture16Kit",
|
||||
"version": "10.2.0-beta+6X60"
|
||||
"version": "10.2.0-beta+6X61"
|
||||
},
|
||||
"compatibility": "16-bit",
|
||||
"kit-details": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "Architecture32Kit",
|
||||
"version": "10.2.0-beta+6X60"
|
||||
"version": "10.2.0-beta+6X61"
|
||||
},
|
||||
"compatibility": "32-bit",
|
||||
"kit-details": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "BasicInformKit",
|
||||
"version": "10.2.0-beta+6X60"
|
||||
"version": "10.2.0-beta+6X61"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "CommandParserKit",
|
||||
"version": "10.2.0-beta+6X60"
|
||||
"version": "10.2.0-beta+6X61"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "EnglishLanguageKit",
|
||||
"version": "10.2.0-beta+6X60"
|
||||
"version": "10.2.0-beta+6X61"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "WorldModelKit",
|
||||
"version": "10.2.0-beta+6X60"
|
||||
"version": "10.2.0-beta+6X61"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -9,3 +9,32 @@ String Literal: "\""
|
|||
# a spurious comment betraying Inweb's involvement in the process -
|
||||
|
||||
Suppress Disclaimer: true
|
||||
|
||||
colouring {
|
||||
runs of unquoted {
|
||||
matches of /\aSection .*?\z/ {
|
||||
=> !heading
|
||||
}
|
||||
matches of /\aChapter .*?\z/ {
|
||||
=> !heading
|
||||
}
|
||||
matches of /\aVolume .*?\z/ {
|
||||
=> !heading
|
||||
}
|
||||
matches of /\aBook .*?\z/ {
|
||||
=> !heading
|
||||
}
|
||||
matches of /\aPart .*?\z/ {
|
||||
=> !heading
|
||||
}
|
||||
matches of /\a\s*->.*?\z/ {
|
||||
=> !function
|
||||
}
|
||||
matches of /\a\s*<-.*?\z/ {
|
||||
=> !function
|
||||
}
|
||||
matches of /\a\(.*?\.\) *\z/ {
|
||||
=> !function
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5748,7 +5748,7 @@ The effect here is that we'd see
|
|||
|
||||
Consider this beat:
|
||||
|
||||
(about the Zeppelin)
|
||||
(About the Zeppelin.)
|
||||
|
||||
Hans: "See our prodigious rate of climb, Ludwig!"
|
||||
|
||||
|
@ -5762,7 +5762,7 @@ Because of that, each beat has a list of _required speakers_. If the source text
|
|||
|
||||
But if that is not what the author wants, the cue can be more explicit:
|
||||
|
||||
(about the Zeppelin; requiring Hans)
|
||||
(About the Zeppelin; requiring Hans.)
|
||||
|
||||
Hans: "What a prodigious rate of climb!"
|
||||
|
||||
|
@ -5872,7 +5872,7 @@ The list of live conversational subjects is best thought of as pretty ephemeral,
|
|||
|
||||
- A subject becomes live whenever a line of dialogue `mentioning` it is performed. For example, if Bernardo says this line:
|
||||
|
||||
Bernardo (mentioning Denmark): This bodes some strange eruption to our state.
|
||||
Bernardo (mentioning Denmark): "This bodes some strange eruption to our state."
|
||||
|
||||
then `Denmark` becomes a live conversational subject.
|
||||
|
||||
|
|
Loading…
Reference in a new issue