marked-conductor 1.0.14 → 1.0.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 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: