Loading pandocFilter/pandocFilter.py +28 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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): Loading Loading
pandocFilter/pandocFilter.py +28 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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): Loading