@@ -24,17 +24,17 @@ export default class SimpleFlashcardsPlugin extends Plugin {
24
24
. split ( "\n" )
25
25
. filter ( ( line ) => line . length > 0 ) ;
26
26
27
- const flashcardContainer = el . createEl ( "div" , {
27
+ const flashcardContainer = el . createDiv ( {
28
28
cls : "flashcard-container" ,
29
29
} ) ;
30
30
31
- const flashcardEl = flashcardContainer . createEl ( "div" , {
31
+ const flashcardEl = flashcardContainer . createDiv ( {
32
32
cls : "flashcard" ,
33
33
} ) ;
34
- const frontFace = flashcardEl . createEl ( "div" , {
34
+ const frontFace = flashcardEl . createDiv ( {
35
35
cls : "flashcard-face flashcard-face--front" ,
36
36
} ) ;
37
- const backFace = flashcardEl . createEl ( "div" , {
37
+ const backFace = flashcardEl . createDiv ( {
38
38
cls : "flashcard-face flashcard-face--back" ,
39
39
} ) ;
40
40
@@ -61,56 +61,67 @@ export default class SimpleFlashcardsPlugin extends Plugin {
61
61
const question = questionParts . join ( " " ) ;
62
62
const answer = answerParts . join ( " \n" ) ;
63
63
64
- frontFace . innerHTML = await marked ( question , {
65
- async : true ,
66
- } ) ;
67
- backFace . innerHTML = await marked ( answer , { async : true } ) ;
64
+ frontFace . insertAdjacentHTML (
65
+ "afterbegin" ,
66
+ await marked ( question , { async : true } )
67
+ ) ;
68
+ backFace . insertAdjacentHTML (
69
+ "afterbegin" ,
70
+ await marked ( answer , { async : true } )
71
+ ) ;
68
72
} else {
69
73
let frontContent = lines . join ( " " ) ;
70
74
let backContent = lines . join ( " " ) ;
71
75
72
76
frontContent = this . getClozeFront ( frontContent ) ;
73
77
backContent = this . getClozeBack ( backContent ) ;
74
78
75
- frontFace . innerHTML = await marked ( frontContent , {
76
- async : true ,
77
- } ) ;
78
- const answerContainer = backFace . createEl ( "div" , {
79
+ frontFace . insertAdjacentHTML (
80
+ "afterbegin" ,
81
+ await marked ( frontContent , { async : true } )
82
+ ) ;
83
+ const answerContainer = backFace . createDiv ( {
79
84
cls : "answer-container" ,
80
85
} ) ;
81
- answerContainer . innerHTML = await marked ( backContent , {
82
- async : true ,
83
- gfm : true ,
84
- breaks : true ,
85
- } ) ;
86
+ answerContainer . insertAdjacentHTML (
87
+ "afterbegin" ,
88
+ await marked ( backContent , {
89
+ async : true ,
90
+ gfm : true ,
91
+ breaks : true ,
92
+ } )
93
+ ) ;
86
94
}
87
95
88
96
switch ( this . settings . toggleRevealMethod ) {
89
97
case "hover" :
90
98
flashcardContainer . addEventListener (
91
99
"mouseenter" ,
92
100
( ) => {
93
- flashcardEl . classList . add ( "is-flipped" ) ;
101
+ flashcardEl . addClass ( "is-flipped" ) ;
94
102
}
95
103
) ;
96
104
flashcardContainer . addEventListener (
97
105
"mouseleave" ,
98
106
( ) => {
99
- flashcardEl . classList . remove ( "is-flipped" ) ;
107
+ flashcardEl . removeClass ( "is-flipped" ) ;
100
108
}
101
109
) ;
102
110
break ;
103
111
104
112
case "surface-click" :
105
- flashcardEl . classList . add ( "clickable" ) ;
113
+ flashcardEl . addClass ( "clickable" ) ;
106
114
flashcardContainer . addEventListener (
107
115
"click" ,
108
116
( event ) => {
109
117
//@ts -ignore
110
118
if ( event . target . closest ( "img" ) ) {
111
119
event . stopPropagation ( ) ;
112
120
} else {
113
- flashcardEl . classList . toggle ( "is-flipped" ) ;
121
+ flashcardEl . toggleClass (
122
+ "is-flipped" ,
123
+ ! flashcardEl . hasClass ( "is-flipped" )
124
+ ) ;
114
125
}
115
126
}
116
127
) ;
@@ -123,15 +134,15 @@ export default class SimpleFlashcardsPlugin extends Plugin {
123
134
text : "Reveal" ,
124
135
} ) ;
125
136
revealButton . addEventListener ( "click" , ( ) => {
126
- flashcardEl . classList . add ( "is-flipped" ) ;
137
+ flashcardEl . addClass ( "is-flipped" ) ;
127
138
} ) ;
128
139
129
140
const hideButton = backFace . createEl ( "button" , {
130
141
cls : "flashcard-button" ,
131
142
text : "Hide" ,
132
143
} ) ;
133
144
hideButton . addEventListener ( "click" , ( ) => {
134
- flashcardEl . classList . remove ( "is-flipped" ) ;
145
+ flashcardEl . removeClass ( "is-flipped" ) ;
135
146
} ) ;
136
147
break ;
137
148
}
@@ -196,8 +207,7 @@ export default class SimpleFlashcardsPlugin extends Plugin {
196
207
const backHeight = backFace ? backFace . scrollHeight : 0 ;
197
208
198
209
const maxHeight = Math . max ( frontHeight , backHeight ) ;
199
- //@ts -ignore
200
- flashcard . style . height = maxHeight + "px" ;
210
+ flashcard . addClass ( `height-${ maxHeight } ` ) ;
201
211
} ) ;
202
212
}
203
213
}
0 commit comments