mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 13:50:01 +00:00 
			
		
		
		
	The basic idea is that in the main mungedocs we run the entirefile and create an annotated set of lines about that file. All mungers then act on a struct mungeLines instead of on a bytes array. Making use of the metadata where appropriete. Helper functions exist to make updating a 'macro block' extremely easy.
		
			
				
	
	
		
			23 lines
		
	
	
		
			996 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			996 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Documentation Mungers
 | |
| 
 | |
| Basically this is like lint/gofmt for md docs.
 | |
| 
 | |
| It basically does the following:
 | |
| - iterate over all files in the given doc root.
 | |
| - for each file split it into a slice (mungeLines) of lines (mungeLine)
 | |
| - a mungeline has metadata about each line typically determined by a 'fast' regex.
 | |
|   - metadata contains things like 'is inside a preformmatted block'
 | |
|   - contains a markdown header
 | |
|   - has a link to another file
 | |
|   - etc..
 | |
|   - if you have a really slow regex with a lot of backtracking you might want to write a fast one to limit how often you run the slow one.
 | |
| - each munger is then called in turn
 | |
|   - they are given the mungeLines
 | |
|   - they create an entirely new set of mungeLines with their modifications
 | |
|   - the new set is returned
 | |
| - the new set is then fed into the next munger.
 | |
| - in the end we might commit the end mungeLines to the file or not (--verify)
 | |
| 
 | |
| 
 | |
| []()
 |