1
- import {
2
- dotEmpty ,
3
- dotEmpty_h ,
4
- dot ,
5
- dot_h ,
6
- dotWideLeft ,
7
- dotWideRight ,
8
- dotWideMiddle ,
9
- string_o ,
10
- string_x ,
11
- fretb_vert_4 ,
12
- fretb_vert_5 ,
13
- fretb_vert_7 ,
14
- fretb_vert_9 ,
15
- fretb_vert_12 ,
16
- fretb_vert_15 ,
17
- fretb_horiz_5 ,
18
- fretb_horiz_6 ,
19
- fretb_horiz_7 ,
20
- } from './fretboardSVG.js'
1
+ import dotEmpty from './svg/dotEmpty.svg'
2
+ import dotEmpty_h from './svg/dotEmpty_h.svg'
3
+ import dot from './svg/dot.svg'
4
+ import dot_h from './svg/dot_h.svg'
5
+ import dotWideLeft from './svg/dotWideLeft.svg'
6
+ import dotWideRight from './svg/dotWideRight.svg'
7
+ import dotWideMiddle from './svg/dotWideMiddle.svg'
8
+ import string_o from './svg/string_o.svg'
9
+ import string_x from './svg/string_x.svg'
10
+ import './css/i.css'
21
11
22
12
const switchList_v = {
23
13
'o' : `<div class='cell dot'>${ dot } </div>` ,
@@ -38,68 +28,51 @@ const switchList_h = {
38
28
' ' : `<div class='cell empty'>${ dotEmpty_h } </div>`
39
29
}
40
30
41
- export const renderFretBoard = ( content ) => {
31
+ let getArgument = ( argName , content ) => {
32
+ let lineOfContent = content . data . split ( '\n' )
42
33
43
- let fretboardHTML = $ ( '<div class="fretboard_instance"></div>' )
44
- if ( content . includes ( 'title:' ) ) {
45
- const getTitle = content . split ( '\n' , 1 ) [ 0 ] . split ( 'title:' ) [ 1 ] . trim ( )
46
- $ ( fretboardHTML ) . append ( $ ( `<div class="title">${ getTitle } </div>` ) )
47
- content = content . split ( '\n' ) . slice ( 1 ) . join ( '\n' )
34
+ let argv = ''
35
+ let indexOfArg = ''
36
+ let idx = ''
37
+ for ( idx in lineOfContent ) {
38
+ if ( lineOfContent [ idx ] . startsWith ( argName ) ) {
39
+ argv = lineOfContent [ idx ] . split ( argName ) [ 1 ] . trim ( )
40
+ break
41
+ }
48
42
}
49
43
50
- let fretType = ''
51
- if ( content . startsWith ( 'type:' ) ) {
52
- fretType = content . split ( '\n' , 1 ) [ 0 ] . split ( 'type:' ) [ 1 ] . trim ( ) . split ( ' ' )
53
- content = content . split ( '\n' ) . slice ( 1 ) . join ( '\n' )
54
- }
44
+ lineOfContent . splice ( idx , 1 )
45
+ content . data = lineOfContent . join ( '\n' )
55
46
56
- let fretb_orientation = fretType [ 0 ] . startsWith ( 'v' ) ? 'vert' : 'horiz'
57
- let fretb_len = fretType [ 0 ] . substring ( 1 )
47
+ return argv
48
+ }
58
49
59
- // TODO: to get svg dynamically
60
- let fretb_bg = ''
61
- switch ( fretb_len ) {
62
- case '4' :
63
- fretb_bg = fretb_vert_4
64
- break
65
- case '5' :
66
- if ( fretb_orientation === 'vert' )
67
- fretb_bg = fretb_vert_5
68
- else
69
- fretb_bg = fretb_horiz_5
70
- break
71
- case '6' :
72
- fretb_bg = fretb_horiz_6
73
- break
74
- case '7' :
75
- if ( fretb_orientation === 'vert' )
76
- fretb_bg = fretb_vert_7
77
- else
78
- fretb_bg = fretb_horiz_7
79
- break
80
- case '9' :
81
- fretb_bg = fretb_vert_9
82
- break
83
- case '12' :
84
- fretb_bg = fretb_vert_12
85
- break
86
- case '15' :
87
- fretb_bg = fretb_vert_15
88
- break
89
- }
50
+ export const renderFretBoard = ( data ) => {
51
+ let fretboardHTML = $ ( '<div class="fretboard_instance"></div>' )
52
+
53
+ // parsing arguments
54
+ let content = { 'data' : data }
55
+ let getTitle = getArgument ( 'title:' , content )
56
+ let fretType = getArgument ( 'type:' , content ) . split ( ' ' )
57
+ content = content . data
58
+
59
+ $ ( fretboardHTML ) . append ( $ ( `<div class="title">${ getTitle } </div>` ) )
90
60
91
61
// create fretboard background HTML
92
- let fretb_class = fretType [ 0 ] [ 0 ] + ' ' + fretType [ 0 ]
62
+ let fretb_orientation = fretType && fretType [ 0 ] . startsWith ( 'v' ) ? 'vert' : 'horiz'
63
+ let fretb_len = fretType && fretType [ 0 ] . substring ( 1 )
64
+ let fretb_class = fretType && fretType [ 0 ] [ 0 ] + ' ' + fretType [ 0 ]
93
65
let nut = ( fretType [ 1 ] && fretType [ 1 ] === 'noNut' ) ?'noNut' :''
94
66
let svgHTML = $ ( `<div class="svg_wrapper ${ fretb_class } ${ nut } "></div>` )
67
+ let fretb_bg = require ( `./svg/fretb_${ fretb_orientation } _${ fretb_len } .svg` )
95
68
$ ( svgHTML ) . append ( $ ( fretb_bg ) )
96
69
97
70
// create cells HTML
98
71
let cellsHTML = $ ( '<div class="cells"></div>' )
99
- let switchList = fretb_orientation === 'vert' ? switchList_v : switchList_h
100
- let contentCell = content . split ( '' )
72
+ let switchList = fretb_orientation && fretb_orientation === 'vert' ? switchList_v : switchList_h
73
+ let contentCell = content && content . split ( '' )
101
74
// Go through each ASCII character...
102
- contentCell . forEach ( char => {
75
+ contentCell && contentCell . forEach ( char => {
103
76
if ( switchList [ char ] !== undefined ) {
104
77
cellsHTML . append ( $ ( switchList [ char ] ) ) ;
105
78
}
0 commit comments