Description
Avec Pastacode, partagez facilement des extraits de code dans vos articles. Ils seront mis en valeur grâce à la superbe librairie de coloration syntaxique PrismJs.
Vous pouvez ajouter du code source en le rédigeant directement dans un bloc de l’éditeur (ou dans l’éditeur classic si Gutenberg est désactivé), ou bien en l’important depuis des services tels que Github, Gist, Gitlab, Bitbucket, Bitbucket snippets, Pastebin… et ainsi ne plus ce soucier de mettre à jour vos articles (les codes resterons à jour). Pastacode fonctionne aussi dans les commentaires et les forum bbPress.
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…)
Librairies tierces
Pastacode utilise quelques librairies open-source.
Captures d’écran
Éditez vos extraits de code avec le bloc Pastacode Le rendu dans l’éditeur (coloré par Prism) Vous pouvez importer des codes hébergés sur des webservices (gitlab, github…) Si vous n’utilisez pas l’éditeur de bloc, une autre interface vous est proposée. Cette dernière repose sur une plugin TinyMCE (pour le bloc classic, et classic editor) Le langage « Treeview » permet de partager une vue d’arborescence de répertoires et fichiers
Blocs
Cette extension fournit 1 bloc.
- Pastacode Paste a code from github, bitbucket, gitlab, or write it here!
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)
- Pour l’utiliser :
- Avec l’éditeur de bloc, utilisez le bloc « Pastacode »
- Lors de l’édition d’un article, utilisez le bouton Pasta’a code pour ajouter du code source dans vos contenus
FAQ
Pour plus d’informations, rendez-vous sur le wiki de Pastacode
-
Quels sont les langages de programmation disponibles ?
-
- HTML
- CSS
- JavaScript
- PHP
- C
- C#
- C++
- Java
- Sass
- Python
- SQL
- Ruby
- CoffeeScript
- Bash
- Apache conf
- Less
- HAML
- Ligne de commande git
- Haskell
- Markdown
- Typescript
- Treeview (arborescence de repertoire)
Si vous utilisiez une autre extension de coloration syntaxique, sachez que des scripts de migration de codes sont à votre disposition 🙂
-
Qu’est ce que le langage « Treeview » ?
-
Vous pouvez l’employer pour afficher l’arborescence d’un répertoire. Composer votre code en utilisant des backticks, pipe et traits-d’union comme ceci :
root_folder/ |-- a first folder/ | |-- holidays.mov | |-- javascript-file.js | `-- some_picture.jpg |-- documents/ | |-- spreadsheet.xls | |-- manual.pdf | |-- document.docx | `-- presentation.ppt | `-- test `-- README.md
-
Comment définir une durée de cache personnalisée ?
-
Insérez ces lignes dans le fichier functions.php de votre thème :
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 modifier le thème de coloration syntaxique ?
-
7 thèmes de coloration syntaxiques inclus. Pour en changer rendez-vous dans la section Réglages > Pastacode.
Vous pouvez même construire les vôtres :
Insérez ces lignes dans le fichier functions.php de votre thème :
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' ); }
Inspirez-vous du thème par défaut « prism » pour créer vos propres colorations syntaxiques.
-
Comment filtrer la liste des langages disponible ?
-
Insérez ces lignes dans le fichier functions.php de votre thème :
//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; }
-
Compatibilité avec une navigation Ajax
-
Activer Pastacode sur les sites à navigation ajax, il vous faudra appliquer deux modifications :
- Activer la rétro-compatibilité dans le panneau de réglage
- 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();
-
Comment ajouter un nouvel hébergeur de code ?
-
Insérez ces lignes dans le fichier functions.php de votre thème :
//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/contributrices & développeurs/développeuses
« 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
3.0.1
- 24 novembre 2022
- Correction de bug : amélioration de la compatibilité avec les plugins d’optimisation qui minifient le HTML et supprimaient les retours chariots dans les blocs de code
- Correction de bug : suppression d’une erreur de javascript provoquée par le choix du langage apacheconfig dans l’éditeur de blocs
- Merci à WP Marmite de m’avoir notifié ces problèmes !
3.0
- 15 novembre 2022
- Support de Gutenberg (l’éditeur de bloc) ! 🎉 Utilisez le nouveau bloc pour écrire et insérer vos extraits de codes
- Migre automatiquement du shortcode vers le nouveau bloc gutenberg
- Retro-compatibilité avec l’ancien shortcode
2.1
- 9 août 2019
- Corrige un bug lié à la dépréciation de l’API 1.0 de Bitbucket
- La compatibilité Gutenberg arrive bientôt…
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)