rrtf 0.1.2 → 1.0.0

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.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/.byebug_history +6 -3
  3. data/CHANGELOG.md +24 -0
  4. data/README.md +194 -84
  5. data/documentation/RRTF.html +5 -5
  6. data/documentation/RRTF/AnonymousStyle.html +792 -0
  7. data/documentation/RRTF/BorderFormatting.html +821 -0
  8. data/documentation/RRTF/BorderStyle.html +493 -0
  9. data/documentation/RRTF/CharacterFormatting.html +293 -162
  10. data/documentation/RRTF/CharacterStyle.html +53 -109
  11. data/documentation/RRTF/Colour.html +61 -1
  12. data/documentation/RRTF/ColourTable.html +52 -52
  13. data/documentation/RRTF/CommandNode.html +367 -971
  14. data/documentation/RRTF/ContainerNode.html +44 -44
  15. data/documentation/RRTF/Converters.html +1 -1
  16. data/documentation/RRTF/Converters/HTML.html +1 -1
  17. data/documentation/RRTF/Converters/HTML/Helpers.html +1 -1
  18. data/documentation/RRTF/Converters/HTML/Node.html +1 -1
  19. data/documentation/RRTF/Converters/HTML/NodeSet.html +1 -1
  20. data/documentation/RRTF/Document.html +267 -255
  21. data/documentation/RRTF/DocumentFormatting.html +833 -0
  22. data/documentation/RRTF/DocumentProperties.html +444 -0
  23. data/documentation/RRTF/Font.html +1 -1
  24. data/documentation/RRTF/FontTable.html +1 -1
  25. data/documentation/RRTF/FooterNode.html +16 -16
  26. data/documentation/RRTF/GeometryNode.html +774 -0
  27. data/documentation/RRTF/GeometryProperties.html +1014 -0
  28. data/documentation/RRTF/HeaderNode.html +16 -16
  29. data/documentation/RRTF/ImageNode.html +705 -492
  30. data/documentation/RRTF/Information.html +1 -1
  31. data/documentation/RRTF/LinkNode.html +10 -10
  32. data/documentation/RRTF/ListLevel.html +1 -1
  33. data/documentation/RRTF/ListLevelNode.html +37 -37
  34. data/documentation/RRTF/ListMarker.html +1 -1
  35. data/documentation/RRTF/ListNode.html +19 -19
  36. data/documentation/RRTF/ListTable.html +1 -1
  37. data/documentation/RRTF/ListTemplate.html +1 -1
  38. data/documentation/RRTF/ListTextNode.html +14 -14
  39. data/documentation/RRTF/Node.html +26 -26
  40. data/documentation/RRTF/Page.html +129 -0
  41. data/documentation/RRTF/Page/Margin.html +1158 -0
  42. data/documentation/RRTF/Page/Size.html +946 -0
  43. data/documentation/RRTF/PageFormatting.html +954 -0
  44. data/documentation/RRTF/ParagraphFormatting.html +338 -56
  45. data/documentation/RRTF/ParagraphNode.html +10 -10
  46. data/documentation/RRTF/ParagraphStyle.html +72 -111
  47. data/documentation/RRTF/PositionFormatting.html +780 -0
  48. data/documentation/RRTF/PositionStyle.html +424 -0
  49. data/documentation/RRTF/Properties.html +243 -0
  50. data/documentation/RRTF/RTFError.html +21 -10
  51. data/documentation/RRTF/ShadingFormatting.html +712 -0
  52. data/documentation/RRTF/ShadingStyle.html +424 -0
  53. data/documentation/RRTF/Style.html +284 -697
  54. data/documentation/RRTF/Stylesheet.html +36 -3
  55. data/documentation/RRTF/TableCellNode.html +131 -131
  56. data/documentation/RRTF/TableNode.html +82 -82
  57. data/documentation/RRTF/TableRowNode.html +53 -53
  58. data/documentation/RRTF/TextNode.html +46 -46
  59. data/documentation/RRTF/Utilities.html +837 -17
  60. data/documentation/_index.html +139 -6
  61. data/documentation/class_list.html +1 -1
  62. data/documentation/file.README.html +218 -87
  63. data/documentation/index.html +218 -87
  64. data/documentation/method_list.html +631 -391
  65. data/documentation/top-level-namespace.html +1 -1
  66. data/examples/01.rtf +947 -20
  67. data/examples/01_everything.rb +176 -0
  68. data/examples/02.rtf +13 -0
  69. data/examples/02_basic_paragraph.rb +10 -0
  70. data/examples/03.rtf +20 -0
  71. data/examples/03_paragraph_inline_style.rb +14 -0
  72. data/examples/04.rtf +21 -0
  73. data/examples/04_paragraph_with_character_style.rb +18 -0
  74. data/examples/05.rtf +21 -0
  75. data/examples/05_hyperlinks.rb +21 -0
  76. data/examples/06.rtf +21 -0
  77. data/examples/06_basic_list.rb +21 -0
  78. data/examples/07.rtf +28 -0
  79. data/examples/07_nested_list.rb +27 -0
  80. data/examples/08.rtf +807 -0
  81. data/examples/08_images.rb +17 -0
  82. data/examples/09.rtf +84 -0
  83. data/examples/09_shapes.rb +56 -0
  84. data/examples/10.rtf +34 -0
  85. data/examples/10_stylesheet.rb +18 -0
  86. data/examples/resources/images/redshirt.png +0 -0
  87. data/examples/resources/images/redshirts.jpg +0 -0
  88. data/examples/resources/json/redshirt_styles.json +72 -8
  89. data/examples/~$01.rtf +0 -0
  90. data/lib/rrtf.rb +4 -16
  91. data/lib/rrtf/colour.rb +8 -0
  92. data/lib/rrtf/formatting.rb +988 -0
  93. data/lib/rrtf/node.rb +17 -1851
  94. data/lib/rrtf/node/command_node.rb +242 -0
  95. data/lib/rrtf/node/container_node.rb +75 -0
  96. data/lib/rrtf/node/document.rb +339 -0
  97. data/lib/rrtf/node/footer_node.rb +47 -0
  98. data/lib/rrtf/node/geometry_node.rb +65 -0
  99. data/lib/rrtf/node/header_node.rb +47 -0
  100. data/lib/rrtf/node/image_node.rb +175 -0
  101. data/lib/rrtf/node/link_node.rb +10 -0
  102. data/lib/rrtf/node/list_level_node.rb +44 -0
  103. data/lib/rrtf/node/list_node.rb +30 -0
  104. data/lib/rrtf/node/list_text_node.rb +22 -0
  105. data/lib/rrtf/node/node.rb +53 -0
  106. data/lib/rrtf/node/paragraph_node.rb +11 -0
  107. data/lib/rrtf/node/table_cell_node.rb +233 -0
  108. data/lib/rrtf/node/table_node.rb +136 -0
  109. data/lib/rrtf/node/table_row_node.rb +92 -0
  110. data/lib/rrtf/node/text_node.rb +76 -0
  111. data/lib/rrtf/page.rb +7 -0
  112. data/lib/rrtf/page/margin.rb +98 -0
  113. data/lib/rrtf/page/size.rb +98 -0
  114. data/lib/rrtf/properties.rb +3 -0
  115. data/lib/rrtf/properties/document_properties.rb +34 -0
  116. data/lib/rrtf/properties/geometry_properties.rb +380 -0
  117. data/lib/rrtf/properties/properties.rb +13 -0
  118. data/lib/rrtf/style.rb +4 -5
  119. data/lib/rrtf/style/anonymous_style.rb +73 -0
  120. data/lib/rrtf/style/border_style.rb +27 -0
  121. data/lib/rrtf/style/character_style.rb +1 -7
  122. data/lib/rrtf/style/paragraph_style.rb +0 -6
  123. data/lib/rrtf/style/position_style.rb +26 -0
  124. data/lib/rrtf/style/shading_style.rb +26 -0
  125. data/lib/rrtf/style/style.rb +60 -101
  126. data/lib/rrtf/utilities.rb +138 -0
  127. data/lib/rrtf/version.rb +1 -1
  128. data/rrtf.gemspec +1 -0
  129. metadata +85 -10
  130. data/examples/01_mac_libreoffice5_2_3_3.png +0 -0
  131. data/examples/01_mac_pages6_2.png +0 -0
  132. data/examples/01_mac_textedit1_12.png +0 -0
  133. data/examples/01_mac_word15_36.png +0 -0
  134. data/examples/01_styles_and_paragraphs.rb +0 -32
  135. data/lib/rrtf/paper.rb +0 -53
  136. data/lib/rrtf/style/document_style.rb +0 -116
  137. data/lib/rrtf/style/formatting.rb +0 -320
@@ -76,6 +76,43 @@
76
76
  <td valign='top' width="33%">
77
77
 
78
78
 
79
+ <ul id="alpha_A" class="alpha">
80
+ <li class="letter">A</li>
81
+ <ul>
82
+
83
+ <li>
84
+ <span class='object_link'><a href="RRTF/AnonymousStyle.html" title="RRTF::AnonymousStyle (class)">AnonymousStyle</a></span>
85
+
86
+ <small>(RRTF)</small>
87
+
88
+ </li>
89
+
90
+ </ul>
91
+ </ul>
92
+
93
+
94
+ <ul id="alpha_B" class="alpha">
95
+ <li class="letter">B</li>
96
+ <ul>
97
+
98
+ <li>
99
+ <span class='object_link'><a href="RRTF/BorderFormatting.html" title="RRTF::BorderFormatting (module)">BorderFormatting</a></span>
100
+
101
+ <small>(RRTF)</small>
102
+
103
+ </li>
104
+
105
+ <li>
106
+ <span class='object_link'><a href="RRTF/BorderStyle.html" title="RRTF::BorderStyle (class)">BorderStyle</a></span>
107
+
108
+ <small>(RRTF)</small>
109
+
110
+ </li>
111
+
112
+ </ul>
113
+ </ul>
114
+
115
+
79
116
  <ul id="alpha_C" class="alpha">
80
117
  <li class="letter">C</li>
81
118
  <ul>
@@ -145,7 +182,14 @@
145
182
  </li>
146
183
 
147
184
  <li>
148
- <span class='object_link'><a href="RRTF/DocumentStyle.html" title="RRTF::DocumentStyle (class)">DocumentStyle</a></span>
185
+ <span class='object_link'><a href="RRTF/DocumentFormatting.html" title="RRTF::DocumentFormatting (module)">DocumentFormatting</a></span>
186
+
187
+ <small>(RRTF)</small>
188
+
189
+ </li>
190
+
191
+ <li>
192
+ <span class='object_link'><a href="RRTF/DocumentProperties.html" title="RRTF::DocumentProperties (class)">DocumentProperties</a></span>
149
193
 
150
194
  <small>(RRTF)</small>
151
195
 
@@ -184,6 +228,28 @@
184
228
  </ul>
185
229
 
186
230
 
231
+ <ul id="alpha_G" class="alpha">
232
+ <li class="letter">G</li>
233
+ <ul>
234
+
235
+ <li>
236
+ <span class='object_link'><a href="RRTF/GeometryNode.html" title="RRTF::GeometryNode (class)">GeometryNode</a></span>
237
+
238
+ <small>(RRTF)</small>
239
+
240
+ </li>
241
+
242
+ <li>
243
+ <span class='object_link'><a href="RRTF/GeometryProperties.html" title="RRTF::GeometryProperties (class)">GeometryProperties</a></span>
244
+
245
+ <small>(RRTF)</small>
246
+
247
+ </li>
248
+
249
+ </ul>
250
+ </ul>
251
+
252
+
187
253
  <ul id="alpha_H" class="alpha">
188
254
  <li class="letter">H</li>
189
255
  <ul>
@@ -213,6 +279,9 @@
213
279
  </ul>
214
280
 
215
281
 
282
+ </td><td valign='top' width="33%">
283
+
284
+
216
285
  <ul id="alpha_I" class="alpha">
217
286
  <li class="letter">I</li>
218
287
  <ul>
@@ -299,6 +368,21 @@
299
368
  </ul>
300
369
 
301
370
 
371
+ <ul id="alpha_M" class="alpha">
372
+ <li class="letter">M</li>
373
+ <ul>
374
+
375
+ <li>
376
+ <span class='object_link'><a href="RRTF/Page/Margin.html" title="RRTF::Page::Margin (class)">Margin</a></span>
377
+
378
+ <small>(RRTF::Page)</small>
379
+
380
+ </li>
381
+
382
+ </ul>
383
+ </ul>
384
+
385
+
302
386
  <ul id="alpha_N" class="alpha">
303
387
  <li class="letter">N</li>
304
388
  <ul>
@@ -328,15 +412,19 @@
328
412
  </ul>
329
413
 
330
414
 
331
- </td><td valign='top' width="33%">
332
-
333
-
334
415
  <ul id="alpha_P" class="alpha">
335
416
  <li class="letter">P</li>
336
417
  <ul>
337
418
 
338
419
  <li>
339
- <span class='object_link'><a href="RRTF/Paper.html" title="RRTF::Paper (class)">Paper</a></span>
420
+ <span class='object_link'><a href="RRTF/Page.html" title="RRTF::Page (module)">Page</a></span>
421
+
422
+ <small>(RRTF)</small>
423
+
424
+ </li>
425
+
426
+ <li>
427
+ <span class='object_link'><a href="RRTF/PageFormatting.html" title="RRTF::PageFormatting (module)">PageFormatting</a></span>
340
428
 
341
429
  <small>(RRTF)</small>
342
430
 
@@ -363,6 +451,27 @@
363
451
 
364
452
  </li>
365
453
 
454
+ <li>
455
+ <span class='object_link'><a href="RRTF/PositionFormatting.html" title="RRTF::PositionFormatting (module)">PositionFormatting</a></span>
456
+
457
+ <small>(RRTF)</small>
458
+
459
+ </li>
460
+
461
+ <li>
462
+ <span class='object_link'><a href="RRTF/PositionStyle.html" title="RRTF::PositionStyle (class)">PositionStyle</a></span>
463
+
464
+ <small>(RRTF)</small>
465
+
466
+ </li>
467
+
468
+ <li>
469
+ <span class='object_link'><a href="RRTF/Properties.html" title="RRTF::Properties (class)">Properties</a></span>
470
+
471
+ <small>(RRTF)</small>
472
+
473
+ </li>
474
+
366
475
  </ul>
367
476
  </ul>
368
477
 
@@ -391,6 +500,27 @@
391
500
  <li class="letter">S</li>
392
501
  <ul>
393
502
 
503
+ <li>
504
+ <span class='object_link'><a href="RRTF/ShadingFormatting.html" title="RRTF::ShadingFormatting (module)">ShadingFormatting</a></span>
505
+
506
+ <small>(RRTF)</small>
507
+
508
+ </li>
509
+
510
+ <li>
511
+ <span class='object_link'><a href="RRTF/ShadingStyle.html" title="RRTF::ShadingStyle (class)">ShadingStyle</a></span>
512
+
513
+ <small>(RRTF)</small>
514
+
515
+ </li>
516
+
517
+ <li>
518
+ <span class='object_link'><a href="RRTF/Page/Size.html" title="RRTF::Page::Size (class)">Size</a></span>
519
+
520
+ <small>(RRTF::Page)</small>
521
+
522
+ </li>
523
+
394
524
  <li>
395
525
  <span class='object_link'><a href="RRTF/Style.html" title="RRTF::Style (class)">Style</a></span>
396
526
 
@@ -445,6 +575,9 @@
445
575
  </ul>
446
576
 
447
577
 
578
+ </td><td valign='top' width="33%">
579
+
580
+
448
581
  <ul id="alpha_U" class="alpha">
449
582
  <li class="letter">U</li>
450
583
  <ul>
@@ -468,7 +601,7 @@
468
601
  </div>
469
602
 
470
603
  <div id="footer">
471
- Generated on Mon Jul 24 15:48:58 2017 by
604
+ Generated on Mon Jul 31 21:48:55 2017 by
472
605
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
473
606
  0.9.9 (ruby-2.3.3).
474
607
  </div>
@@ -43,7 +43,7 @@
43
43
 
44
44
  <ul id="full_list" class="class">
45
45
  <li id="object_" class="odd"><div class="item" style="padding-left:30px"><span class='object_link'><a href="top-level-namespace.html" title="Top Level Namespace (root)">Top Level Namespace</a></span></div></li>
46
- <li id='object_RRTF' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="RRTF.html" title="RRTF (module)">RRTF</a></span><small class='search_info'>Top Level Namespace</small></div><ul><li id='object_RRTF::CharacterFormatting' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/CharacterFormatting.html" title="RRTF::CharacterFormatting (module)">CharacterFormatting</a></span><small class='search_info'>RRTF</small></div></li><li id='object_RRTF::CharacterStyle' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/CharacterStyle.html" title="RRTF::CharacterStyle (class)">CharacterStyle</a></span> &lt; Style<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Colour' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Colour.html" title="RRTF::Colour (class)">Colour</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ColourTable' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ColourTable.html" title="RRTF::ColourTable (class)">ColourTable</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::CommandNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/CommandNode.html" title="RRTF::CommandNode (class)">CommandNode</a></span> &lt; ContainerNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ContainerNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ContainerNode.html" title="RRTF::ContainerNode (class)">ContainerNode</a></span> &lt; Node<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Converters' class='collapsed odd'><div class='item' style='padding-left:45px'><a class='toggle'></a> <span class='object_link'><a href="RRTF/Converters.html" title="RRTF::Converters (module)">Converters</a></span><small class='search_info'>RRTF</small></div><ul><li id='object_RRTF::Converters::HTML' class='collapsed'><div class='item' style='padding-left:60px'><a class='toggle'></a> <span class='object_link'><a href="RRTF/Converters/HTML.html" title="RRTF::Converters::HTML (class)">HTML</a></span> &lt; Object<small class='search_info'>RRTF::Converters</small></div><ul><li id='object_RRTF::Converters::HTML::Helpers' class='collapsed'><div class='item' style='padding-left:75px'><span class='object_link'><a href="RRTF/Converters/HTML/Helpers.html" title="RRTF::Converters::HTML::Helpers (module)">Helpers</a></span><small class='search_info'>RRTF::Converters::HTML</small></div></li><li id='object_RRTF::Converters::HTML::Node' class='collapsed'><div class='item' style='padding-left:75px'><span class='object_link'><a href="RRTF/Converters/HTML/Node.html" title="RRTF::Converters::HTML::Node (class)">Node</a></span> &lt; Object<small class='search_info'>RRTF::Converters::HTML</small></div></li><li id='object_RRTF::Converters::HTML::NodeSet' class='collapsed'><div class='item' style='padding-left:75px'><span class='object_link'><a href="RRTF/Converters/HTML/NodeSet.html" title="RRTF::Converters::HTML::NodeSet (class)">NodeSet</a></span> &lt; Object<small class='search_info'>RRTF::Converters::HTML</small></div></li></ul></li></ul></li><li id='object_RRTF::Document' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Document.html" title="RRTF::Document (class)">Document</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::DocumentStyle' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/DocumentStyle.html" title="RRTF::DocumentStyle (class)">DocumentStyle</a></span> &lt; Style<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Font' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Font.html" title="RRTF::Font (class)">Font</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::FontTable' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/FontTable.html" title="RRTF::FontTable (class)">FontTable</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::FooterNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/FooterNode.html" title="RRTF::FooterNode (class)">FooterNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::HeaderNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/HeaderNode.html" title="RRTF::HeaderNode (class)">HeaderNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ImageNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ImageNode.html" title="RRTF::ImageNode (class)">ImageNode</a></span> &lt; Node<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Information' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Information.html" title="RRTF::Information (class)">Information</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::LinkNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/LinkNode.html" title="RRTF::LinkNode (class)">LinkNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListLevel' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListLevel.html" title="RRTF::ListLevel (class)">ListLevel</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListLevelNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListLevelNode.html" title="RRTF::ListLevelNode (class)">ListLevelNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListMarker' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListMarker.html" title="RRTF::ListMarker (class)">ListMarker</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListNode.html" title="RRTF::ListNode (class)">ListNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListTable' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListTable.html" title="RRTF::ListTable (class)">ListTable</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListTemplate' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListTemplate.html" title="RRTF::ListTemplate (class)">ListTemplate</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListTextNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListTextNode.html" title="RRTF::ListTextNode (class)">ListTextNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Node' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Node.html" title="RRTF::Node (class)">Node</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Paper' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Paper.html" title="RRTF::Paper (class)">Paper</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ParagraphFormatting' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ParagraphFormatting.html" title="RRTF::ParagraphFormatting (module)">ParagraphFormatting</a></span><small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ParagraphNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ParagraphNode.html" title="RRTF::ParagraphNode (class)">ParagraphNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ParagraphStyle' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ParagraphStyle.html" title="RRTF::ParagraphStyle (class)">ParagraphStyle</a></span> &lt; Style<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::RTFError' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/RTFError.html" title="RRTF::RTFError (class)">RTFError</a></span> &lt; StandardError<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Style' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Style.html" title="RRTF::Style (class)">Style</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Stylesheet' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Stylesheet.html" title="RRTF::Stylesheet (class)">Stylesheet</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::TableCellNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/TableCellNode.html" title="RRTF::TableCellNode (class)">TableCellNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::TableNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/TableNode.html" title="RRTF::TableNode (class)">TableNode</a></span> &lt; ContainerNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::TableRowNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/TableRowNode.html" title="RRTF::TableRowNode (class)">TableRowNode</a></span> &lt; ContainerNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::TextNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/TextNode.html" title="RRTF::TextNode (class)">TextNode</a></span> &lt; Node<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Utilities' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Utilities.html" title="RRTF::Utilities (class)">Utilities</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li></ul></li>
46
+ <li id='object_RRTF' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="RRTF.html" title="RRTF (module)">RRTF</a></span><small class='search_info'>Top Level Namespace</small></div><ul><li id='object_RRTF::AnonymousStyle' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/AnonymousStyle.html" title="RRTF::AnonymousStyle (class)">AnonymousStyle</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::BorderFormatting' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/BorderFormatting.html" title="RRTF::BorderFormatting (module)">BorderFormatting</a></span><small class='search_info'>RRTF</small></div></li><li id='object_RRTF::BorderStyle' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/BorderStyle.html" title="RRTF::BorderStyle (class)">BorderStyle</a></span> &lt; AnonymousStyle<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::CharacterFormatting' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/CharacterFormatting.html" title="RRTF::CharacterFormatting (module)">CharacterFormatting</a></span><small class='search_info'>RRTF</small></div></li><li id='object_RRTF::CharacterStyle' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/CharacterStyle.html" title="RRTF::CharacterStyle (class)">CharacterStyle</a></span> &lt; Style<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Colour' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Colour.html" title="RRTF::Colour (class)">Colour</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ColourTable' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ColourTable.html" title="RRTF::ColourTable (class)">ColourTable</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::CommandNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/CommandNode.html" title="RRTF::CommandNode (class)">CommandNode</a></span> &lt; ContainerNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ContainerNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ContainerNode.html" title="RRTF::ContainerNode (class)">ContainerNode</a></span> &lt; Node<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Converters' class='collapsed even'><div class='item' style='padding-left:45px'><a class='toggle'></a> <span class='object_link'><a href="RRTF/Converters.html" title="RRTF::Converters (module)">Converters</a></span><small class='search_info'>RRTF</small></div><ul><li id='object_RRTF::Converters::HTML' class='collapsed'><div class='item' style='padding-left:60px'><a class='toggle'></a> <span class='object_link'><a href="RRTF/Converters/HTML.html" title="RRTF::Converters::HTML (class)">HTML</a></span> &lt; Object<small class='search_info'>RRTF::Converters</small></div><ul><li id='object_RRTF::Converters::HTML::Helpers' class='collapsed'><div class='item' style='padding-left:75px'><span class='object_link'><a href="RRTF/Converters/HTML/Helpers.html" title="RRTF::Converters::HTML::Helpers (module)">Helpers</a></span><small class='search_info'>RRTF::Converters::HTML</small></div></li><li id='object_RRTF::Converters::HTML::Node' class='collapsed'><div class='item' style='padding-left:75px'><span class='object_link'><a href="RRTF/Converters/HTML/Node.html" title="RRTF::Converters::HTML::Node (class)">Node</a></span> &lt; Object<small class='search_info'>RRTF::Converters::HTML</small></div></li><li id='object_RRTF::Converters::HTML::NodeSet' class='collapsed'><div class='item' style='padding-left:75px'><span class='object_link'><a href="RRTF/Converters/HTML/NodeSet.html" title="RRTF::Converters::HTML::NodeSet (class)">NodeSet</a></span> &lt; Object<small class='search_info'>RRTF::Converters::HTML</small></div></li></ul></li></ul></li><li id='object_RRTF::Document' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Document.html" title="RRTF::Document (class)">Document</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::DocumentFormatting' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/DocumentFormatting.html" title="RRTF::DocumentFormatting (module)">DocumentFormatting</a></span><small class='search_info'>RRTF</small></div></li><li id='object_RRTF::DocumentProperties' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/DocumentProperties.html" title="RRTF::DocumentProperties (class)">DocumentProperties</a></span> &lt; Properties<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Font' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Font.html" title="RRTF::Font (class)">Font</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::FontTable' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/FontTable.html" title="RRTF::FontTable (class)">FontTable</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::FooterNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/FooterNode.html" title="RRTF::FooterNode (class)">FooterNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::GeometryNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/GeometryNode.html" title="RRTF::GeometryNode (class)">GeometryNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::GeometryProperties' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/GeometryProperties.html" title="RRTF::GeometryProperties (class)">GeometryProperties</a></span> &lt; Properties<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::HeaderNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/HeaderNode.html" title="RRTF::HeaderNode (class)">HeaderNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ImageNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ImageNode.html" title="RRTF::ImageNode (class)">ImageNode</a></span> &lt; Node<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Information' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Information.html" title="RRTF::Information (class)">Information</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::LinkNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/LinkNode.html" title="RRTF::LinkNode (class)">LinkNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListLevel' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListLevel.html" title="RRTF::ListLevel (class)">ListLevel</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListLevelNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListLevelNode.html" title="RRTF::ListLevelNode (class)">ListLevelNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListMarker' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListMarker.html" title="RRTF::ListMarker (class)">ListMarker</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListNode.html" title="RRTF::ListNode (class)">ListNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListTable' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListTable.html" title="RRTF::ListTable (class)">ListTable</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListTemplate' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListTemplate.html" title="RRTF::ListTemplate (class)">ListTemplate</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ListTextNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ListTextNode.html" title="RRTF::ListTextNode (class)">ListTextNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Node' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Node.html" title="RRTF::Node (class)">Node</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Page' class='collapsed odd'><div class='item' style='padding-left:45px'><a class='toggle'></a> <span class='object_link'><a href="RRTF/Page.html" title="RRTF::Page (module)">Page</a></span><small class='search_info'>RRTF</small></div><ul><li id='object_RRTF::Page::Margin' class='collapsed'><div class='item' style='padding-left:60px'><span class='object_link'><a href="RRTF/Page/Margin.html" title="RRTF::Page::Margin (class)">Margin</a></span> &lt; Object<small class='search_info'>RRTF::Page</small></div></li><li id='object_RRTF::Page::Size' class='collapsed'><div class='item' style='padding-left:60px'><span class='object_link'><a href="RRTF/Page/Size.html" title="RRTF::Page::Size (class)">Size</a></span> &lt; Object<small class='search_info'>RRTF::Page</small></div></li></ul></li><li id='object_RRTF::PageFormatting' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/PageFormatting.html" title="RRTF::PageFormatting (module)">PageFormatting</a></span><small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ParagraphFormatting' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ParagraphFormatting.html" title="RRTF::ParagraphFormatting (module)">ParagraphFormatting</a></span><small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ParagraphNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ParagraphNode.html" title="RRTF::ParagraphNode (class)">ParagraphNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ParagraphStyle' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ParagraphStyle.html" title="RRTF::ParagraphStyle (class)">ParagraphStyle</a></span> &lt; Style<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::PositionFormatting' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/PositionFormatting.html" title="RRTF::PositionFormatting (module)">PositionFormatting</a></span><small class='search_info'>RRTF</small></div></li><li id='object_RRTF::PositionStyle' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/PositionStyle.html" title="RRTF::PositionStyle (class)">PositionStyle</a></span> &lt; AnonymousStyle<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Properties' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Properties.html" title="RRTF::Properties (class)">Properties</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::RTFError' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/RTFError.html" title="RRTF::RTFError (class)">RTFError</a></span> &lt; StandardError<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ShadingFormatting' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ShadingFormatting.html" title="RRTF::ShadingFormatting (module)">ShadingFormatting</a></span><small class='search_info'>RRTF</small></div></li><li id='object_RRTF::ShadingStyle' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/ShadingStyle.html" title="RRTF::ShadingStyle (class)">ShadingStyle</a></span> &lt; AnonymousStyle<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Style' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Style.html" title="RRTF::Style (class)">Style</a></span> &lt; AnonymousStyle<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Stylesheet' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Stylesheet.html" title="RRTF::Stylesheet (class)">Stylesheet</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::TableCellNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/TableCellNode.html" title="RRTF::TableCellNode (class)">TableCellNode</a></span> &lt; CommandNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::TableNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/TableNode.html" title="RRTF::TableNode (class)">TableNode</a></span> &lt; ContainerNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::TableRowNode' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/TableRowNode.html" title="RRTF::TableRowNode (class)">TableRowNode</a></span> &lt; ContainerNode<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::TextNode' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/TextNode.html" title="RRTF::TextNode (class)">TextNode</a></span> &lt; Node<small class='search_info'>RRTF</small></div></li><li id='object_RRTF::Utilities' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="RRTF/Utilities.html" title="RRTF::Utilities (class)">Utilities</a></span> &lt; Object<small class='search_info'>RRTF</small></div></li></ul></li>
47
47
 
48
48
  </ul>
49
49
  </div>
@@ -63,21 +63,45 @@
63
63
  <p>RRTF enables programatic creation of Rich Text Format (RTF) documents in
64
64
  Ruby, focusing on simplifying RTF document assembly and generating clean
65
65
  RTF source code. This gem is founded on the <a
66
- href="https://github.com/clbustos/rtf">ifad-rtf gem</a>, but differs in
67
- several respects:</p>
66
+ href="https://github.com/clbustos/rtf">ifad-rtf gem</a>, but has simpler
67
+ syntax and supports more RTF constructs.</p>
68
68
  <ul><li>
69
- <p>The syntax for creating documents and styles is simpler.</p>
69
+ <p><strong>Document</strong>: Page orientation, size, margin, and gutter;
70
+ mirror margins, tab width, enable/disable hyphenation, hyphenation width,
71
+ maximum consecutive hyphenations, and enable/disable widow-and-orphan
72
+ control.</p>
70
73
  </li><li>
71
- <p>Paragraph styles can take on character formatting attributes (in accord to
72
- the RTF specification).</p>
74
+ <p><strong>Text</strong>: Bold, italic, underline, underline color, uppercase,
75
+ subscript, superscript, strike, emboss, imprint, foreground color,
76
+ background color, hidden, kerning, character spacing, highlight, font, font
77
+ size.</p>
73
78
  </li><li>
74
- <p>Document stylesheets can be defined, enabling the end user to easily modify
75
- the look larger RTF documents.</p>
79
+ <p><strong>Paragraphs</strong>: Justification, left indent, right indent,
80
+ first line indent, space before, space after, line spacing, indentation,
81
+ drop caps, keep-on-page, keep-with-next, enable/disable hyphenation,
82
+ enable/disable widow-and-orphan control, absolute positioning (frames),
83
+ borders, and shading.</p>
84
+ </li><li>
85
+ <p><strong>Hyperlinks</strong>: Insert hyperlinks in text runs.</p>
86
+ </li><li>
87
+ <p><strong>Lists</strong>: Basic unordered (bullet) lists.</p>
88
+ </li><li>
89
+ <p><strong>Images</strong>: Embed, size, and define borders for PNG, JPEG, and
90
+ BMP images.</p>
91
+ </li><li>
92
+ <p><strong>Shapes</strong>: Draw basic shapes, custom shapes, and text boxes.</p>
93
+ </li><li>
94
+ <p><strong>Stylesheets</strong>: Define paragraph and character styles,
95
+ enabling the end user to easily modify the look of RTF documents.</p>
76
96
  </li></ul>
77
97
 
78
98
  <p>The gem was created with reference to the <a
79
99
  href="https://www.microsoft.com/en-us/download/details.aspx?id=10725">Microsoft
80
- Office RTF Specification (v1.9.1)</a>.</p>
100
+ Office RTF Specification (v1.9.1)</a>. The syntax for custom shapes was
101
+ determined by reverse engineering the RTF output from Word 2016 and
102
+ reference to <a
103
+ href="https://www.loc.gov/preservation/digital/formats/digformatspecs/OfficeDrawing97-2007BinaryFormatSpecification.pdf">Microsoft’s
104
+ Binary Format Specification (pp. 32-33)</a>.</p>
81
105
 
82
106
  <h2 id="label-Installation">Installation</h2>
83
107
 
@@ -96,96 +120,203 @@ Office RTF Specification (v1.9.1)</a>.</p>
96
120
 
97
121
  <h2 id="label-Usage">Usage</h2>
98
122
 
99
- <p>Define the paragraph and character styles your document is to leverage in a
100
- hashmap array or JSON file:</p>
101
-
102
- <pre class="code ruby"><code class="ruby"><span class='lbracket'>[</span>
103
- <span class='lbrace'>{</span>
104
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>type</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>paragraph</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
105
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>id</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TITLE</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
106
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Title</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
107
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>primary</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span><span class='comma'>,</span>
108
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>auto_update</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span><span class='comma'>,</span>
109
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>next_style</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>BODY</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
110
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>base_style</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>BODY</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
111
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>justification</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>CENTER</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
112
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>space_after</span><span class='label_end'>&quot;:</span> <span class='int'>100</span><span class='comma'>,</span>
113
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>bold</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span><span class='comma'>,</span>
114
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>underline</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>DOUBLE</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
115
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>underline_color</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>#ff0000</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
116
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>uppercase</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span><span class='comma'>,</span>
117
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>font_size</span><span class='label_end'>&quot;:</span> <span class='int'>36</span>
118
- <span class='rbrace'>}</span><span class='comma'>,</span>
119
- <span class='lbrace'>{</span>
120
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>type</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>paragraph</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
121
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>id</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>H1</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
122
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Heading 1</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
123
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>primary</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span><span class='comma'>,</span>
124
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>next_style</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>BODY</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
125
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>space_after</span><span class='label_end'>&quot;:</span> <span class='int'>40</span><span class='comma'>,</span>
126
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>space_before</span><span class='label_end'>&quot;:</span> <span class='int'>200</span><span class='comma'>,</span>
127
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>underline</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SINGLE</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
128
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>underline_color</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>#ff0000</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
129
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>bold</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span><span class='comma'>,</span>
130
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>font_size</span><span class='label_end'>&quot;:</span> <span class='int'>24</span>
131
- <span class='rbrace'>}</span><span class='comma'>,</span>
132
- <span class='lbrace'>{</span>
133
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>type</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>paragraph</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
134
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>id</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>BODY</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
135
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Body</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
136
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>primary</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span><span class='comma'>,</span>
137
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>justification</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LEFT</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
138
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>font_size</span><span class='label_end'>&quot;:</span> <span class='int'>24</span><span class='comma'>,</span>
139
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>hyphenate</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span>
140
- <span class='rbrace'>}</span><span class='comma'>,</span>
141
- <span class='lbrace'>{</span>
142
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>type</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>character</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
143
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>id</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>EMPH</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
144
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Emphasis</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
145
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>additive</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span><span class='comma'>,</span>
146
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>italic</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span><span class='comma'>,</span>
147
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>bold</span><span class='label_end'>&quot;:</span> <span class='kw'>true</span><span class='comma'>,</span>
148
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>foreground_color</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>#ff0000</span><span class='tstring_end'>&quot;</span></span>
149
- <span class='rbrace'>}</span>
150
- <span class='rbracket'>]</span>
123
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>rrtf</span><span class='tstring_end'>&#39;</span></span>
124
+
125
+ <span class='comment'># Construct an object representing the RTF document
126
+ </span><span class='id identifier rubyid_rtf'>rtf</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="RRTF.html" title="RRTF (module)">RRTF</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="RRTF/Document.html" title="RRTF::Document (class)">Document</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="RRTF/Document.html#initialize-instance_method" title="RRTF::Document#initialize (method)">new</a></span></span>
127
+
128
+ <span class='comment'># ...
129
+ </span><span class='comment'># Call methods on `rtf` to generate content
130
+ </span><span class='comment'># ...
131
+ </span>
132
+ <span class='comment'># Convert document into RTF string
133
+ </span><span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_to_rtf'>to_rtf</span>
151
134
  </code></pre>
152
135
 
153
- <p>(Note that font size is given in <em>half points</em> and spacing in
154
- <em>twentieth points</em>, or “twips” using the somewhat disagreeable
155
- abbreviation, in accord with the RTF specification.)</p>
136
+ <h4 id="label-Paragraphs">Paragraphs</h4>
137
+ <ul><li>
138
+ <p><strong>Plain paragraph</strong></p>
139
+ </li></ul>
156
140
 
157
- <p>Create a RTF document object using the settings needed for your document,
158
- then build your document and save it in an RTF file:</p>
141
+ <p><code>ruby rtf.paragraph &lt;&lt; \ &quot;Should you ever find
142
+ yourself on a spacefaring vessel &quot;\ &quot;wearing RED shirt,
143
+ take heed and be on guard, for danger &quot;\ &quot;is immanent and
144
+ you are likely expendable among the crew.&quot; </code></p>
145
+ <ul><li>
146
+ <p><strong>Paragraph with inline styling</strong></p>
147
+
148
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span><span class='lparen'>(</span>
149
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>justification</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>RIGHT</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
150
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>foreground_color</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>#ff0000</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
151
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>font</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ROMAN:Times</span><span class='tstring_end'>&quot;</span></span>
152
+ <span class='rparen'>)</span> <span class='op'>&lt;&lt;</span> \
153
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Should you ever find yourself on a spacefaring vessel </span><span class='tstring_end'>&quot;</span></span>\
154
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>wearing RED shirt, take heed and be on guard, for danger </span><span class='tstring_end'>&quot;</span></span>\
155
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>is immanent and you are likely expendable among the crew.</span><span class='tstring_end'>&quot;</span></span>
156
+ </code></pre>
157
+ </li><li>
158
+ <p><strong>Paragraph with inline character styling</strong></p>
159
+
160
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span>
161
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Should you ever find yourself on a spacefaring vessel wearing a </span><span class='tstring_end'>&quot;</span></span>
162
+ <span class='id identifier rubyid_p'>p</span><span class='period'>.</span><span class='id identifier rubyid_apply'>apply</span><span class='lparen'>(</span>
163
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>foreground_color</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>#ff0000</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
164
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>underline_color</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>#ff0000</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
165
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>italic</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='comma'>,</span>
166
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>bold</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='comma'>,</span>
167
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>underline</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SINGLE</span><span class='tstring_end'>&quot;</span></span>
168
+ <span class='rparen'>)</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>red</span><span class='tstring_end'>&quot;</span></span>
169
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> shirt, take heed and be on guard, for danger </span><span class='tstring_end'>&quot;</span></span>
170
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>is immanent and you are likely expendable among the crew.</span><span class='tstring_end'>&quot;</span></span>
171
+ <span class='kw'>end</span>
172
+ </code></pre>
173
+ </li></ul>
159
174
 
160
- <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>rrtf</span><span class='tstring_end'>&#39;</span></span>
161
- <span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>JSON</span><span class='tstring_end'>&#39;</span></span>
175
+ <h4 id="label-Hyperlinks">Hyperlinks</h4>
176
+
177
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span>
178
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Should you ever find yourself on a spacefaring vessel wearing a </span><span class='tstring_end'>&quot;</span></span>
179
+ <span class='id identifier rubyid_p'>p</span><span class='period'>.</span><span class='id identifier rubyid_apply'>apply</span><span class='lparen'>(</span>
180
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>foreground_color</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>#ff0000</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
181
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>underline_color</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>#ff0000</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
182
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>italic</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='comma'>,</span>
183
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>bold</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='comma'>,</span>
184
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>underline</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SINGLE</span><span class='tstring_end'>&quot;</span></span>
185
+ <span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_emphasis'>emphasis</span><span class='op'>|</span>
186
+ <span class='id identifier rubyid_emphasis'>emphasis</span><span class='period'>.</span><span class='id identifier rubyid_link'>link</span><span class='lparen'>(</span>
187
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://en.wikipedia.org/wiki/Redshirt_(character)</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>red shirt</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
188
+ <span class='kw'>end</span>
189
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>, take heed and be on guard, for danger </span><span class='tstring_end'>&quot;</span></span>
190
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>is immanent and you are likely expendable among the crew.</span><span class='tstring_end'>&quot;</span></span>
191
+ <span class='kw'>end</span>
192
+ </code></pre>
162
193
 
163
- <span class='id identifier rubyid_raw_styles'>raw_styles</span> <span class='op'>=</span> <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>styles.json</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
194
+ <h4 id="label-Lists">Lists</h4>
164
195
 
165
- <span class='id identifier rubyid_rtf'>rtf</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="RRTF.html" title="RRTF (module)">RRTF</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="RRTF/Document.html" title="RRTF::Document (class)">Document</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="RRTF/Document.html#initialize-instance_method" title="RRTF::Document#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>stylesheet</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_raw_styles'>raw_styles</span><span class='rparen'>)</span>
166
- <span class='id identifier rubyid_styles'>styles</span> <span class='op'>=</span> <span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_stylesheet'>stylesheet</span><span class='period'>.</span><span class='id identifier rubyid_styles'>styles</span>
196
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_list'>list</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_l'>l</span><span class='op'>|</span>
197
+ <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_item'>item</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_li'>li</span><span class='op'>|</span>
198
+ <span class='id identifier rubyid_li'>li</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Never venture into an ominous setting.</span><span class='tstring_end'>&quot;</span></span>
199
+ <span class='kw'>end</span>
200
+
201
+ <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_item'>item</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_li'>li</span><span class='op'>|</span>
202
+ <span class='id identifier rubyid_li'>li</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Never attempt to disable an unknown entity. </span><span class='tstring_end'>&quot;</span></span>
203
+ <span class='id identifier rubyid_li'>li</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Get away quickly.</span><span class='tstring_end'>&quot;</span></span>
204
+ <span class='kw'>end</span>
167
205
 
168
- <span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span><span class='lparen'>(</span><span class='id identifier rubyid_styles'>styles</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>TITLE</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>RedShirts 101</span><span class='tstring_end'>&quot;</span></span>
169
- <span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span><span class='lparen'>(</span><span class='id identifier rubyid_styles'>styles</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>BODY</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span>
170
- <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Should you ever find yourself on a spacefaring vessel wearing a</span><span class='tstring_end'>&quot;</span></span>
171
- <span class='id identifier rubyid_p'>p</span><span class='period'>.</span><span class='id identifier rubyid_apply'>apply</span><span class='lparen'>(</span><span class='id identifier rubyid_styles'>styles</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>EMPH</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> red </span><span class='tstring_end'>&quot;</span></span>
172
- <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>shirt, take heed and be on guard, for danger is immanent and you are </span><span class='tstring_end'>&quot;</span></span>
173
- <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>likely expendable among the crew...</span><span class='tstring_end'>&quot;</span></span>
206
+ <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_item'>item</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_li'>li</span><span class='op'>|</span>
207
+ <span class='id identifier rubyid_li'>li</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Never stand guard alone. Make certain at least three </span><span class='tstring_end'>&quot;</span></span>
208
+ <span class='id identifier rubyid_li'>li</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>other redshirts are present.</span><span class='tstring_end'>&quot;</span></span>
209
+ <span class='kw'>end</span>
174
210
  <span class='kw'>end</span>
175
- <span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span><span class='lparen'>(</span><span class='id identifier rubyid_styles'>styles</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>H1</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1. The Danger of Away Missions</span><span class='tstring_end'>&quot;</span></span>
176
- <span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span><span class='lparen'>(</span><span class='id identifier rubyid_styles'>styles</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>BODY</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span>
177
- <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>If you&#39;re ever assigned an away mission, it&#39;s almost certain to be your doom. </span><span class='tstring_end'>&quot;</span></span>
178
- <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>The optimal strategy is to avoid away missions to begin with...</span><span class='tstring_end'>&quot;</span></span>
211
+ </code></pre>
212
+
213
+ <h4 id="label-Images">Images</h4>
214
+
215
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_image'>image</span><span class='lparen'>(</span><span class='const'>DIR</span><span class='op'>+</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>/resources/images/redshirt.png</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
216
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>width</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2in</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='comment'># can also set &quot;height&quot;
217
+ </span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>sizing_mode</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>FIX_ASPECT_RATIO</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='comment'># can also be &quot;ABSOLUTE&quot;
218
+ </span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>border</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
219
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>sides</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ALL</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
220
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>color</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>#ff0000</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
221
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>line_type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>DOT</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
222
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>width</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>5pt</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
223
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>spacing</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>12pt</span><span class='tstring_end'>&quot;</span></span>
224
+ <span class='rbrace'>}</span>
225
+ <span class='rparen'>)</span>
226
+ </code></pre>
227
+
228
+ <h4 id="label-Shapes">Shapes</h4>
229
+ <ul><li>
230
+ <p><strong>Basic shapes</strong></p>
231
+
232
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_geometry'>geometry</span><span class='lparen'>(</span>
233
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>RECTANGLE</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
234
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>fill_color</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>#cccccc</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
235
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>top</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='int'>0</span><span class='comma'>,</span>
236
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>left</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='int'>0</span><span class='comma'>,</span>
237
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>width</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2in</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
238
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>height</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2in</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
239
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>horizontal_reference</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>PAGE</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
240
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>vertical_reference</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>PAGE</span><span class='tstring_end'>&quot;</span></span>
241
+ <span class='rparen'>)</span>
242
+ </code></pre>
243
+ </li><li>
244
+ <p><strong>Text boxes</strong></p>
245
+
246
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_geometry'>geometry</span><span class='lparen'>(</span>
247
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TEXT_BOX</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
248
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>line_color</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>#000000</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
249
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>line_width</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>3pt</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
250
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>top</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>5in</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
251
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>left</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2.5in</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
252
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>width</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3in</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
253
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>height</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3in</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
254
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>horizontal_reference</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>PAGE</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
255
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>vertical_reference</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>PAGE</span><span class='tstring_end'>&quot;</span></span>
256
+ <span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_box'>box</span><span class='op'>|</span>
257
+ <span class='id identifier rubyid_box'>box</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span>
258
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Should you ever find yourself on a spacefaring vessel wearing a </span><span class='tstring_end'>&quot;</span></span>
259
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>RED</span><span class='tstring_end'>&quot;</span></span>
260
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> shirt, take heed and be on guard, for danger </span><span class='tstring_end'>&quot;</span></span>
261
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>is immanent and you are likely expendable among the crew.</span><span class='tstring_end'>&quot;</span></span>
262
+ <span class='kw'>end</span>
179
263
  <span class='kw'>end</span>
180
- <span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span><span class='lparen'>(</span><span class='id identifier rubyid_styles'>styles</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>H1</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2. Avoiding High-Ranking Officers</span><span class='tstring_end'>&quot;</span></span>
181
- <span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span><span class='lparen'>(</span><span class='id identifier rubyid_styles'>styles</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>BODY</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span>
182
- <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>You&#39;re likely to notice an influx of unfortunate outcomes around </span><span class='tstring_end'>&quot;</span></span>
183
- <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>certain high-ranking officers. Its to your advantage to quickly identify and </span><span class='tstring_end'>&quot;</span></span>
184
- <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>avoid these officers...</span><span class='tstring_end'>&quot;</span></span>
264
+ </code></pre>
265
+ </li><li>
266
+ <p><strong>Custom shapes</strong></p>
267
+
268
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_geometry'>geometry</span><span class='lparen'>(</span>
269
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>CUSTOM</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
270
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>top</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='int'>0</span><span class='comma'>,</span>
271
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>left</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>4in</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
272
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>width</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3in</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
273
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>height</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3in</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
274
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>path</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='lbracket'>[</span>
275
+ <span class='comment'># points are relative to the upper left corner of the shape as
276
+ </span> <span class='comment'># determined by &quot;top&quot;/&quot;left&quot;/&quot;bottom&quot;/&quot;right&quot;/&quot;width&quot;/&quot;height&quot;
277
+ </span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>START_AT</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='rbracket'>]</span><span class='comma'>,</span>
278
+ <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LINE_TO</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>2in</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span> <span class='rbracket'>]</span><span class='comma'>,</span>
279
+ <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>CUBIC_BEZIER_TO</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>3in</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>3in</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1.5in</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>3in</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>3in</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span> <span class='rbracket'>]</span><span class='comma'>,</span>
280
+ <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LINE_TO</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span> <span class='rbracket'>]</span><span class='comma'>,</span>
281
+ <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>CLOSE_PATH</span><span class='tstring_end'>&quot;</span></span> <span class='rbracket'>]</span><span class='comma'>,</span>
282
+ <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>END</span><span class='tstring_end'>&quot;</span></span> <span class='rbracket'>]</span>
283
+ <span class='rbracket'>]</span><span class='comma'>,</span>
284
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>fill_color</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>#00cc00</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
285
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>line_color</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>#000099</span><span class='tstring_end'>&#39;</span></span>
286
+ <span class='rparen'>)</span>
287
+ </code></pre>
288
+ </li></ul>
289
+
290
+ <h4 id="label-Stylesheet">Stylesheet</h4>
291
+
292
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_raw_styles'>raw_styles</span> <span class='op'>=</span> <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='const'>DIR</span><span class='op'>+</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>/resources/json/redshirt_styles.json</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
293
+ <span class='id identifier rubyid_rtf'>rtf</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="RRTF.html" title="RRTF (module)">RRTF</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="RRTF/Document.html" title="RRTF::Document (class)">Document</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="RRTF/Document.html#initialize-instance_method" title="RRTF::Document#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>stylesheet</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_raw_styles'>raw_styles</span><span class='rparen'>)</span>
294
+ <span class='id identifier rubyid_styles'>styles</span> <span class='op'>=</span> <span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_stylesheet'>stylesheet</span><span class='period'>.</span><span class='id identifier rubyid_styles'>styles</span>
295
+
296
+ <span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span><span class='lparen'>(</span><span class='id identifier rubyid_styles'>styles</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>TITLE</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Redshirt Pocket Guide</span><span class='tstring_end'>&quot;</span></span>
297
+ <span class='id identifier rubyid_rtf'>rtf</span><span class='period'>.</span><span class='id identifier rubyid_paragraph'>paragraph</span><span class='lparen'>(</span><span class='id identifier rubyid_styles'>styles</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>SUBTITLE</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span>
298
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3</span><span class='tstring_end'>&quot;</span></span>
299
+ <span class='id identifier rubyid_p'>p</span><span class='period'>.</span><span class='id identifier rubyid_apply'>apply</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>superscript</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rd</span><span class='tstring_end'>&quot;</span></span>
300
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> Edition</span><span class='tstring_end'>&quot;</span></span>
185
301
  <span class='kw'>end</span>
186
302
  </code></pre>
187
303
 
188
- <p><img src="examples/01_mac_word15_36.png"></p>
304
+ <h2 id="label-TODO">TODO</h2>
305
+ <ul><li>
306
+ <p>Develop rspec examples to replace the unit tests for the classes in the
307
+ original ifad-rtf gem.</p>
308
+ </li><li>
309
+ <p>Make existing comments yard friendly.</p>
310
+ </li><li>
311
+ <p>Refactor interface between styles and colour/font tables: right now
312
+ AnonymousStyle defines push_colours and push_fonts methods that are called
313
+ by CommandNode#paragraph, CommandNode#apply, and ImageNode#initialize
314
+ (these actions should rather be taken when a style is created or updated).</p>
315
+ </li><li>
316
+ <p>Fix list and nested list formatting issues (alignment).</p>
317
+ </li><li>
318
+ <p>Add support for tables.</p>
319
+ </li></ul>
189
320
 
190
321
  <h2 id="label-Development">Development</h2>
191
322
 
@@ -213,7 +344,7 @@ the <a href="http://opensource.org/licenses/MIT">MIT License</a>.</p>
213
344
  </div></div>
214
345
 
215
346
  <div id="footer">
216
- Generated on Mon Jul 24 15:48:59 2017 by
347
+ Generated on Mon Jul 31 21:48:56 2017 by
217
348
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
218
349
  0.9.9 (ruby-2.3.3).
219
350
  </div>