LINUX.ORG.RU

Подмена html тегов markdown на свои в django

 , ,


0

1

Добрый день ЛОР. Ткните кто нибудь носом где реализовывается подмена html кода? Допустим имея стандартную разметку markdown:

<ul>
    <li></li>
    <li></li>
</ul>

подменять ее на свою типа:

<ul class='my_ul_class'>
    <li class='my_li_class'><i class='my_i_class'></i></li>
    <li class='my_li_class'><i class='my_i_class'></i></li>
</ul>
★★★★
Ответ на: комментарий от Infra_HDC

Да, как у него устроен рендеринг из markdown, какой библиотекой.

gruy ★★★★★
()
Ответ на: комментарий от gruy

Могу. Текст контента парсится билеотекой markdown.

xaTa ★★★★
() автор топика

Решил банальной replace()

xaTa ★★★★
() автор топика

По-нормальному — парсить в AST, применять к нему твоё преобразование, потом из него генерировать markdown/html. На Pandoc, наверно, сделать будет несложно.

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 1)

парси это lxml и потом манипулируй тегами.

dicos ★★
()
Допустим имея стандартную разметку markdown:

<ul>
    <li></li>
    <li></li>
</ul>

Какое отношение это имеет к markdown?

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

Что тут непонятного? Он хочет, чтобы у него вот это:

* one
* two
* three

рендерилось не в это:

<ul>
    <li>one</li>
    <li>two</li>
    <li>three</li>
</ul>

а в это:

<ul class='my_ul_class'>
    <li class='my_li_class'><i class='my_i_class'>one</i></li>
    <li class='my_li_class'><i class='my_i_class'>two</i></li>
    <li class='my_li_class'><i class='my_i_class'>three</i></li>
</ul>

ТС: чем из маркдауна в html-то рендеришь? Там и смотри, есть ли возможность как-то задать или нет. Если нет, то тупо в исходниках самой этой библиотеки и заменить.

Кстати, нафига тебе там вообще, если он всё равно везде… Всякий css можно и самому задать. Какой смысл делать каждый пункт в дополнительном?

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от CrX

А… зачем? Это рендерится это внутри какого-то контейнера типа

<div class="md_container_rendered">
    <ul>
        <li>one</li>
        <li>two</li>
        <li>three</li>
    </ul>
</div>

То просто применить css корректно, а не как неандертальцы 25 лет назад:

md_container_rendered ul {
   background-color: rgb(255, 0, 255);
}

md_container_rendered li {
   background-color: rgb(0, 0, 255);
   font-style: italic;
}

Если это рендерится в полноценный html (а не в контейнере), то просто убрать префикс контейнера в css.

PPP328 ★★★★★
()
Последнее исправление: PPP328 (всего исправлений: 1)
Ответ на: комментарий от PPP328

Вот зачем не знаю — это уже к ТС вопрос :)

Может надо зачем-то…

CrX ★★★★★
()
Ответ на: комментарий от CrX

ТС: чем из маркдауна в html-то рендеришь?

Стандартной питоновской библиотекой markdown

Кстати, нафига тебе там вообще, если он всё равно везде… Всякий css можно и самому задать.

В css лезть не хочу.

xaTa ★★★★
() автор топика
Последнее исправление: xaTa (всего исправлений: 1)
Ответ на: комментарий от PPP328

Я вас расстрою, но это не список, а inline html.

Я особо не растроился, я 1000% знаю что эту html разметку генерирует мне библеотека markdown.

xaTa ★★★★
() автор топика
Ответ на: комментарий от PPP328

То просто применить css корректно, а не как неандертальцы 25 лет назад:

Это только от части решит мою проблему. Там еще между <li><li/> есть теги которые css мне не нарисует. О css я подумал в самую первую очередь, но оставил эту затею. Да и чисто спортивный интерес это решить на стороне бек-энда.

xaTa ★★★★
() автор топика
Последнее исправление: xaTa (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.