1. rusty_angel

    10.08.2008 15:32

    Если инициализировать как
    hljs.initHighlightingOnLoad();
    , то вот такой код:
    function limit_string($string, $len)
    {
    if(strlen($string) <= $len) return $string;

    $words = str_word_count($string, 2);

    $pos=0;
    foreach($words as $indx)
    if($indx<$len) $pos=$indx;

    if($pos == 0) $string = substr($string, 0, $len);
    else $string = substr($string,0,$pos);

    return rtrim($string, '!@#$^&*(;".,/?- ')."...";
    }
    подсвечивается как перл, несмотря на явно похапешные function и rtrim.

    При это, есть делать
    hljs.initHighlightingOnLoad('php','perl','sql',...,'python');
    (куча языков, среди которых есть и Perl и PHP, язык определяется верно.
  2. rusty_angel

    10.08.2008 15:35

    Вот, этот форум - как раз тест-кейз: здесь всё верно подсвечивается, потому что здесь hljs инициализируется с перечислением языков.
    А у меня (надеюсь, никто не сочтёт дешёвым пиаром) — вызывается без параметров и принимает php за перл.
  3. Иван Сагалаев

    10.08.2008 22:12

    Посмотрю обязательно. По идее, в дефолтном наборе Perl и PHP оба есть, поэтому перечисление играть роли не должно (здесь на форуме Perl просто нет). Но в любом случае, я думаю, что добавление распознавания системных функций PHP делу поможет.

bbcode