2012-09-17 9 views
13

He intentado instalar SyntaxHighlighter 3.0.83 en Blogger durante un par de horas. He intentado muchos tutoriales, pero todavía no funciona. Quiero decir que se ve igual que el texto normal insertado en la etiqueta previa.Sintaxis de BloggerHighlighter no funciona en absoluto

he creado un nuevo blog y pegar:

<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> 

... justo antes de cerrar etiqueta de la cabeza. El código pegado anteriormente se ha generado aquí: generator

Lo extraño es que funciona en mi propio documento html. Como ejemplo:

<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> 

Pero la misma etiqueta previa no funciona en blogger.

I también han intentado pegar

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

al final de estilos de carrocería y pegar al final de b: etiqueta de la piel. Ninguno de los dos funciona Y no pego el código en la parte de composición :) Estoy muy confundido por lo que cualquier ayuda será muy apreciada.

+0

Intente poner solo código pre etiquetado en su publicación de blog (para fines de prueba). Además, SyntaxHighlighter no funciona en vista previa y vista dinámica (ajustes de necesidad). –

Respuesta

9

Tuve el mismo problema. Las instrucciones para configurar SyntaxHighlighter parecían bastante fáciles. Y todos los tutoriales fueron más o menos comparables, incluido el comentario "en mi blog funciona, si no funciona para usted, entonces debe estar haciendo algo mal". Nada funcionó para mí, no me llamó la atención.

La solución fue cambiar a otra plantilla de Blogger. Simplemente no funcionó con la plantilla dinámica que elegí. Cambiar a una plantilla simple hizo el truco. Resaltar ahora funciona.

Por cierto: Mientras persigue los errores, también probé Prettify como alternativa. Tampoco funcionó. Parece que la plantilla dinámica hizo algo que causó que fallaran ambos marcadores de sintaxis.

+0

No he pensado en eso. He intentado solo plantillas dinámicas. Gracias. –

18

Para las vistas dinámicas, el contenido de la publicación parece estar cargado después de la secuencia de comandos que inicia el proceso de resaltado de sintaxis. Puede trabajar alrededor de ella:

<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 corrigió el problema, estoy usando la plantilla dinámica – walter

+0

+1, ¡funciona, gracias! –

+0

Puede ejecutar el código de configuración después de un breve retraso en la plantilla; consulte mi respuesta a http://stackoverflow.com/questions/6849890/syntax-highlighter-3-0-not-working-on-blogspot/15328620#15328620 – grkvlt

2

Al igual que la respuesta de Stefan, pude hacer que funcione en mi cuenta de blogger que utiliza la plantilla simple.

lo hice así:

1.Put las etiquetas <link> y <script> para importar los archivos CSS y JS en el <head>

2.A continuación, poner el guión JS que inicializar o llama el marcador en el <body>:

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

Esta la única forma que era capaz de hacer que funcione, en donde # 2 como se ha mencionado por Stefan se debe probablemente a arrancar cuestión, por lo tanto, necesita para ponerlo en el cuerpo Aquí está my blog post which uses this and successfully displays the Javascript

1

Aunque se responde a la pregunta original, me he topado con un problema diferente que causa la falla de resaltado de sintaxis, y pensé que podría ser útil que alguien mencione la solución aquí.

Descubrí que la vista previa de blogger abre la publicación con https: // de forma predeterminada, lo que obliga a todos los enlaces de página a https. Al usar las hojas de estilo del alojamiento de alexgorbatchev que causa una falla al cargarlas, el resaltado no funcionará. Esos errores aparecen en la consola de herramientas del desarrollador.

En este momento, ese problema solo puede aparecer en blogs bajo blogger domen, ya que no hay soporte https con domens personalizadas. Además, el acceso público con https está deshabilitado de manera predeterminada, por lo que eso es principalmente un problema con la vista previa del post, que se puede solucionar fácilmente. Sin embargo, si se habilita el acceso público mediante https, el resaltado no funcionará.

Cuestiones relacionadas