Pergunta

Estou procurando uma solução para um ninho de ratos de código que fui entregue - é enorme em volume, por isso estou procurando sugestões para uma abordagem programática para comentar o que a div fecha onde.

Exemplo:

ANTES DA

<div id="wrapper-item">
<div id="outer-item">
    <div class="inner-item">
<h1>Just Some Placekeeper Copy</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing.</p>
    </div>
</div>  
</div>

DEPOIS

<div id="wrapper-item">
<div id="outer-item">
    <div class="inner-item">
<h1>Just Some Placekeeper Copy</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing.</p>
    </div><!-- .inner-item -->
</div><!-- #outer-item -->      
</div><!-- #wrapper-item -->

Eu tentei algumas tentativas de Regex sem alegria, eu ficaria curioso para saber qual é a melhor abordagem ..

Foi útil?

Solução

Se for válido XHTML, você pode colocá -lo em um documento XML e processar as tags Div, encontrando todas elas e adicionando um irmão que tem o nó de comentário que você deseja.

Outras dicas

Uma expressão regular solitária pode funcionar, mas pode ser melhor escrever um programa aprimorado por expressões regulares. Obtenha o texto entre < div id=" e >, adicione isso em uma lista ou pilha e vincule -a, em ordem, com um índice int. Continue examinando -o e ao encontrar uma tag '', coloque o texto mais recente da pilha e formate -o para se tornar um comentário.

Eu apenas uso um script para recuar corretamente o HTML para que eu possa verificar rapidamente se todas as tags estiverem fechadas corretamente - o recuo voltar corretamente para tocar a margem esquerda. Para verificar o que a abertura corresponde a que fechamento eu uso um editor de texto dobrável como Scite ou Komodo Edit para que eu possa navegar no código corretamente recuado, abrindo e colapsando seções.

Se alguém estiver interessado no script de recuo (escrito no TCL), posso carregá -lo em algum lugar. Como alternativa, você pode tentar usar algo como htmltidy para fazer a formatação.

Você pode usar uma API XML/DOM para um idioma específico e brincar com como ele lida com objetos de comentário. Por exemplo, Python - http://docs.python.org/library/xml.dom.html#comment-objects

<div>whatever</div>
<!-- this comment is already deprecated -->

Basta usar um editor decente que destaque a etiqueta inicial/final. Mesmo o noto do noto faz isso. A maioria dos editores também pode selecionar tags e conteúdos, ou apenas conteúdo. Muitos editores também reformatarão o HTML para você (se você ousar).

Comentar o final da tag vai sair da sincronização e será ainda mais difícil de seguir para você ou seus colegas de trabalho.

Se você acabar adicionando com sucesso comentários redundantes a cada div, span, p, ul, etc., acho que você encontrará o código ainda mais inchado e ilegível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top