vweb: look for html templates in `templates/`
							parent
							
								
									972f60d785
								
							
						
					
					
						commit
						a2d7bc6e6f
					
				|  | @ -86,20 +86,21 @@ fn (mut p Parser) vweb() ast.ComptimeCall { | |||
| 	p.check(.rpar) | ||||
| 	// Compile vweb html template to V code, parse that V code and embed the resulting V function
 | ||||
| 	// that returns an html string.
 | ||||
| 	mut path := p.cur_fn_name + '.html' | ||||
| 	// if p.pref.is_verbose {
 | ||||
| 	println('>>> compiling vweb HTML template "$path"') | ||||
| 	// }
 | ||||
| 	html_name := '${p.cur_fn_name}.html' | ||||
| 	// Looking next to the vweb program
 | ||||
| 	dir := os.dir(p.scanner.file_path) | ||||
| 	mut path := os.join_path(dir, html_name) | ||||
| 	if !os.exists(path) { | ||||
| 		// Can't find the template file in current directory,
 | ||||
| 		// try looking next to the vweb program, in case it's run with
 | ||||
| 		// v path/to/vweb_app.v
 | ||||
| 		path = os.dir(p.scanner.file_path) + '/' + path | ||||
| 		// can be in `templates/`
 | ||||
| 		path = os.join_path(dir, 'templates', html_name) | ||||
| 		if !os.exists(path) { | ||||
| 			p.error('vweb HTML template "$path" not found') | ||||
| 			p.error('vweb HTML template "$html_name" not found') | ||||
| 		} | ||||
| 		// println('path is now "$path"')
 | ||||
| 	} | ||||
| 	// if p.pref.is_verbose {
 | ||||
| 	println('>>> compiling vweb HTML template "$path"') | ||||
| 	// }
 | ||||
| 	v_code := tmpl.compile_file(path, p.cur_fn_name) | ||||
| 	mut scope := &ast.Scope{ | ||||
| 		start_pos: 0 | ||||
|  |  | |||
|  | @ -30,9 +30,9 @@ pub fn compile_template(content, fn_name string) string { | |||
| 	// lines := os.read_lines(path)
 | ||||
| 	mut html := content | ||||
| 	mut header := '' | ||||
| 	if os.exists('header.html') && html.contains('@header') { | ||||
| 		h := os.read_file('header.html') or { | ||||
| 			panic('reading file header.html failed') | ||||
| 	if os.exists('templates/header.html') && html.contains('@header') { | ||||
| 		h := os.read_file('templates/header.html') or { | ||||
| 			panic('reading file templates/header.html failed') | ||||
| 		} | ||||
| 		header = h.replace("\'", '"') | ||||
| 		html = header + html | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue