livetext 0.8.75 → 0.8.76

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 21186686015782cd79ffd6656825499efe541b7657354c9aafd6b5685ef35199
4
- data.tar.gz: 6ae3afae0bef8ef24aad162ab188faab26e94c78f8b447d47f050d307ca9b12d
3
+ metadata.gz: dc5fb0814d68c5672211c15ec2e37cfdf1eb0e82509249fa627f4fcc809653a6
4
+ data.tar.gz: dd997198c3af0c32b1125fb403ee67d225083c302c3d0bca32c74c89554cf511
5
5
  SHA512:
6
- metadata.gz: 93775d5b327bc89ffe1803b4969865dc697da73d1671cac2a96a654cb0fbda8402c19429f9038d0883e8b053ac95fae7297a5280c8bbd9c6598962c28cfbc158
7
- data.tar.gz: 0f2b1e2653bede2aa72a7c1b624fda390cb4e2570b4c430595393557a58c2b819f584008c97808bc62971671a7e0cf1779019eb292d972d9e7cd646c628a21f8
6
+ metadata.gz: 4d52c231252860de533870f9a31ef9b0c68cfa6579f64d19ed1177e63e9a008e5f35a8aea893ed34a546a419e8f92f644bdf7aa85638786cd55e65007e6202af
7
+ data.tar.gz: 7822f9b1f34fdfc7791831c425bf079e25f12e35972855c77b267306957cef48c3394bd04a59385c79d8edb517e3d98be47957ab6eba5d42fb5c4442688089f9
data/README.lt3 CHANGED
@@ -130,27 +130,28 @@ names are essentially the same as the names of the dot-commands, with occasional
130
130
  (For example, it is impractical to use the name `def as a method name, so the module has a
131
131
  `_def method instead.) Here is the current list:
132
132
 
133
- .dlist %%
134
- `comment %% Start a comment block
135
- `errout %% Write an error message to STDERR
136
- `def %% Define a new method inline
137
- `set %% Assign values to variables for later interpolation
138
- `include %% Include an outside text file (to be interpreted as Livetext)
139
- `mixin %% Mix this file of Ruby methods into the standard namespace
140
- `copy %% Copy this input file verbatim (no interpretation)
141
- `r %% Pass a single line through without processing
142
- `raw %% Pass this special text block (terminated with ``__EOF__) directly into output without processing
143
- `func %% Define a function to be invoked inline
144
- `say %% Print a message to the screen
145
- `banner %% Print a "noticeable" message to the screen
146
- `quit %% End processing and exit
147
- `nopass %% Don't pass lines through (just honor commands)
148
- `include %% Read and process another file (typically a `.lt3 file)
149
- `debug %% Turn on debugging
150
- `nopara %% Turn off the "blank line implies new paragraph" switch
151
- `newpage %% Start a new output page
133
+ .xtable
134
+ `comment :: Start a comment block
135
+ `errout :: Write an error message to STDERR
136
+ `def :: Define a new method inline
137
+ `set :: Assign values to variables for later interpolation
138
+ `include :: Include an outside text file (to be interpreted as Livetext)
139
+ `mixin :: Mix this file of Ruby methods into the standard namespace
140
+ `copy :: Copy this input file verbatim (no interpretation)
141
+ `r :: Pass a single line through without processing
142
+ `raw :: Pass this special text block (terminated with ``__EOF__) directly into output without processing
143
+ `func :: Define a function to be invoked inline
144
+ `say :: Print a message to the screen
145
+ `banner :: Print a "noticeable" message to the screen
146
+ `quit :: End processing and exit
147
+ `nopass :: Don't pass lines through (just honor commands)
148
+ `include :: Read and process another file (typically a `.lt3 file)
149
+ `debug :: Turn on debugging
150
+ `nopara :: Turn off the "blank line implies new paragraph" switch
151
+ `newpage :: Start a new output page
152
152
  .end
153
153
 
154
+
154
155
  .section Examples from the tests
155
156
 
156
157
  Here are some tests from the suite. The file name reflects the general purpose of the test.
@@ -230,14 +231,14 @@ Here is the HTML output of the previous example:
230
231
 
231
232
  What are some other helper methods? Here's a list.
232
233
 
233
- .dlist
234
- `\_args %% Returns an array of arguments for the method (or an enumerator for that array)
235
- `\_data %% A single "unsplit" string of all arguments in raw form
236
- `\_body %% Returns a string (or enumerator) giving access to the text block (preceding ``.end)
237
- `\_puts %% Write a line to output (STDOUT or wherever)
238
- `\_print %% Write a line to output (STDOUT or wherever) without a newline
239
- `\_formatting %% A function transforming boldface, italics, and monospace (Livetext conventions)
240
- `\_passthru %% Feed a line directly into output after transforming and substituting
234
+ .xtable
235
+ `_args :: Returns an array of arguments for the method (or an enumerator for that array)
236
+ `_data :: A single "unsplit" string of all arguments in raw form
237
+ `_body :: Returns a string (or enumerator) giving access to the text block (preceding ``.end)
238
+ `_puts :: Write a line to output (STDOUT or wherever)
239
+ `_print :: Write a line to output (STDOUT or wherever) without a newline
240
+ `_formatting :: A function transforming boldface, italics, and monospace (Livetext conventions)
241
+ `_passthru :: Feed a line directly into output after transforming and substituting
241
242
  .end
242
243
 
243
244
  Note that the last three methods are typically _not called in your own code. They could be,
@@ -294,11 +295,27 @@ Now the `.lt3 file can be written this way:
294
295
  cytology fusillade ectomorph
295
296
  .end
296
297
 
297
- I hope that worked a second time.
298
+ And that is all.
298
299
  .end
299
300
 
300
301
  The output, of course, is the same.
301
302
 
303
+ You can define variables in Livetext, defined with `.set and
304
+ referenced with a ``$. Later there will be a few predefined
305
+ variables. Variables are just string values.
306
+
307
+ .testcase simple_vars
308
+
309
+ If a variable needs to contain spaces, you can double-quote it.
310
+
311
+ .testcase more_complex_vars
312
+
313
+ Livetext permits user-defined functions (as well as defining a few
314
+ predefined ones). Call a function with `$$ and (if applicable) pass
315
+ a single string parameter between brackets.
316
+
317
+ .testcase functions
318
+
302
319
  There is an important feature that has not yet been implemented (the
303
320
  `require method). Like Ruby's ``require, it will grab Ruby code and
304
321
  load it; however, unlike ``mixin, it will load it into a customized
data/README.md CHANGED
@@ -1,7 +1,5 @@
1
- <style>
2
- pre {font-size: 14; bold }
3
- tt {font-size: 14; bold }
4
- </style>
1
+ <p>
2
+
5
3
  # Livetext: A smart processor for text
6
4
  <b>This README is currently mangled. Fixes coming soon!</b>
7
5
  <p>
@@ -146,24 +144,30 @@ Most of this is summarized in this example (taken from one of the testcases):
146
144
  </tr>
147
145
  <tr>
148
146
  <td width=50% bgcolor=#fee0fe valign=top>
149
- <pre> Here are examples of *boldface and \_italics and `code
150
- as well as *[more complex] examples of \_[italicized text]
147
+ <pre> Here are examples of *boldface
148
+ and \_italics
149
+ and `code
150
+ as well as *[more complex] examples
151
+ of \_[italicized text]
151
152
  and `[code font].
152
153
 
153
154
  Here are some random punctuation marks:
154
- # . @ * \_ ` : ; % ^ & $
155
+ ; # . * \_ ` : @ % ^ & $
155
156
 
156
157
  No need to escape these: * \_ `
157
158
  </pre>
158
159
  </td>
159
160
  <td width=50% bgcolor=#eeeeee valign=top>
160
- <pre> Here are examples of <b>boldface</b> and <i>italics</i> and <font size=+1><tt>code</tt></font>
161
- as well as <b>more complex</b> examples of <i>italicized text</i>
161
+ <pre> Here are examples of <b>boldface</b>
162
+ and <i>italics</i>
163
+ and <font size=+1><tt>code</tt></font>
164
+ as well as <b>more complex</b> examples
165
+ of <i>italicized text</i>
162
166
  and <font size=+1><tt>code font</tt></font>.
163
167
  <p>
164
168
 
165
169
  Here are some random punctuation marks:
166
- # . @ * \_ ` : ; % ^ & $
170
+ ; # . * \_ ` : @ % ^ & $
167
171
  <p>
168
172
 
169
173
  No need to escape these: * \_ `
@@ -182,44 +186,82 @@ names are essentially the same as the names of the dot-commands, with occasional
182
186
  <font size=+1><tt>_def</tt></font> method instead.) Here is the current list:
183
187
  <p>
184
188
 
185
- <dl>
186
- <dt> <font size=+1><tt>comment</tt></font> </dt>
187
- <dd> Start a comment block</dd>
188
- <dt> <font size=+1><tt>errout</tt></font> </dt>
189
- <dd> Write an error message to STDERR</dd>
190
- <dt> <font size=+1><tt>def</tt></font> </dt>
191
- <dd> Define a new method inline</dd>
192
- <dt> <font size=+1><tt>set</tt></font> </dt>
193
- <dd> Assign values to variables for later interpolation</dd>
194
- <dt> <font size=+1><tt>include</tt></font> </dt>
195
- <dd> Include an outside text file (to be interpreted as Livetext)</dd>
196
- <dt> <font size=+1><tt>mixin</tt></font> </dt>
197
- <dd> Mix this file of Ruby methods into the standard namespace</dd>
198
- <dt> <font size=+1><tt>copy</tt></font> </dt>
199
- <dd> Copy this input file verbatim (no interpretation)</dd>
200
- <dt> <font size=+1><tt>r</tt></font> </dt>
201
- <dd> Pass a single line through without processing</dd>
202
- <dt> <font size=+1><tt>raw</tt></font> </dt>
203
- <dd> Pass this special text block (terminated with <font size=+1><tt><i>EOF__</tt></font></i>) directly into output without processing </dd>
204
- <dt> <font size=+1><tt>func</tt></font> </dt>
205
- <dd> Define a function to be invoked inline</dd>
206
- <dt> <font size=+1><tt>say</tt></font> </dt>
207
- <dd> Print a message to the screen</dd>
208
- <dt> <font size=+1><tt>banner</tt></font> </dt>
209
- <dd> Print a "noticeable" message to the screen</dd>
210
- <dt> <font size=+1><tt>quit</tt></font> </dt>
211
- <dd> End processing and exit</dd>
212
- <dt> <font size=+1><tt>nopass</tt></font> </dt>
213
- <dd> Don't pass lines through (just honor commands)</dd>
214
- <dt> <font size=+1><tt>include</tt></font> </dt>
215
- <dd> Read and process another file (typically a <font size=+1><tt>.lt3</tt></font> file)</dd>
216
- <dt> <font size=+1><tt>debug</tt></font> </dt>
217
- <dd> Turn on debugging</dd>
218
- <dt> <font size=+1><tt>nopara</tt></font> </dt>
219
- <dd> Turn off the "blank line implies new paragraph" switch</dd>
220
- <dt> <font size=+1><tt>newpage</tt></font> </dt>
221
- <dd> Start a new output page</dd>
222
- </dl>
189
+ <br><center><table width=90% cellpadding=5>
190
+ <tr>
191
+ <td valign=top> <font size=+1><tt>comment</tt></font> </td>
192
+ <td valign=top> Start a comment block</td>
193
+ </tr>
194
+ <tr>
195
+ <td valign=top> <font size=+1><tt>errout</tt></font> </td>
196
+ <td valign=top> Write an error message to STDERR</td>
197
+ </tr>
198
+ <tr>
199
+ <td valign=top> <font size=+1><tt>def</tt></font> </td>
200
+ <td valign=top> Define a new method inline</td>
201
+ </tr>
202
+ <tr>
203
+ <td valign=top> <font size=+1><tt>set</tt></font> </td>
204
+ <td valign=top> Assign values to variables for later interpolation</td>
205
+ </tr>
206
+ <tr>
207
+ <td valign=top> <font size=+1><tt>include</tt></font> </td>
208
+ <td valign=top> Include an outside text file (to be interpreted as Livetext)</td>
209
+ </tr>
210
+ <tr>
211
+ <td valign=top> <font size=+1><tt>mixin</tt></font> </td>
212
+ <td valign=top> Mix this file of Ruby methods into the standard namespace</td>
213
+ </tr>
214
+ <tr>
215
+ <td valign=top> <font size=+1><tt>copy</tt></font> </td>
216
+ <td valign=top> Copy this input file verbatim (no interpretation)</td>
217
+ </tr>
218
+ <tr>
219
+ <td valign=top> <font size=+1><tt>r</tt></font> </td>
220
+ <td valign=top> Pass a single line through without processing</td>
221
+ </tr>
222
+ <tr>
223
+ <td valign=top> <font size=+1><tt>raw</tt></font> </td>
224
+ <td valign=top> Pass this special text block (terminated with <font size=+1><tt>__EOF__</tt></font>) directly into output without processing </td>
225
+ </tr>
226
+ <tr>
227
+ <td valign=top> <font size=+1><tt>func</tt></font> </td>
228
+ <td valign=top> Define a function to be invoked inline</td>
229
+ </tr>
230
+ <tr>
231
+ <td valign=top> <font size=+1><tt>say</tt></font> </td>
232
+ <td valign=top> Print a message to the screen</td>
233
+ </tr>
234
+ <tr>
235
+ <td valign=top> <font size=+1><tt>banner</tt></font> </td>
236
+ <td valign=top> Print a "noticeable" message to the screen</td>
237
+ </tr>
238
+ <tr>
239
+ <td valign=top> <font size=+1><tt>quit</tt></font> </td>
240
+ <td valign=top> End processing and exit</td>
241
+ </tr>
242
+ <tr>
243
+ <td valign=top> <font size=+1><tt>nopass</tt></font> </td>
244
+ <td valign=top> Don't pass lines through (just honor commands)</td>
245
+ </tr>
246
+ <tr>
247
+ <td valign=top> <font size=+1><tt>include</tt></font> </td>
248
+ <td valign=top> Read and process another file (typically a <font size=+1><tt>.lt3</tt></font> file)</td>
249
+ </tr>
250
+ <tr>
251
+ <td valign=top> <font size=+1><tt>debug</tt></font> </td>
252
+ <td valign=top> Turn on debugging</td>
253
+ </tr>
254
+ <tr>
255
+ <td valign=top> <font size=+1><tt>nopara</tt></font> </td>
256
+ <td valign=top> Turn off the "blank line implies new paragraph" switch</td>
257
+ </tr>
258
+ <tr>
259
+ <td valign=top> <font size=+1><tt>newpage</tt></font> </td>
260
+ <td valign=top> Start a new output page</td>
261
+ </tr>
262
+ </table></center>
263
+ <p>
264
+
223
265
  ### Examples from the tests
224
266
  Here are some tests from the suite. The file name reflects the general purpose of the test.
225
267
  <p>
@@ -367,7 +409,7 @@ Here are some tests from the suite. The file name reflects the general purpose o
367
409
  <td width=50% bgcolor=#fee0fe valign=top>
368
410
  <pre> Just
369
411
  some text.
370
- .set name=GulliverFoyle,nation=Terra
412
+ .set name=GulliverFoyle, nation=Terra
371
413
  Hi, there.
372
414
  $name is my name, and $nation is my nation.
373
415
  I'm $name, from $nation.
@@ -532,12 +574,14 @@ Here are some tests from the suite. The file name reflects the general purpose o
532
574
 
533
575
  .not\_a\_method
534
576
 
535
- And this stuff won't be munged: `alpha \_beta *gamma
536
- Or this: `(alpha male) \_(beta max) *(gamma rays)
537
- \_\_EOF\_\_
538
-
577
+ And this stuff won't be munged:
578
+ `alpha \_beta *gamma
539
579
 
540
- I hope that worked.
580
+ Or these:
581
+ `(alpha male)
582
+ \_(beta max)
583
+ *(gamma rays)
584
+ \_\_EOF\_\_
541
585
  </pre>
542
586
  </td>
543
587
  <td width=50% bgcolor=#eeeeee valign=top>
@@ -550,11 +594,13 @@ Here are some tests from the suite. The file name reflects the general purpose o
550
594
 
551
595
  .not\_a\_method
552
596
 
553
- And this stuff won't be munged: `alpha \_beta *gamma
554
- Or this: `(alpha male) \_(beta max) *(gamma rays)
555
- <p>
597
+ And this stuff won't be munged:
598
+ `alpha \_beta *gamma
556
599
 
557
- I hope that worked.
600
+ Or these:
601
+ `(alpha male)
602
+ \_(beta max)
603
+ *(gamma rays)
558
604
  </pre>
559
605
  </td>
560
606
  </tr>
@@ -573,8 +619,7 @@ The simplest way is just to define a method inline with the rest of
573
619
  the text. Here's an example.
574
620
  <p>
575
621
 
576
- <pre>
577
- .comment
622
+ <pre> .comment
578
623
  This example shows how to define
579
624
  a simple method &quot;chapter&quot; inline
580
625
  .end
@@ -622,8 +667,7 @@ collisions. These are all stored in the <font size=+1><tt>Livetext::UserAPI</tt>
622
667
  Here is the HTML output of the previous example:
623
668
  <p>
624
669
 
625
- <pre>
626
- &lt;h3&gt;Chapter 1&lt;/h3&gt;
670
+ <pre> &lt;h3&gt;Chapter 1&lt;/h3&gt;
627
671
  &lt;h2&gt;Why I Went to the Woods&lt;/h2&gt;
628
672
  &lt;hr&gt;
629
673
  It was the best of times, and you can call me Ishmael. The clocks
@@ -632,22 +676,36 @@ Here is the HTML output of the previous example:
632
676
  What are some other helper methods? Here's a list.
633
677
  <p>
634
678
 
635
- <dl>
636
- <dt><font</dt>
637
- <dd>size=+1><tt><i>args</tt></font></i></dd>
638
- <dt><font</dt>
639
- <dd>size=+1><tt><i>data</tt></font></i></dd>
640
- <dt><font</dt>
641
- <dd>size=+1><tt><i>body</tt></font></i></dd>
642
- <dt><font</dt>
643
- <dd>size=+1><tt><i>puts</tt></font></i></dd>
644
- <dt><font</dt>
645
- <dd>size=+1><tt><i>print</tt></font></i></dd>
646
- <dt><font</dt>
647
- <dd>size=+1><tt><i>formatting</tt></font></i></dd>
648
- <dt><font</dt>
649
- <dd>size=+1><tt><i>passthru</tt></font></i></dd>
650
- </dl>
679
+ <br><center><table width=90% cellpadding=5>
680
+ <tr>
681
+ <td valign=top><font size=+1><tt>_args</tt></font> </td>
682
+ <td valign=top> Returns an array of arguments for the method (or an enumerator for that array)</td>
683
+ </tr>
684
+ <tr>
685
+ <td valign=top><font size=+1><tt>_data</tt></font> </td>
686
+ <td valign=top> A single "unsplit" string of all arguments in raw form</td>
687
+ </tr>
688
+ <tr>
689
+ <td valign=top><font size=+1><tt>_body</tt></font> </td>
690
+ <td valign=top> Returns a string (or enumerator) giving access to the text block (preceding <font size=+1><tt></tt></font>.end)</td>
691
+ </tr>
692
+ <tr>
693
+ <td valign=top><font size=+1><tt>_puts</tt></font> </td>
694
+ <td valign=top> Write a line to output (STDOUT or wherever)</td>
695
+ </tr>
696
+ <tr>
697
+ <td valign=top><font size=+1><tt>_print</tt></font> </td>
698
+ <td valign=top> Write a line to output (STDOUT or wherever) without a newline</td>
699
+ </tr>
700
+ <tr>
701
+ <td valign=top><font size=+1><tt>_formatting</tt></font> </td>
702
+ <td valign=top> A function transforming boldface, italics, and monospace (Livetext conventions)</td>
703
+ </tr>
704
+ <tr>
705
+ <td valign=top><font size=+1><tt>_passthru</tt></font> </td>
706
+ <td valign=top> Feed a line directly into output after transforming and substituting</td>
707
+ </tr>
708
+ </table></center>
651
709
  Note that the last three methods are typically <i>not</i> called in your own code. They could be,
652
710
  but it remains to be seen whether something that advanced is useful.
653
711
  <p>
@@ -683,7 +741,7 @@ in the test suite.
683
741
  .end
684
742
 
685
743
 
686
- I hope that worked.
744
+ That's all.
687
745
  </pre>
688
746
  </td>
689
747
  <td width=50% bgcolor=#eeeeee valign=top>
@@ -709,7 +767,7 @@ in the test suite.
709
767
  zymurgy
710
768
  <p>
711
769
 
712
- I hope that worked.
770
+ That's all.
713
771
  </pre>
714
772
  </td>
715
773
  </tr>
@@ -755,7 +813,7 @@ have the user specify a number of columns (from 1 to 5, defaulting to 1).
755
813
  .end
756
814
 
757
815
 
758
- I hope that worked a second time.
816
+ And that is all.
759
817
  </pre>
760
818
  </td>
761
819
  <td width=50% bgcolor=#eeeeee valign=top>
@@ -770,7 +828,7 @@ have the user specify a number of columns (from 1 to 5, defaulting to 1).
770
828
  zootrope zymurgy
771
829
  <p>
772
830
 
773
- I hope that worked a second time.
831
+ And that is all.
774
832
  </pre>
775
833
  </td>
776
834
  </tr>
@@ -788,8 +846,7 @@ Let's assume we have a file called <font size=+1><tt>mylib.rb</tt></font> in the
788
846
  in here (and nothing else).
789
847
  <p>
790
848
 
791
- <pre>
792
- # File: mylib.rb
849
+ <pre> # File: mylib.rb
793
850
 
794
851
  def alpha
795
852
  cols = &lt;i&gt;args.first&lt;/i&gt;
@@ -808,8 +865,7 @@ in here (and nothing else).
808
865
  Now the <font size=+1><tt>.lt3</tt></font> file can be written this way:
809
866
  <p>
810
867
 
811
- <pre>
812
- .mixin mylib
868
+ <pre> .mixin mylib
813
869
  Here is an alphabetized list:
814
870
 
815
871
  .alpha 3
@@ -819,11 +875,156 @@ Now the <font size=+1><tt>.lt3</tt></font> file can be written this way:
819
875
  cytology fusillade ectomorph
820
876
  .end
821
877
 
822
- I hope that worked a second time.
878
+ And that is all.
823
879
  </pre>
824
880
  The output, of course, is the same.
825
881
  <p>
826
882
 
883
+ You can define variables in Livetext, defined with <font size=+1><tt>.set</tt></font> and
884
+ referenced with a <font size=+1><tt>$</tt></font>. Later there will be a few predefined
885
+ variables. Variables are just string values.
886
+ <p>
887
+
888
+
889
+ <font size=+1><b>Test: </font><font size=+2><tt>simple_vars</tt></font></b></h3><br>
890
+ <font size=+1>
891
+ <table width=80% cellpadding=4>
892
+ <tr>
893
+ <td width=50%><b>Input</b></td>
894
+ <td width=50%><b>Output</b></td>
895
+ </tr>
896
+ <tr>
897
+ <td width=50% bgcolor=#fee0fe valign=top>
898
+ <pre> Just
899
+ some text.
900
+ .set name=GulliverFoyle, nation=Terra
901
+ Hi, there.
902
+ $name is my name, and $nation is my nation.
903
+ I'm $name, from $nation.
904
+ That's all.
905
+ </pre>
906
+ </td>
907
+ <td width=50% bgcolor=#eeeeee valign=top>
908
+ <pre> Just
909
+ some text.
910
+ Hi, there.
911
+ GulliverFoyle is my name, and Terra is my nation.
912
+ I'm GulliverFoyle, from Terra.
913
+ That's all.
914
+ </pre>
915
+ </td>
916
+ </tr>
917
+ </table>
918
+ </font>
919
+ <br>
920
+ <p>
921
+
922
+ If a variable needs to contain spaces, you can double-quote it.
923
+ <p>
924
+
925
+
926
+ <font size=+1><b>Test: </font><font size=+2><tt>more_complex_vars</tt></font></b></h3><br>
927
+ <font size=+1>
928
+ <table width=80% cellpadding=4>
929
+ <tr>
930
+ <td width=50%><b>Input</b></td>
931
+ <td width=50%><b>Output</b></td>
932
+ </tr>
933
+ <tr>
934
+ <td width=50% bgcolor=#fee0fe valign=top>
935
+ <pre> Just some more text.
936
+ .set bday="May 31", date="5/31"
937
+ My birthday is $bday, so they tell me.
938
+ That's $date if you're American.
939
+ That's all.
940
+ </pre>
941
+ </td>
942
+ <td width=50% bgcolor=#eeeeee valign=top>
943
+ <pre> Just some more text.
944
+ My birthday is May 31, so they tell me.
945
+ That's 5/31 if you're American.
946
+ That's all.
947
+ </pre>
948
+ </td>
949
+ </tr>
950
+ </table>
951
+ </font>
952
+ <br>
953
+ <p>
954
+
955
+ Livetext permits user-defined functions (as well as defining a few
956
+ predefined ones). Call a function with <font size=+1><tt>$$</tt></font> and (if applicable) pass
957
+ a single string parameter between brackets.
958
+ <p>
959
+
960
+
961
+ <font size=+1><b>Test: </font><font size=+2><tt>functions</tt></font></b></h3><br>
962
+ <font size=+1>
963
+ <table width=80% cellpadding=4>
964
+ <tr>
965
+ <td width=50%><b>Input</b></td>
966
+ <td width=50%><b>Output</b></td>
967
+ </tr>
968
+ <tr>
969
+ <td width=50% bgcolor=#fee0fe valign=top>
970
+ <pre> Testing out
971
+ some functions
972
+ here...
973
+
974
+ .func myfunc
975
+ "Eureka!"
976
+ .end
977
+
978
+ I am calling $$myfunc here...
979
+ Let's see
980
+ what happens.
981
+
982
+ Functions can take a parameter in brackets
983
+ (which it can parse itself as needed):
984
+
985
+ .func mean
986
+ list = self.class.param
987
+ list = list.split(",").map(&:to\_f)
988
+ sum = list.inject(0, :+)
989
+ avg = sum / list.size.to\_f
990
+ avg.to\_s
991
+ .end
992
+
993
+ The result is $$mean[1,2,3,4,5,6,7] as I see it.
994
+
995
+ Some functions like date and time are predefined.
996
+
997
+ </pre>
998
+ </td>
999
+ <td width=50% bgcolor=#eeeeee valign=top>
1000
+ <pre> Testing out
1001
+ some functions
1002
+ here...
1003
+ <p>
1004
+
1005
+ I am calling Eureka! here...
1006
+ Let's see
1007
+ what happens.
1008
+ <p>
1009
+
1010
+ Functions can take a parameter in brackets
1011
+ (which it can parse itself as needed):
1012
+ <p>
1013
+
1014
+ The result is 4.0 as I see it.
1015
+ <p>
1016
+
1017
+ Some functions like date and time are predefined.
1018
+ <p>
1019
+
1020
+ </pre>
1021
+ </td>
1022
+ </tr>
1023
+ </table>
1024
+ </font>
1025
+ <br>
1026
+ <p>
1027
+
827
1028
  There is an important feature that has not yet been implemented (the
828
1029
  <font size=+1><tt>require</tt></font> method). Like Ruby's <font size=+1><tt>require</tt></font>, it will grab Ruby code and
829
1030
  load it; however, unlike <font size=+1><tt>mixin</tt></font>, it will load it into a customized
@@ -1,5 +1,5 @@
1
1
  class Livetext
2
- VERSION = "0.8.75"
2
+ VERSION = "0.8.76"
3
3
  Path = File.expand_path(File.join(File.dirname(__FILE__)))
4
4
  end
5
5
 
@@ -310,7 +310,7 @@ module Livetext::Standard
310
310
  def xtable # Borrowed from bookish - FIXME
311
311
  title = @_data
312
312
  delim = " :: "
313
- _out "<br><center><table border=1 width=90% cellpadding=5>"
313
+ _out "<br><center><table width=90% cellpadding=5>"
314
314
  lines = _body(true)
315
315
  maxw = nil
316
316
  lines.each do |line|
@@ -9,8 +9,16 @@ def section
9
9
  end
10
10
 
11
11
  def code
12
- _puts "<pre>"
13
- _body {|line| _puts " #{::CGI.escape_html(line)}" } # indentation
12
+ # _puts "<pre>"
13
+ first = true # dumb hack! fixes blank space
14
+ _body do |line|
15
+ if first
16
+ tag = "<pre>"
17
+ first = false
18
+ else
19
+ end
20
+ _puts "#{tag} #{::CGI.escape_html(line)}" # indentation
21
+ end
14
22
  _puts "</pre>"
15
23
  end
16
24
 
@@ -1,10 +1,13 @@
1
- Here are examples of <b>boldface</b> and <i>italics</i> and <font size=+1><tt>code</tt></font>
2
- as well as <b>more complex</b> examples of <i>italicized text</i>
1
+ Here are examples of <b>boldface</b>
2
+ and <i>italics</i>
3
+ and <font size=+1><tt>code</tt></font>
4
+ as well as <b>more complex</b> examples
5
+ of <i>italicized text</i>
3
6
  and <font size=+1><tt>code font</tt></font>.
4
7
  <p>
5
8
 
6
9
  Here are some random punctuation marks:
7
- @ # . * _ ` : ; % ^ & $
10
+ ; # . * _ ` : @ % ^ & $
8
11
  <p>
9
12
 
10
13
  No need to escape these: * _ `
@@ -1,8 +1,11 @@
1
- Here are examples of *boldface and _italics and `code
2
- as well as *[more complex] examples of _[italicized text]
1
+ Here are examples of *boldface
2
+ and _italics
3
+ and `code
4
+ as well as *[more complex] examples
5
+ of _[italicized text]
3
6
  and `[code font].
4
7
 
5
8
  Here are some random punctuation marks:
6
- @ # . * _ ` : ; % ^ & $
9
+ ; # . * _ ` : @ % ^ & $
7
10
 
8
11
  No need to escape these: * _ `
@@ -6,3 +6,15 @@ here...
6
6
  I am calling Eureka! here...
7
7
  Let's see
8
8
  what happens.
9
+ <p>
10
+
11
+ Functions can take a parameter in brackets
12
+ (which it can parse itself as needed):
13
+ <p>
14
+
15
+ The result is 4.0 as I see it.
16
+ <p>
17
+
18
+ Some functions like date and time are predefined.
19
+ <p>
20
+
@@ -9,3 +9,19 @@ here...
9
9
  I am calling $$myfunc here...
10
10
  Let's see
11
11
  what happens.
12
+
13
+ Functions can take a parameter in brackets
14
+ (which it can parse itself as needed):
15
+
16
+ .func mean
17
+ list = self.class.param
18
+ list = list.split(",").map(&:to_f)
19
+ sum = list.inject(0, :+)
20
+ avg = sum / list.size.to_f
21
+ avg.to_s
22
+ .end
23
+
24
+ The result is $$mean[1,2,3,4,5,6,7] as I see it.
25
+
26
+ Some functions like date and time are predefined.
27
+
@@ -7,7 +7,9 @@ real comment.
7
7
 
8
8
  .not_a_method
9
9
 
10
- And this stuff won't be munged: `alpha _beta *gamma
10
+ And this stuff won't be munged:
11
+ `alpha _beta *gamma
12
+
11
13
  Or these:
12
14
  `(alpha male)
13
15
  _(beta max)
@@ -8,7 +8,9 @@ real comment.
8
8
 
9
9
  .not_a_method
10
10
 
11
- And this stuff won't be munged: `alpha _beta *gamma
11
+ And this stuff won't be munged:
12
+ `alpha _beta *gamma
13
+
12
14
  Or these:
13
15
  `(alpha male)
14
16
  _(beta max)
@@ -1,6 +1,6 @@
1
1
  Just
2
2
  some text.
3
- .set name=GulliverFoyle,nation=Terra
3
+ .set name=GulliverFoyle, nation=Terra
4
4
  Hi, there.
5
5
  $name is my name, and $nation is my nation.
6
6
  I'm $name, from $nation.
@@ -1,7 +1,7 @@
1
1
  Testing heredocs (used in a table)
2
2
  <p>
3
3
 
4
- <br><center><table border=1 width=90% cellpadding=5>
4
+ <br><center><table width=90% cellpadding=5>
5
5
  <tr>
6
6
  <td valign=top>This is <br>only <br>a test.<br></td>
7
7
  <td valign=top>This is <br>just <br>some <br>random text.<br></td>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: livetext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.75
4
+ version: 0.8.76
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton