diff options
author | Waylan Limberg <waylan.limberg@icloud.com> | 2015-03-08 21:08:31 -0400 |
---|---|---|
committer | Waylan Limberg <waylan.limberg@icloud.com> | 2015-03-08 21:08:31 -0400 |
commit | 4f9d4fff86c638ab2edb569ad9eb14f82728808d (patch) | |
tree | abd6855ebb0fdffa6a8ed13b7ed06d2fde1b3864 /markdown | |
parent | f54cd8652df84d5f8655819fff0631f0fc92a2b6 (diff) | |
download | markdown-4f9d4fff86c638ab2edb569ad9eb14f82728808d.tar.gz markdown-4f9d4fff86c638ab2edb569ad9eb14f82728808d.tar.bz2 markdown-4f9d4fff86c638ab2edb569ad9eb14f82728808d.zip |
Removed `yaml` option from meta-data extension.
The option was buggy. Rather than try to fix it, it is being removed.
This feeture should exist as a seperate extension. Fixes #390.
Diffstat (limited to 'markdown')
-rw-r--r-- | markdown/extensions/meta.py | 40 |
1 files changed, 6 insertions, 34 deletions
diff --git a/markdown/extensions/meta.py b/markdown/extensions/meta.py index cf8074f..711235e 100644 --- a/markdown/extensions/meta.py +++ b/markdown/extensions/meta.py @@ -22,66 +22,40 @@ from ..preprocessors import Preprocessor import re import logging -try: # pragma: no cover - import yaml - try: - from yaml import CSafeLoader as SafeLoader - except ImportError: - from yaml import SafeLoader -except ImportError: - yaml = None - log = logging.getLogger('MARKDOWN') # Global Vars META_RE = re.compile(r'^[ ]{0,3}(?P<key>[A-Za-z0-9_-]+):\s*(?P<value>.*)') META_MORE_RE = re.compile(r'^[ ]{4,}(?P<value>.*)') -YAML_BEGIN_RE = re.compile(r'^-{3}(\s.*)?') -YAML_END_RE = re.compile(r'^(-{3}|\.{3})(\s.*)?') +BEGIN_RE = re.compile(r'^-{3}(\s.*)?') +END_RE = re.compile(r'^(-{3}|\.{3})(\s.*)?') class MetaExtension (Extension): """ Meta-Data extension for Python-Markdown. """ - def __init__(self, *args, **kwargs): - self.config = { - 'yaml': [False, "Parse meta data specified as a " - "'---' delimited YAML front matter"], - } - super(MetaExtension, self).__init__(*args, **kwargs) def extendMarkdown(self, md, md_globals): """ Add MetaPreprocessor to Markdown instance. """ md.preprocessors.add("meta", - MetaPreprocessor(md, self.getConfigs()), + MetaPreprocessor(md), ">normalize_whitespace") class MetaPreprocessor(Preprocessor): """ Get Meta-Data. """ - def __init__(self, md, config): - self.config = config - super(MetaPreprocessor, self).__init__(md) - def run(self, lines): """ Parse Meta-Data and store in Markdown.Meta. """ meta = {} key = None - yaml_block = [] - have_yaml = False - if lines and YAML_BEGIN_RE.match(lines[0]): - have_yaml = True + if lines and BEGIN_RE.match(lines[0]): lines.pop(0) - if self.config['yaml'] and not yaml: # pragma: no cover - log.warning('Document with YAML header, but PyYAML unavailable') while lines: line = lines.pop(0) m1 = META_RE.match(line) - if line.strip() == '' or have_yaml and YAML_END_RE.match(line): + if line.strip() == '' or END_RE.match(line): break # blank line or end of YAML header - done - elif have_yaml and self.config['yaml'] and yaml: - yaml_block.append(line) - elif m1: + if m1: key = m1.group('key').lower().strip() value = m1.group('value').strip() try: @@ -96,8 +70,6 @@ class MetaPreprocessor(Preprocessor): else: lines.insert(0, line) break # no meta data - done - if yaml_block: - meta = yaml.load('\n'.join(yaml_block), SafeLoader) self.markdown.Meta = meta return lines |