diff --git a/Website.lektorproject b/Website.lektorproject index a5da2add..1720cf33 100644 --- a/Website.lektorproject +++ b/Website.lektorproject @@ -12,3 +12,4 @@ default = yes [packages] lektor-webpack-support = 0.1 lektor-disqus-comments = 0.1 +lektor-markdown-header-anchors = 0.1 diff --git a/packages/markdown-header-anchors/lektor_markdown_header_anchors.py b/packages/markdown-header-anchors/lektor_markdown_header_anchors.py deleted file mode 100644 index 12b439a1..00000000 --- a/packages/markdown-header-anchors/lektor_markdown_header_anchors.py +++ /dev/null @@ -1,42 +0,0 @@ -from lektor.pluginsystem import Plugin -from lektor.utils import slugify -from markupsafe import Markup -from collections import namedtuple - - -TocEntry = namedtuple('TocEntry', ['anchor', 'title', 'children']) - - -class MarkdownHeaderAnchorsPlugin(Plugin): - name = 'Markdown Header Anchors' - description = 'Adds anchors to markdown headers.' - - def on_markdown_config(self, config, **extra): - class HeaderAnchorMixin(object): - def header(renderer, text, level, raw): - anchor = slugify(raw) - renderer.meta['toc'].append((level, anchor, Markup(text))) - return '%s' % (level, anchor, text, level) - config.renderer_mixins.append(HeaderAnchorMixin) - - def on_markdown_meta_init(self, meta, **extra): - meta['toc'] = [] - - def on_markdown_meta_postprocess(self, meta, **extra): - prev_level = None - toc = [] - stack = [toc] - - for level, anchor, title in meta['toc']: - if prev_level is None: - prev_level = level - elif prev_level == level - 1: - stack.append(stack[-1][-1][2]) - prev_level = level - elif prev_level > level: - while prev_level > level: - stack.pop() - prev_level -= 1 - stack[-1].append(TocEntry(anchor, title, [])) - - meta['toc'] = toc diff --git a/packages/markdown-header-anchors/setup.py b/packages/markdown-header-anchors/setup.py deleted file mode 100644 index ff52308e..00000000 --- a/packages/markdown-header-anchors/setup.py +++ /dev/null @@ -1,12 +0,0 @@ -from setuptools import setup - -setup( - name='lektor-markdown-header-anchors', - version='0.1', - py_modules=['lektor_markdown_header-anchors'], - entry_points={ - 'lektor.plugins': [ - 'markdown-header-anchors = lektor_markdown_header_anchors:MarkdownHeaderAnchorsPlugin', - ] - } -)