Как стать автором
Обновить

Подготовка статей для хабра: расширение Markdown + подсветка синтаксиса + загрузка изображений

Время на прочтение3 мин
Количество просмотров2.4K

Описание

Представляю вашему вниманию расширение «человеческого» языка разметки Markdown для использования на хабре.Основные цели:
  • Заменить «человеко-читабельный», но отнюдь не «человеко-писабельный» HTML на Markdown.
  • Обеспечить поддержку расширенной разметки хабра.
  • Автоматизировать загрузку изображений и вставку их URL в статью.
  • Добавить подсветку синтаксиса.
Использование
  1. Качаем и распаковываем архив в отдельную папку
  2. Пишем статью в файле article.txt
  3. Копируем в папку нужные изображения
  4. Набираем make copy, получаем HTML-текст статьи в файле article.html и в буфере обмена
  5. Постим на хабр
Состав комплекта
  • habraml.py — конвертер расширенной разметки Markdown в HTML.
  • Makefile — команды для создания HTML, загруки изображений и прочего.
  • article.txt — текст этой статьи в качестве примера.
Требования
  • python-markdown
  • python-pygments
  • photo-upload
  • xsel
  • make
Цели make
  • make — выгрузить изображения и сгенерировать HTML
  • make upload-images — выгрузить изображения на imageshack.us
  • make copy — выгрузить изображения, сгенерировать и скопировать HTML в буфер обмена
Скачать
habraml.zip

Стандартная разметка Markdown

Официальная документация по синтаксису
Заголовки
Заголовок первого уровня
========================

# Тоже заголовок первого уровня #

# Или так

Заголовок второго уровня
------------------------

## Тоже второго

### Третьего
Выделение текста
простой текст,
*наклонный*, _тоже наклонный_,
**жирный**, __тоже жирный__,
`код`
простой текст, наклонный, тоже наклонный, жирный, тоже жирный, код
Цитата
> Знакомые — это люди, на всякий случай называющие вас дураком.
> Хорошие знакомые уже могут рассказать о вас скверный анекдот.
> Друзьями же называются те, которые действительно знают о вас несколько настоящих гадостей.
> Дон-Аминадо
Знакомые — это люди, на всякий случай называющие вас дураком. Хорошие знакомые уже могут рассказать о вас скверный анекдот. Друзьями же называются те, которые действительно знают о вас несколько настоящих гадостей. Дон-Аминадо
Или так:
> Идея, пожалуй, имеет тем большую самостоятельную ценность,
чем менее верит в нее тот, от кого она исходит, ибо она тогда не
отражает его желаний, нужд и предрассудков...
Оскар Уайльд
Идея, пожалуй, имеет тем большую самостоятельную ценность, чем менее верит в нее тот, от кого она исходит, ибо она тогда не отражает его желаний, нужд и предрассудков… Оскар Уайльд
Ссылки
[link to habrahabr](http://habrahabr.ru)
link to habrahabr
Список
Ненумерованный (можно использовать «-», «+» и «*»):
- item1
- item2
  • item1
  • item2
Нумерованный (можно использовать один номер для всех элементов):
1. First
2. Second
  1. First
  2. Second
Горизонтальная черта
--------------------------

Изображение
![Логотип Хабра](https://habrastorage.org/getpro/habr/post_images/142/895/3aa/1428953aa0d7b50586df81c2bbf78b53.gif)
Логотип Хабра

Расширенное форматирование

Заголовки
Уровни заголовков сдвинуты на 3, как того требует хабр. Т.е. заголовки начинаются с четвёртого уровня.
Хабракат
-x----------------------------

-x---- Текст вместо "Читать дальше"
Ссылка на хабраюзера
@kriomant
kriomant
Зачеркивание
~~зачёркнутый текст~~
зачёркнутый текст
Локальные изображения
Если адрес изображения не начинается с «http://», то изображение считается локальным. В этом случае из файла «адрес_изображения.address» читаются две строки: первая — адрес уменьшенного изображения, вторая — адрес страницы просмотра полноразмерного изображения.В код страницы вставляется уменьшенная копия изображения со ссылкой на оригинал.Файлы «*.address» автоматически формируются скриптом сборки при загрузке изображений.
Подсветка синтаксиса
@ python @
print('string')
for item in (2, 3, 4):
    print(item)
превращается в:
print('string')
for item in (234):
    print(item)

Проблемы отображения

Парсер хабра — весьма странная и непредсказуемая штука. Он почему-то вырезает тэги «p», не отображает «hr», неверное парсит ссылки и даже сам проставляет восклицательные знаки.Самые необходимые хаки, без которых вообще ничего не показывается, я применил. Корректировать код в дальнейшем под разнообразные глюки я считаю неправильным: парсер-то, возможно, через год-другой и поправят, а вот текст статьи никто переделывать уже не будет.
Теги:
Хабы:
+5
Комментарии34

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн