O desafio: escrever textos compatíveis com o HTML

Quando você usa processadores de texto como o Word, você tem grande liberdade para definir tanto o conteúdo quanto o formato do seu texto. Esse tipo de editor é chamado normalmente de WYSIWYG (What You See Is What You Get), pois o texto que você vê na tela enquanto escrever é idêntico ao que resultará de sua impressão.

Por estar ligado ao documento impresso, esse tipo de editor respeita uma regra implícita: você precisa trabalhar nos limites de uma folha de papel (real ou virtual), cujo tamanho você define no próprio documento.

Quando você escreve para a internet, essa moldura predefinida não existe. O que existe é uma multiplicidade de tamanhos de janelas de exibição. Experimente modificar a largura desta tela que você está lendo e você verá que o texto se adapta, mudando de forma, para que ele tenha um formato equilibrado em molduras de qualquer tamanho.

Essa plasticidade é fundamental para toda publicação na internet e, obviamente, ela demanda um planejamento exaustivo dos modos pelos quais a exibição será adaptada à tela do usuário. A programação dessa exibição flexível é feita utilizando uma linguagem computacional específica: o HTML (Hypertext Markup Language), na qual é possível definir com comandos relativamente simples os modos pelos quais um texto será exibido nas mais variadas janelas.

O custo da plasticidade oferecida pelo HTML é que, diversamente do que ocorre com os editores WYSIWYG, o texto que você vê quando escreve não é o texto que vai aparecer para o leitor, pois a formatação final depende das configurações do site no qual o texto será publicado. Este é o texto que eu estou vendo enquanto escrevo no editor do Ghost, que é diferente do texto que você vê agora, pois ele não envolve nenhum dos formatos definidos no site da disciplina.

E se você quiser ver o HTML desta página, por exemplo, basta clicar nela com o botão direito do mouse e escolher a opção "Exibir Código Fonte", que vai te mostrar toda a programação necessária para que esta página apareça no seu navegador exatamente desta forma.

Felizmente, você não precisa dominar HTML para publicar o seu post, uma vez que existem programas que convertem o seu texto texto em HTML, para que ele possa ser interpretado e exibido pelos navegadores (browsers). É exatamente isso o que faz o Ghost: ele transforma os seus textos em códigos de HTML, para que seu post seja exibido adequadamente na internet.

Mas essa capacidade de conversão tem limites claros: o Ghost apenas consegue converter perfeitamente para HTML dois formatos de texto, que foram elaborados justamente para permitir esse tipo de conversão: o texto escrito diretamente no editor do Ghost e os textos escritos na linguagem Markdown.

Por isso, a publicação de posts no Ghost (e também nas outras plataformas existentes) exige que você produza textos em um desses formatos, o que é discutido no post seguinte.

Os arquivos e seus formatos

Embora você não precise dominar o HTML para publicar os textos no Ghost, você vai precisar compreender melhor essa linguagem para poder atuar no campo da data science, justamente pelo fato de que os dados disponíveis na internet costumam estar disponíveis em páginas escritas com essa linguagem.

Por isso, compreender a estrutura deste blog e os formatos relacionados com ele vai ajudar você nas atividades de extração de dados que realizaremos no Módulo 10 e para a qual você se preparará também por meio do curso introdutório de programação para juristas.

O formato adequado de um arquivo se relaciona com as finalidades que ele desempenha. No caso das páginas de internet, a finalidade básica é oferecer informações adequadamente organizadas para que sejam exibidas em janelas de formato dinâmico.

PDF

Porém, há formatos cuja função é oferecer uma visualização absolutamente fixa dos dados. O principal formato desse tipo é o documento .pdf (Portable Document Format), que define um layout que se mantém fixo independentemente do tipo de programa utilizado para visualizá-lo.

Essa funcionalidade permite uma fidelidade absoluta ao documento original, o que é muito importante quando se trata de publicar documentos (e não informações). Não é por acaso que a publicação do inteiro teor de acórdãos normalmente utiliza o formato .pdf, para oferecer um documento próximo ao que é inserido no próprio processo, qual deve ser visualizado com fidelidade e não se destina a ser modificado pelo leitor.

TXT

Esse é um formato bem diferente dos arquivos .txt, que se destinam a conter textos sem formatação. Os arquivos .txt são uma sequência de caracteres (string), nos quais não existem comandos específicos de formatação. São os arquivos que você abre no bloco de notas, cujo único elemento que contribui para a formatação do texto é dado pela inserção de caracteres específicos de "quebra de linha", que são voltados a organizar o conteúdo em parágrafos.

Arquivos desse gênero são chamados de texto puro (plain text files), voltados para a leitura por humanos,  diferentemente dos arquivos binários (binary files), que têm códigos legíveis apenas por máquinas (como uma imagem convertida em pixels, por exemplo).

A dificuldade dos arquivos .txt é que eles não admitem as complexas formatações que exigimos hoje para a exibição de documentos ou de páginas na internet e para organizar dados em tabelas.

RTF e DOC

Uma das primeiras tentativas de superar os limites do TXT em termos de formatação foi o desenvolvimento pela Microsoft de arquivos RTF (Rich Text Format), que misturam trechos simples com trechos binários, inseridos com o objetivo de atribuir formatações ao texto.

Também foi desenvolvido pela Microsoft o formato .doc, que além de uma gama de informações sobre formatação do texto, também permite incorporar imagens, links e notas. Na medida em que esse era o formato do processador de texto Word for Windows ligado ao sistema operacional Windows 95 (lançado em 1995 pela Microsoft e que veio a substituir o DOS como sistema operacional padrão dos microcomputadores), esse formato se tornou amplamente utilizado.

HTML

Embora o .doc tenha se tornado padrão na elaboração de documentos e o .pdf tenha se tornado o padrão para a exibição de documentos destinados apenas a visualização, nenhum desses formatos é adaptável a organizar os conteúdos da internet, que estavam em plena expansão em meados dos anos 1990.

Desde o início do World Wide Web Consortium (W3C), em 1996, o HTML foi adotado como a linguagem básica das páginas de internet, tornando-se padrão internacional em 2000. Por isso, todos os textos publicados na internet de hoje adotam o formato HTML, que vem sendo atualizado ao longo desses 20 anos, para cumprir essa função.

Para compreender como funciona a estrutura do HTML, é útil pensar que a informação é estruturada em 3 níveis dentro dessa linguagem.

Nível 1 - Texto

Em primeiro lugar, existe o texto. No caso de um blog, existem os textos da própria estrutura das páginas (como o nome da página e os menus constantes do cabeçalho) e também os textos que representam o conteúdo de cada página.

No caso de um post (que é um tipo de página, pois é um conteúdo alocado em um endereço), o conteúdo será a combinação das palavras que você escreveu e das imagens que você pretende divulgar.

O que você produzirá para o blog é apenas a informação neste nível do conteúdo, que precisa ser devidamente inserido no Ghost para que ele converta o seu plain text em HTML.

Nível 2 - HTML

Para que o seu texto seja exposto em um formato adequado, o HTML tem uma série de comandos que estabelecem o modo os textos devem ser exibidos na página. Se você exibir o código fonte desta página (com o comando Ctrl-U ou no menu aberto com o botão direito do mouse)

Uma forma de você ler o HTML desta página é utilizando o comando Ctrl-U, para exibir o Código Fonte. Se você analisar esse documento, verá que ele tema algumas seções:

  1. Nas linhas  1 a 38, há várias definições referentes ao cabeçalho da página,
  2. Nas linhas 39 a 67, há várias informações sobre o post: título, endereço, autor, data de criação, etc.
  3. Nas linhas 76 a 310, há várias informações  sobre a formatação, que são relativas ao CSS (que trataremos em seguida)
  4. Nas linhas 315  e seguintes há informações sobre a formatação do conteúdo do texto
  5. Somente na linha 375 é que está todo o conteúdo deste post, entremeado com alguns comandos de formatação.
  6. Nas linhas 376 a 485 estão os conteúdos e formatos do rodapé da página e, por fim,
  7. Nas linhas 488 em diante estão alguns scripts, que são programas escritos na linguagem javascript e que são integrados nesta página para viabilizar a construção de um sumário e da ferramenta de comentários.

Você não precisa dominar a linguagem HTML para fazer data science, mas precisa desenvolver um  conhecimento mínimo sobre como é a estrutura de uma página como essa, pois um dos nossos objetivos será extrair conteúdos de página desse tipo: que têm centenas de linhas de  estrutura e formatação, e uma parte pequena (mas muito relevante!) que tem o conteúdo que nos interessa.

Nível 3 - CSS

O HTML dá a estrutura do site, indicando onde os textos devem aparecer, definindo os hiperlinks, os blocos de texto e atribuindo a cada texto uma classe (class).

Existe um outro arquivo, o CSS, que define o estilo (style) formatação de cada classe. O CSS (Cascade Style Sheet) é uma lista com vários estilos, que definem o tamanho das letras, o espaço entre as linhas, a cor dos textos, as margens, sublinhados e outros elementos de formatação.

Mas as informações do CSS também podem vir alocadas dentro do arquivo HTML, como ocorre no arquivo desta página (nas linhas 315 e seguintes). Para ver os estilos .css usados no texto, escolha a opção Inspecionar, que aparece quando você clica com o botão direito do mouse na página.

Como o seu interesse neste curso é o de extrair dados, e não o de formatar páginas na internet, você não precisará dessa função de Inspecionar, exceto como auxílio para localizar certas informações dentro da página, para a finalidade de extraí-las. Mas isso será discutido somente no Módulo 10.

Markdown

O Markdown é uma linguagem desenhada para trabalhar juntamente com o HTML, pois existe um programa (chamado Markdown) que realiza uma conversão imediata e perfeita para o HTML dos textos escritos nesse formato.

A peculiaridade dela é que se trata de uma forma de inserir marcações de formatação dentro de um arquivo de plain text. Isso ocorre porque certas cadeias de caracteres são interpretadas como indicadores de formatação:

  1. # indica cabeçalho nível 1, ## indica cabeçalho nível 2
  2. * seguido de espaço espaço no início de um parágrafo indica uma lista de tópicos,
  3. um número seguido de um ponto, no início de um parágrafo, indica uma lista numerada.
  4. uma expressão com asteriscos ao lado (sem espaço entre eles) fica em itálico

Esses são protocolos de formatação que também são seguidos pelo editor do Ghost. Inclusive, são modos de formatação que sequer aparecem na caixa de formatação do Ghost e que precisam ser aprendidos para serem utilizados.

Essa convergência de padrões de formatação faz com que o Ghost leia bem arquivos copiados e colados de editores de markdown, desde que você não cole notas de rodapé! (que seguem uma formatação diferente no Ghost).

Informações mais específicas sobre o funcionamento desta linguagem e sobre sua sintaxe podem ser conseguidos no site markdownguide.org, que tem explicações minuciosas sobre essa linguagem.

Mas o mais importante a saber do Markdown é que, se você escreve nessa linguagem (ou copia textos em Markdown usnado o Writage), as informações serão plenamente compatíveis com a sua publicação em HTML.

DOCX

Essa ascensão do HTML, com a separação entre comandos de texto e extilos de formatação, tornou-se a base da comunicação na internet. Para viabilizar uma maior conexão entre os arquivos do Word e os formatos digitais, a Microsoft abandonou o modelo .doc com padrão de seu editor, e passou em 2008 a adotar o DOCX, que funciona de modo similar ao HTML, unindo textos definidos  com uma estrutura e uma folha de estilos definidos de forma autônoma.

Essa forma de organizar arquivos segue o modelo XML (Extensible Markup Language), que é similar ao HTML, mas tem formas específicas de classificar os textos e atribuir estilos.

Uma das vantagens desse modelo é que, tal como no HTML, a segmentação entre o texto e os comandos de formatação permite que o conteúdo do texto seja legível para humanos (ainda que com certas limitações, como vocês viram ao analisar o código fonte), mas que também tenha as informações necessárias para a leitura por máquina.

Outra das vantagens é que o XML é um modelo aberto (diferentemente do .doc, que é de propriedade da Microsoft), o que faz com que seja possível que outros desenvolvedores criem programas capazes de ler e processar os arquivos .docx.