@@ -9,6 +9,10 @@ const searchToggle = document.getElementById('checkbox-search-toggle')
9
9
10
10
let searchExamples = false
11
11
12
+ let viewMarkdown = true
13
+
14
+ let iscurrentfilemd = false
15
+
12
16
toggleExamples = ( mode ) => {
13
17
if ( mode ) {
14
18
subnav . children [ 1 ] . style . display = 'block'
@@ -42,26 +46,87 @@ toggleExamples = (mode) => {
42
46
}
43
47
44
48
loadExamplefromGitHub = ( name , dir , editor ) => {
45
- function load ( data ) {
49
+ function loadedp ( data ) {
50
+ iscurrentfilemd = false ;
51
+ var byClass = document . getElementsByClassName ( "strip-button" ) ;
52
+ for ( var i = 0 ; i < byClass . length ; i ++ ) {
53
+ byClass [ i ] . classList . add ( "disabled-strip-button" ) ;
54
+ }
55
+ var byClass = document . getElementsByClassName ( "button-strip" ) ;
56
+ for ( var i = 0 ; i < byClass . length ; i ++ ) {
57
+ byClass [ i ] . classList . add ( "button-strip-disabled" ) ;
58
+ }
46
59
examplecode . style . display = 'flex'
47
60
examplewelcome . style . display = 'none'
48
61
editor . setValue ( data )
49
62
highlightKeyword ( editor )
63
+ showExample ( viewMarkdown )
64
+ }
65
+
66
+ function loadmd ( data ) {
67
+ iscurrentfilemd = true ;
68
+ var byClass = document . getElementsByClassName ( "strip-button" ) ;
69
+ for ( var i = 0 ; i < byClass . length ; i ++ ) {
70
+ byClass [ i ] . classList . remove ( "disabled-strip-button" ) ;
71
+ }
72
+ var byClass = document . getElementsByClassName ( "button-strip" ) ;
73
+ for ( var i = 0 ; i < byClass . length ; i ++ ) {
74
+ byClass [ i ] . classList . remove ( "button-strip-disabled" ) ;
75
+ }
76
+ //markdowntoggle.style.display = 'flex'
77
+ examplecode . style . display = 'flex'
78
+ examplewelcome . style . display = 'none'
79
+ var edpcode = ""
80
+ data . replace ( / ( ` ` ` | ~ ~ ~ ) f r e e f e m ( [ \s \S ] * ?) \1/ g, ( match , p1 , p2 ) => {
81
+ edpcode += p2 ;
82
+ return p2 ;
83
+ } ) ;
84
+ edpcode = edpcode . replace ( / ^ \s / , '' )
85
+ editor . getWrapperElement ( ) . style . display = 'block'
86
+ editor . getWrapperElement ( ) . style . visibility = 'hidden'
87
+ editor . setValue ( edpcode )
88
+ highlightKeyword ( editor )
89
+
90
+ editor . getWrapperElement ( ) . style . display = 'none'
91
+ editor . getWrapperElement ( ) . style . visibility = 'hidden'
92
+ document . getElementById ( 'mdout' ) . innerHTML = md . render ( data ) ;
93
+
94
+ MathJax . Hub . Queue ( [ "Typeset" , MathJax . Hub , document . getElementById ( 'mdout' ) ] ) ;
95
+ MathJax . Hub . Configured ( ) ;
96
+ showExample ( viewMarkdown ) ;
50
97
}
51
98
52
- const fpath = ( dir == 'idp' ? '' : 'examples/' ) + dir + '/' + name
53
- const url =
54
- 'https://raw.githubusercontent.com/FreeFem/FreeFem-sources/master/' + fpath
55
- console . log ( 'load ' + dir + '/' + name + 'from GitHub' )
99
+ const fpath = ( dir == 'idp' ? 'examples/' : 'examples/' ) + dir + '/' + name
100
+ const url = "https://raw.githubusercontent.com/FreeFem/FreeFem-sources/develop/" + fpath
101
+ console . log ( 'load ' + dir + '/' + name + ' from GitHub' )
56
102
document . getElementById ( 'ExampleLinkToGitHub' ) . innerHTML =
57
- "<a href='https://github.com/FreeFem/FreeFem-sources/blob/master /" +
103
+ "<a href='https://github.com/FreeFem/FreeFem-sources/blob/develop /" +
58
104
fpath +
59
105
"' target='_blank'>" +
60
106
dir +
61
107
'/' +
62
108
name +
63
109
'</a>'
64
- HTTPGet ( url , load )
110
+
111
+ if ( name . endsWith ( '.edp' ) )
112
+ HTTPGet ( url , loadedp )
113
+ else
114
+ HTTPGet ( url , loadmd )
115
+ }
116
+
117
+ showExample = ( viewMarkdown ) => {
118
+ if ( viewMarkdown && iscurrentfilemd ) {
119
+ editor . getWrapperElement ( ) . style . display = 'none'
120
+ editor . getWrapperElement ( ) . style . visibility = 'hidden'
121
+ document . getElementById ( 'mdout' ) . style . display = 'block'
122
+ document . getElementById ( 'mdout' ) . style . visibility = 'visible'
123
+ }
124
+ else {
125
+ document . getElementById ( 'mdout' ) . style . display = 'none'
126
+ document . getElementById ( 'mdout' ) . style . visibility = 'hidden'
127
+ editor . getWrapperElement ( ) . style . display = 'block'
128
+ editor . getWrapperElement ( ) . style . visibility = 'visible'
129
+ }
65
130
}
66
131
67
132
FilterbyTag = ( focus ) => {
@@ -203,10 +268,7 @@ let treedata = [
203
268
document . addEventListener (
204
269
'keydown' ,
205
270
( event ) => {
206
- if ( event . altKey ) {
207
- var name = event . key
208
- var code = event . code
209
-
271
+ if ( event . altKey && event . code == "AltRight" ) {
210
272
searchExamples = ! searchExamples
211
273
toggleExamples ( searchExamples )
212
274
if ( document . getElementById ( 'search-overlay' ) . style . display != 'none' )
@@ -268,3 +330,16 @@ fetch('/_static/json/all_examples.json')
268
330
}
269
331
} )
270
332
} )
333
+
334
+ var bs1 = new ButtonStrip ( {
335
+ id : 'buttonStrip1'
336
+ } ) ;
337
+ bs1 . addButton ( '.md' , true , 'click' , function ( ) {
338
+ viewMarkdown = true
339
+ showExample ( viewMarkdown )
340
+ } ) ;
341
+ bs1 . addButton ( '.edp' , false , 'click' , function ( ) {
342
+ viewMarkdown = false
343
+ showExample ( viewMarkdown )
344
+ } ) ;
345
+ bs1 . append ( '#markdowntoggle' ) ;
0 commit comments