@@ -858,8 +858,6 @@ will eventually have Contingent do for us:
858
858
the graph ` g ` captures the inputs and consequences
859
859
for the various artifacts in our project's documentation.
860
860
861
- STOPPED HERE
862
-
863
861
## Learning Connections
864
862
865
863
We now have a way for Contingent
@@ -897,7 +895,7 @@ simplified input and output document formats.
897
895
Our input documents will consist of a title on the first line,
898
896
with the remainder of the text forming the body.
899
897
Cross references will simply be source file names
900
- enclosed in back ticks ,
898
+ enclosed in backticks ,
901
899
which on output are replaced with the title
902
900
from the corresponding document in the output.
903
901
@@ -933,7 +931,7 @@ Now that we have some source material to work with,
933
931
what functions would a Contingent-based blog builder
934
932
need?
935
933
936
- In the simplistic examples above,
934
+ In the simple examples above,
937
935
the HTML output files proceed directly from the source,
938
936
but in a realistic system,
939
937
turning source into markup involves several steps:
@@ -996,7 +994,7 @@ but it illustrates the interpretive responsibilities
996
994
that parsers are required to carry out.
997
995
Parsing in general is a very interesting subject
998
996
and many books have been written
999
- either partially or completely dedicated to it.
997
+ either partially or completely about it.
1000
998
In a system like Sphinx,
1001
999
the parser must understand the many markup tokens,
1002
1000
directives, and commands defined by the system,
@@ -1091,7 +1089,7 @@ We hope you enjoy it.
1091
1089
that transitively connects all the tasks
1092
1090
required to produce the output,
1093
1091
from reading the input file,
1094
- parsing and transforming the document,
1092
+ to parsing and transforming the document,
1095
1093
and rendering the result:
1096
1094
1097
1095
\aosafigure[ 240pt] {contingent-images/figure3.png}{A task graph.}{500l.contingent.graph3}
@@ -1109,7 +1107,7 @@ Contingent can assume that it has been called —
1109
1107
and that its output will be used —
1110
1108
by the task currently at the top of the stack.
1111
1109
Maintaining the stack will require that several extra steps
1112
- surround the invocation of a task \ * T* :
1110
+ surround the invocation of a task * T* :
1113
1111
1114
1112
1 . Push * T* onto the stack.
1115
1113
2 . Execute * T* , letting it call any other tasks it needs.
@@ -1290,8 +1288,8 @@ the <a href="tutorial.txt">Beginners Tutorial</a> first.
1290
1288
1291
1289
It worked!
1292
1290
From the output, we can see that
1293
- our transform substituted the docuent titles
1294
- for the directives in our source docuents ,
1291
+ our transform substituted the document titles
1292
+ for the directives in our source documents ,
1295
1293
indicating that Contingent was able to
1296
1294
discover the connections between the various tasks
1297
1295
needed to build our documents.
@@ -1377,7 +1375,7 @@ an algorithm which winds up being fairly easy to write in Python
1377
1375
through a hidden a recursive helper function.
1378
1376
Check out the ` graphlib.py ` source code for the details.
1379
1377
1380
- If upon detecting a change
1378
+ If, upon detecting a change,
1381
1379
we are careful to re-run every task in the recursive consequences,
1382
1380
then Contingent will be able to avoid rebuilding too little.
1383
1381
Our second challenge, however,
@@ -1396,9 +1394,9 @@ This optimization will involve a final data structure.
1396
1394
We will give the ` Project ` a ` _todo ` set
1397
1395
with which to remember every task
1398
1396
for which at least one input value has changed,
1399
- and that therefore requires re-execution.
1397
+ and which therefore requires re-execution.
1400
1398
Because only tasks in ` _todo ` are out-of-date,
1401
- the build process can skip running any other tasks
1399
+ the build process can skip running any tasks
1402
1400
unless they appear there.
1403
1401
1404
1402
Again, Python’s convenient and unified design
0 commit comments