Как создать новую реплику уценки, расширяющую другую с помощью python-markdown

Я использую уценку для пеликана, но контроль над изображениями не очень хорош (как и с остальной уценкой)

Я пытаюсь создать расширение, чтобы обернуть изображение с некоторой шириной, чтобы растянуть их и некоторые теги вокруг них.

В основном я хочу написать это:

!![alt text](path.to.image.png title of the image)

и создать этот HTML

<a href="path.to.image.png"><img width=100% src="path.to.image.png" alt="alt text" title="title of the image"/></a>

Учебник слишком прост. Можно ли обернуть текущий IMG-код или мне нужно создать его, как это совершенно новый MD CUE

Спасибо!

1 ответ

Решение

Да, вам нужно будет создать свой собственный встроенный шаблон. Ни один из встроенных шаблонов не будет работать для этого. Тем не менее, это не должно быть трудно:

class MyImgPattern(Pattern):
    def handleMatch(self, m):
        a = etree.Element('a', attrib={'href':m.group(3)})
        img = etree.Element('img', attrib={
            'width': '100%', 
            'src': m.group(3),
            'alt': m.group(2),
            'title': m.group(4)
        })
        a.append(img)
        return a

Обратите внимание, что я предполагаю определенную структуру вашего регулярного выражения, основанную на той, которая используется встроенным шаблоном изображения. В зависимости от того, какое регулярное выражение вы используете, вам может потребоваться настроить группы соответствующим образом.

Затем просто скажите Markdown о вашем новом паттерне, как обычно, и вы должны быть в порядке.

Другие вопросы по тегам