1+ <!DOCTYPE html>
2+ < html lang ="en-us ">
3+
4+ < head >
5+
6+ < title > jMonkeyEngine </ title >
7+ < meta name ="viewport " content ="width=device-width,minimum-scale=1 ">
8+ < meta name ="description "
9+ content ="jMonkeyEngine is a modern developer friendly game engine written primarily in Java. ">
10+ < link rel ="shortcut icon " href ="/favicon.ico " type ="image/x-icon " />
11+
12+ < link rel ="stylesheet " href ="/css/style.css ">
13+
14+
15+ < meta name ="twitter:card " content ="summary "/>
16+ < meta name ="twitter:title " content ="404 Page not found "/>
17+ < meta name ="twitter:description " content =""/>
18+
19+ < meta property ="og:title " content ="404 Page not found " />
20+ < meta property ="og:description " content ="" />
21+ < meta property ="og:type " content ="website " />
22+ < meta property ="og:url " content ="https://jmonkeyengine.org/404.html " />
23+
24+
25+ < meta itemprop ="name " content ="404 Page not found ">
26+ < meta itemprop ="description " content ="">
27+
28+
29+
30+
31+
32+ < script src ="/js/old-browser.js "> </ script >
33+ < link rel ="stylesheet " href ="/css/old-browser.css ">
34+
35+
36+
37+
38+
39+ < script src ="/highlight/highlight.pack.js "> </ script >
40+ < script
41+ src ="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.8.0/highlightjs-line-numbers.min.js "> </ script >
42+ < link rel ="stylesheet " href ="/highlight/styles/railscasts.css ">
43+ < script type ="text/javascript ">
44+ hljs . initHighlightingOnLoad ( ) ;
45+ hljs . initLineNumbersOnLoad ( ) ;
46+ </ script >
47+
48+
49+
50+ < script src ="/js/utils.js "> </ script >
51+ < script src ="/js/showcase.js "> </ script >
52+ < script type ="module " src ="/js/Main.js "> </ script >
53+
54+
55+
56+ < script src ="https://cdnjs.cloudflare.com/ajax/libs/later/1.2.0/later.min.js " integrity ="sha512-4OyNDMl5KLKjS8F1ImVwUvmthM8HkXbR6vMafCmT5zBTd9I/sA3z3zM0JLBosHW6/3K2jq2RoBo/eTUNS2hOGA== " crossorigin ="anonymous "> </ script >
57+ < script src ="/js/maintenance/maintenance.js "> </ script >
58+ < link rel ="stylesheet " href ="/js/maintenance/maintenance.css ">
59+
60+
61+
62+ < script src ="/js/christmas/Christmas.js "> </ script >
63+ < script >
64+ Christmas . init (
65+ "https://jmonkeyengine.org/js/christmas/" ,
66+ [ "figure.githubUser img" , 'img.avatar' , "#showcase button" ] ,
67+ [
68+ {
69+ type : "attribute" ,
70+ value : "src" ,
71+ transform :function ( src ) {
72+ if ( src . startsWith ( "/user_avatar/hub.jmonkeyengine.org/" ) ) {
73+ return src . substring ( "/user_avatar/hub.jmonkeyengine.org/" . length ) . split ( "/" ) [ 0 ] ;
74+ }
75+ return src ;
76+ }
77+ } ,
78+ {
79+ type : "attribute" ,
80+ value : "title"
81+ } ,
82+ {
83+ type : "text"
84+ }
85+ ] ,
86+ [ "header img.avatar" ]
87+ ) ;
88+ </ script >
89+
90+
91+ </ head >
92+
93+ < body >
94+ < header > < nav class ="responsiveWidth " id ="topmenu ">
95+ < div class ="expandable ">
96+ < a href ="https://jmonkeyengine.org/ " alt-href ="https://jmonkeyengine.org/tags,https://jmonkeyengine.org/authors,https://jmonkeyengine.org/devlog,https://jmonkeyengine.org/blog,,https://jmonkeyengine.org/communitylog ">
97+ < button class ="genericCl responsiveIcon expandable ">
98+ < i class ="fas fa-home "> </ i > < span > Home</ span >
99+ </ button >
100+ </ a >
101+ < a href ="https://jmonkeyengine.org/tags/showcase " alt-href ="https://jmonkeyengine.org/showcase ">
102+ < button class ="genericCl responsiveIcon expandable ">
103+ < i class ="fas fa-images "> </ i > < span > Showcase</ span >
104+ </ button >
105+ </ a >
106+
107+ < a href ="https://hub.jmonkeyengine.org ">
108+ < button class ="genericCl responsiveIcon expandable ">
109+ < i class ="fab fa-discourse "> </ i > < span > Discussions</ span >
110+ </ button >
111+ </ a >
112+
113+ < a href ="https://library.jmonkeyengine.org " >
114+ < button class ="genericCl responsiveIcon expandable ">
115+ < i class ="fas fa-puzzle-piece "> </ i > < span > Library</ span >
116+ </ button >
117+ </ a >
118+
119+ < a href ="https://jmonkeyengine.org/docs ">
120+ < button class ="genericCl responsiveIcon expandable ">
121+ < i class ="fas fa-book "> </ i > < span > Docs</ span >
122+ </ button >
123+ </ a >
124+
125+ < a href ="https://jmonkeyengine.org/license ">
126+ < button class ="genericCl responsiveIcon expandable toggleable toggledOffPortrait ">
127+ < i class ="fas fa-balance-scale-right "> </ i > < span > License</ span >
128+ </ button >
129+ </ a >
130+ </ div >
131+
132+ < div class ="toggleable toggledOffPortrait expandable ">
133+ < a href ="https://github.com/jMonkeyEngine/jmonkeyengine " rel ='noopener noreferrer ' target ="_blank ">
134+ < button class ="icon toggleable toggledOffPortrait codeCl expandable " title ="Github ">
135+ < i class ="fab fa-github-square "> </ i > < span > Github</ span >
136+ </ button >
137+ </ a >
138+ < a href ="https://twitter.com/jmonkeyengine " rel ='noopener noreferrer ' target ="_blank ">
139+ < button class ="icon twitterCl toggleable toggledOffPortrait expandable " title ="Follow on Twitter ">
140+ < i class ="fab fa-twitter "> </ i > < span > Twitter</ span >
141+ </ button >
142+ </ a >
143+
144+ < a href ="https://www.youtube.com/channel/UC-Fs3R5Q6wW_XYspOXGZgPw " rel ='noopener noreferrer '
145+ target ="_blank ">
146+ < button class ="icon youtubeCl toggleable toggledOffPortrait expandable " title ="Follow on Youtube ">
147+ < i class ="fab fa-youtube "> </ i > < span > Youtube</ span >
148+ </ button >
149+ </ a >
150+
151+
152+
153+ < a href ="https://discord.gg/Rv8sfVu " rel ='noopener noreferrer ' target ="_blank ">
154+ < button class ="icon discordCl toggleable toggledOffPortrait expandable " title ="Discord ">
155+ < i class ="fab fa-discord "> </ i > < span > Discord</ span >
156+ </ button >
157+ </ a >
158+ < a href ="https://jmonkeyengine.org/donate " >
159+ < button class ="icon donateCl toggleable toggledOffPortrait expandable " title ="Donate ">
160+ < i class ="fas fa-donate "> </ i > < span > Donate!</ span >
161+ </ button >
162+ </ a >
163+
164+ </ div >
165+ </ nav >
166+
167+ < script >
168+
169+ ! function ( t , e ) { "object" == typeof exports && "object" == typeof module ?module . exports = e ( ) :"function" == typeof define && define . amd ?define ( [ ] , e ) :"object" == typeof exports ?exports . stringSimilarity = e ( ) :t . stringSimilarity = e ( ) } ( self , ( function ( ) { return t = { 138 :t => { function e ( t , e ) { if ( ( t = t . replace ( / \s + / g, "" ) ) === ( e = e . replace ( / \s + / g, "" ) ) ) return 1 ; if ( t . length < 2 || e . length < 2 ) return 0 ; let r = new Map ; for ( let e = 0 ; e < t . length - 1 ; e ++ ) { const n = t . substring ( e , e + 2 ) , o = r . has ( n ) ?r . get ( n ) + 1 :1 ; r . set ( n , o ) } let n = 0 ; for ( let t = 0 ; t < e . length - 1 ; t ++ ) { const o = e . substring ( t , t + 2 ) , s = r . has ( o ) ?r . get ( o ) :0 ; s > 0 && ( r . set ( o , s - 1 ) , n ++ ) } return 2 * n / ( t . length + e . length - 2 ) } t . exports = { compareTwoStrings :e , findBestMatch :function ( t , r ) { if ( ! function ( t , e ) { return "string" == typeof t && ! ! Array . isArray ( e ) && ! ! e . length && ! e . find ( ( function ( t ) { return "string" != typeof t } ) ) } ( t , r ) ) throw new Error ( "Bad arguments: First argument should be a string, second should be an array of strings" ) ; const n = [ ] ; let o = 0 ; for ( let s = 0 ; s < r . length ; s ++ ) { const i = r [ s ] , f = e ( t , i ) ; n . push ( { target :i , rating :f } ) , f > n [ o ] . rating && ( o = s ) } return { ratings :n , bestMatch :n [ o ] , bestMatchIndex :o } } } } } , e = { } , function r ( n ) { if ( e [ n ] ) return e [ n ] . exports ; var o = e [ n ] = { exports :{ } } ; return t [ n ] ( o , o . exports , r ) , o . exports } ( 138 ) ; var t , e } ) ) ;
170+
171+
172+
173+
174+
175+ window . initJmeMenu = function ( ) {
176+ const selectionClass = window . selectedTopMenuClass || "highlightedCl" ;
177+
178+ const topmenu = document . querySelector ( '#topmenu' ) ;
179+ if ( window . location . href . startsWith ( "http://localhost:1313" ) ) {
180+ for ( const a of topmenu . querySelectorAll ( "a" ) ) {
181+ a . href = a . href . replace ( "https://jmonkeyengine.org" , "http://localhost:1313" ) ;
182+ }
183+ }
184+
185+ const likelyScore = [ ] ;
186+ for ( const a of topmenu . querySelectorAll ( "a" ) ) {
187+ const pageUrl = window . location . href . endsWith ( "/" ) ?window . location . href . substring ( 0 , window . location . href . length - 1 ) :window . location . href ;
188+
189+ const process = ( linkUrls ) => {
190+ if ( ! linkUrls ) return ;
191+ for ( let linkUrl of linkUrls ) {
192+ if ( linkUrl != null ) {
193+ if ( window . location . href . startsWith ( "http://localhost:1313" ) ) {
194+ linkUrl = linkUrl . replace ( "https://jmonkeyengine.org" , "http://localhost:1313" ) ;
195+ }
196+
197+ if ( linkUrl . endsWith ( "/" ) ) {
198+ linkUrl = linkUrl . substring ( 0 , linkUrl . length - 1 ) ;
199+ }
200+ const score = stringSimilarity . compareTwoStrings ( linkUrl , pageUrl ) ;
201+ likelyScore . push (
202+ {
203+ score : score ,
204+ el : a . querySelector ( "button" )
205+ }
206+ ) ;
207+ }
208+ }
209+ }
210+
211+ process ( [ a . href ] ) ;
212+ process ( a . getAttribute ( "alt-href" ) ?a . getAttribute ( "alt-href" ) . split ( "," ) :undefined ) ;
213+
214+ }
215+ likelyScore . sort ( ( a , b ) => b . score - a . score ) ;
216+ likelyScore . forEach ( el => el . el . classList . remove ( selectionClass ) ) ;
217+ likelyScore [ 0 ] . el . classList . add ( selectionClass ) ;
218+
219+ } ;
220+
221+ document . addEventListener ( 'DOMContentLoaded' , function ( ) {
222+ window . initJmeMenu ( ) ;
223+ } ) ;
224+ </ script >
225+
226+ < div id ="siteTitle " class ="list hlist responsiveWidth ">
227+ < div id ="logo ">
228+ < a href ="/ ">
229+ < img src ="/images/jme-logo.png " />
230+ </ a >
231+ < i class ="toggleNavOnPortraitButton fas fa-bars " toggle ="topmenu "> </ i >
232+ </ div >
233+
234+ < div id ="contributionsBanner ">
235+ < div > < i class ="fas fa-donate "> </ i >
236+ Backed by:
237+ < a rel ='noopener nofollow noreferrer ' target ="_blank " id ="backerName "> The Community</ a >
238+ < a rel ='noopener nofollow noreferrer ' target ="_blank "
239+ href ="https://opencollective.com/jmonkeyengine#section-contributors "> and more...</ a >
240+ </ div >
241+ < div >
242+ < i class ="fab fa-github-alt "> </ i >
243+ Contributed by:
244+ < a rel ='noopener nofollow noreferrer ' target ="_blank " id ="contributorName "> The Community</ a >
245+ < a rel ='noopener nofollow noreferrer ' target ="_blank "
246+ href ="https://github.com/jMonkeyEngine/jmonkeyengine/graphs/contributors "> and more...</ a >
247+ </ div >
248+ </ div >
249+ </ div >
250+
251+ </ header >
252+
253+ < main >
254+
255+
256+ < article >
257+ < h1 style ="font-size:6rem;text-align:center ">
258+ 404
259+ </ h1 >
260+ < h1 style ="text-align:center ">
261+ This is not the page you were looking for
262+ </ h1 >
263+ </ article >
264+
265+ </ main >
266+ < footer >
267+ © 2020 jMonkeyEngine.
268+ All other trademarks, logos and featured content are property of their respective owners.
269+ < br />
270+ < a title ="Github repo " rel ='noopener nofollow noreferrer ' target ="_blank "
271+ href ="https://github.com/jMonkeyEngine/jmonkeyengine-website ">
272+ < i class ="fab fa-github "> </ i > Source on Github
273+ </ a >
274+ |
275+ < a title ="Report issue " rel ='noopener nofollow noreferrer ' target ="_blank "
276+ href ="https://github.com/jMonkeyEngine/jmonkeyengine-website/issues ">
277+ < i class ="fas fa-bug "> </ i > Report an issue
278+ </ a >
279+ < br />
280+ < br />
281+ Website designed and developed by
282+ < a href ="https://github.com/riccardobl "> Riccardo Balbo</ a >
283+ for the jMonkeyEngine's Community.
284+
285+
286+
287+ </ footer >
288+ < div id ="poweredBy " >
289+
290+ < a rel ='noopener nofollow noreferrer ' target ="_blank " href ="https://www.macstadium.com/ ">
291+
292+ < img src ="/images/macstadium-logo.png " />
293+ </ a >
294+ < a rel ='noopener nofollow noreferrer ' target ="_blank " href ="https://www.java.com/ ">
295+
296+ < img src ="/images/java-logo.png " />
297+ </ a >
298+ < a rel ='noopener nofollow noreferrer ' target ="_blank " href ="https://opengl.org/ ">
299+
300+ < img src ="/images/opengl-logo.png " />
301+ </ a >
302+ </ div >
303+
304+ </ body >
305+
306+ </ html >
0 commit comments