forked from tildetown/tilde-wiki
		
	second pass
This commit is contained in:
		
							parent
							
								
									0e144a966f
								
							
						
					
					
						commit
						11919ff3d0
					
				| @ -10,11 +10,13 @@ HEADER_TITLE_RE = re.compile(r'<h([12])>(.*?)</h\1>') | |||||||
| TITLE_RE = re.compile(r'<title>.*?</title>') | TITLE_RE = re.compile(r'<title>.*?</title>') | ||||||
| LINK_RE = re.compile(r'\/wiki') | LINK_RE = re.compile(r'\/wiki') | ||||||
| 
 | 
 | ||||||
| def update_header_links(header_content:str) -> str: | def update_header_links(header_content:str, depth:int) -> str: | ||||||
|     """Given compiled header content, change absolute URLs in the header to be |     """Given compiled header content, change absolute URLs in the header to be | ||||||
|     relative to the root URL. this is a dirty hack to save links during |     relative to the root URL. this is a dirty hack to save links during | ||||||
|     preview.""" |     preview.""" | ||||||
|     return re.sub(LINK_RE, '../wiki', header_content) |     dots = os.path.join(*['..' for _ in range(depth)]) | ||||||
|  |     repl = os.path.join(dots, wiki) | ||||||
|  |     return re.sub(LINK_RE, repl, header_content) | ||||||
| 
 | 
 | ||||||
| def compile_wiki(source_path: str, dest_path: str) -> None: | def compile_wiki(source_path: str, dest_path: str) -> None: | ||||||
|     """Given a source path (presumably a git repository) and a destination |     """Given a source path (presumably a git repository) and a destination | ||||||
| @ -27,16 +29,16 @@ def compile_wiki(source_path: str, dest_path: str) -> None: | |||||||
|     """ |     """ | ||||||
|     last_compiled = '<p><em>last compiled: {}</em></p>'.format(datetime.utcnow()) |     last_compiled = '<p><em>last compiled: {}</em></p>'.format(datetime.utcnow()) | ||||||
| 
 | 
 | ||||||
|     header_content = update_header_links(compile_markdown(os.path.join(source_path, 'src/header.md'))) |     header_content = compile_markdown(os.path.join(source_path, 'src/header.md')) | ||||||
|     footer_content = last_compiled + compile_markdown(os.path.join(source_path, 'src/footer.md')) |     footer_content = last_compiled + compile_markdown(os.path.join(source_path, 'src/footer.md')) | ||||||
| 
 | 
 | ||||||
|     # TODO fix any links in header/footer to work with preview path |  | ||||||
| 
 |  | ||||||
|     articles_root = os.path.join(source_path, 'src/articles') |     articles_root = os.path.join(source_path, 'src/articles') | ||||||
| 
 | 
 | ||||||
|     toc_content = '{}\n<ul>'.format(update_title(header_content, 'table of contents')) |     toc_content = '{}\n<ul>'.format(update_title(header_content, 'table of contents')) | ||||||
| 
 | 
 | ||||||
|  |     depth = 0 | ||||||
|     for source_root, dirs, files in os.walk(articles_root): |     for source_root, dirs, files in os.walk(articles_root): | ||||||
|  |         depth += 1 | ||||||
|         current_suffix = source_root.replace(articles_root, '') |         current_suffix = source_root.replace(articles_root, '') | ||||||
|         if current_suffix and current_suffix[0] == '/': |         if current_suffix and current_suffix[0] == '/': | ||||||
|             current_suffix = current_suffix[1:] |             current_suffix = current_suffix[1:] | ||||||
| @ -50,7 +52,7 @@ def compile_wiki(source_path: str, dest_path: str) -> None: | |||||||
|             source_file_path = os.path.join(source_root, source_filename) |             source_file_path = os.path.join(source_root, source_filename) | ||||||
|             output = compile_source_file( |             output = compile_source_file( | ||||||
|                 source_file_path, |                 source_file_path, | ||||||
|                 header_content, |                 update_header_links(header_content, depth), | ||||||
|                 footer_content) |                 footer_content) | ||||||
|             dest_filename = source_filename.split('.')[0] + '.html' |             dest_filename = source_filename.split('.')[0] + '.html' | ||||||
|             toc_content += '<li><a href="{}">{}</a></li>\n'.format( |             toc_content += '<li><a href="{}">{}</a></li>\n'.format( | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user