2012-09-17 11 views
13

Ho cercato di installare SyntaxHighlighter 3.0.83 su Blogger per paio d'ore. Ho provato molte esercitazioni ma ancora non funziona. Voglio dire, sembra proprio il testo normale inserito nel pre-tag.Blogger SyntaxHighlighter non funziona affatto

ho creato un nuovo blog e incollato:

<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css'  rel='stylesheet' type='text/css'/> 
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js'  type='text/javascript'></script> 
<script language="javascript" type="text/javascript"> 
SyntaxHighlighter.config.bloggerMode = true; 
SyntaxHighlighter.all(); 
</script> 

... appena prima della chiusura tag head. Il codice incollato sopra è stato generato qui: generator

La cosa strana è che funziona nel mio documento html. Ad esempio:

<html> 
<head> 
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/> 
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'></script> 
<script language="javascript" type="text/javascript"> 
    SyntaxHighlighter.config.bloggerMode = true; 
    SyntaxHighlighter.all(); 
</script> 
</head> 
<body> 
<pre class='brush:java;'>import gt.memorize; 
public class Test 
{ 
    private static final String test = "test"; 
}</pre> 
</body> 

</html> 

Ma lo stesso pre-tag non funziona su blogger.

Ho anche provato incollando

<script language="javascript" type="text/javascript"> 
    SyntaxHighlighter.config.bloggerMode = true; 
    SyntaxHighlighter.all(); 
</script> 

alla fine di stili di corpo e incollare alla fine della B: modifica della pelle. Né funziona. E non incollo il codice nella parte Compose :) Sono molto confuso quindi ogni aiuto sarà estremamente apprezzato.

+0

Prova a inserire solo il codice pre tagged sul tuo post del blog (a scopo di test). Inoltre, SyntaxHighlighter non funziona sull'anteprima e sulla visualizzazione dinamica (è necessario apportare modifiche). –

risposta

9

Ho avuto lo stesso problema. Le istruzioni per configurare SyntaxHighlighter sembravano abbastanza semplici. E tutti i tutorial erano più o meno comparabili tra cui il commento "sul mio blog funziona, se non funziona per te allora devi fare qualcosa di sbagliato". Niente ha funzionato per me, non ho evidenziato nulla.

La soluzione era passare a un altro modello Blogger. Semplicemente non ha funzionato con il template dinamico che ho scelto. Passare a un modello semplice ha fatto il trucco. L'evidenziazione ora funziona.

proposito: Mentre insegue per errori ho anche provato Prettify come alternativa. Inoltre non ha funzionato. Sembra che il modello dinamico abbia fatto qualcosa che ha causato il fallimento di entrambi gli evidenziatori della sintassi.

+0

Non ci ho pensato. Ho provato solo modelli dinamici. Grazie. –

18

Per le viste dinamiche, il contenuto del messaggio sembra essere caricato dopo lo script che bootstrap il processo di evidenziazione della sintassi. È possibile lavorare intorno ad esso:

<pre class="brush: js" title="test" id="sh3-123"> 
var f = function() { 
    return 1; 
}; 
</pre> 

<script type="text/javascript"> 
// code snippet is loaded here, use SH3 API to highlight it 
var element = document.getElementById('sh3-123'); 
SyntaxHighlighter.highlight(undefined, element); 
</script> 
+0

+1 risolto il problema, sto usando il modello dinamico – walter

+0

+1, funziona, grazie! –

+0

È possibile eseguire il codice di installazione dopo un breve ritardo nel modello: vedere la risposta a http://stackoverflow.com/questions/6849890/syntax-highlighter-3-0-not-working-on-blogspot/15328620#15328620 – grkvlt

2

Simile alla risposta di Stefan, sono riuscito a farlo funzionare nel mio account blogger che utilizza il modello semplice.

ho fatto in questo modo:

1.Put i tag <link> e <script> per l'importazione dei file CSS e JS nel <head>

2.Poi mettere lo script JS che inizializzare o chiama l'evidenziatore nel <body>:

<script language="javascript">  
      SyntaxHighlighter.config.bloggerMode = true; 
      SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf'; 
      SyntaxHighlighter.all(); 
</script> 

questo l'unico modo sono stato in grado di farlo funzionare, in cui # 2 come menzionato da Stefan è probabilmente dovuto al bootstrap problema, quindi ha bisogno di metterlo nel corpo. Ecco my blog post which uses this and successfully displays the Javascript

1

Anche se la domanda iniziale risposta, ho inciampato su una questione diversa che causa l'evidenziazione della sintassi fallimento, e ho pensato che potrebbe essere utile per qualcuno di parlare della soluzione qui.

Ho trovato che l'anteprima blogger apre il post con https: // di default, che costringe tutte le pagine della https. Quando si utilizzano i fogli di stile dall'hosting di alexgorbatchev che causa un errore nel caricarli, l'evidenziazione non funzionerà. Questi errori vengono visualizzati nella console degli strumenti per sviluppatori.

Al momento tale questione può mostrare solo fino con i blog sotto blogger Domen, poiché non v'è alcun supporto HTTPS con Domens personalizzati. Inoltre, l'accesso pubblico con https è disabilitato di default, quindi è principalmente un problema con l'anteprima del post, che può essere facilmente aggirato. Se è abilitato l'accesso pubblico da https, l'evidenziazione non funzionerà.