From cbcf4f6f2c2264cff9e52ebb1cfd654a302d74f0 Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado Date: Wed, 20 Apr 2022 23:08:10 -0600 Subject: minor refactoring --- src/pyssg/md_parser.py | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) (limited to 'src/pyssg/md_parser.py') diff --git a/src/pyssg/md_parser.py b/src/pyssg/md_parser.py index b00da19..a516f60 100644 --- a/src/pyssg/md_parser.py +++ b/src/pyssg/md_parser.py @@ -2,27 +2,53 @@ import os from operator import itemgetter from markdown import Markdown from configparser import ConfigParser -import logging -from logging import Logger +from logging import Logger, getLogger + +from markdown import Markdown +from yafg import YafgExtension +from MarkdownHighlight.highlight import HighlightExtension +from markdown_checklist.extension import ChecklistExtension from .database import Database from .page import Page -log: Logger = logging.getLogger(__name__) +log: Logger = getLogger(__name__) + + +def _get_md_obj() -> Markdown: + exts: list = ['extra', + 'meta', + 'sane_lists', + 'smarty', + 'toc', + 'wikilinks', + # stripTitle generates an error when True, + # if there is no title attr + YafgExtension(stripTitle=False, + figureClass="", + figcaptionClass="", + figureNumbering=False, + figureNumberClass="number", + figureNumberText="Figure"), + HighlightExtension(), + ChecklistExtension()] + log.debug('list of md extensions: (%s)', + ', '.join([e if isinstance(e, str) else type(e).__name__ + for e in exts])) + return Markdown(extensions=exts, output_format='html5') # page and file is basically a synonym here... class MDParser: def __init__(self, files: list[str], config: ConfigParser, - db: Database, - md: Markdown): + db: Database): log.debug('initializing the md parser with %d files', len(files)) self.files: list[str] = files self.config: ConfigParser = config self.db: Database = db - self.md: Markdown = md + self.md: Markdown = _get_md_obj() self.all_files: list[Page] = None # updated and modified are synonyms here -- cgit v1.2.3-54-g00ecf