jekyll 4.0.0.pre.alpha1 → 4.0.0.pre.beta1
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 +4 -4
- data/.rubocop.yml +4 -3
- data/lib/jekyll.rb +1 -0
- data/lib/jekyll/cache.rb +71 -64
- data/lib/jekyll/cleaner.rb +3 -3
- data/lib/jekyll/collection.rb +4 -2
- data/lib/jekyll/commands/serve/servlet.rb +13 -14
- data/lib/jekyll/commands/serve/websockets.rb +1 -1
- data/lib/jekyll/configuration.rb +33 -124
- data/lib/jekyll/converters/markdown/kramdown_parser.rb +0 -8
- data/lib/jekyll/convertible.rb +1 -1
- data/lib/jekyll/document.rb +39 -28
- data/lib/jekyll/drops/drop.rb +14 -8
- data/lib/jekyll/drops/site_drop.rb +11 -1
- data/lib/jekyll/drops/url_drop.rb +43 -0
- data/lib/jekyll/entry_filter.rb +19 -36
- data/lib/jekyll/excerpt.rb +2 -2
- data/lib/jekyll/filters.rb +37 -6
- data/lib/jekyll/frontmatter_defaults.rb +5 -5
- data/lib/jekyll/liquid_renderer/table.rb +22 -2
- data/lib/jekyll/mime.types +53 -11
- data/lib/jekyll/page.rb +1 -1
- data/lib/jekyll/path_manager.rb +31 -0
- data/lib/jekyll/reader.rb +4 -1
- data/lib/jekyll/readers/page_reader.rb +4 -5
- data/lib/jekyll/readers/post_reader.rb +1 -1
- data/lib/jekyll/readers/static_file_reader.rb +2 -3
- data/lib/jekyll/site.rb +4 -4
- data/lib/jekyll/tags/highlight.rb +2 -4
- data/lib/jekyll/tags/include.rb +5 -4
- data/lib/jekyll/tags/post_url.rb +8 -5
- data/lib/jekyll/theme.rb +13 -2
- data/lib/jekyll/url.rb +7 -3
- data/lib/jekyll/utils.rb +9 -13
- data/lib/jekyll/utils/platforms.rb +1 -1
- data/lib/jekyll/version.rb +1 -1
- metadata +13 -11
data/lib/jekyll/filters.rb
CHANGED
@@ -161,13 +161,15 @@ module Jekyll
|
|
161
161
|
|
162
162
|
# Filter an array of objects
|
163
163
|
#
|
164
|
-
# input
|
165
|
-
# property - property within each object to filter by
|
166
|
-
# value
|
164
|
+
# input - the object array.
|
165
|
+
# property - the property within each object to filter by.
|
166
|
+
# value - the desired value.
|
167
|
+
# Cannot be an instance of Array nor Hash since calling #to_s on them returns
|
168
|
+
# their `#inspect` string object.
|
167
169
|
#
|
168
170
|
# Returns the filtered array of objects
|
169
171
|
def where(input, property, value)
|
170
|
-
return input if property.
|
172
|
+
return input if !property || value.is_a?(Array) || value.is_a?(Hash)
|
171
173
|
return input unless input.respond_to?(:select)
|
172
174
|
|
173
175
|
input = input.values if input.is_a?(Hash)
|
@@ -182,8 +184,8 @@ module Jekyll
|
|
182
184
|
# stash or retrive results to return
|
183
185
|
@where_filter_cache[input_id][property][value] ||= begin
|
184
186
|
input.select do |object|
|
185
|
-
|
186
|
-
end
|
187
|
+
compare_property_vs_target(item_property(object, property), value)
|
188
|
+
end.to_a
|
187
189
|
end
|
188
190
|
end
|
189
191
|
|
@@ -323,6 +325,33 @@ module Jekyll
|
|
323
325
|
.map!(&:last)
|
324
326
|
end
|
325
327
|
|
328
|
+
# `where` filter helper
|
329
|
+
#
|
330
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
331
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
332
|
+
def compare_property_vs_target(property, target)
|
333
|
+
case target
|
334
|
+
when NilClass
|
335
|
+
return true if property.nil?
|
336
|
+
when Liquid::Expression::MethodLiteral # `empty` or `blank`
|
337
|
+
target = target.to_s
|
338
|
+
return true if property == target || Array(property).join == target
|
339
|
+
else
|
340
|
+
target = target.to_s
|
341
|
+
if property.is_a? String
|
342
|
+
return true if property == target
|
343
|
+
else
|
344
|
+
Array(property).each do |prop|
|
345
|
+
return true if prop.to_s == target
|
346
|
+
end
|
347
|
+
end
|
348
|
+
end
|
349
|
+
|
350
|
+
false
|
351
|
+
end
|
352
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
353
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
354
|
+
|
326
355
|
def item_property(item, property)
|
327
356
|
@item_property_cache ||= {}
|
328
357
|
@item_property_cache[property] ||= {}
|
@@ -339,6 +368,7 @@ module Jekyll
|
|
339
368
|
end
|
340
369
|
end
|
341
370
|
|
371
|
+
# rubocop:disable Performance/RegexpMatch
|
342
372
|
# return numeric values as numbers for proper sorting
|
343
373
|
def parse_sort_input(property)
|
344
374
|
number_like = %r!\A\s*-?(?:\d+\.?\d*|\.\d+)\s*\Z!
|
@@ -346,6 +376,7 @@ module Jekyll
|
|
346
376
|
|
347
377
|
property
|
348
378
|
end
|
379
|
+
# rubocop:enable Performance/RegexpMatch
|
349
380
|
|
350
381
|
def as_liquid(item)
|
351
382
|
case item
|
@@ -10,11 +10,10 @@ module Jekyll
|
|
10
10
|
# Initializes a new instance.
|
11
11
|
def initialize(site)
|
12
12
|
@site = site
|
13
|
-
reset
|
14
13
|
end
|
15
14
|
|
16
15
|
def reset
|
17
|
-
@glob_cache = {}
|
16
|
+
@glob_cache = {} if @glob_cache
|
18
17
|
end
|
19
18
|
|
20
19
|
def update_deprecated_types(set)
|
@@ -112,7 +111,7 @@ module Jekyll
|
|
112
111
|
if scope["path"].to_s.include?("*")
|
113
112
|
glob_scope(sanitized_path, rel_scope_path)
|
114
113
|
else
|
115
|
-
path_is_subpath?(sanitized_path, strip_collections_dir(
|
114
|
+
path_is_subpath?(sanitized_path, strip_collections_dir(scope["path"]))
|
116
115
|
end
|
117
116
|
end
|
118
117
|
|
@@ -121,7 +120,7 @@ module Jekyll
|
|
121
120
|
abs_scope_path = site_source.join(rel_scope_path).to_s
|
122
121
|
|
123
122
|
glob_cache(abs_scope_path).each do |scope_path|
|
124
|
-
scope_path = Pathname.new(scope_path).relative_path_from(site_source)
|
123
|
+
scope_path = Pathname.new(scope_path).relative_path_from(site_source).to_s
|
125
124
|
scope_path = strip_collections_dir(scope_path)
|
126
125
|
Jekyll.logger.debug "Globbed Scope Path:", scope_path
|
127
126
|
return true if path_is_subpath?(sanitized_path, scope_path)
|
@@ -130,6 +129,7 @@ module Jekyll
|
|
130
129
|
end
|
131
130
|
|
132
131
|
def glob_cache(path)
|
132
|
+
@glob_cache ||= {}
|
133
133
|
@glob_cache[path] ||= Dir.glob(path)
|
134
134
|
end
|
135
135
|
|
@@ -143,7 +143,7 @@ module Jekyll
|
|
143
143
|
|
144
144
|
def strip_collections_dir(path)
|
145
145
|
collections_dir = @site.config["collections_dir"]
|
146
|
-
slashed_coll_dir = "#{collections_dir}/"
|
146
|
+
slashed_coll_dir = collections_dir.empty? ? "/" : "#{collections_dir}/"
|
147
147
|
return path if collections_dir.empty? || !path.to_s.start_with?(slashed_coll_dir)
|
148
148
|
|
149
149
|
path.sub(slashed_coll_dir, "")
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module Jekyll
|
4
4
|
class LiquidRenderer
|
5
5
|
class Table
|
6
|
+
GAUGES = [:count, :bytes, :time].freeze
|
7
|
+
|
6
8
|
def initialize(stats)
|
7
9
|
@stats = stats
|
8
10
|
end
|
@@ -19,6 +21,8 @@ module Jekyll
|
|
19
21
|
str = +"\n"
|
20
22
|
|
21
23
|
table_head = data.shift
|
24
|
+
table_foot = data.pop
|
25
|
+
|
22
26
|
str << generate_row(table_head, widths)
|
23
27
|
str << generate_table_head_border(table_head, widths)
|
24
28
|
|
@@ -26,6 +30,9 @@ module Jekyll
|
|
26
30
|
str << generate_row(row_data, widths)
|
27
31
|
end
|
28
32
|
|
33
|
+
str << generate_table_head_border(table_foot, widths)
|
34
|
+
str << generate_row(table_foot, widths).rstrip
|
35
|
+
|
29
36
|
str << "\n"
|
30
37
|
str
|
31
38
|
end
|
@@ -71,13 +78,16 @@ module Jekyll
|
|
71
78
|
widths
|
72
79
|
end
|
73
80
|
|
81
|
+
# rubocop:disable Metrics/AbcSize
|
74
82
|
def data_for_table(num_of_rows)
|
75
83
|
sorted = @stats.sort_by { |_, file_stats| -file_stats[:time] }
|
76
84
|
sorted = sorted.slice(0, num_of_rows)
|
77
85
|
|
78
|
-
table
|
86
|
+
table = [header_labels]
|
87
|
+
totals = Hash.new { |hash, key| hash[key] = 0 }
|
79
88
|
|
80
89
|
sorted.each do |filename, file_stats|
|
90
|
+
GAUGES.each { |gauge| totals[gauge] += file_stats[gauge] }
|
81
91
|
row = []
|
82
92
|
row << filename
|
83
93
|
row << file_stats[:count].to_s
|
@@ -86,7 +96,17 @@ module Jekyll
|
|
86
96
|
table << row
|
87
97
|
end
|
88
98
|
|
89
|
-
|
99
|
+
footer = []
|
100
|
+
footer << "TOTAL (for #{sorted.size} files)"
|
101
|
+
footer << totals[:count].to_s
|
102
|
+
footer << format_bytes(totals[:bytes])
|
103
|
+
footer << format("%.3f", totals[:time])
|
104
|
+
table << footer
|
105
|
+
end
|
106
|
+
# rubocop:enable Metrics/AbcSize
|
107
|
+
|
108
|
+
def header_labels
|
109
|
+
GAUGES.map { |gauge| gauge.to_s.capitalize }.unshift("Filename")
|
90
110
|
end
|
91
111
|
|
92
112
|
def format_bytes(bytes)
|
data/lib/jekyll/mime.types
CHANGED
@@ -19,18 +19,17 @@ application/davmount+xml davmou
|
|
19
19
|
application/docbook+xml dbk
|
20
20
|
application/dssc+der dssc
|
21
21
|
application/dssc+xml xdssc
|
22
|
-
application/ecmascript ecma
|
22
|
+
application/ecmascript ecma es
|
23
23
|
application/emma+xml emma
|
24
24
|
application/epub+zip epub
|
25
25
|
application/exi exi
|
26
26
|
application/font-tdpfr pfr
|
27
|
-
application/font-woff woff
|
28
|
-
application/font-woff2 woff2
|
29
27
|
application/geo+json geojson
|
30
28
|
application/gml+xml gml
|
31
29
|
application/gpx+xml gpx
|
32
30
|
application/gxf gxf
|
33
31
|
application/gzip gz
|
32
|
+
application/hjson hjson
|
34
33
|
application/hyperstudio stk
|
35
34
|
application/inkml+xml ink inkml
|
36
35
|
application/ipfix ipfix
|
@@ -61,6 +60,8 @@ application/mp21 m21 mp
|
|
61
60
|
application/mp4 mp4s m4p
|
62
61
|
application/msword doc dot
|
63
62
|
application/mxf mxf
|
63
|
+
application/n-quads nq
|
64
|
+
application/n-triples nt
|
64
65
|
application/octet-stream bin dms lrf mar so dist distz pkg bpk dump elc deploy exe dll deb dmg iso img msi msp msm buffer
|
65
66
|
application/oda oda
|
66
67
|
application/oebps-package+xml opf
|
@@ -86,7 +87,8 @@ application/pls+xml pls
|
|
86
87
|
application/postscript ai eps ps
|
87
88
|
application/prs.cww cww
|
88
89
|
application/pskc+xml pskcxml
|
89
|
-
application/
|
90
|
+
application/raml+yaml raml
|
91
|
+
application/rdf+xml rdf owl
|
90
92
|
application/reginfo+xml rif
|
91
93
|
application/relax-ng-compact-syntax rnc
|
92
94
|
application/resource-lists+xml rl
|
@@ -107,6 +109,7 @@ application/sdp sdp
|
|
107
109
|
application/set-payment-initiation setpay
|
108
110
|
application/set-registration-initiation setreg
|
109
111
|
application/shf+xml shf
|
112
|
+
application/sieve siv sieve
|
110
113
|
application/smil+xml smi smil
|
111
114
|
application/sparql-query rq
|
112
115
|
application/sparql-results+xml srx
|
@@ -143,7 +146,10 @@ application/vnd.anser-web-certificate-issue-initiation cii
|
|
143
146
|
application/vnd.anser-web-funds-transfer-initiation fti
|
144
147
|
application/vnd.antix.game-component atx
|
145
148
|
application/vnd.apple.installer+xml mpkg
|
149
|
+
application/vnd.apple.keynote keynote
|
146
150
|
application/vnd.apple.mpegurl m3u8
|
151
|
+
application/vnd.apple.numbers numbers
|
152
|
+
application/vnd.apple.pages pages
|
147
153
|
application/vnd.apple.pkpass pkpass
|
148
154
|
application/vnd.aristanetworks.swi swi
|
149
155
|
application/vnd.astraea-software.iota iota
|
@@ -154,6 +160,7 @@ application/vnd.businessobjects rep
|
|
154
160
|
application/vnd.chemdraw+xml cdxml
|
155
161
|
application/vnd.chipnuts.karaoke-mmd mmd
|
156
162
|
application/vnd.cinderella cdy
|
163
|
+
application/vnd.citationstyles.style+xml csl
|
157
164
|
application/vnd.claymore cla
|
158
165
|
application/vnd.cloanto.rp9 rp9
|
159
166
|
application/vnd.clonk.c4group c4g c4d c4f c4p c4u
|
@@ -482,6 +489,7 @@ application/vnd.yellowriver-custom-menu cmp
|
|
482
489
|
application/vnd.zul zir zirz
|
483
490
|
application/vnd.zzazz.deck+xml zaz
|
484
491
|
application/voicexml+xml vxml
|
492
|
+
application/wasm wasm
|
485
493
|
application/widget wgt
|
486
494
|
application/winhlp hlp
|
487
495
|
application/wsdl+xml wsdl
|
@@ -521,10 +529,8 @@ application/x-eva eva
|
|
521
529
|
application/x-font-bdf bdf
|
522
530
|
application/x-font-ghostscript gsf
|
523
531
|
application/x-font-linux-psf psf
|
524
|
-
application/x-font-otf otf
|
525
532
|
application/x-font-pcf pcf
|
526
533
|
application/x-font-snf snf
|
527
|
-
application/x-font-ttf ttf ttc
|
528
534
|
application/x-font-type1 pfa pfb pfm afm
|
529
535
|
application/x-freearc arc
|
530
536
|
application/x-futuresplash spl
|
@@ -661,20 +667,41 @@ chemical/x-cmdf cmdf
|
|
661
667
|
chemical/x-cml cml
|
662
668
|
chemical/x-csml csml
|
663
669
|
chemical/x-xyz xyz
|
670
|
+
font/collection ttc
|
671
|
+
font/otf otf
|
672
|
+
font/ttf ttf
|
673
|
+
font/woff woff
|
674
|
+
font/woff2 woff2
|
675
|
+
image/aces exr
|
664
676
|
image/apng apng
|
665
677
|
image/bmp bmp
|
666
678
|
image/cgm cgm
|
679
|
+
image/dicom-rle drle
|
680
|
+
image/fits fits
|
667
681
|
image/g3fax g3
|
668
682
|
image/gif gif
|
683
|
+
image/heic heic
|
684
|
+
image/heic-sequence heics
|
685
|
+
image/heif heif
|
686
|
+
image/heif-sequence heifs
|
669
687
|
image/ief ief
|
688
|
+
image/jls jls
|
689
|
+
image/jp2 jp2 jpg2
|
670
690
|
image/jpeg jpeg jpg jpe
|
691
|
+
image/jpm jpm
|
692
|
+
image/jpx jpx jpf
|
693
|
+
image/jxr jxr
|
671
694
|
image/ktx ktx
|
672
695
|
image/png png
|
673
696
|
image/prs.btif btif
|
697
|
+
image/prs.pti pti
|
674
698
|
image/sgi sgi
|
675
699
|
image/svg+xml svg svgz
|
676
|
-
image/
|
700
|
+
image/t38 t38
|
701
|
+
image/tiff tif tiff
|
702
|
+
image/tiff-fx tfx
|
677
703
|
image/vnd.adobe.photoshop psd
|
704
|
+
image/vnd.airzip.accelerator.azv azv
|
678
705
|
image/vnd.dece.graphic uvi uvvi uvg uvvg
|
679
706
|
image/vnd.djvu djvu djv
|
680
707
|
image/vnd.dvb.subtitle sub
|
@@ -685,20 +712,22 @@ image/vnd.fpx fpx
|
|
685
712
|
image/vnd.fst fst
|
686
713
|
image/vnd.fujixerox.edmics-mmr mmr
|
687
714
|
image/vnd.fujixerox.edmics-rlc rlc
|
715
|
+
image/vnd.microsoft.icon ico
|
688
716
|
image/vnd.ms-modi mdi
|
689
717
|
image/vnd.ms-photo wdp
|
690
718
|
image/vnd.net-fpx npx
|
719
|
+
image/vnd.tencent.tap tap
|
720
|
+
image/vnd.valve.source.texture vtf
|
691
721
|
image/vnd.wap.wbmp wbmp
|
692
722
|
image/vnd.xiff xif
|
723
|
+
image/vnd.zbrush.pcx pcx
|
693
724
|
image/webp webp
|
694
725
|
image/x-3ds 3ds
|
695
726
|
image/x-cmu-raster ras
|
696
727
|
image/x-cmx cmx
|
697
728
|
image/x-freehand fh fhc fh4 fh5 fh7
|
698
|
-
image/x-icon ico
|
699
729
|
image/x-jng jng
|
700
730
|
image/x-mrsid-image sid
|
701
|
-
image/x-pcx pcx
|
702
731
|
image/x-pict pic pct
|
703
732
|
image/x-portable-anymap pnm
|
704
733
|
image/x-portable-bitmap pbm
|
@@ -709,7 +738,14 @@ image/x-tga tga
|
|
709
738
|
image/x-xbitmap xbm
|
710
739
|
image/x-xpixmap xpm
|
711
740
|
image/x-xwindowdump xwd
|
741
|
+
message/disposition-notification disposition-notification
|
742
|
+
message/global u8msg
|
743
|
+
message/global-delivery-status u8dsn
|
744
|
+
message/global-disposition-notification u8mdn
|
745
|
+
message/global-headers u8hdr
|
712
746
|
message/rfc822 eml mime
|
747
|
+
message/vnd.wfa.wsc wsc
|
748
|
+
model/3mf 3mf
|
713
749
|
model/gltf+json gltf
|
714
750
|
model/gltf-binary glb
|
715
751
|
model/iges igs iges
|
@@ -719,6 +755,11 @@ model/vnd.dwf dwf
|
|
719
755
|
model/vnd.gdl gdl
|
720
756
|
model/vnd.gtw gtw
|
721
757
|
model/vnd.mts mts
|
758
|
+
model/vnd.opengex ogex
|
759
|
+
model/vnd.parasolid.transmit.binary x_b
|
760
|
+
model/vnd.parasolid.transmit.text x_t
|
761
|
+
model/vnd.usdz+zip usdz
|
762
|
+
model/vnd.valve.source.compiled-map bsp
|
722
763
|
model/vnd.vtu vtu
|
723
764
|
model/vrml wrl vrml
|
724
765
|
model/x3d+binary x3db x3dbz
|
@@ -729,18 +770,19 @@ text/calendar ics if
|
|
729
770
|
text/coffeescript coffee litcoffee
|
730
771
|
text/css css
|
731
772
|
text/csv csv
|
732
|
-
text/hjson hjson
|
733
773
|
text/html html htm shtml
|
734
774
|
text/jade jade
|
735
775
|
text/jsx jsx
|
736
776
|
text/less less
|
737
777
|
text/markdown markdown md
|
738
778
|
text/mathml mml
|
779
|
+
text/mdx mdx
|
739
780
|
text/n3 n3
|
740
781
|
text/plain txt text conf def list log in ini
|
741
782
|
text/prs.lines.tag dsc
|
742
783
|
text/richtext rtx
|
743
784
|
text/sgml sgml sgm
|
785
|
+
text/shex shex
|
744
786
|
text/slim slim slm
|
745
787
|
text/stylus stylus styl
|
746
788
|
text/tab-separated-values tsv
|
@@ -788,7 +830,7 @@ video/h261 h261
|
|
788
830
|
video/h263 h263
|
789
831
|
video/h264 h264
|
790
832
|
video/jpeg jpgv
|
791
|
-
video/jpm
|
833
|
+
video/jpm jpgm
|
792
834
|
video/mj2 mj2 mjp2
|
793
835
|
video/mp2t ts
|
794
836
|
video/mp4 mp4 mp4v mpg4
|
data/lib/jekyll/page.rb
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
# A singleton class that caches frozen instances of path strings returned from its methods.
|
5
|
+
#
|
6
|
+
# NOTE:
|
7
|
+
# This class exists because `File.join` allocates an Array and returns a new String on every
|
8
|
+
# call using **the same arguments**. Caching the result means reduced memory usage.
|
9
|
+
# However, the caches are never flushed so that they can be used even when a site is
|
10
|
+
# regenerating. The results are frozen to deter mutation of the cached string.
|
11
|
+
#
|
12
|
+
# Therefore, employ this class only for situations where caching the result is necessary
|
13
|
+
# for performance reasons.
|
14
|
+
#
|
15
|
+
class PathManager
|
16
|
+
# This class cannot be initialized from outside
|
17
|
+
private_class_method :new
|
18
|
+
|
19
|
+
# Wraps `File.join` to cache the frozen result.
|
20
|
+
# Reassigns `nil`, empty strings and empty arrays to a frozen empty string beforehand.
|
21
|
+
#
|
22
|
+
# Returns a frozen string.
|
23
|
+
def self.join(base, item)
|
24
|
+
base = "" if base.nil? || base.empty?
|
25
|
+
item = "" if item.nil? || item.empty?
|
26
|
+
@join ||= {}
|
27
|
+
@join[base] ||= {}
|
28
|
+
@join[base][item] ||= File.join(base, item).freeze
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/jekyll/reader.rb
CHANGED
@@ -85,7 +85,7 @@ module Jekyll
|
|
85
85
|
def retrieve_dirs(_base, dir, dot_dirs)
|
86
86
|
dot_dirs.each do |file|
|
87
87
|
dir_path = site.in_source_dir(dir, file)
|
88
|
-
rel_path =
|
88
|
+
rel_path = PathManager.join(dir, file)
|
89
89
|
@site.reader.read_directories(rel_path) unless @site.dest.chomp("/") == dir_path
|
90
90
|
end
|
91
91
|
end
|
@@ -161,11 +161,14 @@ module Jekyll
|
|
161
161
|
end
|
162
162
|
|
163
163
|
def read_included_excludes
|
164
|
+
entry_filter = EntryFilter.new(site)
|
165
|
+
|
164
166
|
site.include.each do |entry|
|
165
167
|
next if entry == ".htaccess"
|
166
168
|
|
167
169
|
entry_path = site.in_source_dir(entry)
|
168
170
|
next if File.directory?(entry_path)
|
171
|
+
next if entry_filter.symlink?(entry_path)
|
169
172
|
|
170
173
|
read_included_file(entry_path) if File.file?(entry_path)
|
171
174
|
end
|