Расширение PHP Markdown для принятия имен классов CSS - PullRequest
6 голосов
/ 28 января 2010

Я большой поклонник Markdown (использую его почти во всех моих проектах PHP), но не фанат его ограниченного вывода. Большая часть рендеринга слишком проста, и на самом деле не дает мне много контроля или свободы относительно ее расположения. Например, я могу вставить изображение:

![Alt Text](path/to/image.jpg)
This is my image!

Но это будет просто преобразовано в:

<p>
  <img src="path/to/image.jpg" alt="Alt Text" /> This is my image!
</p>

Предположим, я хотел разместить свое изображение справа? В настоящее время я не могу добавить какие-либо классы к синтаксису, но разве это не будет хорошей возможностью, чтобы иметь? Я хотел бы иметь возможность вывести:

<p>
  <img src="path/to/image.jpg" alt="Alt Text" class="alignright caption"> 
  This is my image!
</p>

Поддержка одного или нескольких классов CSS была бы феноменальной. Мой вопрос касается лучшего способа реализации этой поддержки в PHP-версии Markdown.

Идеи

Ответы [ 5 ]

8 голосов
/ 29 января 2010

Markdown не имеет синтаксиса в базовой версии для поддержки имен CSS class, встроенных стилей или атрибутов id. В зависимости от того, что вы делаете, текстиль может оказаться лучшим решением для вас. В некоторых случаях он похож на Markdown, а в других он совсем другой. Например, чтобы получить результат, который вы упомянули выше в своем вопросе, вы должны использовать эту текстовую строку:

Что бы перевести на это:

<p>
  <img src="path/to/image.jpg" alt="Alt Text" class="alignright caption"> 
  This is my image!
</p>

Вы также можете применять встроенные стили (ужасы), используя {}

Вы можете играть с синтаксисом на их демо-странице.

У меня возникли проблемы с поиском текстильного парсера для PHP, поэтому ваш ответ на этот ответ может оказаться не таким большим, как я надеялся. Я нашел этот фрагмент , но он, конечно, не может быть полным.

4 голосов
/ 28 января 2010

Нет лучшего способа реализовать это в Markdown; вы бы просто перестали использовать Markdown (вместо этого у вас есть собственное творение).

К счастью, Markdown не ограничивает ваш контроль или свободу так сильно, как вы думаете.

Уценка не является заменой HTML или даже близко к нему. Его синтаксис очень мал, соответствует только очень небольшому подмножеству тегов HTML. Идея состоит в том, чтобы не создавать синтаксис, который облегчает вставку тегов HTML. На мой взгляд, HTML-теги уже легко вставить. Идея Markdown - облегчить чтение, запись и редактирование прозы. HTML является издательским форматом; Уценка - это запись формат. Таким образом, синтаксис форматирования Markdown решает только проблемы, которые могут быть переданы в виде простого текста.

Для любой разметки, которая не охватывается синтаксисом Markdown, вы просто используете сам HTML. Нет необходимости вводить предисловие или разделять его, чтобы указать, что вы переходите с Markdown на HTML; вы просто используете теги.

Источник: Документация по синтаксису уценки - встроенный HTML

2 голосов
/ 12 декабря 2010

Проверьте информацию по этой ссылке:

http://www.pingtrip.com/weblog/2008/04/adding-custom-tags-to-markdown

Вы можете использовать эту точную технику, чтобы создать span или div 'block', к которому будет применен стиль. Кажется, он работает на нескольких строках без проблем.

Было бы сложнее включить имя класса в тег, но насколько я не могу сказать прямо сейчас. Я собираюсь сделать это в конце концов, я опубликую результаты здесь, если я сделаю.

Интересно, почему так много людей говорят: «Уценка не для этого»? Уценка слишком полезна, чтобы ограничиваться блогами и комментариями на доске объявлений.

РЕДАКТИРОВАТЬ:

Чтобы было понятнее без перехода по ссылке:

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

-s% classname%
Вот твой

скрипт уценки
s-

Это может быть довольно легко реализовано для применения блока span / div определенного класса / id. Перейдите по ссылке, чтобы увидеть пример реализации блоков «Предупреждение» и «Примечание».

1 голос
/ 19 августа 2011

использовать уценку с хамлом, см. http://xtargets.com/2010/10/05/why-wouldnt-you-use-haml/

0 голосов
/ 09 июня 2016

Php Markdown Extra включает возможность добавления классов, см. https://michelf.ca/projects/php-markdown/extra/#spe-attr. Эта функция была добавлена ​​в марте 2015 г., см. https://github.com/michelf/php-markdown

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...