J'utilise blogger.com pour héberger des textes sur la programmation, et j'aimerais utiliser prettify (comme avec stackoverflow) pour colorer les exemples de code.
Comment installer les scripts prettify dans le domaine de blog?
Serait-il préférable (si cela est possible) de créer un lien vers une copie partagée quelque part?
J'ai un espace Web dans un domaine différent. Cela aiderait-il?
Merci beaucoup.
Lorsque vous faites une nouvelle entrée dans Blogger, vous avez la possibilité d'utiliser HTML dans votre entrée et de modifier vos entrées de blog.
alors tapez http://blogger.com , puis connectez-vous, puis publiez> Modifier les messages> Modifier, puis mettez ceci en haut:
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/lang-css.min.js"></script>
<script type="text/javascript">
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
prettyPrint();
});
</script>
<style type="text/css">
/* Pretty printing styles. Used with prettify.js. */
.str { color: #080; }
.kwd { color: #008; }
.com { color: #800; }
.typ { color: #606; }
.lit { color: #066; }
.pun { color: #660; }
.pln { color: #000; }
.tag { color: #008; }
.atn { color: #606; }
.atv { color: #080; }
.dec { color: #606; }
pre.prettyprint { padding: 2px; border: 1px solid #888; }
@media print {
.str { color: #060; }
.kwd { color: #006; font-weight: bold; }
.com { color: #600; font-style: italic; }
.typ { color: #404; font-weight: bold; }
.lit { color: #044; }
.pun { color: #440; }
.pln { color: #000; }
.tag { color: #006; font-weight: bold; }
.atn { color: #404; }
.atv { color: #060; }
}
</style>
Notez que vous ne devriez pas utiliser prettyPrint
directement comme gestionnaire d'événements, cela le confond (voir le fichier readme pour plus de détails). C’est pourquoi nous passons addLoadEvent
une fonction qui se retourne et appelle prettyPrint
.
Dans ce cas, parce que blogger ne nous permet pas de créer un lien vers la feuille de style, nous intégrons simplement le contenu de prettify.css.
puis ajoutez une balise <code></code>
ou une balise <pre></pre>
avec le nom de classe "prettyprint"
, vous pouvez même spécifier une langue comme celle-ci "prettyprint lang-html"
donc ça peut ressembler à ça
<pre class="prettyprint lang-html">
<!-- your code here-->
</pre>
ou comme ça
<code class="prettyprint lang-html">
<!-- your code here-->
</code>
le code que vous avez inséré a besoin que son code HTML soit nettoyé de <et> pour cela, collez simplement votre code ici: http://www.simplebits.com/cgi-bin/simplecode.pl
vous pouvez mettre le code en haut de votre mise en page HTML afin qu'il soit inclus par défaut pour toutes les pages si vous le souhaitez.
update Vous pouvez maintenant lier des fichiers CSS dans Blogger. Il est donc suffisant de les ajouter au <head>
.
<link href="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/lang-css.min.js"></script>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded',function() {
prettyPrint();
});
</script>
J'ai choisi de ne pas remplacer volontairement l'événement body onload. J'utilise plutôt le nouvel événement DOMContentLoaded que les anciens navigateurs ne prennent pas en charge. Si vous avez besoin de l'ancien navigateur, vous pouvez utiliser n'importe quel autre événement de chargement pour lancer prettyPrint, par exemple jQuery:
jQuery(function($){
prettyPrint();
});
ou le soi-disant le plus petit domready jamais
et votre fait :)
Modifier:
comme Lim H indiqué dans les commentaires, si vous utilisez les vues dynamiques de blogger (modèles ajax), vous devez utiliser la méthode décrite ici pour lier un code javascript personnalisé: prettyPrint () n'est pas appelée sur le chargement de page
Utilisez le guide ici https://github.com/google/code-prettify
Fondamentalement, utilisez ceci :)
<script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/run_prettify.min.js"></script>
<pre class="prettyprint"><code class="language-css">...</code></pre>
Ce qui suit a fonctionné pour moi immédiatement.
<head>
dans le champ "Modifier le modèle":fragment:
<link href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css' rel='stylesheet' type='text/css'/>
<script src='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js' type='text/javascript'></script>
</head>
, remplacez <body>
par <body onload='prettyPrint()'>
<pre class="prettyprint">int foo=0; NSLog(@"%i", foo); </pre>
De nos jours, Google-Code-Prettify a un script Auto-Loader. Vous pouvez charger les scripts JavaScript et CSS pour la validation via une seule URL.
Ajoutez le script à la section <head>
de votre modèle Blogger et il fonctionnera pour tous vos messages:
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>
Plus de détails ici: http://code.google.com/p/google-code-prettify/wiki/GettingStarted
Il est très simple d’ajouter un agent de correction de code Google dans votre blogueur.
il suffit d'inclure la bibliothèque javascript ci-dessous dans votre blogueur juste avant la balise.
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>
juste comme dans l'image ci-dessous ...
Vous venez maintenant d’ajouter avec succès le prettificateur de code Google à votre blogueur.
Maintenant, si vous voulez insérer du code dans votre article de blogueur, ajoutez du code (html, css, php, etc.), puis insérez ce code entre .... balises.
<pre class="prettyprint">...</pre>
ou
<code class="prettyprint">...</code>
Démo de Google Prettify sur Blogger
Veuillez également vous référer à cette documentation pour ajouter ce filtre Google à Blogger dans le lien suivant.
comment ajouter Syntax Highlighter à Blogger avec Google Prettify
Consultez SyntaxHightlighter à l’adresse http://alexgorbatchev.com/wiki/SyntaxHighlighter sur ce site, vous trouverez également des instructions pour l’utiliser sur blogger.com. Ce site propose également une version hébergée des scripts requis. vous n'avez pas besoin d'héberger des fichiers quelque part vous-même.
Une autre solution consiste à utiliser la bibliothèque de scripts Java syntaxhighlighter 2.0. Je l'ai utilisé sur mon blog et il semble fonctionner assez bien.
Voici un post à ce sujet:
http://www.craftyfella.com/2010/01/syntax-highlighting-with-blogger-engine.htmltexte du lien
À votre santé.
Pas une réponse directe à votre question, mais mérite d'être examiné GitHub . Vous pouvez obtenir un compte gratuit et obtenir la syntaxe de couleur "gists" que vous pouvez partager et héberger sur votre page Web.
L'inconvénient est que la copie est hébergée sur le site de Github et que si c'est le cas, elle l'est aussi pour vous.
cdnjs fournissant la bibliothèque " SyntaxHighlighter "
eu à blogger >> modèle >> éditer modèle ajouter le code ci - dessous juste avant la fin du body tag et enregistrer le modèle.
J'ai donné l'exemple pour python.
vous pouvez lier les fichiers de script d’autres langues à partir de cdnjs. code de surbrillance de la syntaxe
<pre class="brush: py">
print("hello world")
</pre>
pour les autres langues, allez copier le script: https://cdnjs.com/libraries/SyntaxHighlighter
<!-- syntax highlighter-->
<link href='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeDefault.css' rel='stylesheet'/>
<script src='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.min.js'/>
<script src='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shAutoloader.min.js'/>
<!-- for python -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushPython.min.js'/>
<!-- include other languages like javascript, php -->
<script language='javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>
Allez dans la section thème de blogger et cliquez sur edit HTML .. Ajoutez ensuite Google Prettify CDN à la balise head du HTML.
https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js'/>
Ensuite, incluez un thème pour l’extrait de code sous ce script. J’ai inclus le thème Desert.
<!--Desert theme-->
<style type='text/css'>pre .atn,pre .kwd,pre .tag{font-weight:700}pre.prettyprint{display:block;background-color:#333}pre .nocode{background-color:none;color:#000}pre .str{color:#ffa0a0}pre .kwd{color:Khaki}pre .com{color:#87ceeb}pre .typ{color:#98fb98}pre .lit{color:#cd5c5c}pre .pln,pre .pun{color:#fff}pre .tag{color:Khaki}pre .atn{color:#bdb76b}pre .atv{color:#ffa0a0}pre .dec{color:#98fb98}ol.linenums{margin-top:0;margin-bottom:0;color:#AEAEAE}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}@media print{pre.prettyprint{background-color:none}code .str,pre .str{color:#060}code .kwd,pre .kwd{color:#006;font-weight:700}code .com,pre .com{color:#600;font-style:italic}code .typ,pre .typ{color:#404;font-weight:700}code .lit,pre .lit{color:#044}code .pun,pre .pun{color:#440}code .pln,pre .pln{color:#000}code .tag,pre .tag{color:#006;font-weight:700}code .atn,pre .atn{color:#404}code .atv,pre .atv{color:#060}}</style>
Pour plus de thèmes, visitez ici .. Préciser les thèmes
Lorsque vous créez une publication, changez le mode d’édition de visual àHTMLet accédez à l’endroit où vous allez ajouter l’extrait de code. Ensuite, incluez le code comme ceci.
<pre class="prettyprint">
<code class="language-html">
<!-- your code snippet -->
</code>
</pre>
Vous pouvez changer le style de code en sélectionnant les langues pertinentes html, css, php, javascript ... Ici, j'ai utilisé un extrait html code.
Ici est la solution qui fonctionne pour moi. Mettez dans le <head>...</head>
du blogueur dynamique HTML:
<script>
$(window.blogger.ui()).on('viewitem', function (event, post, element) {
prettyPrint();
});
</script>