Pastacode

Description

Vous pouvez afficher du code source dans la fenêtre d’édition, à partir d’un fichier, ou à partir d’un service web tel que Github, Gist, Pastbin, Bitbucket ou encore Bitbucket snippets. Les extraits importés à partir des hébergeurs de code sont mis en cache afin de diminuer le nombre de requêtes HTTP.

Ne vous souciez plus de mettre à jour vos articles quand vous modifiez vos codes !

Pastacode vous permet d’améliorer l’affichage de vos codes sources en faisant appel aux extensions de PrismJs (lignes surlignées, documentation des fonctions…)

7 thèmes de colorations syntaxiques sont inclus ; créez les vôtres !

Langages de programmation disponibles :

  • HTML
  • CSS
  • JavaScript
  • PHP
  • C
  • C++
  • Java
  • Sass
  • Python
  • SQL
  • Ruby
  • CoffeeScript
  • Bash
  • Apache config
  • less
  • haml
  • markdown

Si vous utilisiez une autre extension de coloration syntaxique, sachez que des scripts de migration de codes sont à votre disposition 🙂

Captures d’écran

  • Capture de la fenêtre modale de Pastacode
  • Thème de coloration PrismJS par défaut
  • Dark color scheme
  • Coy color scheme
  • Okaidia color scheme
  • Tomorrow color scheme
  • Twilight color scheme
  • Funky color scheme

FAQ

Pour plus d’informations, rendez-vous sur le wiki de Pastacode

Comment définir une durée de cache personnalisée ?

Paste these lines into your functions.php theme file:
add_filter( ‘option_pastacode_cache_duration’, ‘my_pastacode_cache_duration’ );
function my_pastacode_cache_duration( $duration ) {
$duration = DAY_IN_SECOND*3; // 3 days
return $duration;
}

Comment personnaliser le thème de coloration syntaxique ?

Paste these lines into your functions.php theme file:
add_action( ‘wp_enqueue_scripts’, ‘custom_enqueue_script’, 11 );
function custom_enqueue_script() {
$urlofmynewscheme = get_stylesheet_directory_uri() . ‘/prism-okaida-willy.css’; //this is an example
wp_deregister_style( ‘prismcss’ );
wp_register_style( ‘prismcss’, $urlofmynewscheme, false, ‘1’, ‘all’ );
}
Get inspired of the default scheme to build your schemes

Comment filtrer la liste des langages disponible ?

Paste these lines into your functions.php theme file:
//If you just want php, html, css and javascript support
add_filter( ‘pastacode_langs’, ‘_pastacode_langs’ );
function _pastacode_langs( $langs ) {
$langs = array(
‘php’ => ‘PHP’,
‘markup’ => ‘HTML’,
‘css’ => ‘CSS’,
‘javascript’ => ‘JavaScript’, );
return $langs;
}

Comment ajouter un nouvel hébergeur de code ?

Paste these lines into your functions.php theme file:
//Take WordPress SVN, for example
//register a provider
add_filter( ‘pastacode_services’, ‘_pastacode_services’ );
function _pastacode_services( $services ) {
$services[‘wordpress’] = ‘core.svn.wordpress.org’;
return $services;
}

//Define pastabox lightbox inputs
add_action( 'pastacode_fields', '_pastacode_fields' );
function _pastacode_fields( $fields ) { 
    $fields['wordpress'] = array(  // 'wordpress' or 'whatever'
        'classes'     => array( 'wordpress' ), // same value as the key
        'label'       => sprintf( __('File path relative to %s', 'pastacode'), 'https://core.svn.wordpress.org/' ), 
        'placeholder' =>'trunk/wp-config-sample.php', //if placeholder isn't defined, it will be a textarea
        'name'        => 'path_id' //these value return shortcode attribute (path_id, repos, name, user, version)
        );
    $fields['pastacode-lines']['classes'][] = 'wordpress'; // Add ability to select lines
    $fields['pastacode-highlight']['classes'][] = 'wordpress'; // Add ability to highlight somes

    return $fields;
}

//Build the function to retrieve the code
// "pastacode_wordpress" hook name (1st param) = "pastacode_" + "wordpress" or "whatever"
add_action( 'pastacode_wordpress', '_pastacode_wordpress', 10, 2 );
function _pastacode_wordpress( $source, $atts ) {
    extract( $atts );
    if( $path_id ) {
        $req  = wp_sprintf( 'https://core.svn.wordpress.org/%s', str_replace( 'https://core.svn.wordpress.org/', '', $path_id ) );
        $code = wp_remote_get( $req );
        if( ! is_wp_error( $code ) && 200 == wp_remote_retrieve_response_code( $code ) ) {
            $data = wp_remote_retrieve_body( $code );
            $source[ 'url' ]  = $req; //url to view source
            $source[ 'name' ] = basename( $req ); //filename
            $source[ 'code' ] = esc_html( $data ); //the code !!   
            //$source[ 'raw' ] contain raw source code. But there are no raw source code delivered by WordPress SVN             
        }
    }
    return $source;
}

N’ajoutez surtout pas votre site principal ! Un contributeur pourrait alors ajouter un shortcode pour afficher le « wp-config.php » et le lire !

Avis

Lire les 10 avis

Journal

2.0

  • 15 décembre 2016
  • compatible avec le module de commentaires de WordPress
  • régularisation des espaces superflus en début de code
  • masquage des titres « vides » sur les blocs de code saisis à la main
  • amélioration de l’expérience de rédaction de code avec Codemirror
  • icônes pour écrans haute définition
  • modale tinyMCE compatible avec les smartphones
  • amélioration des feuilles de styles de PrismJS et tinyMCE
  • changement de méthode de récupération des snippets à partir de GitHub (sans utiliser d’encodage en base64)
  • nouveau site de démonstration d’utilisation
  • résolution d’un problème de conversion du format de code court (entre les version 1.5 et 1.6)
  • Résolution du problème de saisie du caractère % dans les blocs de code

1.8

  • 22 août 2016
  • Nouveau mode de prévisualisation du code dans les vues TinyMCE

1.7

  • 19 août 2016
  • Pastacode est maintenant compatible avec l’extension bbPress

1.6

1.5.1

1.5

  • 23 juillet 2015
  • Implémentation de l’API views
  • Correction d’un bug lors de la création de nouveaux codes courts (les valeurs du code court précédent étaient reprises)

1.4.2

  • 21 janvier 2015
  • il et maintenant possible de cibler un fichier au sein d’un Gist
  • Suppression des fichiers de démonstration de PrismJs (index.html à l’intérieur du répertoire de l’extension)

1.4.1

1.4

  • 16 janvier 2015
  • Nouvelle fonctionnalité : vous pouvez maintenant éditer vos codes « manuels » en plein écran !
  • Mise à jour de PrismJs et de ses extensions
  • Nouvelle option pour choisir si les informations associées à un bloc de code apparaissent dessus ou dessous

1.3

  • 5 mai 2014
  • Amélioration du support de l’éditeur TinyMCE (placeholder visuel dans l’éditeur, nouveau bouton dans TinyMCE…)
  • Solution de secours en cas du dépassement des quotas de l’API de Github (supporte maintenant plus de 30 requêtes par heure)
  • Compatiblité ajax (en utilisant le hook pastacode_ajax)
  • Correction de bug&nbsp: retours chariots disgracieux sur l’affichage du code

1.2.1

  • 21 novembre 2013
  • Correction de bug :désactivation du cache pour les codes manuels

1.2

  • 15 octobre 2013
  • La modification de la durée de mise en cache ne déclenche plus de purge automatiquement
  • Nouveau bouton « Purger le cache » dans la page d’option utilisez-le pour supprimer tous les transients (ils contiennent les valeurs renvoyées par les hébergeurs de codes)
  • Correction d’un bug lors de la mise à jour des options

1.1

  • 12 octobre 2013
  • Filtres, actions, des hooks partout…
  • Mise à jour du format de code court (l’attribut « type » est devenu « provider » et un « / » est ajouté avant la fermeture)

1.0

  • 10 octobre 2013
  • Version initiale
  • Ajouter du code en utilisant une jolie boîte modale
  • Afficher du code à partir d’un fichier, GitHub, Gist, Pastebin ou Bitbucket
  • 13 langues disponibles
  • 6 thèmes de colorations syntaxiques
  • Support du cache pour les chargements de code à distance (durée par défaut : 1 semaine)

Contributeurs & développeurs

Ceci est un logiciel libre. Les personnes suivantes ont contribué à cette extension.

Contributeurs

Parcourir le code