Added invisible paragraph numbering option
This commit is contained in:
parent
74ac3c3ccd
commit
d87ad97a04
12 changed files with 1242 additions and 1213 deletions
|
@ -735,6 +735,7 @@ typedef struct paragraph {
|
|||
int above_bar; /* placed above the dividing bar in its section (in Version 1 syntax) */
|
||||
int placed_early; /* should appear early in the tangled code */
|
||||
int placed_very_early; /* should appear very early in the tangled code */
|
||||
int invisible; /* do not render paragraph number */
|
||||
struct text_stream *heading_text; /* if any - many paras have none */
|
||||
struct text_stream *ornament; /* a "P" for a pilcrow or "S" for section-marker */
|
||||
struct text_stream *paragraph_number; /* used in combination with the ornament */
|
||||
|
@ -765,6 +766,9 @@ typedef struct paragraph {
|
|||
P->placed_early = before_bar;
|
||||
P->placed_very_early = FALSE;
|
||||
}
|
||||
P->invisible = FALSE;
|
||||
if (Str::eq(Bibliographic::get_datum(W->md, I"Paragraph Numbers Visibility"), I"Off"))
|
||||
P->invisible = TRUE;
|
||||
P->heading_text = Str::duplicate(L->text_operand);
|
||||
if ((S->md->using_syntax == V1_SYNTAX) && (before_bar))
|
||||
P->ornament = Str::duplicate(I"P");
|
||||
|
|
|
@ -542,11 +542,11 @@ was well.
|
|||
|
||||
A more typical example, drawn from the actual Inform 7 web, is:
|
||||
= (text)
|
||||
<k-kind-of-kind> <k-formal-kind-variable> ==> { - , Kinds::variable_construction(R[2], RP[1]) }
|
||||
<k-kind-of-kind> <k-formal-variable> ==> { - , Kinds::var_construction(R[2], RP[1]) }
|
||||
=
|
||||
which says that the composite result -- the right-hand formula -- is formed by
|
||||
calling a particular routine on the integer result of subexpression 2
|
||||
(|<k-formal-kind-variable>|) and the pointer result of subexpression 1
|
||||
(|<k-formal-variable>|) and the pointer result of subexpression 1
|
||||
(|<k-kind-of-kind>|). The answer, the composite result, that is, must be
|
||||
placed in |*X| and |*XP|. (Composition functions are also allowed to
|
||||
invalidate the result, by returning |FALSE|, and have other tricks up their
|
||||
|
|
|
@ -919,11 +919,13 @@ void HTMLFormat::paragraph_number(text_stream *OUT, paragraph *P) {
|
|||
Colonies::paragraph_anchor(TEMP, P);
|
||||
HTML::anchor_with_class(OUT, TEMP, I"paragraph-anchor");
|
||||
DISCARD_TEXT(TEMP)
|
||||
HTML_OPEN("b");
|
||||
WRITE("%s%S", (Str::get_first_char(P->ornament) == 'S')?"§":"¶",
|
||||
P->paragraph_number);
|
||||
WRITE(". %S%s ", P->heading_text, (Str::len(P->heading_text) > 0)?".":"");
|
||||
HTML_CLOSE("b");
|
||||
if (P->invisible == FALSE) {
|
||||
HTML_OPEN("b");
|
||||
WRITE("%s%S", (Str::get_first_char(P->ornament) == 'S')?"§":"¶",
|
||||
P->paragraph_number);
|
||||
WRITE(". %S%s ", P->heading_text, (Str::len(P->heading_text) > 0)?".":"");
|
||||
HTML_CLOSE("b");
|
||||
}
|
||||
}
|
||||
|
||||
@ =
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Inweb 7
|
||||
|
||||
v7-alpha.1+1A62 'Escape to Danger' (16 August 2020)
|
||||
v7-alpha.1+1A63 'Escape to Danger' (19 August 2020)
|
||||
|
||||
## About Inweb
|
||||
|
||||
|
|
2407
Tangled/inweb.c
2407
Tangled/inweb.c
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,3 @@
|
|||
Prerelease: alpha.1
|
||||
Build Date: 16 August 2020
|
||||
Build Number: 1A62
|
||||
Build Date: 19 August 2020
|
||||
Build Number: 1A63
|
||||
|
|
|
@ -128,6 +128,7 @@ convenient to store them directly here than to use a dictionary.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">bd</span><span class="plain-syntax"> = </span><a href="8-bdfw.html#SP7" class="function-link"><span class="function-syntax">Bibliographic::set_datum</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Wm</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Code In Code Comments Notation"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"|"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bd</span><span class="plain-syntax"> = </span><a href="8-bdfw.html#SP7" class="function-link"><span class="function-syntax">Bibliographic::set_datum</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Wm</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Cross-References Notation"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"//"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bd</span><span class="plain-syntax"> = </span><a href="8-bdfw.html#SP7" class="function-link"><span class="function-syntax">Bibliographic::set_datum</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Wm</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Web Syntax Version"</span><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">bd</span><span class="plain-syntax"> = </span><a href="8-bdfw.html#SP7" class="function-link"><span class="function-syntax">Bibliographic::set_datum</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Wm</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Paragraph Numbers Visibility"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"On"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>Once the declarations for a web have been processed, the following is called
|
||||
|
|
Binary file not shown.
|
@ -920,6 +920,7 @@ of French weaving" and the remainder,
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">above_bar</span><span class="plain-syntax">; </span><span class="comment-syntax"> placed above the dividing bar in its section (in Version 1 syntax)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">placed_early</span><span class="plain-syntax">; </span><span class="comment-syntax"> should appear early in the tangled code</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">placed_very_early</span><span class="plain-syntax">; </span><span class="comment-syntax"> should appear very early in the tangled code</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">invisible</span><span class="plain-syntax">; </span><span class="comment-syntax"> do not render paragraph number</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">heading_text</span><span class="plain-syntax">; </span><span class="comment-syntax"> if any - many paras have none</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ornament</span><span class="plain-syntax">; </span><span class="comment-syntax"> a "P" for a pilcrow or "S" for section-marker</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">paragraph_number</span><span class="plain-syntax">; </span><span class="comment-syntax"> used in combination with the ornament</span>
|
||||
|
@ -954,6 +955,9 @@ of French weaving" and the remainder,
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">placed_early</span><span class="plain-syntax"> = </span><span class="identifier-syntax">before_bar</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">placed_very_early</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">invisible</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><a href="../foundation-module/8-bdfw.html#SP6" class="function-link"><span class="function-syntax">Bibliographic::get_datum</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Paragraph Numbers Visibility"</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Off"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">invisible</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">heading_text</span><span class="plain-syntax"> = </span><a href="../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">L</span><span class="plain-syntax">-></span><span class="element-syntax">text_operand</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">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">using_syntax</span><span class="plain-syntax"> == </span><span class="constant-syntax">V1_SYNTAX</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">before_bar</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">ornament</span><span class="plain-syntax"> = </span><a href="../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">I</span><span class="string-syntax">"P"</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -710,11 +710,11 @@ was well.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> <k-kind-of-kind> <k-formal-kind-variable> ==> { - , Kinds::variable_construction(R[2], RP[1]) }</span>
|
||||
<span class="plain-syntax"> <k-kind-of-kind> <k-formal-variable> ==> { - , Kinds::var_construction(R[2], RP[1]) }</span>
|
||||
</pre>
|
||||
<p class="commentary">which says that the composite result — the right-hand formula — is formed by
|
||||
calling a particular routine on the integer result of subexpression 2
|
||||
(<span class="extract"><span class="extract-syntax"><k-formal-kind-variable></span></span>) and the pointer result of subexpression 1
|
||||
(<span class="extract"><span class="extract-syntax"><k-formal-variable></span></span>) and the pointer result of subexpression 1
|
||||
(<span class="extract"><span class="extract-syntax"><k-kind-of-kind></span></span>). The answer, the composite result, that is, must be
|
||||
placed in <span class="extract"><span class="extract-syntax">*X</span></span> and <span class="extract"><span class="extract-syntax">*XP</span></span>. (Composition functions are also allowed to
|
||||
invalidate the result, by returning <span class="extract"><span class="extract-syntax">FALSE</span></span>, and have other tricks up their
|
||||
|
|
|
@ -1190,11 +1190,13 @@ which is itself inside a list entry"; and so on.
|
|||
<span class="plain-syntax"> </span><a href="6-cln.html#SP11" class="function-link"><span class="function-syntax">Colonies::paragraph_anchor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/5-htm.html#SP17" class="function-link"><span class="function-syntax">HTML::anchor_with_class</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"paragraph-anchor"</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">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"b"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%s%S"</span><span class="plain-syntax">, (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_first_char</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">ornament</span><span class="plain-syntax">) == </span><span class="character-syntax">'S'</span><span class="plain-syntax">)?</span><span class="string-syntax">"&#167;"</span><span class="plain-syntax">:</span><span class="string-syntax">"&para;"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">paragraph_number</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">". %S%s "</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">heading_text</span><span class="plain-syntax">, (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">heading_text</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">)?</span><span class="string-syntax">"."</span><span class="plain-syntax">:</span><span class="string-syntax">""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"b"</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">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">invisible</span><span class="plain-syntax"> == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"b"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%s%S"</span><span class="plain-syntax">, (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_first_char</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">ornament</span><span class="plain-syntax">) == </span><span class="character-syntax">'S'</span><span class="plain-syntax">)?</span><span class="string-syntax">"&#167;"</span><span class="plain-syntax">:</span><span class="string-syntax">"&para;"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">paragraph_number</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">". %S%s "</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">heading_text</span><span class="plain-syntax">, (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">heading_text</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">)?</span><span class="string-syntax">"."</span><span class="plain-syntax">:</span><span class="string-syntax">""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"b"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b></p>
|
||||
|
|
|
@ -76,6 +76,7 @@ void Bibliographic::initialise_data(web_md *Wm) {
|
|||
bd = Bibliographic::set_datum(Wm, I"Code In Code Comments Notation", I"|");
|
||||
bd = Bibliographic::set_datum(Wm, I"Cross-References Notation", I"//");
|
||||
bd = Bibliographic::set_datum(Wm, I"Web Syntax Version", NULL);
|
||||
bd = Bibliographic::set_datum(Wm, I"Paragraph Numbers Visibility", I"On");
|
||||
}
|
||||
|
||||
@ Once the declarations for a web have been processed, the following is called
|
||||
|
|
Loading…
Reference in a new issue