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