Initial very WIP commit.
This commit is contained in:
		
						commit
						4ca04d8202
					
				
					 4 changed files with 67 additions and 0 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | **/__pycache__ | ||||||
							
								
								
									
										35
									
								
								formatitko.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								formatitko.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,35 @@ | ||||||
|  | #!/usr/bin/env python3 | ||||||
|  | 
 | ||||||
|  | # Import local files | ||||||
|  | from whitespace import * | ||||||
|  | 
 | ||||||
|  | from panflute import * | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ifs = ["dog"] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def transform(e: Element): | ||||||
|  | 	"""Transform the AST, making format-agnostic changes.""" | ||||||
|  | 	if isinstance(e, Whitespace) and bavlna(e): | ||||||
|  | 		e.parent.content[e.index] = NBSP() | ||||||
|  | 
 | ||||||
|  | 	if hasattr(e, "attributes"): | ||||||
|  | 		if "if" in e.attributes: | ||||||
|  | 			if not e.attributes["if"] in ifs: | ||||||
|  | 				del e.parent.content[e.index] | ||||||
|  | 
 | ||||||
|  | 	if hasattr(e, "content"): | ||||||
|  | 		for c in e.content: | ||||||
|  | 			transform(c) | ||||||
|  | 		 | ||||||
|  | 
 | ||||||
|  | doc = load() | ||||||
|  | 
 | ||||||
|  | print(stringify(doc)) | ||||||
|  | transform(doc) | ||||||
|  | print("---------------------") | ||||||
|  | print(stringify(doc)) | ||||||
|  | print(vars(doc)) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
							
								
								
									
										19
									
								
								test.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								test.md
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | # Hello world! | ||||||
|  | 
 | ||||||
|  | This is an *example* **yay**! | ||||||
|  | 
 | ||||||
|  | ```python3 | ||||||
|  | def what(): | ||||||
|  |     return no way | ||||||
|  | ``` | ||||||
|  | :::{if=cat} | ||||||
|  | This should only be shown to cats | ||||||
|  | ::: | ||||||
|  | 
 | ||||||
|  | This should be seen by all. | ||||||
|  | 
 | ||||||
|  | [This too!]{if=cat} | ||||||
|  | 
 | ||||||
|  | [!woah]{a=b} <!-- A special command! WOW --> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
							
								
								
									
										12
									
								
								whitespace.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								whitespace.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | from panflute import Space,SoftBreak | ||||||
|  | from typing import Union | ||||||
|  | 
 | ||||||
|  | Whitespace = Union[Space,SoftBreak] | ||||||
|  | 
 | ||||||
|  | class NBSP(Space): | ||||||
|  | 	pass | ||||||
|  | 
 | ||||||
|  | def bavlna(e: Whitespace): | ||||||
|  | 	"""Determine if given piece of whitespace should be non-breakable.""" | ||||||
|  | 	return False | ||||||
|  | 
 | ||||||
		Loading…
	
		Reference in a new issue