ФорумПрограммированиеПыхнуть хотите?Готовые решения → Markdown handler

Markdown handler

  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 7 ноября 2012 г. 20:49, спустя 2 минуты 6 секунд

    Кто не знает, что такое Markdown, могут почитать wiki
    Вот простейший способ просматривать документы в разметке Markdown на своем сайте:
    в .htaccess добавляем строки

    Action markdown /markdown/handler.php
    AddHandler markdown .md .markdown

    создаем каталог markdown и помещаем туда handler.php

    <?php
    header('Content-type: text/html; charset=utf-8');
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="/markdown/style.css">
    <meta name="content-type" http-equiv="content-type" value="text/html; utf-8">
    </head>
    <body>
    <?php

    require('markdown.php');

    $legalExtensions = array('md', 'markdown');

    $file = str_replace('\\', '/', realpath($_SERVER['PATH_TRANSLATED']));
    if($file
    && in_array(strtolower(substr($file,strrpos($file,'.')+1)), $legalExtensions)
    && substr($file,0,strlen($_SERVER['DOCUMENT_ROOT'])) == $_SERVER['DOCUMENT_ROOT']) {
    echo Markdown(file_get_contents($file));
    } else {
    echo "<p>Bad filename given</p>";
    }
    ?>
    </body>
    </html>


    Рядом кладем парсер PHP Markdown
    а стилевой файл, какой захотите.

    Теперь при обращении к любому файлу на сайте с расширением .md или .markdown будет показываться нормальная страница с полноценной разметкой. см. пример - ссылка сдохла

    Рецепт взят отсюда: sminnee's markdown-handler, я только добавил str_replace чтобы на Windows тоже работало
    ιιlllιlllι унц-унц
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 18 мая 2010 г. 2:58, спустя 6 часов 9 минут 28 секунд

    Ну это куда-нибудь в готовые решения надо =)
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 18 мая 2010 г. 6:08, спустя 3 часа 9 минут 18 секунд

    не стал, потому что Г.Р. "Для тех, кто хочет поделиться своими решениями". тут моего с гулькин нос )
    просто сам буду пользоваться и обществу может пригодиться.
    ιιlllιlllι унц-унц
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 18 мая 2010 г. 11:27, спустя 5 часов 19 минут 32 секунды

    а че за штука, долго читать можешь в двух словах объяснить фичу?
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 18 мая 2010 г. 13:22, спустя 1 час 54 минуты 55 секунд

    ну я не знаю с какого места начать :) очень часто в дистрибах лежат доки с разметкой markdown.
    фишка в том, что это САМЫЙ простой и универсальный способ распарсить такие доки. ну или я не знаю проще.
    ιιlllιlllι унц-унц
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 18 мая 2010 г. 15:10, спустя 1 час 47 минут 32 секунды

    artoodetoo, а, понятно, спасибо
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 18 мая 2010 г. 16:10, спустя 1 час 6 секунд

    я на гитхабе читаю. Там при просмотре файла в репозитории он "хавает" его
    Спустя 39 сек.
    ваще не очень люблю я маркдовн, для меня он какой-то сложный (в плане верстать на нем сложно). К бб-кодам привык
    Спустя 55 сек.
    и все же я предлагаю в готовые решения перенести
  • s.r.

    Сообщения: 1 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2012 г. 20:09, спустя 904 дня 3 часа 58 минут

    Очень крутая штука, для чеинджлогов под каждый проект.

    Но вот беда, не пойму что ему не нравится. на локалке(mac/Apache) работает, а на линукс апач довольно скупо ругается "Bad filename given"
    Php выдает: Notice: Undefined index: PATH_TRANSLATED in /home/ihplafv/public_html/projectwebsite.com/markdown/handler.php on line 17
    Афтор хандлера не сделал к сожалению или к счастью возможности на гитхубе пожаловаться.
    Может кто опытный мог бы посоветовать, в чем может быть проблема и куда копать??

    Заранее спасибо

    Алекс
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 7 ноября 2012 г. 20:47, спустя 38 минут 5 секунд

    Видимо есть разница в версиях апача. Подбери какую-нибудь другую переменную.
    Суть в том, что $_SERVER['PATH_TRANSLATED'] должен указывать на твой .md файл, всего навсего ;) Вставь первой командой скрипта die(var_export($_SERVER, true)); и увидишь что можно использовать вместо PATH_TRANSLATED.

    Удачи!
    ιιlllιlllι унц-унц
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2012 г. 21:07, спустя 20 минут 42 секунды

    В готовые решения!!! Ну его в жопу потом это искать во флейме
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz 8 ноября 2012 г. 2:02, спустя 4 часа 54 минуты 36 секунд

    Рекомендую texy. Markdown намного тупее.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!