Описание
Представляю вашему вниманию расширение «человеческого» языка разметки Markdown для использования на хабре.Основные цели:
- Заменить «человеко-читабельный», но отнюдь не «человеко-писабельный» HTML на Markdown.
- Обеспечить поддержку расширенной разметки хабра.
- Автоматизировать загрузку изображений и вставку их URL в статью.
- Добавить подсветку синтаксиса.
Использование
- Качаем и распаковываем архив в отдельную папку
- Пишем статью в файле article.txt
- Копируем в папку нужные изображения
- Набираем
make copy
, получаем HTML-текст статьи в файле article.html и в буфере обмена
- Постим на хабр
Состав комплекта
- 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
Нумерованный (можно использовать один номер для всех элементов):
1. First
2. Second
- First
- 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 (2, 3, 4):
print(item)
Проблемы отображения
Парсер хабра — весьма странная и непредсказуемая штука. Он почему-то вырезает тэги «p», не отображает «hr»,
неверное парсит ссылки и даже
сам проставляет восклицательные знаки.Самые необходимые хаки, без которых вообще ничего не показывается, я применил. Корректировать код в дальнейшем под разнообразные глюки я считаю неправильным: парсер-то, возможно, через год-другой и поправят, а вот текст статьи никто переделывать уже не будет.