marked-conductor 1.0.16 → 1.0.17

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: 6f209ada6b97abd9b51e73fef5c26ef265ebaab7ef534b949fa25ce537735133
4
- data.tar.gz: 27ed686709dee1e38e6516170d47243177eded3070744e4110304ed4ce558399
3
+ metadata.gz: a78acbdf0f9693636a7456265dca72cf53cfa771aaa4fe0e2ad848c4b3526612
4
+ data.tar.gz: c913dc807337b977cc0caa4b843512991df890f48cff913a06fe660831aa0f53
5
5
  SHA512:
6
- metadata.gz: 8699203cb1a9a6338ebea63dc8fbf20ca212dd5e0278127d952fd1975c1cc60f89a38c3c7372a9b298b05be7548a72127291c91f8a6da3e186636ab1f7efdef1
7
- data.tar.gz: 2806880345adbe1859d93ffbf6b6dd9b803b30458e4133468f5bf0f8ea0033a9a10891946ec5f259b67171817909ced4015fe1032d064037ba318132ba16fb96
6
+ metadata.gz: b2c6979fcb015ac31d51895772ed83c9aad4644bb8b3f151f31e6e5015ca0fda4ca0b1a994adef1c388fe5c557747cd787da8a9325a2bb543295ac3bcaddbb18
7
+ data.tar.gz: c4759af9e3af7495e659464018eaf8eb858d6d10fdb93ed8b137c85c01b71fec23d3d062b91ba1deedcc4859b6ee832064e91a476929cb89e5898d62fbdba469
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ### 1.0.17
2
+
3
+ 2024-07-02 10:27
4
+
5
+ #### NEW
6
+
7
+ - AutoLink() filter will self-link bare URLs
8
+
1
9
  ### 1.0.16
2
10
 
3
11
  2024-06-28 12:40
data/README.md CHANGED
@@ -161,13 +161,19 @@ The action can be `script`, `command`, or `filter`.
161
161
  | `prepend/appendFile(path)` | insert a file as Markdown at beginning or end of content |
162
162
  | `prepend/appendRaw(path)` | insert a file as raw HTML at beginning or end of content |
163
163
  | `prepend/appendCode(path)` | insert a file as a code block at beginning or end of content |
164
+ | `insertCSS(path)` | insert custom CSS into document |
165
+ | `autoLink()` | Turn bare URLs into \<self-linked\> urls |
164
166
 
165
167
  For `replace` and `replaceAll`: If *search* is surrounded with forward slashes followed by optional flags (*i* for case-insensitive, *m* to make dot match newlines), e.g. `/contribut(ing)?/i`, it will be interpreted as a regular expression. The *replace* value can include numeric capture groups, e.g. `Follow$2`.
166
168
 
167
169
  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.
168
170
 
171
+ For `insertCSS`, if path is just a filename (with or without .css extension), the file will be searched for in `~/.config/conductor/css` or `~/.config/conductor/files` and injected. CSS will be compressed using the YUI algorithm and inserted at the top of the document, but after any existing metadata.
172
+
169
173
  For all of the prepend/append file filters, you can store files in `~/.config/conductor/files` and reference them with just a filename. Otherwise a full path will be assumed.
170
174
 
175
+ For `autoLink`, any URL that's not contained in parenthesis or following a `[]: url` pattern will be autolinked (surrounded by angle brackets). URLs must contain `//` to be recognized, but any protocol will work, e.g. `x-marked://refresh`.
176
+
171
177
  > Example:
172
178
  >
173
179
  > filter: setStyle(github)
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 324</span>
148
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 329</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 329</span>
179
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 334</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
 
@@ -245,6 +245,8 @@
245
245
  <span class="ruby-keyword">end</span>
246
246
 
247
247
  <span class="ruby-identifier">content</span>.<span class="ruby-identifier">replace</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>])
248
+ <span class="ruby-keyword">when</span> <span class="ruby-regexp">/(auto|self)link/</span>
249
+ <span class="ruby-identifier">content</span>.<span class="ruby-identifier">autolink</span>
248
250
  <span class="ruby-keyword">end</span>
249
251
  <span class="ruby-keyword">end</span></pre>
250
252
  </div>
data/html/String.html CHANGED
@@ -76,6 +76,7 @@
76
76
  <li ><a href="#method-i-add_mmd">#add_mmd</a>
77
77
  <li ><a href="#method-i-add_yaml">#add_yaml</a>
78
78
  <li ><a href="#method-i-append">#append</a>
79
+ <li ><a href="#method-i-autolink">#autolink</a>
79
80
  <li ><a href="#method-i-bool-3F">#bool?</a>
80
81
  <li ><a href="#method-i-bool_to_symbol">#bool_to_symbol</a>
81
82
  <li ><a href="#method-i-date-3F">#date?</a>
@@ -251,6 +252,30 @@
251
252
  </div>
252
253
 
253
254
 
255
+ </div>
256
+
257
+ <div id="method-i-autolink" class="method-detail ">
258
+ <div class="method-header">
259
+ <div class="method-heading">
260
+ <span class="method-name">autolink</span><span
261
+ class="method-args">()</span>
262
+ <span class="method-click-advice">click to toggle source</span>
263
+ </div>
264
+ </div>
265
+
266
+ <div class="method-description">
267
+
268
+
269
+ <div class="method-source-code" id="autolink-source">
270
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 304</span>
271
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">autolink</span>
272
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">%r{(?mi)(?&lt;!\(|]: )\b((?:[\w-]+?://)[-a-zA-Z0-9@:%._+~#=]{2,256}\b(?:[-a-zA-Z0-9@:%_+.~#?&amp;/=]*))}</span>,
273
+ <span class="ruby-string">&#39;&lt;\1&gt;&#39;</span>)
274
+ <span class="ruby-keyword">end</span></pre>
275
+ </div>
276
+ </div>
277
+
278
+
254
279
  </div>
255
280
 
256
281
  <div id="method-i-bool-3F" class="method-detail ">
@@ -1278,7 +1303,7 @@
1278
1303
 
1279
1304
 
1280
1305
  <div class="method-source-code" id="to_pattern-source">
1281
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 315</span>
1306
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 320</span>
1282
1307
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_pattern</span>
1283
1308
  <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>)
1284
1309
  <span class="ruby-keyword">end</span></pre>
@@ -1301,7 +1326,7 @@
1301
1326
 
1302
1327
 
1303
1328
  <div class="method-source-code" id="to_rx-source">
1304
- <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 304</span>
1329
+ <pre><span class="ruby-comment"># File lib/conductor/filter.rb, line 309</span>
1305
1330
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_rx</span>
1306
1331
  <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">%r{^/(.*?)/([im]+)?$}</span>
1307
1332
  <span class="ruby-identifier">m</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">last_match</span>
@@ -0,0 +1,447 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>class YuiCompressor::Yui - Marked Conductor</title>
8
+
9
+ <script type="text/javascript">
10
+ var rdoc_rel_prefix = "../";
11
+ var index_rel_prefix = "../";
12
+ </script>
13
+
14
+ <script src="../js/navigation.js" defer></script>
15
+ <script src="../js/search.js" defer></script>
16
+ <script src="../js/search_index.js" defer></script>
17
+ <script src="../js/searcher.js" defer></script>
18
+ <script src="../js/darkfish.js" defer></script>
19
+
20
+ <link href="../css/fonts.css" rel="stylesheet">
21
+ <link href="../css/rdoc.css" rel="stylesheet">
22
+
23
+
24
+ <body id="top" role="document" class="class">
25
+ <nav role="navigation">
26
+ <div id="project-navigation">
27
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
+ <h2>
29
+ <a href="../index.html" rel="home">Home</a>
30
+ </h2>
31
+
32
+ <div id="table-of-contents-navigation">
33
+ <a href="../table_of_contents.html#pages">Pages</a>
34
+ <a href="../table_of_contents.html#classes">Classes</a>
35
+ <a href="../table_of_contents.html#methods">Methods</a>
36
+ </div>
37
+ </div>
38
+
39
+ <div id="search-section" role="search" class="project-section initially-hidden">
40
+ <form action="#" method="get" accept-charset="utf-8">
41
+ <div id="search-field-wrapper">
42
+ <input id="search-field" role="combobox" aria-label="Search"
43
+ aria-autocomplete="list" aria-controls="search-results"
44
+ type="text" name="search" placeholder="Search (/) for a class, method, ..." spellcheck="false"
45
+ title="Type to search, Up and Down to navigate, Enter to load">
46
+ </div>
47
+
48
+ <ul id="search-results" aria-label="Search Results"
49
+ aria-busy="false" aria-expanded="false"
50
+ aria-atomic="false" class="initially-hidden"></ul>
51
+ </form>
52
+ </div>
53
+
54
+ </div>
55
+
56
+
57
+
58
+ <div id="class-metadata">
59
+
60
+
61
+ <div id="parent-class-section" class="nav-section">
62
+ <h3>Parent</h3>
63
+
64
+ <p class="link"><a href="../Object.html">Object</a>
65
+ </div>
66
+
67
+
68
+
69
+
70
+ <!-- Method Quickref -->
71
+ <div id="method-list-section" class="nav-section">
72
+ <h3>Methods</h3>
73
+
74
+ <ul class="link-list" role="directory">
75
+ <li ><a href="#method-c-new">::new</a>
76
+ <li ><a href="#method-i-compress">#compress</a>
77
+ <li ><a href="#method-i-process_comments_and_strings">#process_comments_and_strings</a>
78
+ <li ><a href="#method-i-restore_preserved_comments_and_strings">#restore_preserved_comments_and_strings</a>
79
+ </ul>
80
+ </div>
81
+
82
+ </div>
83
+ </nav>
84
+
85
+ <main role="main" aria-labelledby="class-YuiCompressor::Yui">
86
+ <h1 id="class-YuiCompressor::Yui" class="class">
87
+ class YuiCompressor::Yui
88
+ </h1>
89
+
90
+ <section class="description">
91
+
92
+ <p>Compress CSS rules using a variety of techniques</p>
93
+
94
+ </section>
95
+
96
+ <section id="5Buntitled-5D" class="documentation-section">
97
+
98
+
99
+
100
+ <section class="attribute-method-details" class="method-section">
101
+ <header>
102
+ <h3>Attributes</h3>
103
+ </header>
104
+
105
+ <div id="attribute-i-input_size" class="method-detail">
106
+ <div class="method-heading attribute-method-heading">
107
+ <span class="method-name">input_size</span><span
108
+ class="attribute-access-type">[R]</span>
109
+ </div>
110
+
111
+ <div class="method-description">
112
+
113
+ </div>
114
+ </div>
115
+ <div id="attribute-i-output_size" class="method-detail">
116
+ <div class="method-heading attribute-method-heading">
117
+ <span class="method-name">output_size</span><span
118
+ class="attribute-access-type">[R]</span>
119
+ </div>
120
+
121
+ <div class="method-description">
122
+
123
+ </div>
124
+ </div>
125
+ </section>
126
+
127
+
128
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
129
+ <header>
130
+ <h3>Public Class Methods</h3>
131
+ </header>
132
+
133
+ <div id="method-c-new" class="method-detail ">
134
+ <div class="method-header">
135
+ <div class="method-heading">
136
+ <span class="method-name">new</span><span
137
+ class="method-args">()</span>
138
+ <span class="method-click-advice">click to toggle source</span>
139
+ </div>
140
+ </div>
141
+
142
+ <div class="method-description">
143
+
144
+
145
+ <div class="method-source-code" id="new-source">
146
+ <pre><span class="ruby-comment"># File lib/conductor/yui-compressor.rb, line 10</span>
147
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>
148
+ <span class="ruby-ivar">@preservedTokens</span> = []
149
+ <span class="ruby-ivar">@comments</span> = []
150
+ <span class="ruby-ivar">@input_size</span> = <span class="ruby-value">0</span>
151
+ <span class="ruby-ivar">@output_size</span> = <span class="ruby-value">0</span>
152
+ <span class="ruby-keyword">end</span></pre>
153
+ </div>
154
+ </div>
155
+
156
+
157
+ </div>
158
+
159
+ </section>
160
+
161
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
162
+ <header>
163
+ <h3>Public Instance Methods</h3>
164
+ </header>
165
+
166
+ <div id="method-i-compress" class="method-detail ">
167
+ <div class="method-header">
168
+ <div class="method-heading">
169
+ <span class="method-name">compress</span><span
170
+ class="method-args">(css, line_length = 0)</span>
171
+ <span class="method-click-advice">click to toggle source</span>
172
+ </div>
173
+ </div>
174
+
175
+ <div class="method-description">
176
+
177
+
178
+ <div class="method-source-code" id="compress-source">
179
+ <pre><span class="ruby-comment"># File lib/conductor/yui-compressor.rb, line 17</span>
180
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">compress</span>(<span class="ruby-identifier">css</span>, <span class="ruby-identifier">line_length</span> = <span class="ruby-value">0</span>)
181
+ <span class="ruby-ivar">@input_size</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">length</span>
182
+
183
+ <span class="ruby-identifier">css</span> = <span class="ruby-identifier">process_comments_and_strings</span>(<span class="ruby-identifier">css</span>)
184
+
185
+ <span class="ruby-comment"># Normalize all whitespace strings to single spaces. Easier to work with that way.</span>
186
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/\s+/</span>, <span class="ruby-string">&#39; &#39;</span>)
187
+
188
+ <span class="ruby-comment"># Remove the spaces before the things that should not have spaces before them.</span>
189
+ <span class="ruby-comment"># But, be careful not to turn &quot;p :link {...}&quot; into &quot;p:link{...}&quot;</span>
190
+ <span class="ruby-comment"># Swap out any pseudo-class colons with the token, and then swap back.</span>
191
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/(?:^|\})[^{:]+\s+:+[^{]*\{/</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
192
+ <span class="ruby-identifier">match</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">&#39;:&#39;</span>, <span class="ruby-string">&#39;___PSEUDOCLASSCOLON___&#39;</span>)
193
+ <span class="ruby-keyword">end</span>
194
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/\s+([!{};:&gt;+()\],])/</span>, <span class="ruby-string">&#39;\1&#39;</span>)
195
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/([!{}:;&gt;+(\[,])\s+/</span>, <span class="ruby-string">&#39;\1&#39;</span>)
196
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-string">&#39;___PSEUDOCLASSCOLON___&#39;</span>, <span class="ruby-string">&#39;:&#39;</span>)
197
+
198
+ <span class="ruby-comment"># special case for IE</span>
199
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/:first-(line|letter)(\{|,)/</span>, <span class="ruby-string">&#39;:first-\1 \2&#39;</span>)
200
+
201
+ <span class="ruby-comment"># no space after the end of a preserved comment</span>
202
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">%r{\*/ }</span>, <span class="ruby-string">&#39;*/&#39;</span>)
203
+
204
+ <span class="ruby-comment"># If there is a @charset, then only allow one, and push to the top of the file.</span>
205
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/^(.*)(@charset &quot;[^&quot;]*&quot;;)/i</span>, <span class="ruby-string">&#39;\2\1&#39;</span>)
206
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/^(\s*@charset [^;]+;\s*)+/i</span>, <span class="ruby-string">&#39;\1&#39;</span>)
207
+
208
+ <span class="ruby-comment"># Put the space back in some cases, to support stuff like</span>
209
+ <span class="ruby-comment"># @media screen and (-webkit-min-device-pixel-ratio:0){</span>
210
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/\band\(/i</span>, <span class="ruby-string">&#39;and (&#39;</span>)
211
+
212
+ <span class="ruby-comment"># remove unnecessary semicolons</span>
213
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/;+\}/</span>, <span class="ruby-string">&#39;}&#39;</span>)
214
+
215
+ <span class="ruby-comment"># Replace 0(%, em, ex, px, in, cm, mm, pt, pc) with just 0.</span>
216
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/([\s:])([+-]?0)(?:%|em|ex|px|in|cm|mm|pt|pc)/i</span>, <span class="ruby-string">&#39;\1\2&#39;</span>)
217
+
218
+ <span class="ruby-comment"># Replace 0 0 0 0; with 0.</span>
219
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/:(?:0 )+0(;|\})/</span>, <span class="ruby-string">&#39;:0\1&#39;</span>)
220
+
221
+ <span class="ruby-comment"># Restore background-position:0 0; if required</span>
222
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/(background-position|transform-origin|webkit-transform-origin|moz-transform-origin|o-transform-origin|ms-transform-origin):0(;|\})/i</span>) {
223
+ <span class="ruby-node">&quot;#{::Regexp.last_match(1).downcase}:0 0#{::Regexp.last_match(2)}&quot;</span> }
224
+
225
+ <span class="ruby-comment"># Replace 0.6 with .6, but only when preceded by : or a space.</span>
226
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/(:|\s)0+\.(\d+)/</span>, <span class="ruby-string">&#39;\1.\2&#39;</span>)
227
+
228
+ <span class="ruby-comment"># Shorten colors from rgb(51,102,153) to #336699</span>
229
+ <span class="ruby-comment"># This makes it more likely that it&#39;ll get further compressed in the next step.</span>
230
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/rgb\s*\(\s*([0-9,\s]+)\s*\)/</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">_match</span><span class="ruby-operator">|</span>
231
+ <span class="ruby-string">&#39;#&#39;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-operator">::</span><span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">last_match</span>(<span class="ruby-value">1</span>).<span class="ruby-identifier">scan</span>(<span class="ruby-regexp">/\d+/</span>).<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_i</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-value">16</span>).<span class="ruby-identifier">rjust</span>(<span class="ruby-value">2</span>, <span class="ruby-string">&#39;0&#39;</span>) }.<span class="ruby-identifier">join</span>
232
+ <span class="ruby-keyword">end</span>
233
+
234
+ <span class="ruby-comment"># Shorten colors from #AABBCC to #ABC. Note that we want to make sure</span>
235
+ <span class="ruby-comment"># the color is not preceded by either &quot;, &quot; or =. Indeed, the property</span>
236
+ <span class="ruby-comment"># filter: chroma(color=&quot;#FFFFFF&quot;);</span>
237
+ <span class="ruby-comment"># would become</span>
238
+ <span class="ruby-comment"># filter: chroma(color=&quot;#FFF&quot;);</span>
239
+ <span class="ruby-comment"># which makes the filter break in IE.</span>
240
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/([^&quot;&#39;=\s])(\s?)\s*#([0-9a-f])\3([0-9a-f])\4([0-9a-f])\5/i</span>, <span class="ruby-string">&#39;\1\2#\3\4\5&#39;</span>)
241
+
242
+ <span class="ruby-comment"># border: none -&gt; border:0</span>
243
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/(border|border-top|border-right|border-bottom|border-right|outline|background):none(;|\})/i</span>) {
244
+ <span class="ruby-node">&quot;#{::Regexp.last_match(1).downcase}:0#{::Regexp.last_match(2)}&quot;</span> }
245
+
246
+ <span class="ruby-comment"># shorter opacity IE filter</span>
247
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/progid:DXImageTransform\.Microsoft\.Alpha\(Opacity=/i</span>, <span class="ruby-string">&#39;alpha(opacity=&#39;</span>)
248
+
249
+ <span class="ruby-comment"># Remove empty rules.</span>
250
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">%r{[^\};\{/]+\{\}}</span>, <span class="ruby-string">&#39;&#39;</span>)
251
+
252
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">line_length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
253
+ <span class="ruby-comment"># Some source control tools don&#39;t like it when files containing lines longer</span>
254
+ <span class="ruby-comment"># than, say 8000 characters, are checked in. The linebreak option is used in</span>
255
+ <span class="ruby-comment"># that case to split long lines after a specific column.</span>
256
+ <span class="ruby-identifier">startIndex</span> = <span class="ruby-value">0</span>
257
+ <span class="ruby-identifier">index</span> = <span class="ruby-value">0</span>
258
+ <span class="ruby-identifier">length</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">length</span>
259
+ <span class="ruby-keyword">while</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">length</span>
260
+ <span class="ruby-identifier">index</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
261
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">css</span>[<span class="ruby-identifier">index</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>, <span class="ruby-value">1</span>] <span class="ruby-operator">===</span> <span class="ruby-string">&#39;}&#39;</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">startIndex</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">line_length</span>
262
+ <span class="ruby-identifier">css</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">index</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&quot;\n&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">css</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-identifier">index</span>, <span class="ruby-identifier">length</span>)
263
+ <span class="ruby-identifier">startIndex</span> = <span class="ruby-identifier">index</span>
264
+ <span class="ruby-keyword">end</span>
265
+ <span class="ruby-keyword">end</span>
266
+ <span class="ruby-keyword">end</span>
267
+
268
+ <span class="ruby-comment"># Replace multiple semi-colons in a row by a single one</span>
269
+ <span class="ruby-comment"># See SF bug #1980989</span>
270
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/;+/</span>, <span class="ruby-string">&#39;;&#39;</span>)
271
+
272
+ <span class="ruby-comment"># restore preserved comments and strings</span>
273
+ <span class="ruby-identifier">css</span> = <span class="ruby-identifier">restore_preserved_comments_and_strings</span>(<span class="ruby-identifier">css</span>)
274
+
275
+ <span class="ruby-comment"># top and tail whitespace</span>
276
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">strip!</span>
277
+
278
+ <span class="ruby-ivar">@output_size</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">length</span>
279
+ <span class="ruby-identifier">css</span>
280
+ <span class="ruby-keyword">end</span></pre>
281
+ </div>
282
+ </div>
283
+
284
+
285
+ </div>
286
+
287
+ <div id="method-i-process_comments_and_strings" class="method-detail ">
288
+ <div class="method-header">
289
+ <div class="method-heading">
290
+ <span class="method-name">process_comments_and_strings</span><span
291
+ class="method-args">(css_text)</span>
292
+ <span class="method-click-advice">click to toggle source</span>
293
+ </div>
294
+ </div>
295
+
296
+ <div class="method-description">
297
+
298
+
299
+ <div class="method-source-code" id="process_comments_and_strings-source">
300
+ <pre><span class="ruby-comment"># File lib/conductor/yui-compressor.rb, line 119</span>
301
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">process_comments_and_strings</span>(<span class="ruby-identifier">css_text</span>)
302
+ <span class="ruby-identifier">css</span> = <span class="ruby-identifier">css_text</span>.<span class="ruby-identifier">clone</span>
303
+
304
+ <span class="ruby-identifier">startIndex</span> = <span class="ruby-value">0</span>
305
+ <span class="ruby-identifier">endIndex</span> = <span class="ruby-value">0</span>
306
+ <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
307
+ <span class="ruby-identifier">max</span> = <span class="ruby-value">0</span>
308
+ <span class="ruby-identifier">token</span> = <span class="ruby-string">&#39;&#39;</span>
309
+ <span class="ruby-identifier">totallen</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">length</span>
310
+ <span class="ruby-identifier">placeholder</span> = <span class="ruby-string">&#39;&#39;</span>
311
+
312
+ <span class="ruby-comment"># collect all comment blocks</span>
313
+ <span class="ruby-keyword">while</span> (<span class="ruby-identifier">startIndex</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">index</span>(<span class="ruby-regexp">%r{/\*}</span>, <span class="ruby-identifier">startIndex</span>))
314
+ <span class="ruby-identifier">endIndex</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">index</span>(<span class="ruby-regexp">%r{\*/}</span>, <span class="ruby-identifier">startIndex</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>)
315
+ <span class="ruby-identifier">endIndex</span> = <span class="ruby-identifier">totallen</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">endIndex</span>
316
+ <span class="ruby-identifier">token</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-identifier">startIndex</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-identifier">endIndex</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
317
+ <span class="ruby-ivar">@comments</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">token</span>)
318
+ <span class="ruby-identifier">css</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">startIndex</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;___YUICSSMIN_PRESERVE_CANDIDATE_COMMENT_&#39;</span> <span class="ruby-operator">+</span> (<span class="ruby-ivar">@comments</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;___&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">css</span>.<span class="ruby-identifier">slice</span>(
319
+ <span class="ruby-identifier">endIndex</span>, <span class="ruby-identifier">totallen</span>).<span class="ruby-identifier">to_s</span>
320
+ <span class="ruby-identifier">startIndex</span> <span class="ruby-operator">+=</span> <span class="ruby-value">2</span>
321
+ <span class="ruby-keyword">end</span>
322
+
323
+ <span class="ruby-comment"># preserve strings so their content doesn&#39;t get accidentally minified</span>
324
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/(&quot;([^\\&quot;]|\\.|\\)*&quot;)|(&#39;([^\\&#39;]|\\.|\\)*&#39;)/</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
325
+ <span class="ruby-identifier">quote</span> = <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span>, <span class="ruby-value">1</span>]
326
+ <span class="ruby-identifier">string</span> = <span class="ruby-identifier">match</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>)
327
+
328
+ <span class="ruby-comment"># maybe the string contains a comment-like substring?</span>
329
+ <span class="ruby-comment"># one, maybe more? put&#39;em back then</span>
330
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">string</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/___YUICSSMIN_PRESERVE_CANDIDATE_COMMENT_/</span>
331
+ <span class="ruby-ivar">@comments</span>.<span class="ruby-identifier">each_index</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">index</span><span class="ruby-operator">|</span>
332
+ <span class="ruby-identifier">string</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/___YUICSSMIN_PRESERVE_CANDIDATE_COMMENT_#{index}___/</span>, <span class="ruby-ivar">@comments</span>[<span class="ruby-identifier">index</span>])
333
+ <span class="ruby-keyword">end</span>
334
+ <span class="ruby-keyword">end</span>
335
+
336
+ <span class="ruby-comment"># minify alpha opacity in filter strings</span>
337
+ <span class="ruby-identifier">string</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/progid:DXImageTransform\.Microsoft\.Alpha\(Opacity=/i</span>, <span class="ruby-string">&#39;alpha(opacity=&#39;</span>)
338
+ <span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">string</span>)
339
+
340
+ <span class="ruby-identifier">quote</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;___YUICSSMIN_PRESERVED_TOKEN_&#39;</span> <span class="ruby-operator">+</span> (<span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;___&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">quote</span>
341
+ <span class="ruby-keyword">end</span>
342
+
343
+ <span class="ruby-comment"># used to jump one index in loop</span>
344
+ <span class="ruby-identifier">ie5_hack</span> = <span class="ruby-keyword">false</span>
345
+ <span class="ruby-comment"># strings are safe, now wrestle the comments</span>
346
+ <span class="ruby-ivar">@comments</span>.<span class="ruby-identifier">each_index</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">index</span><span class="ruby-operator">|</span>
347
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">ie5_hack</span>
348
+ <span class="ruby-identifier">ie5_hack</span> = <span class="ruby-keyword">false</span>
349
+ <span class="ruby-keyword">next</span>
350
+ <span class="ruby-keyword">end</span>
351
+
352
+ <span class="ruby-identifier">token</span> = <span class="ruby-ivar">@comments</span>[<span class="ruby-identifier">index</span>]
353
+ <span class="ruby-identifier">placeholder</span> = <span class="ruby-string">&#39;___YUICSSMIN_PRESERVE_CANDIDATE_COMMENT_&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">index</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;___&#39;</span>
354
+
355
+ <span class="ruby-comment"># ! in the first position of the comment means preserve</span>
356
+ <span class="ruby-comment"># so push to the preserved tokens keeping the !</span>
357
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">token</span>[<span class="ruby-value">0</span>, <span class="ruby-value">1</span>] <span class="ruby-operator">===</span> <span class="ruby-string">&#39;!&#39;</span>
358
+ <span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">token</span>)
359
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/#{placeholder}/i</span>, <span class="ruby-string">&#39;___YUICSSMIN_PRESERVED_TOKEN_&#39;</span> <span class="ruby-operator">+</span> (<span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;___&#39;</span>)
360
+ <span class="ruby-keyword">next</span>
361
+ <span class="ruby-keyword">end</span>
362
+
363
+ <span class="ruby-comment"># \ in the last position looks like hack for Mac/IE5</span>
364
+ <span class="ruby-comment"># shorten that to /*\*/ and the next one to /**/</span>
365
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">token</span>[<span class="ruby-value">-1</span>, <span class="ruby-value">1</span>] <span class="ruby-operator">===</span> <span class="ruby-string">&#39;\\&#39;</span>
366
+ <span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">push</span>(<span class="ruby-string">&#39;\\&#39;</span>)
367
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/#{placeholder}/</span>, <span class="ruby-string">&#39;___YUICSSMIN_PRESERVED_TOKEN_&#39;</span> <span class="ruby-operator">+</span> (<span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;___&#39;</span>)
368
+ <span class="ruby-comment"># keep the next comment but remove its content</span>
369
+ <span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">push</span>(<span class="ruby-string">&#39;&#39;</span>)
370
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/___YUICSSMIN_PRESERVE_CANDIDATE_COMMENT_#{index + 1}___/</span>,
371
+ <span class="ruby-string">&#39;___YUICSSMIN_PRESERVED_TOKEN_&#39;</span> <span class="ruby-operator">+</span> (<span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;___&#39;</span>)
372
+ <span class="ruby-identifier">ie5_hack</span> = <span class="ruby-keyword">true</span>
373
+ <span class="ruby-keyword">next</span>
374
+ <span class="ruby-keyword">end</span>
375
+
376
+ <span class="ruby-comment"># keep empty comments after child selectors (IE7 hack)</span>
377
+ <span class="ruby-comment"># e.g. html &gt;/**/ body</span>
378
+ <span class="ruby-keyword">if</span> (<span class="ruby-identifier">token</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">===</span> <span class="ruby-value">0</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">startIndex</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">index</span>(<span class="ruby-regexp">/#{placeholder}/</span>))
379
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">startIndex</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>
380
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">css</span>[<span class="ruby-identifier">startIndex</span> <span class="ruby-operator">-</span> <span class="ruby-value">3</span>, <span class="ruby-value">1</span>] <span class="ruby-operator">===</span> <span class="ruby-string">&#39;&gt;&#39;</span>
381
+ <span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">push</span>(<span class="ruby-string">&#39;&#39;</span>)
382
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">/#{placeholder}/</span>, <span class="ruby-string">&#39;___YUICSSMIN_PRESERVED_TOKEN_&#39;</span> <span class="ruby-operator">+</span> (<span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;___&#39;</span>)
383
+ <span class="ruby-keyword">end</span>
384
+ <span class="ruby-keyword">end</span>
385
+ <span class="ruby-keyword">end</span>
386
+
387
+ <span class="ruby-comment"># in all other cases kill the comment</span>
388
+ <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp">%r{/\*#{placeholder}\*/}</span>, <span class="ruby-string">&#39;&#39;</span>)
389
+ <span class="ruby-keyword">end</span>
390
+
391
+ <span class="ruby-identifier">css</span>
392
+ <span class="ruby-keyword">end</span></pre>
393
+ </div>
394
+ </div>
395
+
396
+
397
+ </div>
398
+
399
+ <div id="method-i-restore_preserved_comments_and_strings" class="method-detail ">
400
+ <div class="method-header">
401
+ <div class="method-heading">
402
+ <span class="method-name">restore_preserved_comments_and_strings</span><span
403
+ class="method-args">(clean_css)</span>
404
+ <span class="method-click-advice">click to toggle source</span>
405
+ </div>
406
+ </div>
407
+
408
+ <div class="method-description">
409
+
410
+
411
+ <div class="method-source-code" id="restore_preserved_comments_and_strings-source">
412
+ <pre><span class="ruby-comment"># File lib/conductor/yui-compressor.rb, line 212</span>
413
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">restore_preserved_comments_and_strings</span>(<span class="ruby-identifier">clean_css</span>)
414
+ <span class="ruby-identifier">css</span> = <span class="ruby-identifier">clean_css</span>.<span class="ruby-identifier">clone</span>
415
+ <span class="ruby-identifier">css_length</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">length</span>
416
+ <span class="ruby-ivar">@preservedTokens</span>.<span class="ruby-identifier">each_index</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">index</span><span class="ruby-operator">|</span>
417
+ <span class="ruby-comment"># slice these back into place rather than regex, because</span>
418
+ <span class="ruby-comment"># complex nested strings cause the replacement to fail</span>
419
+ <span class="ruby-identifier">placeholder</span> = <span class="ruby-node">&quot;___YUICSSMIN_PRESERVED_TOKEN_#{index}___&quot;</span>
420
+ <span class="ruby-identifier">startIndex</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">placeholder</span>, <span class="ruby-value">0</span>)
421
+ <span class="ruby-keyword">next</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">startIndex</span> <span class="ruby-comment"># skip if nil</span>
422
+
423
+ <span class="ruby-identifier">endIndex</span> = <span class="ruby-identifier">startIndex</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">placeholder</span>.<span class="ruby-identifier">length</span>
424
+
425
+ <span class="ruby-identifier">css</span> = <span class="ruby-identifier">css</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">startIndex</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@preservedTokens</span>[<span class="ruby-identifier">index</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">css</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-identifier">endIndex</span>, <span class="ruby-identifier">css_length</span>).<span class="ruby-identifier">to_s</span>
426
+ <span class="ruby-keyword">end</span>
427
+
428
+ <span class="ruby-identifier">css</span>
429
+ <span class="ruby-keyword">end</span></pre>
430
+ </div>
431
+ </div>
432
+
433
+
434
+ </div>
435
+
436
+ </section>
437
+
438
+ </section>
439
+ </main>
440
+
441
+
442
+ <footer id="validator-badges" role="contentinfo">
443
+ <p><a href="https://validator.w3.org/check/referer">Validate</a>
444
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.7.0.
445
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
446
+ </footer>
447
+
@@ -0,0 +1,93 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>module YuiCompressor - Marked Conductor</title>
8
+
9
+ <script type="text/javascript">
10
+ var rdoc_rel_prefix = "./";
11
+ var index_rel_prefix = "./";
12
+ </script>
13
+
14
+ <script src="./js/navigation.js" defer></script>
15
+ <script src="./js/search.js" defer></script>
16
+ <script src="./js/search_index.js" defer></script>
17
+ <script src="./js/searcher.js" defer></script>
18
+ <script src="./js/darkfish.js" defer></script>
19
+
20
+ <link href="./css/fonts.css" rel="stylesheet">
21
+ <link href="./css/rdoc.css" rel="stylesheet">
22
+
23
+
24
+ <body id="top" role="document" class="module">
25
+ <nav role="navigation">
26
+ <div id="project-navigation">
27
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
+ <h2>
29
+ <a href="./index.html" rel="home">Home</a>
30
+ </h2>
31
+
32
+ <div id="table-of-contents-navigation">
33
+ <a href="./table_of_contents.html#pages">Pages</a>
34
+ <a href="./table_of_contents.html#classes">Classes</a>
35
+ <a href="./table_of_contents.html#methods">Methods</a>
36
+ </div>
37
+ </div>
38
+
39
+ <div id="search-section" role="search" class="project-section initially-hidden">
40
+ <form action="#" method="get" accept-charset="utf-8">
41
+ <div id="search-field-wrapper">
42
+ <input id="search-field" role="combobox" aria-label="Search"
43
+ aria-autocomplete="list" aria-controls="search-results"
44
+ type="text" name="search" placeholder="Search (/) for a class, method, ..." spellcheck="false"
45
+ title="Type to search, Up and Down to navigate, Enter to load">
46
+ </div>
47
+
48
+ <ul id="search-results" aria-label="Search Results"
49
+ aria-busy="false" aria-expanded="false"
50
+ aria-atomic="false" class="initially-hidden"></ul>
51
+ </form>
52
+ </div>
53
+
54
+ </div>
55
+
56
+
57
+
58
+ <div id="class-metadata">
59
+
60
+
61
+
62
+
63
+
64
+ </div>
65
+ </nav>
66
+
67
+ <main role="main" aria-labelledby="module-YuiCompressor">
68
+ <h1 id="module-YuiCompressor" class="module">
69
+ module YuiCompressor
70
+ </h1>
71
+
72
+ <section class="description">
73
+
74
+ <p>This is a Ruby port of the YUI CSS compressor See LICENSE for license information</p>
75
+
76
+ </section>
77
+
78
+ <section id="5Buntitled-5D" class="documentation-section">
79
+
80
+
81
+
82
+
83
+
84
+ </section>
85
+ </main>
86
+
87
+
88
+ <footer id="validator-badges" role="contentinfo">
89
+ <p><a href="https://validator.w3.org/check/referer">Validate</a>
90
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.7.0.
91
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
92
+ </footer>
93
+
data/html/created.rid CHANGED
@@ -1,4 +1,4 @@
1
- Fri, 28 Jun 2024 12:41:02 -0500
1
+ Tue, 02 Jul 2024 10:27:18 -0500
2
2
  README.rdoc Sun, 28 Apr 2024 13:21:34 -0500
3
3
  lib/conductor.rb Fri, 28 Jun 2024 12:29:13 -0500
4
4
  lib/conductor/array.rb Sat, 27 Apr 2024 11:54:28 -0500
@@ -7,10 +7,10 @@ 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 Fri, 28 Jun 2024 12:35:15 -0500
10
+ lib/conductor/filter.rb Tue, 02 Jul 2024 10:26:09 -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
13
  lib/conductor/string.rb Sat, 25 May 2024 10:58:38 -0500
14
- lib/conductor/version.rb Sat, 25 May 2024 11:14:29 -0500
14
+ lib/conductor/version.rb Fri, 28 Jun 2024 12:41:13 -0500
15
15
  lib/conductor/yui-compressor.rb Fri, 28 Jun 2024 12:35:00 -0500
16
16
  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","yuicompressor","yui","add_comment()","add_mmd()","add_yaml()","append()","args=()","args=()","bool?()","bool?()","bool?()","bool_to_symbol()","clean_condition()","compress()","conduct()","create_config()","date?()","delete_meta()","delete_mmd()","delete_yaml()","env()","execute_track()","first_h1()","first_h2()","get_title()","has_comment?()","insert_css()","insert_file()","insert_script()","insert_title()","insert_toc()","load_test_env()","meta?()","meta_insert_point()","meta_type()","new()","new()","new()","new()","new()","new()","normalize_filter()","normalize_include_type()","normalize_position()","number?()","operator_to_symbol()","parse_condition()","path=()","path=()","process()","process_comments_and_strings()","replace()","replace_all()","restore_preserved_comments_and_strings()","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?()","wrap_style()","yaml?()","readme"],"longSearchIndex":["array","conductor","conductor::command","conductor::condition","conductor::config","conductor::env","conductor::script","falseclass","filter","hash","object","string","trueclass","yuicompressor","yuicompressor::yui","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()","yuicompressor::yui#compress()","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_css()","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()","yuicompressor::yui::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()","yuicompressor::yui#process_comments_and_strings()","string#replace()","string#replace_all()","yuicompressor::yui#restore_preserved_comments_and_strings()","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#wrap_style()","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"],["YuiCompressor","","YuiCompressor.html","","<p>This is a Ruby port of the YUI CSS compressor See LICENSE for license information\n"],["YuiCompressor::Yui","","YuiCompressor/Yui.html","","<p>Compress CSS rules using a variety of techniques\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"],["compress","YuiCompressor::Yui","YuiCompressor/Yui.html#method-i-compress","(css, line_length = 0)",""],["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_css","String","String.html#method-i-insert_css","(path)",""],["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)",""],["new","YuiCompressor::Yui","YuiCompressor/Yui.html#method-c-new","()",""],["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","()",""],["process_comments_and_strings","YuiCompressor::Yui","YuiCompressor/Yui.html#method-i-process_comments_and_strings","(css_text)",""],["replace","String","String.html#method-i-replace","(regex, pattern)",""],["replace_all","String","String.html#method-i-replace_all","(regex, pattern)",""],["restore_preserved_comments_and_strings","YuiCompressor::Yui","YuiCompressor/Yui.html#method-i-restore_preserved_comments_and_strings","(clean_css)",""],["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"],["wrap_style","String","String.html#method-i-wrap_style","()",""],["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","yuicompressor","yui","add_comment()","add_mmd()","add_yaml()","append()","args=()","args=()","autolink()","bool?()","bool?()","bool?()","bool_to_symbol()","clean_condition()","compress()","conduct()","create_config()","date?()","delete_meta()","delete_mmd()","delete_yaml()","env()","execute_track()","first_h1()","first_h2()","get_title()","has_comment?()","insert_css()","insert_file()","insert_script()","insert_title()","insert_toc()","load_test_env()","meta?()","meta_insert_point()","meta_type()","new()","new()","new()","new()","new()","new()","normalize_filter()","normalize_include_type()","normalize_position()","number?()","operator_to_symbol()","parse_condition()","path=()","path=()","process()","process_comments_and_strings()","replace()","replace_all()","restore_preserved_comments_and_strings()","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?()","wrap_style()","yaml?()","readme"],"longSearchIndex":["array","conductor","conductor::command","conductor::condition","conductor::config","conductor::env","conductor::script","falseclass","filter","hash","object","string","trueclass","yuicompressor","yuicompressor::yui","string#add_comment()","string#add_mmd()","string#add_yaml()","string#append()","conductor::command#args=()","conductor::script#args=()","string#autolink()","falseclass#bool?()","string#bool?()","trueclass#bool?()","string#bool_to_symbol()","object#clean_condition()","yuicompressor::yui#compress()","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_css()","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()","yuicompressor::yui::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()","yuicompressor::yui#process_comments_and_strings()","string#replace()","string#replace_all()","yuicompressor::yui#restore_preserved_comments_and_strings()","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#wrap_style()","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"],["YuiCompressor","","YuiCompressor.html","","<p>This is a Ruby port of the YUI CSS compressor See LICENSE for license information\n"],["YuiCompressor::Yui","","YuiCompressor/Yui.html","","<p>Compress CSS rules using a variety of techniques\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"],["autolink","String","String.html#method-i-autolink","()",""],["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"],["compress","YuiCompressor::Yui","YuiCompressor/Yui.html#method-i-compress","(css, line_length = 0)",""],["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_css","String","String.html#method-i-insert_css","(path)",""],["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)",""],["new","YuiCompressor::Yui","YuiCompressor/Yui.html#method-c-new","()",""],["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","()",""],["process_comments_and_strings","YuiCompressor::Yui","YuiCompressor/Yui.html#method-i-process_comments_and_strings","(css_text)",""],["replace","String","String.html#method-i-replace","(regex, pattern)",""],["replace_all","String","String.html#method-i-replace_all","(regex, pattern)",""],["restore_preserved_comments_and_strings","YuiCompressor::Yui","YuiCompressor/Yui.html#method-i-restore_preserved_comments_and_strings","(clean_css)",""],["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"],["wrap_style","String","String.html#method-i-wrap_style","()",""],["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
@@ -179,7 +179,7 @@
179
179
  <span class="container">Conductor::Script</span>
180
180
 
181
181
  <li class="method">
182
- <a href="String.html#method-i-bool-3F">#bool?</a>
182
+ <a href="String.html#method-i-autolink">#autolink</a>
183
183
  &mdash;
184
184
  <span class="container">String</span>
185
185
 
@@ -188,6 +188,11 @@
188
188
  &mdash;
189
189
  <span class="container">TrueClass</span>
190
190
 
191
+ <li class="method">
192
+ <a href="String.html#method-i-bool-3F">#bool?</a>
193
+ &mdash;
194
+ <span class="container">String</span>
195
+
191
196
  <li class="method">
192
197
  <a href="FalseClass.html#method-i-bool-3F">#bool?</a>
193
198
  &mdash;
@@ -324,14 +329,14 @@
324
329
  <span class="container">Conductor::Condition</span>
325
330
 
326
331
  <li class="method">
327
- <a href="Conductor/Command.html#method-i-path-3D">#path=</a>
332
+ <a href="Conductor/Script.html#method-i-path-3D">#path=</a>
328
333
  &mdash;
329
- <span class="container">Conductor::Command</span>
334
+ <span class="container">Conductor::Script</span>
330
335
 
331
336
  <li class="method">
332
- <a href="Conductor/Script.html#method-i-path-3D">#path=</a>
337
+ <a href="Conductor/Command.html#method-i-path-3D">#path=</a>
333
338
  &mdash;
334
- <span class="container">Conductor::Script</span>
339
+ <span class="container">Conductor::Command</span>
335
340
 
336
341
  <li class="method">
337
342
  <a href="Filter.html#method-i-process">#process</a>
@@ -359,14 +364,14 @@
359
364
  <span class="container">YuiCompressor::Yui</span>
360
365
 
361
366
  <li class="method">
362
- <a href="Conductor/Command.html#method-i-run">#run</a>
367
+ <a href="Conductor/Script.html#method-i-run">#run</a>
363
368
  &mdash;
364
- <span class="container">Conductor::Command</span>
369
+ <span class="container">Conductor::Script</span>
365
370
 
366
371
  <li class="method">
367
- <a href="Conductor/Script.html#method-i-run">#run</a>
372
+ <a href="Conductor/Command.html#method-i-run">#run</a>
368
373
  &mdash;
369
- <span class="container">Conductor::Script</span>
374
+ <span class="container">Conductor::Command</span>
370
375
 
371
376
  <li class="method">
372
377
  <a href="Conductor.html#method-i-sample_config">#sample_config</a>
@@ -301,6 +301,11 @@ class ::String
301
301
  sub(regex.to_rx, pattern.to_pattern)
302
302
  end
303
303
 
304
+ def autolink
305
+ gsub(%r{(?mi)(?<!\(|]: )\b((?:[\w-]+?://)[-a-zA-Z0-9@:%._+~#=]{2,256}\b(?:[-a-zA-Z0-9@:%_+.~#?&/=]*))},
306
+ '<\1>')
307
+ end
308
+
304
309
  def to_rx
305
310
  if self =~ %r{^/(.*?)/([im]+)?$}
306
311
  m = Regexp.last_match
@@ -394,6 +399,8 @@ class Filter < String
394
399
  end
395
400
 
396
401
  content.replace(@params[0], @params[1])
402
+ when /(auto|self)link/
403
+ content.autolink
397
404
  end
398
405
  end
399
406
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Conductor
4
- VERSION = '1.0.16'
4
+ VERSION = '1.0.17'
5
5
  end
data/src/_README.md CHANGED
@@ -161,13 +161,19 @@ The action can be `script`, `command`, or `filter`.
161
161
  | `prepend/appendFile(path)` | insert a file as Markdown at beginning or end of content |
162
162
  | `prepend/appendRaw(path)` | insert a file as raw HTML at beginning or end of content |
163
163
  | `prepend/appendCode(path)` | insert a file as a code block at beginning or end of content |
164
+ | `insertCSS(path)` | insert custom CSS into document |
165
+ | `autoLink()` | Turn bare URLs into \<self-linked\> urls |
164
166
 
165
167
  For `replace` and `replaceAll`: If *search* is surrounded with forward slashes followed by optional flags (*i* for case-insensitive, *m* to make dot match newlines), e.g. `/contribut(ing)?/i`, it will be interpreted as a regular expression. The *replace* value can include numeric capture groups, e.g. `Follow$2`.
166
168
 
167
169
  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.
168
170
 
171
+ For `insertCSS`, if path is just a filename (with or without .css extension), the file will be searched for in `~/.config/conductor/css` or `~/.config/conductor/files` and injected. CSS will be compressed using the YUI algorithm and inserted at the top of the document, but after any existing metadata.
172
+
169
173
  For all of the prepend/append file filters, you can store files in `~/.config/conductor/files` and reference them with just a filename. Otherwise a full path will be assumed.
170
174
 
175
+ For `autoLink`, any URL that's not contained in parenthesis or following a `[]: url` pattern will be autolinked (surrounded by angle brackets). URLs must contain `//` to be recognized, but any protocol will work, e.g. `x-marked://refresh`.
176
+
171
177
  > Example:
172
178
  >
173
179
  > filter: setStyle(github)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marked-conductor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.16
4
+ version: 1.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-28 00:00:00.000000000 Z
11
+ date: 2024-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -218,6 +218,8 @@ files:
218
218
  - html/README_rdoc.html
219
219
  - html/String.html
220
220
  - html/TrueClass.html
221
+ - html/YuiCompressor.html
222
+ - html/YuiCompressor/Yui.html
221
223
  - html/created.rid
222
224
  - html/css/fonts.css
223
225
  - html/css/rdoc.css