@@ -19,29 +19,47 @@ document.addEventListener('DOMContentLoaded', () => {
19
19
}
20
20
} )
21
21
22
- function attachFerrises ( type ) {
22
+ function attachFerrises ( type ) {
23
23
var elements = document . getElementsByClassName ( type . attr )
24
24
25
25
for ( var codeBlock of elements ) {
26
- var lines = codeBlock . textContent . split ( / \r | \r \n | \n / ) . length - 1 ;
27
-
28
- if ( lines >= 4 ) {
29
- attachFerris ( codeBlock , type )
26
+ var lines = codeBlock . innerText . replace ( / \n $ / , '' ) . split ( / \n / ) . length
27
+ var size = 'large'
28
+ if ( lines < 4 ) {
29
+ size = 'small'
30
30
}
31
+
32
+ var container = prepareFerrisContainer ( codeBlock , size == 'small' )
33
+ container . appendChild ( createFerris ( type , size ) )
34
+ }
35
+ }
36
+
37
+ function prepareFerrisContainer ( element , useButtons ) {
38
+ var foundButtons = element . parentElement . querySelector ( '.buttons' )
39
+ if ( useButtons && foundButtons ) {
40
+ return foundButtons
31
41
}
42
+
43
+ var div = document . createElement ( 'div' )
44
+ div . classList . add ( 'ferris-container' )
45
+
46
+ element . parentElement . insertBefore ( div , element )
47
+
48
+ return div
32
49
}
33
50
34
- function attachFerris ( element , type ) {
51
+ function createFerris ( type , size ) {
35
52
var a = document . createElement ( 'a' )
36
53
a . setAttribute ( 'href' , 'ch00-00-introduction.html#ferris' )
37
54
a . setAttribute ( 'target' , '_blank' )
38
55
39
56
var img = document . createElement ( 'img' )
40
57
img . setAttribute ( 'src' , 'img/ferris/' + type . attr + '.svg' )
41
58
img . setAttribute ( 'title' , type . title )
42
- img . className = 'ferris'
59
+ img . classList . add ( 'ferris' )
60
+ img . classList . add ( 'ferris-' + size )
43
61
44
62
a . appendChild ( img )
45
63
46
- element . parentElement . insertBefore ( a , element )
64
+ return a
47
65
}
0 commit comments