¿Textmate puede sangrar HTML?

17

¿Textmate tiene una función para sangrar HTML?

HTML Tidy lo sangra, pero también parece eliminar etiquetas. (¡Esto no es HTML completamente correcto, pero aún así!)

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js"></script>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<body>
    <!-- All above disappears -->       
    <p>Test</p>
    <!-- All below disappears-->
</body>
</html>
Casebash
fuente
¿Puede dar un ejemplo de HTML, donde se eliminan las etiquetas ya que esto es sorprendente
user151019
@ Mark: actualizado con el código
Casebash
@Casebash Probé Tidy con tu código y para mí solo agregó etiquetas. copypastecode.com/46216
Robert S Ciaccio
@calvera: asegúrese de que su tipo de documento esté configurado en HTML, no en texto sin formato
Casebash
3
@Casebash: se configuró en html ... FYI, por lo que recuerdo sobre el complemento Tidy para Notepad ++, se configura a través de un archivo de texto. Entonces, quizás haya algo mal con la configuración de Tidy.
Robert S Ciaccio

Respuestas:

20

Puede presionar + Apara seleccionar todo y luego Text->Indent Selection.

James Moore
fuente
Años de TextMate y nunca visto o usado esta característica ... \ o /
brasofilo
Desafortunadamente, este no es un formato XML completo: mantiene líneas con sangría incorrecta y no divide las etiquetas en la misma línea en líneas separadas. Usando Textmate 2.0-rc.4.
Alexander Klimetschek
13

Puede usar Bundles > HTML > Tidyo el acceso directo ctrl+ + H.

Loïc Wolff
fuente
3
Tidy no solo lo sangra, sino que también parece eliminar partes de él.
Casebash el
1
La pregunta era sobre la sangría no ordenada
tig
La ordenación también falla cuando hay algunos problemas, como nombres de elementos desconocidos.
Alexander Klimetschek
1

Me gustaría señalar algo que cruza un poco las otras respuestas:

Si selecciona el texto que desea formatear (o reiniciar), TextMate aplicará acciones específicas solo a eso. Por lo tanto, si hace CMD+ Asu documento y luego aplica Tidy (ya sea desde el menú Bundles> HTML o con el acceso directo CTRL+ SHIFT+ H), en su mayoría solo hará sangría, omitiendo alertas en las validaciones (que a veces son innecesarias ya que podríamos estar trabajando en fragmentos de página) )

mcdado
fuente
0

En su lugar, puede usar Xcode o Dashcode si instala las Herramientas para desarrolladores. Vienen gratis en los discos de instalación que vienen con su computadora. Creo que tanto Xcode como Dashcode tienen resaltado de sintaxis.

Si quieres un software realmente bueno, obtén Coda. Es un poco caro a $ 100, pero definitivamente diría que vale la pena. Tiene resaltado de sintaxis y (la gran parte para mí) autocompletado.

daviesgeek
fuente
0

Si. La llamada Tidy en el paquete HTML incorporado de TextMate puede tratar con su HTML.

Paquetes de TextMate -> HTML -> Tidy produce:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js">
</script>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js">
</script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
    </head>
    <body>
        <!-- All above disappears -->
        <p>
            Test
        </p><!-- All below disappears-->
    </body>
</html>

En su código de muestra. Nada desapareció También recibe las siguientes advertencias:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 5 - Warning: <body> isn't allowed in <head> elements
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:tal"
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:metal"
Ian C.
fuente
0

El problema que experimenté con la Text -> Indent Selectionsolución integrada o Tidy es que no funciona bien con código HTML parcial. Esto es importante, por ejemplo, al editar en WordPress o trabajar con parciales en Ruby on Rails.

La solución que funcionó para mí fue agregar un comando al paquete con un script Perl personalizado de John Watson que encontré aquí: http://snipplr.com/view.php?codeview&id=28256

Jessie Dedecker
fuente