Commit 1ea0f0c9 authored by Andreas Kraft's avatar Andreas Kraft
Browse files

Added missing sys import. Added figure caption handling.

parent e4f5e2da
Loading
Loading
Loading
Loading
+28 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@
#	License: BSD 3-Clause License. See the LICENSE file for further details.
#

import argparse, os, re
import argparse, os, re, sys
from rich import print
from rich.progress import Progress, TextColumn, TimeElapsedColumn

@@ -98,11 +98,38 @@ def replaceTableCaptions(progress:Progress, mdLines:list[str]) -> list[str]:
	return _lines


def replaceFigureCaptions(progress:Progress, mdLines:list[str]) -> list[str]:
	"""	Replace table captions with a pandoc table caption.
	"""
	_taskID = progress.add_task('[blue]Replacing figure captions', start=False, total=0)
	# progress.update()
	figureregex = re.compile('^\*\*(Figure .*)\*\*')
	
	_lines:list[str] = []
	for line in mdLines:
		matches = re.findall(figureregex, line)
		if matches:
			# Replace the previous figure markdown name with the captions
			_idx = len(_lines) - 1
			while _idx >= 0 and not _lines[_idx].startswith('!['):
				_idx -= 1
			if _idx > 0:
				_lines[_idx] = re.sub(r'^.*?]', f'![{matches[0]}]', _lines[_idx])

		else:
			_lines.append(line)

	progress.stop_task(_taskID)
	return _lines



def process(document:str, outDirectory:str) -> None:
	with Progress(TextColumn('{task.description}'),  TimeElapsedColumn()) as progress:
		mdLines = readMDFile(progress, document)
		mdLines = correctTOC(progress, mdLines)
		mdLines = replaceTableCaptions(progress, mdLines)
		mdLines = replaceFigureCaptions(progress, mdLines)
		writeMDFile(progress, mdLines, document, outDirectory)

def main(args=None):