diff options
author | David Luevano Alvarado <david@luevano.xyz> | 2022-04-20 23:08:10 -0600 |
---|---|---|
committer | David Luevano Alvarado <david@luevano.xyz> | 2022-04-20 23:08:10 -0600 |
commit | cbcf4f6f2c2264cff9e52ebb1cfd654a302d74f0 (patch) | |
tree | fde5b33c65d0394541872e690f0a34b890299415 /src/pyssg/md_parser.py | |
parent | 9bfb9dd2e8fa187a36c4ef98a491b9c2944bbd11 (diff) |
minor refactoring
Diffstat (limited to 'src/pyssg/md_parser.py')
-rw-r--r-- | src/pyssg/md_parser.py | 38 |
1 files changed, 32 insertions, 6 deletions
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 |