kopia lustrzana https://github.com/simonw/datasette
				
				
				
			git commit -m "datasette --template-dir=mytemplates/" argument
You can now pass an additional argument specifying a directory to look for custom templates in. Datasette will fall back on the default templates if a template is not found in that directory. Refs #12, #153sanic-07
							rodzic
							
								
									ffa77f62b4
								
							
						
					
					
						commit
						7ff51598c4
					
				|  | @ -771,7 +771,7 @@ class Datasette: | ||||||
|     def __init__( |     def __init__( | ||||||
|             self, files, num_threads=3, cache_headers=True, page_size=100, |             self, files, num_threads=3, cache_headers=True, page_size=100, | ||||||
|             max_returned_rows=1000, sql_time_limit_ms=1000, cors=False, |             max_returned_rows=1000, sql_time_limit_ms=1000, cors=False, | ||||||
|             inspect_data=None, metadata=None, sqlite_extensions=None): |             inspect_data=None, metadata=None, sqlite_extensions=None, template_dir=None): | ||||||
|         self.files = files |         self.files = files | ||||||
|         self.num_threads = num_threads |         self.num_threads = num_threads | ||||||
|         self.executor = futures.ThreadPoolExecutor( |         self.executor = futures.ThreadPoolExecutor( | ||||||
|  | @ -786,6 +786,7 @@ class Datasette: | ||||||
|         self.metadata = metadata or {} |         self.metadata = metadata or {} | ||||||
|         self.sqlite_functions = [] |         self.sqlite_functions = [] | ||||||
|         self.sqlite_extensions = sqlite_extensions or [] |         self.sqlite_extensions = sqlite_extensions or [] | ||||||
|  |         self.template_dir = template_dir | ||||||
| 
 | 
 | ||||||
|     def asset_urls(self, key): |     def asset_urls(self, key): | ||||||
|         for url_or_dict in (self.metadata.get(key) or []): |         for url_or_dict in (self.metadata.get(key) or []): | ||||||
|  | @ -892,10 +893,12 @@ class Datasette: | ||||||
| 
 | 
 | ||||||
|     def app(self): |     def app(self): | ||||||
|         app = Sanic(__name__) |         app = Sanic(__name__) | ||||||
|  |         template_paths = [] | ||||||
|  |         if self.template_dir: | ||||||
|  |             template_paths.append(self.template_dir) | ||||||
|  |         template_paths.append(str(app_root / 'datasette' / 'templates')) | ||||||
|         self.jinja_env = Environment( |         self.jinja_env = Environment( | ||||||
|             loader=FileSystemLoader([ |             loader=FileSystemLoader(template_paths), | ||||||
|                 str(app_root / 'datasette' / 'templates') |  | ||||||
|             ]), |  | ||||||
|             autoescape=True, |             autoescape=True, | ||||||
|         ) |         ) | ||||||
|         self.jinja_env.filters['escape_css_string'] = escape_css_string |         self.jinja_env.filters['escape_css_string'] = escape_css_string | ||||||
|  |  | ||||||
|  | @ -156,7 +156,8 @@ def package(files, tag, metadata, extra_options, branch, **extra_metadata): | ||||||
| ) | ) | ||||||
| @click.option('--inspect-file', help='Path to JSON file created using "datasette build"') | @click.option('--inspect-file', help='Path to JSON file created using "datasette build"') | ||||||
| @click.option('-m', '--metadata', type=click.File(mode='r'), help='Path to JSON file containing license/source metadata') | @click.option('-m', '--metadata', type=click.File(mode='r'), help='Path to JSON file containing license/source metadata') | ||||||
| def serve(files, host, port, debug, reload, cors, page_size, max_returned_rows, sql_time_limit_ms, sqlite_extensions, inspect_file, metadata): | @click.option('-t', '--template-dir', type=click.Path(exists=True, file_okay=False, dir_okay=True), help='Path to directory containing custom templates') | ||||||
|  | def serve(files, host, port, debug, reload, cors, page_size, max_returned_rows, sql_time_limit_ms, sqlite_extensions, inspect_file, metadata, template_dir): | ||||||
|     """Serve up specified SQLite database files with a web UI""" |     """Serve up specified SQLite database files with a web UI""" | ||||||
|     if reload: |     if reload: | ||||||
|         import hupper |         import hupper | ||||||
|  | @ -181,6 +182,7 @@ def serve(files, host, port, debug, reload, cors, page_size, max_returned_rows, | ||||||
|         inspect_data=inspect_data, |         inspect_data=inspect_data, | ||||||
|         metadata=metadata_data, |         metadata=metadata_data, | ||||||
|         sqlite_extensions=sqlite_extensions, |         sqlite_extensions=sqlite_extensions, | ||||||
|  |         template_dir=template_dir, | ||||||
|     ) |     ) | ||||||
|     # Force initial hashing/table counting |     # Force initial hashing/table counting | ||||||
|     ds.inspect() |     ds.inspect() | ||||||
|  |  | ||||||
		Ładowanie…
	
		Reference in New Issue
	
	 Simon Willison
						Simon Willison