marked-conductor 1.0.14 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69c655b0c85492536b091259aeb5000c04c5830cc1296cb241ceeb507210bd7d
4
- data.tar.gz: 42ed08e2e792dc85945e4c3dbcb0facfbbad2eb1f51553d5999843d042a00703
3
+ metadata.gz: d289620d1960ec33f53d30e34fe0b2dda1590f59ab97f6c84dc1051ec59556e6
4
+ data.tar.gz: f8f52753f27e15303deaeb3558f9506c944b1d8c8de4883173e19c6ded4b975f
5
5
  SHA512:
6
- metadata.gz: 003ec761e335649d21c3bdc209cca365ce6de2152678f896bf623e422f9e161f4d7466231b8915949cdff535874465de4b3ba773f6683780895897a8caf09f47
7
- data.tar.gz: 6bc9fd32c5a46fca3c7b11184b95dc62c31ade54b5cbd4802e2c3f3e4bef6cfe73c01631fe50a6761a3e804786f567ae897d387e304e265fec5b5689168b8039
6
+ metadata.gz: f25710fb5a955089af61f9afd82a6e6c0a7ca2472f81d6063c130e806e92a29ab78b014887421acfc72253e8875b6537146a19cc4cbe2b7957e459725e988818
7
+ data.tar.gz: 0d88105def3581ba8c025a090a22d97ef60f89a3eaf5b06c04888a10b5f5470ae2239e5ebebbd65ca46d64a25d069726621698dd0b74f5e77442e4042df5673e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ### 1.0.15
2
+
3
+ 2024-05-25 11:14
4
+
5
+ #### NEW
6
+
7
+ - New filter insertTOC(max, after) to insert a table of contents, optionally with max levels and after (start, *h1, or h2)
8
+ - New filter prepend/appendFile(path) to include a file (also pre/appendRaw and pre/appendCode)
9
+
1
10
  ### 1.0.14
2
11
 
3
12
  2024-05-25 06:41
data/README.md CHANGED
@@ -144,12 +144,16 @@ The action can be `script`, `command`, or `filter`.
144
144
  | :---- | :---------- |
145
145
  | `setMeta(key, value)` | adds or updates a meta key, aware of YAML and MMD |
146
146
  | `stripMeta` | strips all metadata (YAML or MMD) from the content |
147
- | `stripMeta(key)` | removes a specific key (YAML or MMD) |
148
- | `setStyle(name)` | sets the Marked preview style to a preconfigured Style name
147
+ | `deleteMeta(key)` | removes a specific key (YAML or MMD) |
148
+ | `setStyle(name)` | sets the Marked preview style to a preconfigured Style name |
149
149
  | `replace(search, replace)` | performs a (single) search and replace on content |
150
150
  | `replaceAll(search, replace)` | global version of `replaceAll`) |
151
151
  | `insertTitle` | adds a title to the document, either from metadata or filename |
152
152
  | `insertScript(path[,path])` | injects javascript(s) |
153
+ | `insertTOC(max, after)` | insert TOC (max=max levels, after=start, \*h1, or h2) |
154
+ | `prepend/appendFile(path)` | insert a file as Markdown at beginning or end of content |
155
+ | `prepend/appendRaw(path)` | insert a file as raw HTML at beginning or end of content |
156
+ | `prepend/appendCode(path)` | insert a file as a code block at beginning or end of content |
153
157
 
154
158
  For `insertScript`, if path is just a filename it will look for a match in `~/.config/conductor/javascript` or `~/.config/conductor/scripts` and turn that into an absolute path if the file is found.
155
159
 
data/html/Filter.html CHANGED
@@ -145,7 +145,7 @@
145
145
  </div>
146
146
 
147
147
  <div class="method-source-code" id="new-source">
148
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 221</span>
148
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 288</span>
149
149
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">filter</span>)
150
150
  <span class="ruby-ivar">@filter</span>, <span class="ruby-ivar">@params</span> = <span class="ruby-identifier">filter</span>.<span class="ruby-identifier">normalize_filter</span>
151
151
  <span class="ruby-keyword">super</span>
@@ -176,7 +176,7 @@
176
176
 
177
177
 
178
178
  <div class="method-source-code" id="process-source">
179
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 226</span>
179
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 293</span>
180
180
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">process</span>
181
181
  <span class="ruby-identifier">content</span> = <span class="ruby-constant">Conductor</span>.<span class="ruby-identifier">stdin</span>
182
182
 
@@ -189,6 +189,25 @@
189
189
  <span class="ruby-identifier">content</span> = <span class="ruby-identifier">content</span>.<span class="ruby-identifier">insert_script</span>(<span class="ruby-identifier">script</span>)
190
190
  <span class="ruby-keyword">end</span>
191
191
  <span class="ruby-node">&quot;#{content}&lt;/div&gt;&quot;</span>
192
+ <span class="ruby-keyword">when</span> <span class="ruby-regexp">/(prepend|append|insert|inject)(raw|file|code)/</span>
193
+ <span class="ruby-identifier">m</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">last_match</span>
194
+
195
+ <span class="ruby-identifier">position</span> = <span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>.<span class="ruby-identifier">count</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
196
+ <span class="ruby-ivar">@params</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">normalize_position</span>
197
+ <span class="ruby-keyword">else</span>
198
+ <span class="ruby-identifier">m</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">normalize_position</span>
199
+ <span class="ruby-keyword">end</span>
200
+ <span class="ruby-identifier">content</span>.<span class="ruby-identifier">insert_file</span>(<span class="ruby-ivar">@params</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">m</span>[<span class="ruby-value">2</span>].<span class="ruby-identifier">normalize_include_type</span>, <span class="ruby-identifier">position</span>)
201
+ <span class="ruby-keyword">when</span> <span class="ruby-regexp">/inserttoc/</span>
202
+ <span class="ruby-identifier">max</span> = <span class="ruby-ivar">@params</span>.<span class="ruby-identifier">count</span>.<span class="ruby-identifier">positive?</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@params</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword">nil</span>
203
+
204
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>.<span class="ruby-identifier">count</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
205
+ <span class="ruby-identifier">after</span> = <span class="ruby-ivar">@params</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp">/2/</span> <span class="ruby-operator">?</span> <span class="ruby-value">:h2</span> <span class="ruby-operator">:</span> <span class="ruby-value">:h1</span>
206
+ <span class="ruby-keyword">else</span>
207
+ <span class="ruby-identifier">after</span> = <span class="ruby-value">:start</span>
208
+ <span class="ruby-keyword">end</span>
209
+
210
+ <span class="ruby-identifier">content</span>.<span class="ruby-identifier">insert_toc</span>(<span class="ruby-identifier">max</span>, <span class="ruby-identifier">after</span>)
192
211
  <span class="ruby-keyword">when</span> <span class="ruby-regexp">/(add|set)meta/</span>
193
212
  <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@params</span>.<span class="ruby-identifier">count</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
194
213
  <span class="ruby-identifier">warn</span> <span class="ruby-node">&quot;Invalid filter parameters: #{@filter}(#{@params.join(&quot;,&quot;)})&quot;</span>
@@ -198,8 +217,8 @@
198
217
  <span class="ruby-comment"># needs to test for existing meta, setting key if exists, adding if not</span>
199
218
  <span class="ruby-comment"># should recognize yaml and mmd</span>
200
219
  <span class="ruby-identifier">content</span>.<span class="ruby-identifier">set_meta</span>(<span class="ruby-ivar">@params</span>[<span class="ruby-value">0</span>], <span class="ruby-ivar">@params</span>[<span class="ruby-value">1</span>], <span class="ruby-value">style:</span> <span class="ruby-identifier">content</span>.<span class="ruby-identifier">meta_type</span>)
201
- <span class="ruby-keyword">when</span> <span class="ruby-regexp">/(strip|remove)meta/</span>
202
- <span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>
220
+ <span class="ruby-keyword">when</span> <span class="ruby-regexp">/(strip|remove|delete)meta/</span>
221
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@params</span>&amp;.<span class="ruby-identifier">count</span>.<span class="ruby-identifier">positive?</span>
203
222
  <span class="ruby-identifier">content</span>.<span class="ruby-identifier">delete_meta</span>(<span class="ruby-ivar">@params</span>[<span class="ruby-value">0</span>])
204
223
  <span class="ruby-keyword">else</span>
205
224
  <span class="ruby-identifier">content</span>.<span class="ruby-identifier">strip_meta</span>
data/html/String.html CHANGED
@@ -82,14 +82,20 @@
82
82
  <li ><a href="#method-i-delete_meta">#delete_meta</a>
83
83
  <li ><a href="#method-i-delete_mmd">#delete_mmd</a>
84
84
  <li ><a href="#method-i-delete_yaml">#delete_yaml</a>
85
+ <li ><a href="#method-i-first_h1">#first_h1</a>
86
+ <li ><a href="#method-i-first_h2">#first_h2</a>
85
87
  <li ><a href="#method-i-get_title">#get_title</a>
86
88
  <li ><a href="#method-i-has_comment-3F">#has_comment?</a>
89
+ <li ><a href="#method-i-insert_file">#insert_file</a>
87
90
  <li ><a href="#method-i-insert_script">#insert_script</a>
88
91
  <li ><a href="#method-i-insert_title">#insert_title</a>
92
+ <li ><a href="#method-i-insert_toc">#insert_toc</a>
89
93
  <li ><a href="#method-i-meta-3F">#meta?</a>
90
94
  <li ><a href="#method-i-meta_insert_point">#meta_insert_point</a>
91
95
  <li ><a href="#method-i-meta_type">#meta_type</a>
92
96
  <li ><a href="#method-i-normalize_filter">#normalize_filter</a>
97
+ <li ><a href="#method-i-normalize_include_type">#normalize_include_type</a>
98
+ <li ><a href="#method-i-normalize_position">#normalize_position</a>
93
99
  <li ><a href="#method-i-number-3F">#number?</a>
94
100
  <li ><a href="#method-i-replace">#replace</a>
95
101
  <li ><a href="#method-i-replace_all">#replace_all</a>
@@ -149,7 +155,7 @@
149
155
 
150
156
 
151
157
  <div class="method-source-code" id="add_comment-source">
152
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 164</span>
158
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 231</span>
153
159
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">add_comment</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
154
160
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">has_comment?</span>(<span class="ruby-identifier">key</span>)
155
161
  <span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/ *#{key}: .*?$/</span>, <span class="ruby-node">&quot;#{key}: #{value}&quot;</span>)
@@ -178,7 +184,7 @@
178
184
 
179
185
 
180
186
  <div class="method-source-code" id="add_mmd-source">
181
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 146</span>
187
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 213</span>
182
188
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">add_mmd</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
183
189
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">match</span>(<span class="ruby-regexp">/(\A|\n) *#{key}: *\S+/i</span>)
184
190
  <span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/^ *#{key}:.*?\n/i</span>, <span class="ruby-node">&quot;#{key}: #{value}\n&quot;</span>)
@@ -207,7 +213,7 @@
207
213
 
208
214
 
209
215
  <div class="method-source-code" id="add_yaml-source">
210
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 128</span>
216
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 195</span>
211
217
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">add_yaml</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
212
218
  <span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/^---.*?\n(---|\.\.\.)/m</span>) <span class="ruby-keyword">do</span>
213
219
  <span class="ruby-identifier">m</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">last_match</span>
@@ -235,7 +241,7 @@
235
241
 
236
242
 
237
243
  <div class="method-source-code" id="append-source">
238
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 50</span>
244
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 117</span>
239
245
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">append</span>(<span class="ruby-identifier">string</span>)
240
246
  <span class="ruby-node">&quot;#{self}\n#{string}&quot;</span>
241
247
  <span class="ruby-keyword">end</span></pre>
@@ -260,7 +266,7 @@
260
266
  <p>@return [Boolean] test result</p>
261
267
 
262
268
  <div class="method-source-code" id="bool-3F-source">
263
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 86</span>
269
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 108</span>
264
270
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">bool?</span>
265
271
  <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">&quot;utf-8&quot;</span>).<span class="ruby-identifier">match?</span>(<span class="ruby-regexp">/^(?:y(?:es)?|no?|t(?:rue)?|f(?:alse)?)$/</span>)
266
272
  <span class="ruby-keyword">end</span></pre>
@@ -285,7 +291,7 @@
285
291
  <p>@return [Symbol] symbolized version</p>
286
292
 
287
293
  <div class="method-source-code" id="bool_to_symbol-source">
288
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 19</span>
294
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 41</span>
289
295
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">bool_to_symbol</span>
290
296
  <span class="ruby-keyword">case</span> <span class="ruby-keyword">self</span>
291
297
  <span class="ruby-keyword">when</span> <span class="ruby-regexp">/(NOT|!!)/</span>
@@ -317,7 +323,7 @@
317
323
  <p>@return [Boolean] test result</p>
318
324
 
319
325
  <div class="method-source-code" id="date-3F-source">
320
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 35</span>
326
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 57</span>
321
327
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">date?</span>
322
328
  <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">&quot;utf-8&quot;</span>).<span class="ruby-identifier">match?</span>(<span class="ruby-regexp">/^\d{4}-\d{2}-\d{2}( \d\d:\d\d)?$/</span>)
323
329
  <span class="ruby-keyword">end</span></pre>
@@ -340,7 +346,7 @@
340
346
 
341
347
 
342
348
  <div class="method-source-code" id="delete_meta-source">
343
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 174</span>
349
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 241</span>
344
350
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">delete_meta</span>(<span class="ruby-identifier">key</span>)
345
351
  <span class="ruby-keyword">case</span> <span class="ruby-identifier">meta_type</span>
346
352
  <span class="ruby-keyword">when</span> <span class="ruby-value">:yaml</span>
@@ -368,7 +374,7 @@
368
374
 
369
375
 
370
376
  <div class="method-source-code" id="delete_mmd-source">
371
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 156</span>
377
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 223</span>
372
378
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">delete_mmd</span>(<span class="ruby-identifier">key</span>)
373
379
  <span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/^ *#{key}:.*?\n/i</span>, <span class="ruby-string">&quot;&quot;</span>)
374
380
  <span class="ruby-keyword">end</span></pre>
@@ -391,7 +397,7 @@
391
397
 
392
398
 
393
399
  <div class="method-source-code" id="delete_yaml-source">
394
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 137</span>
400
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 204</span>
395
401
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">delete_yaml</span>(<span class="ruby-identifier">key</span>)
396
402
  <span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/^---.*?\n(---|\.\.\.)/m</span>) <span class="ruby-keyword">do</span>
397
403
  <span class="ruby-identifier">m</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">last_match</span>
@@ -404,6 +410,66 @@
404
410
  </div>
405
411
 
406
412
 
413
+ </div>
414
+
415
+ <div id="method-i-first_h1" class="method-detail ">
416
+ <div class="method-header">
417
+ <div class="method-heading">
418
+ <span class="method-name">first_h1</span><span
419
+ class="method-args">()</span>
420
+ <span class="method-click-advice">click to toggle source</span>
421
+ </div>
422
+ </div>
423
+
424
+ <div class="method-description">
425
+
426
+
427
+ <div class="method-source-code" id="first_h1-source">
428
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 50</span>
429
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">first_h1</span>
430
+ <span class="ruby-identifier">first</span> = <span class="ruby-value">0</span>
431
+ <span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\n/</span>).<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span>, <span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
432
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/^(# *\S|={2,} *$)/</span>
433
+ <span class="ruby-identifier">first</span> = <span class="ruby-identifier">idx</span>
434
+ <span class="ruby-keyword">break</span>
435
+ <span class="ruby-keyword">end</span>
436
+ <span class="ruby-keyword">end</span>
437
+ <span class="ruby-identifier">first</span>
438
+ <span class="ruby-keyword">end</span></pre>
439
+ </div>
440
+ </div>
441
+
442
+
443
+ </div>
444
+
445
+ <div id="method-i-first_h2" class="method-detail ">
446
+ <div class="method-header">
447
+ <div class="method-heading">
448
+ <span class="method-name">first_h2</span><span
449
+ class="method-args">()</span>
450
+ <span class="method-click-advice">click to toggle source</span>
451
+ </div>
452
+ </div>
453
+
454
+ <div class="method-description">
455
+
456
+
457
+ <div class="method-source-code" id="first_h2-source">
458
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 61</span>
459
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">first_h2</span>
460
+ <span class="ruby-identifier">first</span> = <span class="ruby-value">0</span>
461
+ <span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\n/</span>).<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span>, <span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
462
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/^(## *\S|-{2,} *$)/</span>
463
+ <span class="ruby-identifier">first</span> = <span class="ruby-identifier">idx</span>
464
+ <span class="ruby-keyword">break</span>
465
+ <span class="ruby-keyword">end</span>
466
+ <span class="ruby-keyword">end</span>
467
+ <span class="ruby-identifier">first</span>
468
+ <span class="ruby-keyword">end</span></pre>
469
+ </div>
470
+ </div>
471
+
472
+
407
473
  </div>
408
474
 
409
475
  <div id="method-i-get_title" class="method-detail ">
@@ -419,7 +485,7 @@
419
485
 
420
486
 
421
487
  <div class="method-source-code" id="get_title-source">
422
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 83</span>
488
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 150</span>
423
489
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">get_title</span>
424
490
  <span class="ruby-identifier">title</span> = <span class="ruby-keyword">nil</span>
425
491
 
@@ -463,7 +529,7 @@
463
529
 
464
530
 
465
531
  <div class="method-source-code" id="has_comment-3F-source">
466
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 160</span>
532
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 227</span>
467
533
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">has_comment?</span>(<span class="ruby-identifier">key</span>)
468
534
  <span class="ruby-identifier">match</span>(<span class="ruby-regexp">/^&lt;!--.*?#{key}: \S.*?--&gt;/m</span>)
469
535
  <span class="ruby-keyword">end</span></pre>
@@ -471,6 +537,55 @@
471
537
  </div>
472
538
 
473
539
 
540
+ </div>
541
+
542
+ <div id="method-i-insert_file" class="method-detail ">
543
+ <div class="method-header">
544
+ <div class="method-heading">
545
+ <span class="method-name">insert_file</span><span
546
+ class="method-args">(path, type = :file, position = :end)</span>
547
+ <span class="method-click-advice">click to toggle source</span>
548
+ </div>
549
+ </div>
550
+
551
+ <div class="method-description">
552
+
553
+
554
+ <div class="method-source-code" id="insert_file-source">
555
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 87</span>
556
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">insert_file</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">type</span> = <span class="ruby-value">:file</span>, <span class="ruby-identifier">position</span> = <span class="ruby-value">:end</span>)
557
+ <span class="ruby-identifier">path</span>.<span class="ruby-identifier">strip!</span>
558
+
559
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">%r{^[~/]}</span>
560
+ <span class="ruby-identifier">path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">path</span>)
561
+ <span class="ruby-keyword">elsif</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-string">&quot;~/.config/conductor/files&quot;</span>))
562
+ <span class="ruby-identifier">new_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-node">&quot;~/.config/conductor/files/#{path}&quot;</span>)
563
+ <span class="ruby-identifier">path</span> = <span class="ruby-identifier">new_path</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">new_path</span>)
564
+ <span class="ruby-keyword">end</span>
565
+
566
+ <span class="ruby-identifier">out</span> = <span class="ruby-keyword">case</span> <span class="ruby-identifier">type</span>
567
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:code</span>
568
+ <span class="ruby-node">&quot;&lt;&lt;(#{path})&quot;</span>
569
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:raw</span>
570
+ <span class="ruby-node">&quot;&lt;&lt;{#{path}}&quot;</span>
571
+ <span class="ruby-keyword">else</span>
572
+ <span class="ruby-node">&quot;&lt;&lt;[#{path}]&quot;</span>
573
+ <span class="ruby-keyword">end</span>
574
+ <span class="ruby-identifier">out</span> = <span class="ruby-node">&quot;\n#{out}\n&quot;</span>
575
+
576
+ <span class="ruby-keyword">case</span> <span class="ruby-identifier">position</span>
577
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:start</span>
578
+ <span class="ruby-node">&quot;#{out}\n#{self}&quot;</span>
579
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:h1</span>
580
+ <span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\n/</span>).<span class="ruby-identifier">insert</span>(<span class="ruby-identifier">first_h1</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>, <span class="ruby-identifier">out</span>).<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;\n&quot;</span>)
581
+ <span class="ruby-keyword">else</span>
582
+ <span class="ruby-node">&quot;#{self}\n#{out}&quot;</span>
583
+ <span class="ruby-keyword">end</span>
584
+ <span class="ruby-keyword">end</span></pre>
585
+ </div>
586
+ </div>
587
+
588
+
474
589
  </div>
475
590
 
476
591
  <div id="method-i-insert_script" class="method-detail ">
@@ -486,7 +601,7 @@
486
601
 
487
602
 
488
603
  <div class="method-source-code" id="insert_script-source">
489
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 54</span>
604
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 121</span>
490
605
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">insert_script</span>(<span class="ruby-identifier">path</span>)
491
606
  <span class="ruby-identifier">path</span>.<span class="ruby-identifier">strip!</span>
492
607
  <span class="ruby-identifier">path</span> = <span class="ruby-node">&quot;#{path}.js&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/\.js$/</span>
@@ -526,7 +641,7 @@
526
641
 
527
642
 
528
643
  <div class="method-source-code" id="insert_title-source">
529
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 108</span>
644
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 175</span>
530
645
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">insert_title</span>
531
646
  <span class="ruby-identifier">title</span> = <span class="ruby-identifier">get_title</span>
532
647
  <span class="ruby-identifier">lines</span> = <span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\n/</span>)
@@ -539,6 +654,40 @@
539
654
  </div>
540
655
 
541
656
 
657
+ </div>
658
+
659
+ <div id="method-i-insert_toc" class="method-detail ">
660
+ <div class="method-header">
661
+ <div class="method-heading">
662
+ <span class="method-name">insert_toc</span><span
663
+ class="method-args">(max = nil, after = :h1)</span>
664
+ <span class="method-click-advice">click to toggle source</span>
665
+ </div>
666
+ </div>
667
+
668
+ <div class="method-description">
669
+
670
+
671
+ <div class="method-source-code" id="insert_toc-source">
672
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 72</span>
673
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">insert_toc</span>(<span class="ruby-identifier">max</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">after</span> = <span class="ruby-value">:h1</span>)
674
+ <span class="ruby-identifier">lines</span> = <span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\n/</span>)
675
+ <span class="ruby-identifier">max</span> = <span class="ruby-identifier">max</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">max</span>.<span class="ruby-identifier">to_i</span>.<span class="ruby-identifier">positive?</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot; max#{max}&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-string">&quot;&quot;</span>
676
+ <span class="ruby-identifier">line</span> = <span class="ruby-keyword">case</span> <span class="ruby-identifier">after</span>.<span class="ruby-identifier">to_sym</span>
677
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:h2</span>
678
+ <span class="ruby-identifier">first_h2</span>.<span class="ruby-identifier">positive?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">first_h2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
679
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:h1</span>
680
+ <span class="ruby-identifier">first_h1</span>.<span class="ruby-identifier">positive?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">first_h1</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
681
+ <span class="ruby-keyword">else</span>
682
+ <span class="ruby-value">0</span>
683
+ <span class="ruby-keyword">end</span>
684
+
685
+ <span class="ruby-identifier">lines</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-identifier">line</span>, <span class="ruby-node">&quot;\n&lt;!--toc#{max}--&gt;\n&quot;</span>).<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;\n&quot;</span>)
686
+ <span class="ruby-keyword">end</span></pre>
687
+ </div>
688
+ </div>
689
+
690
+
542
691
  </div>
543
692
 
544
693
  <div id="method-i-meta-3F" class="method-detail ">
@@ -556,7 +705,7 @@
556
705
  <p>@return [Boolean] test result</p>
557
706
 
558
707
  <div class="method-source-code" id="meta-3F-source">
559
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 104</span>
708
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 126</span>
560
709
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">meta?</span>
561
710
  <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">&#39;utf-8&#39;</span>).<span class="ruby-identifier">match?</span>(<span class="ruby-regexp">/^\w+: +\S+/m</span>)
562
711
  <span class="ruby-keyword">end</span></pre>
@@ -666,6 +815,66 @@
666
815
  </div>
667
816
 
668
817
 
818
+ </div>
819
+
820
+ <div id="method-i-normalize_include_type" class="method-detail ">
821
+ <div class="method-header">
822
+ <div class="method-heading">
823
+ <span class="method-name">normalize_include_type</span><span
824
+ class="method-args">()</span>
825
+ <span class="method-click-advice">click to toggle source</span>
826
+ </div>
827
+ </div>
828
+
829
+ <div class="method-description">
830
+
831
+
832
+ <div class="method-source-code" id="normalize_include_type-source">
833
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 25</span>
834
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">normalize_include_type</span>
835
+ <span class="ruby-keyword">case</span> <span class="ruby-keyword">self</span>
836
+ <span class="ruby-keyword">when</span> <span class="ruby-regexp">/^c/</span>
837
+ <span class="ruby-value">:code</span>
838
+ <span class="ruby-keyword">when</span> <span class="ruby-regexp">/^r/</span>
839
+ <span class="ruby-value">:raw</span>
840
+ <span class="ruby-keyword">else</span>
841
+ <span class="ruby-value">:file</span>
842
+ <span class="ruby-keyword">end</span>
843
+ <span class="ruby-keyword">end</span></pre>
844
+ </div>
845
+ </div>
846
+
847
+
848
+ </div>
849
+
850
+ <div id="method-i-normalize_position" class="method-detail ">
851
+ <div class="method-header">
852
+ <div class="method-heading">
853
+ <span class="method-name">normalize_position</span><span
854
+ class="method-args">()</span>
855
+ <span class="method-click-advice">click to toggle source</span>
856
+ </div>
857
+ </div>
858
+
859
+ <div class="method-description">
860
+
861
+
862
+ <div class="method-source-code" id="normalize_position-source">
863
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 14</span>
864
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">normalize_position</span>
865
+ <span class="ruby-keyword">case</span> <span class="ruby-keyword">self</span>
866
+ <span class="ruby-keyword">when</span> <span class="ruby-regexp">/^(be|s|t)/</span>
867
+ <span class="ruby-value">:start</span>
868
+ <span class="ruby-keyword">when</span> <span class="ruby-regexp">/h1/</span>
869
+ <span class="ruby-value">:h1</span>
870
+ <span class="ruby-keyword">else</span>
871
+ <span class="ruby-value">:end</span>
872
+ <span class="ruby-keyword">end</span>
873
+ <span class="ruby-keyword">end</span></pre>
874
+ </div>
875
+ </div>
876
+
877
+
669
878
  </div>
670
879
 
671
880
  <div id="method-i-number-3F" class="method-detail ">
@@ -683,7 +892,7 @@
683
892
  <p>@return [Boolean] test result</p>
684
893
 
685
894
  <div class="method-source-code" id="number-3F-source">
686
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 77</span>
895
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 99</span>
687
896
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">number?</span>
688
897
  <span class="ruby-identifier">to_f</span>.<span class="ruby-identifier">positive?</span>
689
898
  <span class="ruby-keyword">end</span></pre>
@@ -706,7 +915,7 @@
706
915
 
707
916
 
708
917
  <div class="method-source-code" id="replace-source">
709
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 197</span>
918
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 264</span>
710
919
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">replace</span>(<span class="ruby-identifier">regex</span>, <span class="ruby-identifier">pattern</span>)
711
920
  <span class="ruby-identifier">sub</span>(<span class="ruby-identifier">regex</span>.<span class="ruby-identifier">to_rx</span>, <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">to_pattern</span>)
712
921
  <span class="ruby-keyword">end</span></pre>
@@ -729,7 +938,7 @@
729
938
 
730
939
 
731
940
  <div class="method-source-code" id="replace_all-source">
732
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 193</span>
941
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 260</span>
733
942
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">replace_all</span>(<span class="ruby-identifier">regex</span>, <span class="ruby-identifier">pattern</span>)
734
943
  <span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">regex</span>.<span class="ruby-identifier">to_rx</span>, <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">to_pattern</span>)
735
944
  <span class="ruby-keyword">end</span></pre>
@@ -752,7 +961,7 @@
752
961
 
753
962
 
754
963
  <div class="method-source-code" id="set_meta-source">
755
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 117</span>
964
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 184</span>
756
965
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">set_meta</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>, <span class="ruby-value">style:</span> <span class="ruby-value">:comment</span>)
757
966
  <span class="ruby-keyword">case</span> <span class="ruby-identifier">style</span>
758
967
  <span class="ruby-keyword">when</span> <span class="ruby-value">:yaml</span>
@@ -782,7 +991,7 @@
782
991
 
783
992
 
784
993
  <div class="method-source-code" id="strip_meta-source">
785
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 183</span>
994
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 250</span>
786
995
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">strip_meta</span>
787
996
  <span class="ruby-keyword">case</span> <span class="ruby-identifier">meta_type</span>
788
997
  <span class="ruby-keyword">when</span> <span class="ruby-value">:yaml</span>
@@ -813,7 +1022,7 @@
813
1022
  <p>@return [String] string with time removed</p>
814
1023
 
815
1024
  <div class="method-source-code" id="strip_time-source">
816
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 63</span>
1025
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 85</span>
817
1026
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">strip_time</span>
818
1027
  <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">&quot;utf-8&quot;</span>).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/ \d{1,2}(:\d\d)? *([ap]m)?/i</span>, <span class="ruby-string">&quot;&quot;</span>)
819
1028
  <span class="ruby-keyword">end</span></pre>
@@ -838,7 +1047,7 @@
838
1047
  <p>@return [Boolean] test result</p>
839
1048
 
840
1049
  <div class="method-source-code" id="time-3F-source">
841
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 44</span>
1050
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 66</span>
842
1051
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">time?</span>
843
1052
  <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">&quot;utf-8&quot;</span>).<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/ \d{1,2}(:\d\d)? *([ap]m)?/i</span>)
844
1053
  <span class="ruby-keyword">end</span></pre>
@@ -861,7 +1070,7 @@
861
1070
 
862
1071
 
863
1072
  <div class="method-source-code" id="title_from_slug-source">
864
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 75</span>
1073
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 142</span>
865
1074
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">title_from_slug</span>
866
1075
  <span class="ruby-identifier">filename</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-constant">Conductor</span><span class="ruby-operator">::</span><span class="ruby-constant">Env</span>.<span class="ruby-identifier">env</span>[<span class="ruby-value">:filepath</span>]).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/\.[a-z]+$/i</span>, <span class="ruby-string">&quot;&quot;</span>)
867
1076
  <span class="ruby-identifier">filename</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp">/-?\d{4}-\d{2}-\d{2}-?/</span>, <span class="ruby-string">&quot;&quot;</span>)
@@ -915,7 +1124,7 @@
915
1124
  <p>@return [Boolean] Bool representation of the object.</p>
916
1125
 
917
1126
  <div class="method-source-code" id="to_bool-source">
918
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 123</span>
1127
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 145</span>
919
1128
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_bool</span>
920
1129
  <span class="ruby-keyword">case</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">&#39;utf-8&#39;</span>)
921
1130
  <span class="ruby-keyword">when</span> <span class="ruby-regexp">/^[yt]/i</span>
@@ -945,7 +1154,7 @@
945
1154
  <p>@see <a href="String.html#method-i-to_bool"><code>to_bool</code></a></p>
946
1155
 
947
1156
  <div class="method-source-code" id="to_bool-21-source">
948
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 114</span>
1157
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 136</span>
949
1158
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_bool!</span>
950
1159
  <span class="ruby-identifier">replace</span> <span class="ruby-identifier">to_bool</span>
951
1160
  <span class="ruby-keyword">end</span></pre>
@@ -973,7 +1182,7 @@
973
1182
  <p>@return [Date] Resulting Date object</p>
974
1183
 
975
1184
  <div class="method-source-code" id="to_date-source">
976
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 54</span>
1185
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 76</span>
977
1186
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_date</span>
978
1187
  <span class="ruby-constant">Chronic</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">&quot;utf-8&quot;</span>))
979
1188
  <span class="ruby-keyword">end</span></pre>
@@ -996,7 +1205,7 @@
996
1205
 
997
1206
 
998
1207
  <div class="method-source-code" id="to_day-source">
999
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 67</span>
1208
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 89</span>
1000
1209
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_day</span>(<span class="ruby-identifier">time</span> = <span class="ruby-value">:end</span>)
1001
1210
  <span class="ruby-identifier">t</span> = <span class="ruby-identifier">time</span> <span class="ruby-operator">==</span> <span class="ruby-value">:end</span> <span class="ruby-operator">?</span> <span class="ruby-string">&quot;23:59&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-string">&quot;00:00&quot;</span>
1002
1211
  <span class="ruby-constant">Chronic</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-node">&quot;#{strip_time} #{t}&quot;</span>)
@@ -1020,7 +1229,7 @@
1020
1229
 
1021
1230
 
1022
1231
  <div class="method-source-code" id="to_pattern-source">
1023
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 212</span>
1232
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 279</span>
1024
1233
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_pattern</span>
1025
1234
  <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/\$(\d+)/</span>, <span class="ruby-string">&#39;\\\\\1&#39;</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/(^[&quot;&#39;]|[&quot;&#39;]$)/</span>, <span class="ruby-string">&quot;&quot;</span>)
1026
1235
  <span class="ruby-keyword">end</span></pre>
@@ -1043,7 +1252,7 @@
1043
1252
 
1044
1253
 
1045
1254
  <div class="method-source-code" id="to_rx-source">
1046
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 201</span>
1255
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 268</span>
1047
1256
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_rx</span>
1048
1257
  <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">%r{^/(.*?)/([im]+)?$}</span>
1049
1258
  <span class="ruby-identifier">m</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">last_match</span>
@@ -1075,7 +1284,7 @@
1075
1284
  <p>@return [Boolean] test result</p>
1076
1285
 
1077
1286
  <div class="method-source-code" id="yaml-3F-source">
1078
- <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 95</span>
1287
+ <pre><span class="ruby-comment"># File lib/conductor/string.rb, line 117</span>
1079
1288
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">yaml?</span>
1080
1289
  <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">&#39;utf-8&#39;</span>).<span class="ruby-identifier">match?</span>(<span class="ruby-regexp">/^---/m</span>)
1081
1290
  <span class="ruby-keyword">end</span></pre>
data/html/created.rid CHANGED
@@ -1,4 +1,4 @@
1
- Sat, 25 May 2024 06:41:22 -0500
1
+ Sat, 25 May 2024 11:14:11 -0500
2
2
  README.rdoc Sun, 28 Apr 2024 13:21:34 -0500
3
3
  lib/conductor.rb Fri, 24 May 2024 12:23:17 -0500
4
4
  lib/conductor/array.rb Sat, 27 Apr 2024 11:54:28 -0500
@@ -7,9 +7,9 @@ lib/conductor/command.rb Sat, 27 Apr 2024 11:54:28 -0500
7
7
  lib/conductor/condition.rb Mon, 29 Apr 2024 09:19:15 -0500
8
8
  lib/conductor/config.rb Sat, 27 Apr 2024 11:54:28 -0500
9
9
  lib/conductor/env.rb Mon, 29 Apr 2024 09:28:21 -0500
10
- lib/conductor/filter.rb Sat, 25 May 2024 06:38:24 -0500
10
+ lib/conductor/filter.rb Sat, 25 May 2024 11:13:46 -0500
11
11
  lib/conductor/hash.rb Sat, 27 Apr 2024 11:54:28 -0500
12
12
  lib/conductor/script.rb Sun, 28 Apr 2024 16:21:49 -0500
13
- lib/conductor/string.rb Sat, 25 May 2024 06:20:54 -0500
14
- lib/conductor/version.rb Fri, 24 May 2024 13:13:06 -0500
13
+ lib/conductor/string.rb Sat, 25 May 2024 10:58:38 -0500
14
+ lib/conductor/version.rb Sat, 25 May 2024 06:41:33 -0500
15
15
  bin/conductor Fri, 24 May 2024 12:39:06 -0500
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["array","conductor","command","condition","config","env","script","falseclass","filter","hash","object","string","trueclass","add_comment()","add_mmd()","add_yaml()","append()","args=()","args=()","bool?()","bool?()","bool?()","bool_to_symbol()","clean_condition()","conduct()","create_config()","date?()","delete_meta()","delete_mmd()","delete_yaml()","env()","execute_track()","get_title()","has_comment?()","insert_script()","insert_title()","load_test_env()","meta?()","meta_insert_point()","meta_type()","new()","new()","new()","new()","new()","normalize_filter()","number?()","operator_to_symbol()","parse_condition()","path=()","path=()","process()","replace()","replace_all()","run()","run()","sample_config()","set_meta()","split_booleans()","split_condition()","stdin()","strip_meta()","strip_time()","symbolize_keys()","symbolize_keys()","symbolize_keys!()","symbolize_keys!()","test_condition()","test_meta()","test_operator()","test_pandoc()","test_string()","test_tree()","test_truthy()","test_type()","test_yaml()","time?()","title_from_slug()","titleize()","to_bool()","to_bool!()","to_date()","to_day()","to_pattern()","to_rx()","to_s()","true?()","yaml?()","readme"],"longSearchIndex":["array","conductor","conductor::command","conductor::condition","conductor::config","conductor::env","conductor::script","falseclass","filter","hash","object","string","trueclass","string#add_comment()","string#add_mmd()","string#add_yaml()","string#append()","conductor::command#args=()","conductor::script#args=()","falseclass#bool?()","string#bool?()","trueclass#bool?()","string#bool_to_symbol()","object#clean_condition()","conductor::conduct()","conductor#create_config()","string#date?()","string#delete_meta()","string#delete_mmd()","string#delete_yaml()","conductor::env::env()","conductor::execute_track()","string#get_title()","string#has_comment?()","string#insert_script()","string#insert_title()","conductor::env::load_test_env()","string#meta?()","string#meta_insert_point()","string#meta_type()","conductor::command::new()","conductor::condition::new()","conductor::config::new()","conductor::script::new()","filter::new()","string#normalize_filter()","string#number?()","conductor::condition#operator_to_symbol()","conductor::condition#parse_condition()","conductor::command#path=()","conductor::script#path=()","filter#process()","string#replace()","string#replace_all()","conductor::command#run()","conductor::script#run()","conductor#sample_config()","string#set_meta()","conductor::condition#split_booleans()","conductor::condition#split_condition()","conductor::stdin()","string#strip_meta()","string#strip_time()","array#symbolize_keys()","hash#symbolize_keys()","array#symbolize_keys!()","hash#symbolize_keys!()","conductor::condition#test_condition()","conductor::condition#test_meta()","conductor::condition#test_operator()","conductor::condition#test_pandoc()","conductor::condition#test_string()","conductor::condition#test_tree()","conductor::condition#test_truthy()","conductor::condition#test_type()","conductor::condition#test_yaml()","string#time?()","string#title_from_slug()","string#titleize()","string#to_bool()","string#to_bool!()","string#to_date()","string#to_day()","string#to_pattern()","string#to_rx()","conductor::env::to_s()","conductor::condition#true?()","string#yaml?()",""],"info":[["Array","","Array.html","",""],["Conductor","","Conductor.html","","<p>Main Conductor class\n"],["Conductor::Command","","Conductor/Command.html","","<p>Command runner\n"],["Conductor::Condition","","Conductor/Condition.html","",""],["Conductor::Config","","Conductor/Config.html","","<p>Configuration methods\n"],["Conductor::Env","","Conductor/Env.html","","<p>Environment variables\n"],["Conductor::Script","","Conductor/Script.html","","<p>Script runner\n"],["FalseClass","","FalseClass.html","","<p>False class\n"],["Filter","","Filter.html","","<p>String filtering\n"],["Hash","","Hash.html","",""],["Object","","Object.html","",""],["String","","String.html","","<p>String helpers\n<p>String helpers\n"],["TrueClass","","TrueClass.html","","<p>True class\n"],["add_comment","String","String.html#method-i-add_comment","(key, value)",""],["add_mmd","String","String.html#method-i-add_mmd","(key, value)",""],["add_yaml","String","String.html#method-i-add_yaml","(key, value)",""],["append","String","String.html#method-i-append","(string)",""],["args=","Conductor::Command","Conductor/Command.html#method-i-args-3D","(array)",""],["args=","Conductor::Script","Conductor/Script.html#method-i-args-3D","(array)","<p>Set the args array\n<p>@param array The array\n"],["bool?","FalseClass","FalseClass.html#method-i-bool-3F","()",""],["bool?","String","String.html#method-i-bool-3F","()","<p>Test if a string is a boolean\n<p>@return [Boolean] test result\n"],["bool?","TrueClass","TrueClass.html#method-i-bool-3F","()",""],["bool_to_symbol","String","String.html#method-i-bool_to_symbol","()","<p>Convert a string boolean to symbol\n<p>@return [Symbol] symbolized version\n"],["clean_condition","Object","Object.html#method-i-clean_condition","(condition)","<p>Clean up conditions for output\n<p>@param condition The condition\n"],["conduct","Conductor","Conductor.html#method-c-conduct","(tracks, res = nil, condition = nil)","<p>Main function to parse conditions and\n\n<pre>execute actions. Executes recursively for\nsub-tracks.</pre>\n<p>@param …\n"],["create_config","Conductor","Conductor.html#method-i-create_config","(config_file)",""],["date?","String","String.html#method-i-date-3F","()","<p>Test a string to see if it’s a UTC date\n<p>@return [Boolean] test result\n"],["delete_meta","String","String.html#method-i-delete_meta","(key)",""],["delete_mmd","String","String.html#method-i-delete_mmd","(key)",""],["delete_yaml","String","String.html#method-i-delete_yaml","(key)",""],["env","Conductor::Env","Conductor/Env.html#method-c-env","()","<p>Define @env using Marked environment variables\n"],["execute_track","Conductor","Conductor.html#method-c-execute_track","(track)","<p>Execute commands/scripts in the track\n<p>@param track The track\n<p>@return Resulting STDOUT output …\n"],["get_title","String","String.html#method-i-get_title","()",""],["has_comment?","String","String.html#method-i-has_comment-3F","(key)",""],["insert_script","String","String.html#method-i-insert_script","(path)",""],["insert_title","String","String.html#method-i-insert_title","()",""],["load_test_env","Conductor::Env","Conductor/Env.html#method-c-load_test_env","()","<p>Loads a test environment.\n"],["meta?","String","String.html#method-i-meta-3F","()","<p>Test if a string starts with MMD metadata\n<p>@return [Boolean] test result\n"],["meta_insert_point","String","String.html#method-i-meta_insert_point","()",""],["meta_type","String","String.html#method-i-meta_type","()",""],["new","Conductor::Command","Conductor/Command.html#method-c-new","(command)",""],["new","Conductor::Condition","Conductor/Condition.html#method-c-new","(condition)","<p>Initializes the given condition.\n<p>@param condition The condition\n"],["new","Conductor::Config","Conductor/Config.html#method-c-new","()",""],["new","Conductor::Script","Conductor/Script.html#method-c-new","(script)","<p>Initializes the given script.\n<p>@param script The script/path\n"],["new","Filter","Filter.html#method-c-new","(filter)",""],["normalize_filter","String","String.html#method-i-normalize_filter","()",""],["number?","String","String.html#method-i-number-3F","()","<p>Test if a string is a number\n<p>@return [Boolean] test result\n"],["operator_to_symbol","Conductor::Condition","Conductor/Condition.html#method-i-operator_to_symbol","(operator)",""],["parse_condition","Conductor::Condition","Conductor/Condition.html#method-i-parse_condition","()",""],["path=","Conductor::Command","Conductor/Command.html#method-i-path-3D","(path)",""],["path=","Conductor::Script","Conductor/Script.html#method-i-path-3D","(path)","<p>Set script path, automatically expands/tests\n<p>@param path The path\n"],["process","Filter","Filter.html#method-i-process","()",""],["replace","String","String.html#method-i-replace","(regex, pattern)",""],["replace_all","String","String.html#method-i-replace_all","(regex, pattern)",""],["run","Conductor::Command","Conductor/Command.html#method-i-run","()",""],["run","Conductor::Script","Conductor/Script.html#method-i-run","()","<p>Execute the script\n<p>@return [String] script results (STDOUT)\n"],["sample_config","Conductor","Conductor.html#method-i-sample_config","()",""],["set_meta","String","String.html#method-i-set_meta","(key, value, style: :comment)",""],["split_booleans","Conductor::Condition","Conductor/Condition.html#method-i-split_booleans","(condition)","<p>Splits booleans and tests components.\n<p>@param condition The condition to test\n<p>@return [Boolean] …\n"],["split_condition","Conductor::Condition","Conductor/Condition.html#method-i-split_condition","(condition)","<p>Splits a natural language condition.\n<p>@param condition The condition @return [Array] Value, value …\n"],["stdin","Conductor","Conductor.html#method-c-stdin","()",""],["strip_meta","String","String.html#method-i-strip_meta","()",""],["strip_time","String","String.html#method-i-strip_time","()","<p>Remove time from string\n<p>@return [String] string with time removed\n"],["symbolize_keys","Array","Array.html#method-i-symbolize_keys","()",""],["symbolize_keys","Hash","Hash.html#method-i-symbolize_keys","()",""],["symbolize_keys!","Array","Array.html#method-i-symbolize_keys-21","()",""],["symbolize_keys!","Hash","Hash.html#method-i-symbolize_keys-21","()",""],["test_condition","Conductor::Condition","Conductor/Condition.html#method-i-test_condition","(condition)",""],["test_meta","Conductor::Condition","Conductor/Condition.html#method-i-test_meta","(content, value, key, operator)","<p>Test for MultiMarkdown metadata,\n\n<pre class=\"ruby\"><span class=\"ruby-identifier\">optionally</span> <span class=\"ruby-identifier\">key</span> <span class=\"ruby-keyword\">and</span> <span class=\"ruby-identifier\">value</span>\n</pre>\n<p>@param content [String] The text content …\n"],["test_operator","Conductor::Condition","Conductor/Condition.html#method-i-test_operator","(value1, value2, operator)","<p>Test operators\n<p>@param value1 Value @param value2 Value to test @param operator …\n"],["test_pandoc","Conductor::Condition","Conductor/Condition.html#method-i-test_pandoc","(content, operator)",""],["test_string","Conductor::Condition","Conductor/Condition.html#method-i-test_string","(val1, val2, operator)","<p>Compare a string based on operator\n<p>@param val1 The string to test against @param val2 …\n"],["test_tree","Conductor::Condition","Conductor/Condition.html#method-i-test_tree","(origin, value, operator)","<p>Test for the existince of a\n\n<pre>file/directory in the parent tree</pre>\n<p>@param origin Starting directory …\n"],["test_truthy","Conductor::Condition","Conductor/Condition.html#method-i-test_truthy","(value1, value2, operator)","<p>Test “truthiness”\n<p>@param value1 Value to test against @param value2 Value to …\n"],["test_type","Conductor::Condition","Conductor/Condition.html#method-i-test_type","(val1, val2, operator)","<p>Test for type of value\n<p>@param val1 value @param val2 value to test against @param …\n"],["test_yaml","Conductor::Condition","Conductor/Condition.html#method-i-test_yaml","(content, value, key, operator)","<p>Test for presence of yaml, optionall for\n\n<pre>a key, optionally for a key&#39;s value</pre>\n<p>@param content Text …\n"],["time?","String","String.html#method-i-time-3F","()","<p>Test a string to see if it includes a time\n<p>@return [Boolean] test result\n"],["title_from_slug","String","String.html#method-i-title_from_slug","()",""],["titleize","String","String.html#method-i-titleize","()","<p>Titlecase a string\n<p>@return Titleized string\n"],["to_bool","String","String.html#method-i-to_bool","()","<p>Returns a bool representation of the string.\n<p>@return [Boolean] Bool representation of the object. …\n"],["to_bool!","String","String.html#method-i-to_bool-21","()","<p>Destructive version of #to_bool\n<p>@see #to_bool\n"],["to_date","String","String.html#method-i-to_date","()","<p>Convert a natural language string to a Date\n\n<pre class=\"ruby\"><span class=\"ruby-identifier\">object</span>\n</pre>\n<p>@return [Date] Resulting Date object\n"],["to_day","String","String.html#method-i-to_day","(time = :end)",""],["to_pattern","String","String.html#method-i-to_pattern","()",""],["to_rx","String","String.html#method-i-to_rx","()",""],["to_s","Conductor::Env","Conductor/Env.html#method-c-to_s","()","<p>env to string\n<p>@return [String] shell-compatible string representation of @env\n"],["true?","Conductor::Condition","Conductor/Condition.html#method-i-true-3F","()","<p>Tests condition\n<p>@return [Boolean] test result\n"],["yaml?","String","String.html#method-i-yaml-3F","()","<p>Test if string starts with YAML\n<p>@return [Boolean] test result\n"],["README","","README_rdoc.html","","<p>Marked Conductor\n<p>A command line tool that functions as a custom processor handler for Marked 2.\n"]]}}
1
+ var search_data = {"index":{"searchIndex":["array","conductor","command","condition","config","env","script","falseclass","filter","hash","object","string","trueclass","add_comment()","add_mmd()","add_yaml()","append()","args=()","args=()","bool?()","bool?()","bool?()","bool_to_symbol()","clean_condition()","conduct()","create_config()","date?()","delete_meta()","delete_mmd()","delete_yaml()","env()","execute_track()","first_h1()","first_h2()","get_title()","has_comment?()","insert_file()","insert_script()","insert_title()","insert_toc()","load_test_env()","meta?()","meta_insert_point()","meta_type()","new()","new()","new()","new()","new()","normalize_filter()","normalize_include_type()","normalize_position()","number?()","operator_to_symbol()","parse_condition()","path=()","path=()","process()","replace()","replace_all()","run()","run()","sample_config()","set_meta()","split_booleans()","split_condition()","stdin()","strip_meta()","strip_time()","symbolize_keys()","symbolize_keys()","symbolize_keys!()","symbolize_keys!()","test_condition()","test_meta()","test_operator()","test_pandoc()","test_string()","test_tree()","test_truthy()","test_type()","test_yaml()","time?()","title_from_slug()","titleize()","to_bool()","to_bool!()","to_date()","to_day()","to_pattern()","to_rx()","to_s()","true?()","yaml?()","readme"],"longSearchIndex":["array","conductor","conductor::command","conductor::condition","conductor::config","conductor::env","conductor::script","falseclass","filter","hash","object","string","trueclass","string#add_comment()","string#add_mmd()","string#add_yaml()","string#append()","conductor::command#args=()","conductor::script#args=()","falseclass#bool?()","string#bool?()","trueclass#bool?()","string#bool_to_symbol()","object#clean_condition()","conductor::conduct()","conductor#create_config()","string#date?()","string#delete_meta()","string#delete_mmd()","string#delete_yaml()","conductor::env::env()","conductor::execute_track()","string#first_h1()","string#first_h2()","string#get_title()","string#has_comment?()","string#insert_file()","string#insert_script()","string#insert_title()","string#insert_toc()","conductor::env::load_test_env()","string#meta?()","string#meta_insert_point()","string#meta_type()","conductor::command::new()","conductor::condition::new()","conductor::config::new()","conductor::script::new()","filter::new()","string#normalize_filter()","string#normalize_include_type()","string#normalize_position()","string#number?()","conductor::condition#operator_to_symbol()","conductor::condition#parse_condition()","conductor::command#path=()","conductor::script#path=()","filter#process()","string#replace()","string#replace_all()","conductor::command#run()","conductor::script#run()","conductor#sample_config()","string#set_meta()","conductor::condition#split_booleans()","conductor::condition#split_condition()","conductor::stdin()","string#strip_meta()","string#strip_time()","array#symbolize_keys()","hash#symbolize_keys()","array#symbolize_keys!()","hash#symbolize_keys!()","conductor::condition#test_condition()","conductor::condition#test_meta()","conductor::condition#test_operator()","conductor::condition#test_pandoc()","conductor::condition#test_string()","conductor::condition#test_tree()","conductor::condition#test_truthy()","conductor::condition#test_type()","conductor::condition#test_yaml()","string#time?()","string#title_from_slug()","string#titleize()","string#to_bool()","string#to_bool!()","string#to_date()","string#to_day()","string#to_pattern()","string#to_rx()","conductor::env::to_s()","conductor::condition#true?()","string#yaml?()",""],"info":[["Array","","Array.html","",""],["Conductor","","Conductor.html","","<p>Main Conductor class\n"],["Conductor::Command","","Conductor/Command.html","","<p>Command runner\n"],["Conductor::Condition","","Conductor/Condition.html","",""],["Conductor::Config","","Conductor/Config.html","","<p>Configuration methods\n"],["Conductor::Env","","Conductor/Env.html","","<p>Environment variables\n"],["Conductor::Script","","Conductor/Script.html","","<p>Script runner\n"],["FalseClass","","FalseClass.html","","<p>False class\n"],["Filter","","Filter.html","","<p>String filtering\n"],["Hash","","Hash.html","",""],["Object","","Object.html","",""],["String","","String.html","","<p>String helpers\n<p>String helpers\n"],["TrueClass","","TrueClass.html","","<p>True class\n"],["add_comment","String","String.html#method-i-add_comment","(key, value)",""],["add_mmd","String","String.html#method-i-add_mmd","(key, value)",""],["add_yaml","String","String.html#method-i-add_yaml","(key, value)",""],["append","String","String.html#method-i-append","(string)",""],["args=","Conductor::Command","Conductor/Command.html#method-i-args-3D","(array)",""],["args=","Conductor::Script","Conductor/Script.html#method-i-args-3D","(array)","<p>Set the args array\n<p>@param array The array\n"],["bool?","FalseClass","FalseClass.html#method-i-bool-3F","()",""],["bool?","String","String.html#method-i-bool-3F","()","<p>Test if a string is a boolean\n<p>@return [Boolean] test result\n"],["bool?","TrueClass","TrueClass.html#method-i-bool-3F","()",""],["bool_to_symbol","String","String.html#method-i-bool_to_symbol","()","<p>Convert a string boolean to symbol\n<p>@return [Symbol] symbolized version\n"],["clean_condition","Object","Object.html#method-i-clean_condition","(condition)","<p>Clean up conditions for output\n<p>@param condition The condition\n"],["conduct","Conductor","Conductor.html#method-c-conduct","(tracks, res = nil, condition = nil)","<p>Main function to parse conditions and\n\n<pre>execute actions. Executes recursively for\nsub-tracks.</pre>\n<p>@param …\n"],["create_config","Conductor","Conductor.html#method-i-create_config","(config_file)",""],["date?","String","String.html#method-i-date-3F","()","<p>Test a string to see if it’s a UTC date\n<p>@return [Boolean] test result\n"],["delete_meta","String","String.html#method-i-delete_meta","(key)",""],["delete_mmd","String","String.html#method-i-delete_mmd","(key)",""],["delete_yaml","String","String.html#method-i-delete_yaml","(key)",""],["env","Conductor::Env","Conductor/Env.html#method-c-env","()","<p>Define @env using Marked environment variables\n"],["execute_track","Conductor","Conductor.html#method-c-execute_track","(track)","<p>Execute commands/scripts in the track\n<p>@param track The track\n<p>@return Resulting STDOUT output …\n"],["first_h1","String","String.html#method-i-first_h1","()",""],["first_h2","String","String.html#method-i-first_h2","()",""],["get_title","String","String.html#method-i-get_title","()",""],["has_comment?","String","String.html#method-i-has_comment-3F","(key)",""],["insert_file","String","String.html#method-i-insert_file","(path, type = :file, position = :end)",""],["insert_script","String","String.html#method-i-insert_script","(path)",""],["insert_title","String","String.html#method-i-insert_title","()",""],["insert_toc","String","String.html#method-i-insert_toc","(max = nil, after = :h1)",""],["load_test_env","Conductor::Env","Conductor/Env.html#method-c-load_test_env","()","<p>Loads a test environment.\n"],["meta?","String","String.html#method-i-meta-3F","()","<p>Test if a string starts with MMD metadata\n<p>@return [Boolean] test result\n"],["meta_insert_point","String","String.html#method-i-meta_insert_point","()",""],["meta_type","String","String.html#method-i-meta_type","()",""],["new","Conductor::Command","Conductor/Command.html#method-c-new","(command)",""],["new","Conductor::Condition","Conductor/Condition.html#method-c-new","(condition)","<p>Initializes the given condition.\n<p>@param condition The condition\n"],["new","Conductor::Config","Conductor/Config.html#method-c-new","()",""],["new","Conductor::Script","Conductor/Script.html#method-c-new","(script)","<p>Initializes the given script.\n<p>@param script The script/path\n"],["new","Filter","Filter.html#method-c-new","(filter)",""],["normalize_filter","String","String.html#method-i-normalize_filter","()",""],["normalize_include_type","String","String.html#method-i-normalize_include_type","()",""],["normalize_position","String","String.html#method-i-normalize_position","()",""],["number?","String","String.html#method-i-number-3F","()","<p>Test if a string is a number\n<p>@return [Boolean] test result\n"],["operator_to_symbol","Conductor::Condition","Conductor/Condition.html#method-i-operator_to_symbol","(operator)",""],["parse_condition","Conductor::Condition","Conductor/Condition.html#method-i-parse_condition","()",""],["path=","Conductor::Command","Conductor/Command.html#method-i-path-3D","(path)",""],["path=","Conductor::Script","Conductor/Script.html#method-i-path-3D","(path)","<p>Set script path, automatically expands/tests\n<p>@param path The path\n"],["process","Filter","Filter.html#method-i-process","()",""],["replace","String","String.html#method-i-replace","(regex, pattern)",""],["replace_all","String","String.html#method-i-replace_all","(regex, pattern)",""],["run","Conductor::Command","Conductor/Command.html#method-i-run","()",""],["run","Conductor::Script","Conductor/Script.html#method-i-run","()","<p>Execute the script\n<p>@return [String] script results (STDOUT)\n"],["sample_config","Conductor","Conductor.html#method-i-sample_config","()",""],["set_meta","String","String.html#method-i-set_meta","(key, value, style: :comment)",""],["split_booleans","Conductor::Condition","Conductor/Condition.html#method-i-split_booleans","(condition)","<p>Splits booleans and tests components.\n<p>@param condition The condition to test\n<p>@return [Boolean] …\n"],["split_condition","Conductor::Condition","Conductor/Condition.html#method-i-split_condition","(condition)","<p>Splits a natural language condition.\n<p>@param condition The condition @return [Array] Value, value …\n"],["stdin","Conductor","Conductor.html#method-c-stdin","()",""],["strip_meta","String","String.html#method-i-strip_meta","()",""],["strip_time","String","String.html#method-i-strip_time","()","<p>Remove time from string\n<p>@return [String] string with time removed\n"],["symbolize_keys","Array","Array.html#method-i-symbolize_keys","()",""],["symbolize_keys","Hash","Hash.html#method-i-symbolize_keys","()",""],["symbolize_keys!","Array","Array.html#method-i-symbolize_keys-21","()",""],["symbolize_keys!","Hash","Hash.html#method-i-symbolize_keys-21","()",""],["test_condition","Conductor::Condition","Conductor/Condition.html#method-i-test_condition","(condition)",""],["test_meta","Conductor::Condition","Conductor/Condition.html#method-i-test_meta","(content, value, key, operator)","<p>Test for MultiMarkdown metadata,\n\n<pre class=\"ruby\"><span class=\"ruby-identifier\">optionally</span> <span class=\"ruby-identifier\">key</span> <span class=\"ruby-keyword\">and</span> <span class=\"ruby-identifier\">value</span>\n</pre>\n<p>@param content [String] The text content …\n"],["test_operator","Conductor::Condition","Conductor/Condition.html#method-i-test_operator","(value1, value2, operator)","<p>Test operators\n<p>@param value1 Value @param value2 Value to test @param operator …\n"],["test_pandoc","Conductor::Condition","Conductor/Condition.html#method-i-test_pandoc","(content, operator)",""],["test_string","Conductor::Condition","Conductor/Condition.html#method-i-test_string","(val1, val2, operator)","<p>Compare a string based on operator\n<p>@param val1 The string to test against @param val2 …\n"],["test_tree","Conductor::Condition","Conductor/Condition.html#method-i-test_tree","(origin, value, operator)","<p>Test for the existince of a\n\n<pre>file/directory in the parent tree</pre>\n<p>@param origin Starting directory …\n"],["test_truthy","Conductor::Condition","Conductor/Condition.html#method-i-test_truthy","(value1, value2, operator)","<p>Test “truthiness”\n<p>@param value1 Value to test against @param value2 Value to …\n"],["test_type","Conductor::Condition","Conductor/Condition.html#method-i-test_type","(val1, val2, operator)","<p>Test for type of value\n<p>@param val1 value @param val2 value to test against @param …\n"],["test_yaml","Conductor::Condition","Conductor/Condition.html#method-i-test_yaml","(content, value, key, operator)","<p>Test for presence of yaml, optionall for\n\n<pre>a key, optionally for a key&#39;s value</pre>\n<p>@param content Text …\n"],["time?","String","String.html#method-i-time-3F","()","<p>Test a string to see if it includes a time\n<p>@return [Boolean] test result\n"],["title_from_slug","String","String.html#method-i-title_from_slug","()",""],["titleize","String","String.html#method-i-titleize","()","<p>Titlecase a string\n<p>@return Titleized string\n"],["to_bool","String","String.html#method-i-to_bool","()","<p>Returns a bool representation of the string.\n<p>@return [Boolean] Bool representation of the object. …\n"],["to_bool!","String","String.html#method-i-to_bool-21","()","<p>Destructive version of #to_bool\n<p>@see #to_bool\n"],["to_date","String","String.html#method-i-to_date","()","<p>Convert a natural language string to a Date\n\n<pre class=\"ruby\"><span class=\"ruby-identifier\">object</span>\n</pre>\n<p>@return [Date] Resulting Date object\n"],["to_day","String","String.html#method-i-to_day","(time = :end)",""],["to_pattern","String","String.html#method-i-to_pattern","()",""],["to_rx","String","String.html#method-i-to_rx","()",""],["to_s","Conductor::Env","Conductor/Env.html#method-c-to_s","()","<p>env to string\n<p>@return [String] shell-compatible string representation of @env\n"],["true?","Conductor::Condition","Conductor/Condition.html#method-i-true-3F","()","<p>Tests condition\n<p>@return [Boolean] test result\n"],["yaml?","String","String.html#method-i-yaml-3F","()","<p>Test if string starts with YAML\n<p>@return [Boolean] test result\n"],["README","","README_rdoc.html","","<p>Marked Conductor\n<p>A command line tool that functions as a custom processor handler for Marked 2.\n"]]}}
Binary file
@@ -108,24 +108,24 @@
108
108
  <span class="container">Conductor::Config</span>
109
109
 
110
110
  <li class="method">
111
- <a href="Conductor/Command.html#method-c-new">::new</a>
111
+ <a href="Conductor/Script.html#method-c-new">::new</a>
112
112
  &mdash;
113
- <span class="container">Conductor::Command</span>
113
+ <span class="container">Conductor::Script</span>
114
114
 
115
115
  <li class="method">
116
- <a href="Conductor/Condition.html#method-c-new">::new</a>
116
+ <a href="Filter.html#method-c-new">::new</a>
117
117
  &mdash;
118
- <span class="container">Conductor::Condition</span>
118
+ <span class="container">Filter</span>
119
119
 
120
120
  <li class="method">
121
- <a href="Conductor/Script.html#method-c-new">::new</a>
121
+ <a href="Conductor/Condition.html#method-c-new">::new</a>
122
122
  &mdash;
123
- <span class="container">Conductor::Script</span>
123
+ <span class="container">Conductor::Condition</span>
124
124
 
125
125
  <li class="method">
126
- <a href="Filter.html#method-c-new">::new</a>
126
+ <a href="Conductor/Command.html#method-c-new">::new</a>
127
127
  &mdash;
128
- <span class="container">Filter</span>
128
+ <span class="container">Conductor::Command</span>
129
129
 
130
130
  <li class="method">
131
131
  <a href="Conductor.html#method-c-stdin">::stdin</a>
@@ -173,14 +173,14 @@
173
173
  <span class="container">String</span>
174
174
 
175
175
  <li class="method">
176
- <a href="FalseClass.html#method-i-bool-3F">#bool?</a>
176
+ <a href="TrueClass.html#method-i-bool-3F">#bool?</a>
177
177
  &mdash;
178
- <span class="container">FalseClass</span>
178
+ <span class="container">TrueClass</span>
179
179
 
180
180
  <li class="method">
181
- <a href="TrueClass.html#method-i-bool-3F">#bool?</a>
181
+ <a href="FalseClass.html#method-i-bool-3F">#bool?</a>
182
182
  &mdash;
183
- <span class="container">TrueClass</span>
183
+ <span class="container">FalseClass</span>
184
184
 
185
185
  <li class="method">
186
186
  <a href="String.html#method-i-bool_to_symbol">#bool_to_symbol</a>
@@ -217,6 +217,16 @@
217
217
  &mdash;
218
218
  <span class="container">String</span>
219
219
 
220
+ <li class="method">
221
+ <a href="String.html#method-i-first_h1">#first_h1</a>
222
+ &mdash;
223
+ <span class="container">String</span>
224
+
225
+ <li class="method">
226
+ <a href="String.html#method-i-first_h2">#first_h2</a>
227
+ &mdash;
228
+ <span class="container">String</span>
229
+
220
230
  <li class="method">
221
231
  <a href="String.html#method-i-get_title">#get_title</a>
222
232
  &mdash;
@@ -227,6 +237,11 @@
227
237
  &mdash;
228
238
  <span class="container">String</span>
229
239
 
240
+ <li class="method">
241
+ <a href="String.html#method-i-insert_file">#insert_file</a>
242
+ &mdash;
243
+ <span class="container">String</span>
244
+
230
245
  <li class="method">
231
246
  <a href="String.html#method-i-insert_script">#insert_script</a>
232
247
  &mdash;
@@ -237,6 +252,11 @@
237
252
  &mdash;
238
253
  <span class="container">String</span>
239
254
 
255
+ <li class="method">
256
+ <a href="String.html#method-i-insert_toc">#insert_toc</a>
257
+ &mdash;
258
+ <span class="container">String</span>
259
+
240
260
  <li class="method">
241
261
  <a href="String.html#method-i-meta-3F">#meta?</a>
242
262
  &mdash;
@@ -257,6 +277,16 @@
257
277
  &mdash;
258
278
  <span class="container">String</span>
259
279
 
280
+ <li class="method">
281
+ <a href="String.html#method-i-normalize_include_type">#normalize_include_type</a>
282
+ &mdash;
283
+ <span class="container">String</span>
284
+
285
+ <li class="method">
286
+ <a href="String.html#method-i-normalize_position">#normalize_position</a>
287
+ &mdash;
288
+ <span class="container">String</span>
289
+
260
290
  <li class="method">
261
291
  <a href="String.html#method-i-number-3F">#number?</a>
262
292
  &mdash;
@@ -273,14 +303,14 @@
273
303
  <span class="container">Conductor::Condition</span>
274
304
 
275
305
  <li class="method">
276
- <a href="Conductor/Command.html#method-i-path-3D">#path=</a>
306
+ <a href="Conductor/Script.html#method-i-path-3D">#path=</a>
277
307
  &mdash;
278
- <span class="container">Conductor::Command</span>
308
+ <span class="container">Conductor::Script</span>
279
309
 
280
310
  <li class="method">
281
- <a href="Conductor/Script.html#method-i-path-3D">#path=</a>
311
+ <a href="Conductor/Command.html#method-i-path-3D">#path=</a>
282
312
  &mdash;
283
- <span class="container">Conductor::Script</span>
313
+ <span class="container">Conductor::Command</span>
284
314
 
285
315
  <li class="method">
286
316
  <a href="Filter.html#method-i-process">#process</a>
@@ -338,14 +368,14 @@
338
368
  <span class="container">String</span>
339
369
 
340
370
  <li class="method">
341
- <a href="Array.html#method-i-symbolize_keys">#symbolize_keys</a>
371
+ <a href="Hash.html#method-i-symbolize_keys">#symbolize_keys</a>
342
372
  &mdash;
343
- <span class="container">Array</span>
373
+ <span class="container">Hash</span>
344
374
 
345
375
  <li class="method">
346
- <a href="Hash.html#method-i-symbolize_keys">#symbolize_keys</a>
376
+ <a href="Array.html#method-i-symbolize_keys">#symbolize_keys</a>
347
377
  &mdash;
348
- <span class="container">Hash</span>
378
+ <span class="container">Array</span>
349
379
 
350
380
  <li class="method">
351
381
  <a href="Array.html#method-i-symbolize_keys-21">#symbolize_keys!</a>
@@ -47,6 +47,73 @@ class ::String
47
47
  insert_point
48
48
  end
49
49
 
50
+ def first_h1
51
+ first = 0
52
+ split(/\n/).each_with_index do |line, idx|
53
+ if line =~ /^(# *\S|={2,} *$)/
54
+ first = idx
55
+ break
56
+ end
57
+ end
58
+ first
59
+ end
60
+
61
+ def first_h2
62
+ first = 0
63
+ split(/\n/).each_with_index do |line, idx|
64
+ if line =~ /^(## *\S|-{2,} *$)/
65
+ first = idx
66
+ break
67
+ end
68
+ end
69
+ first
70
+ end
71
+
72
+ def insert_toc(max = nil, after = :h1)
73
+ lines = split(/\n/)
74
+ max = max && max.to_i.positive? ? " max#{max}" : ""
75
+ line = case after.to_sym
76
+ when :h2
77
+ first_h2.positive? ? first_h2 + 1 : 0
78
+ when :h1
79
+ first_h1.positive? ? first_h1 + 1 : 0
80
+ else
81
+ 0
82
+ end
83
+
84
+ lines.insert(line, "\n<!--toc#{max}-->\n").join("\n")
85
+ end
86
+
87
+ def insert_file(path, type = :file, position = :end)
88
+ path.strip!
89
+
90
+ if path =~ %r{^[~/]}
91
+ path = File.expand_path(path)
92
+ elsif File.directory?(File.expand_path("~/.config/conductor/files"))
93
+ new_path = File.expand_path("~/.config/conductor/files/#{path}")
94
+ path = new_path if File.exist?(new_path)
95
+ end
96
+
97
+ out = case type
98
+ when :code
99
+ "<<(#{path})"
100
+ when :raw
101
+ "<<{#{path}}"
102
+ else
103
+ "<<[#{path}]"
104
+ end
105
+ out = "\n#{out}\n"
106
+
107
+ case position
108
+ when :start
109
+ "#{out}\n#{self}"
110
+ when :h1
111
+ split(/\n/).insert(first_h1 + 1, out).join("\n")
112
+ else
113
+ "#{self}\n#{out}"
114
+ end
115
+ end
116
+
50
117
  def append(string)
51
118
  "#{self}\n#{string}"
52
119
  end
@@ -235,6 +302,25 @@ class Filter < String
235
302
  content = content.insert_script(script)
236
303
  end
237
304
  "#{content}</div>"
305
+ when /(prepend|append|insert|inject)(raw|file|code)/
306
+ m = Regexp.last_match
307
+
308
+ position = if @params.count == 2
309
+ @params[1].normalize_position
310
+ else
311
+ m[1].normalize_position
312
+ end
313
+ content.insert_file(@params[0], m[2].normalize_include_type, position)
314
+ when /inserttoc/
315
+ max = @params.count.positive? ? @params[0] : nil
316
+
317
+ if @params.count == 2
318
+ after = @params[1] =~ /2/ ? :h2 : :h1
319
+ else
320
+ after = :start
321
+ end
322
+
323
+ content.insert_toc(max, after)
238
324
  when /(add|set)meta/
239
325
  unless @params.count == 2
240
326
  warn "Invalid filter parameters: #{@filter}(#{@params.join(",")})"
@@ -244,8 +330,8 @@ class Filter < String
244
330
  # needs to test for existing meta, setting key if exists, adding if not
245
331
  # should recognize yaml and mmd
246
332
  content.set_meta(@params[0], @params[1], style: content.meta_type)
247
- when /(strip|remove)meta/
248
- if @params
333
+ when /(strip|remove|delete)meta/
334
+ if @params&.count.positive?
249
335
  content.delete_meta(@params[0])
250
336
  else
251
337
  content.strip_meta
@@ -11,6 +11,28 @@ class ::String
11
11
  split(/(\W)/).map(&:capitalize).join
12
12
  end
13
13
 
14
+ def normalize_position
15
+ case self
16
+ when /^(be|s|t)/
17
+ :start
18
+ when /h1/
19
+ :h1
20
+ else
21
+ :end
22
+ end
23
+ end
24
+
25
+ def normalize_include_type
26
+ case self
27
+ when /^c/
28
+ :code
29
+ when /^r/
30
+ :raw
31
+ else
32
+ :file
33
+ end
34
+ end
35
+
14
36
  ##
15
37
  ## Convert a string boolean to symbol
16
38
  ##
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Conductor
4
- VERSION = '1.0.14'
4
+ VERSION = '1.0.15'
5
5
  end
data/src/_README.md CHANGED
@@ -144,12 +144,16 @@ The action can be `script`, `command`, or `filter`.
144
144
  | :---- | :---------- |
145
145
  | `setMeta(key, value)` | adds or updates a meta key, aware of YAML and MMD |
146
146
  | `stripMeta` | strips all metadata (YAML or MMD) from the content |
147
- | `stripMeta(key)` | removes a specific key (YAML or MMD) |
148
- | `setStyle(name)` | sets the Marked preview style to a preconfigured Style name
147
+ | `deleteMeta(key)` | removes a specific key (YAML or MMD) |
148
+ | `setStyle(name)` | sets the Marked preview style to a preconfigured Style name |
149
149
  | `replace(search, replace)` | performs a (single) search and replace on content |
150
150
  | `replaceAll(search, replace)` | global version of `replaceAll`) |
151
151
  | `insertTitle` | adds a title to the document, either from metadata or filename |
152
152
  | `insertScript(path[,path])` | injects javascript(s) |
153
+ | `insertTOC(max, after)` | insert TOC (max=max levels, after=start, \*h1, or h2) |
154
+ | `prepend/appendFile(path)` | insert a file as Markdown at beginning or end of content |
155
+ | `prepend/appendRaw(path)` | insert a file as raw HTML at beginning or end of content |
156
+ | `prepend/appendCode(path)` | insert a file as a code block at beginning or end of content |
153
157
 
154
158
  For `insertScript`, if path is just a filename it will look for a match in `~/.config/conductor/javascript` or `~/.config/conductor/scripts` and turn that into an absolute path if the file is found.
155
159
 
data/test.md ADDED
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: hello there
3
+ date: 2024-05-25 08:00
4
+ ---
5
+
6
+ # This is a test
7
+
8
+ Here's a test file for you.
9
+
10
+ ## It's only a test
11
+
12
+ With a few paragraphs.
13
+
14
+ Just three.
data/test.sh CHANGED
@@ -1,12 +1,9 @@
1
1
  #!/bin/bash
2
2
 
3
- # ./test.sh PATH [pr[eo]]
3
+ # ./test.sh OPTIONS PATH
4
+ # test.sh -h for options
4
5
 
5
- OPTIND=1 # Reset in case getopts has been used previously in the shell.
6
-
7
- # Initialize our own variables:
8
- output_file=""
9
- verbose=0
6
+ OPTIND=1
10
7
 
11
8
  show_help() {
12
9
  echo "$(basename $0): Shortcut for testing conductor with a given file"
@@ -18,7 +15,7 @@ show_help() {
18
15
  echo " $0 [-p PHASE] [-o OUTPUT] FILE_PATH"
19
16
  }
20
17
 
21
- if [[ -d bin ]]; then
18
+ if [[ -f bin/conductor ]]; then
22
19
  CMD="./bin/conductor"
23
20
  else
24
21
  CMD="$(which conductor)"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marked-conductor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.14
4
+ version: 1.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
@@ -277,6 +277,7 @@ files:
277
277
  - lib/conductor/version.rb
278
278
  - marked-conductor.gemspec
279
279
  - src/_README.md
280
+ - test.md
280
281
  - test.sh
281
282
  homepage: https://github.com/ttscoff/marked-conductor
282
283
  licenses: