First commit
This commit is contained in:
		
						commit
						0192479c73
					
				|  | @ -0,0 +1,7 @@ | ||||||
|  | { | ||||||
|  | 	"info": { | ||||||
|  | 		"type": "console" | ||||||
|  | 	}, | ||||||
|  | 	"name": "cross", | ||||||
|  | 	"version": "1.0.0.0-prod" | ||||||
|  | } | ||||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 45 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.0 KiB | 
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -0,0 +1,5 @@ | ||||||
|  | var count = 0; | ||||||
|  | func Components.Counter() | ||||||
|  | { | ||||||
|  |     return <p>Count is {++count}</p>; | ||||||
|  | } | ||||||
|  | @ -0,0 +1,38 @@ | ||||||
|  | func Components.Shell(title,pages,body) | ||||||
|  | { | ||||||
|  |     return <!DOCTYPE html> | ||||||
|  |     <html lang="en"> | ||||||
|  |     <head> | ||||||
|  |         <meta charset="UTF-8"> | ||||||
|  |         <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||||
|  |         <title>cross - {title}</title> | ||||||
|  |         <link rel="stylesheet" href="./css/simple.min.css"> | ||||||
|  |     </head> | ||||||
|  |     <body> | ||||||
|  |         <header> | ||||||
|  |             <h1>cross</h1> | ||||||
|  |             <nav> | ||||||
|  |             <ul> | ||||||
|  |                 <each(var item : pages)> | ||||||
|  |                     <li> | ||||||
|  |                         <if(item.active)> | ||||||
|  |                             <true> | ||||||
|  |                                 <a aria-current="page" href={item.route}>{item.text}</a> | ||||||
|  |                             </true> | ||||||
|  |                             <false> | ||||||
|  |                                 <a aria-current="page" href={item.route}>{item.text}</a> | ||||||
|  |                             </false> | ||||||
|  |                         </if> | ||||||
|  |                     </li> | ||||||
|  |                 </each> | ||||||
|  |             </ul> | ||||||
|  |             </nav> | ||||||
|  |         </header> | ||||||
|  |         <h1>{title}</h1> | ||||||
|  |         <raw(body)> | ||||||
|  |         <footer> | ||||||
|  |             <p>Created using <a href="https://crosslang.tesseslanguage.com/">CrossLang</a> and <a href="https://simplecss.org/">SimpleCSS</a></p> | ||||||
|  |         </footer> | ||||||
|  |     </body> | ||||||
|  |     </html>; | ||||||
|  | } | ||||||
|  | @ -0,0 +1,26 @@ | ||||||
|  | func Pages.About() | ||||||
|  | { | ||||||
|  |     var pages = [ | ||||||
|  |             { | ||||||
|  |                 active = false, | ||||||
|  |                 route = "/", | ||||||
|  |                 text = "Home" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 active = false, | ||||||
|  |                 route = "/counter", | ||||||
|  |                 text = "Counter" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 active =  true, | ||||||
|  |                 route = "/about", | ||||||
|  |                 text = "About" | ||||||
|  |             } | ||||||
|  |         ]; | ||||||
|  |     return Components.Shell( | ||||||
|  |         "About Me", | ||||||
|  |         pages, | ||||||
|  |         <null><img src="./image.png"><p>{ipsum}</p></null> | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  | var ipsum=""; | ||||||
|  | @ -0,0 +1,25 @@ | ||||||
|  | func Pages.Counter() | ||||||
|  | { | ||||||
|  |     var pages = [ | ||||||
|  |             { | ||||||
|  |                 active = false, | ||||||
|  |                 route = "/", | ||||||
|  |                 text = "Home" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 active = true, | ||||||
|  |                 route = "/counter", | ||||||
|  |                 text = "Counter" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 active =  false, | ||||||
|  |                 route = "/about", | ||||||
|  |                 text = "About" | ||||||
|  |             } | ||||||
|  |         ]; | ||||||
|  |     return Components.Shell( | ||||||
|  |         "Counter", | ||||||
|  |         pages, | ||||||
|  |         <null><h1>This is a counter</h1><raw(Components.Counter())></null> | ||||||
|  |   ); | ||||||
|  | } | ||||||
|  | @ -0,0 +1,32 @@ | ||||||
|  | func Pages.Echo(text) | ||||||
|  | { | ||||||
|  |     var pages = [ | ||||||
|  |             { | ||||||
|  |                 active = false, | ||||||
|  |                 route = "/", | ||||||
|  |                 text = "Home" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 active = false, | ||||||
|  |                 route = "/counter", | ||||||
|  |                 text = "Counter" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 active =  false, | ||||||
|  |                 route = "/about", | ||||||
|  |                 text = "About" | ||||||
|  |             } | ||||||
|  |         ]; | ||||||
|  |     return Components.Shell( | ||||||
|  |         "Echo", | ||||||
|  |         pages, | ||||||
|  |         <if(text != null)> | ||||||
|  |             <true> | ||||||
|  |                 <p>{text}</p> | ||||||
|  |             </true> | ||||||
|  |             <false> | ||||||
|  |                 <p>No text available</p> | ||||||
|  |             </false> | ||||||
|  |         </if> | ||||||
|  |   ); | ||||||
|  | } | ||||||
|  | @ -0,0 +1,27 @@ | ||||||
|  | func Pages.Index() | ||||||
|  | { | ||||||
|  |     var pages = [ | ||||||
|  |             { | ||||||
|  |                 active = true, | ||||||
|  |                 route = "/", | ||||||
|  |                 text = "Home" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 active = false, | ||||||
|  |                 route = "/counter", | ||||||
|  |                 text = "Counter" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 active =  false, | ||||||
|  |                 route = "/about", | ||||||
|  |                 text = "About" | ||||||
|  |             } | ||||||
|  |         ]; | ||||||
|  |    return Components.Shell("Main Page",pages,<section> | ||||||
|  |    <form action="./echo" method="GET"> | ||||||
|  |         <input type="text" name="text" placeholder="Text to echo"> | ||||||
|  |         <input type="submit" value="Echo it"> | ||||||
|  |    </form> | ||||||
|  |    <p>1 John 4:4: You, dear children, are from God and have overcome them, because the one who is in you is greater than the one who is in the world.</p> | ||||||
|  |    </section>); | ||||||
|  | } | ||||||
|  | @ -0,0 +1,42 @@ | ||||||
|  | var count = 0; | ||||||
|  | func main(args) | ||||||
|  | { | ||||||
|  |     Net.Http.ListenSimpleWithLoop((ctx)=>{ | ||||||
|  |         if(ctx.Path == "/") | ||||||
|  |         { | ||||||
|  |             ctx.WithMimeType("text/html").SendText(Pages.Index()); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         else if(ctx.Path == "/counter") | ||||||
|  |         { | ||||||
|  |             ctx.WithMimeType("text/html").SendText(Pages.Counter()); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         else if(ctx.Path == "/about") | ||||||
|  |         { | ||||||
|  |             ctx.WithMimeType("text/html").SendText(Pages.Index()); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         else if(ctx.Path == "/echo") | ||||||
|  |         { | ||||||
|  |             ctx.WithMimeType("text/html").SendText(Pages.Echo(ctx.QueryParams.TryGetFirst("text"))); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         else if(ctx.Path == "/image.png") | ||||||
|  |         { | ||||||
|  |             ctx.WithMimeType("image/png").SendBytes(embed("image.png")); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         else if(ctx.Path == "/css/simple.min.css") | ||||||
|  |         { | ||||||
|  |             ctx.WithMimeType("text/css").SendBytes(embed("simple.min.css")); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         else if(ctx.Path == "/favicon.ico") | ||||||
|  |         { | ||||||
|  |             ctx.WithMimeType("image/x-icon").SendBytes(embed("favicon.ico")); | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         return false; | ||||||
|  |     },4206); | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue