Autor Zpráva
Camo
Profil
Zdravím,
prosím vás čo si myslíte o zvýrazňovaní kódu cez javascript? Našiel som niečo takéto: https://github.com/google/code-prettify
Zdá sa že to funguje. Nechce sa mi to robiť na servry. Ak dobre vidím aj Diskuse zvýrazňuje cez js. čo za zvýrazňovač sa tu používa?
Jan Tvrdík
Profil
Jush
Camo
Profil
Jan Tvrdík:
Díky

A nevedel by tu niekto tie zvýrazňovače porovnať?
Kajman
Profil
Pokud vybíráte jen ze dvou, bude lepší si oba vyzkoušet a podle toho se rozhodnout.
_es
Profil
Camo:
Nechce sa mi to robiť na servry. Ak dobre vidím aj Diskuse zvýrazňuje cez js. čo za zvýrazňovač sa tu používa?
Používa sa to len ako (dlhodobé) provizórne riešenie: Zvýrazňování kódů na straně serveru.
Camo
Profil
Sakrapráce, každý z tých dvoch má nejaký problém. Ako je napr. možné, že tu sa tento kód cez Jush ofarbí a u mňa nie:
abstract class BasePresenter extends Nette\Application\UI\Presenter
{

    /** @var Nette\Database\Context @inject */
    public $database;

    /** @var  Nette\Security\IAuthorizator */
    public $authorizator;

    public function startup()
    {
        parent::startup();
        $this['breadcrumbs']->add('Články', ':Articles:default');
    }
A sakra neofarbil sa ani tu.
A čo toto:
    /**
     * @param $name
     * @return \NasExt\Controls\VisualPaginator
     */
    protected function createComponentVp($name)
    {
        $control = new \NasExt\Controls\VisualPaginator($this, $name);
        // enable ajax request, default is false
        /*$control->setAjaxRequest();

       
    }
A zase Jush je obrovský, ale Google-prettify robí chyby....


No tak je zrejme rozhodnuté. Takto to nemôže fungovať.

Moderátor Alphard: Zkráceno, nejsem na hřišti.
Dan Charousek
Profil
Camo:
Ako je napr. možné, že tu sa tento kód cez Jush ofarbí a u mňa nie:

Zkus to s otevírací značkou php:
<?php

    /**
     * @param $name
     * @return \NasExt\Controls\VisualPaginator
     */
    protected function createComponentVp($name)
    {
        $control = new \NasExt\Controls\VisualPaginator($this, $name);
        // enable ajax request, default is false
        /*$control->setAjaxRequest();
 
        $that = $this;
        $control->onShowPage[] = function ($component, $page) use ($that) {
        if($that->isAjax()){
        $that->invalidateControl();
        }
        };*/
        return $control;
    }
    
?>
Alphard
Profil
Tady je problém s detekcí jazyka, která je doimplementovaná přímo pro tuto diskusi, to dělal myslím Kajman a Chamurappi. abstract není rozpoznáno jako klíčové slovo, <?php to vyřeší. Jestli si chcete hrát, běžte na hřiště, sem tychle kódy nevkládejte.

<?php
abstract class BasePresenter extends Nette\Application\UI\Presenter
{
 
    /** @var Nette\Database\Context @inject */
    public $database;
 
    /** @var  Nette\Security\IAuthorizator */
    public $authorizator;
 
    public function startup()
    {
        parent::startup();
        $this['breadcrumbs']->add('Články', ':Articles:default');
    }
    public function afterRender()
    {
        if ($this->isAjax() && $this->hasFlashSession())
            $this->redrawControl('flash');
    }
    /**
     * @desc Used in menu detects name of module  section == module
     * @param $url
     * @return bool
     */
    
Camo
Profil
Hej značka <?php to vyrieši ale aj tam zostane viditeľná.
Alphard
Profil
Lze zapsat explicitní [prephp], pak tento workaround není třeba. Pro původní JUSH to je ale irelevantní, tam je potřeba explicitně zadat obarvovaný jazyk, žádná autodetekce tam není.
Camo
Profil
A ako sa s tým vyrovnávajú serverové highlightery? Dokážu takéto útržky kódu spracovať správne? Aké používate?
Pozná niekto GeSHi?
snazimse
Profil
Camo:
Pozná niekto GeSHi?
Jo pracuje se s tím dobře si myslím. Umí to snad drtivou většinu jazyků co existujou.


Alphard:
Pro původní JUSH to je ale irelevantní, tam je potřeba explicitně zadat obarvovaný jazyk, žádná autodetekce tam není.

Já jsem se díval do kódu, pro zajímavost, je to už starší knihovna. Narazil jsem na tuto js proměnnou s regulárem:
 var php = /<\?(?!xml)(?:php)?|<script\s+language\s*=\s*(?:"php"|'php'|php)\s*>/i; // asp_tags=0, short_open_tag=1 

A vůbec jsem nepochopil v tom reguláru ty php alternativy v atributu language. A docela mě dostalo, že se takhle používalo php, to jsem teda čuměl o tom jsem neslyšel ani neviděl dneska v žádném php kódu.Používá se to dneska ještě někde?
juriad
Profil
There are four different pairs of opening and closing tags which can be used in PHP. Two of those, <?php ?> and <script language="php"> </script>, are always available. The other two are short tags and ASP style tags, and can be turned on and off from the php.ini configuration file. As such, while some people find short tags and ASP style tags convenient, they are less portable, and generally not recommended.
php.net/manual/en/language.basic-syntax.phpmode.php
snazimse
Profil
juriad:

Děkuji za zpřesnění, každopádně je to nepraktické, tak se ani nedivím, že jsem to nikde neviděl. A ty asp tagy, vůbec nechápu, k čemu to bylo zamýšleno jaký by to mělo přínos. A ještě to sami uznají they are less portable, and generally not recommended.“
Alphard
Profil
juriad [#13], snazimse [#14]:
Dodávám, že budou zrušeny wiki.php.net/rfc/remove_alternative_php_tags.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: