livetext 0.8.75 → 0.8.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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