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
Installation
- Décompressez Pastacode dans votre répertoire des extensions
- Allez dans les réglages de Pastacode, et configurez votre thème de coloration et la durée du cache
- Hébergez vos extraits de code sur des services web (ou sur votre site)
- Lors de l’édition d’un article, utilisez le bouton Pasta’a code pour ajouter du code source dans vos contenus
Compatibilité avec une navigation Ajax
Activer Pastacode sur les sites à navigation ajax, il vous faudra appliquer deux modifications :
- Insérez cette ligne dans le fichier functions.php de votre thème :
add_filter( 'pastacode_ajax', '__return_true' );
- Après chaque chargement ajax, exécutez cette fonction JavaScript :
Prism.highlightAll();
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
Contributeurs & développeurs
« Pastacode » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.
Contributeurs“Pastacode” a été traduit dans 1 locale. Remerciez l’équipe de traduction pour ses contributions.
Traduisez « Pastacode » dans votre langue.
Le développement vous intéresse ?
Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.
Journal
2.1
- 9 august 2019
- fix issue with bitbucket api 1.0 depreciation
- gutenberg compatibility is coming soon . . .
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
- 27 mai 2016
- CodeMirror est maintenant utilisé pour éditer du code manuel, côté administration
- Amélioration des codes courts incluant du code « manuel » (cette version convertit les anciens codes courts vers les nouveau format, plus stable. Vous êtes invités à sauvegarder votre base de donnée avant de procéder à la mise à jour.
Cela règle des problèmes rencontrées par les utilisateurs aux sujets de lignes ajoutées automatiquement dans leurs codes . - Support de Bitbucket snippets en tant qu’hébergeur de code
- Amélioration des styles des numéros de lignes
- Correction d’un bug ajoutant des lignes vides à la fin d’un bloc de code
1.5.1
- 24 juillet 2015
- résolution d’un problème avec la suppression du conteneur HTML du bloc de code (voir le ticket de support)
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
- 20 janvier 2015
- Optimisation des thèmes de colorations syntaxiques (compatibilité avec l’extension des numéros de ligne, les espaces avant et après le code…)
- Il est maintenant possible de n’afficher qu’une ligne de code
- Nouveau site web avec pour la documentation !
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 : 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)