0.4.9 • Published 2 months ago

@designliquido/lmht-js v0.4.9

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

lmht-js

Biblioteca de transformação de documentos LMHT para HTML para JavaScript.

Formas de uso

Atual, versão 0.3.0 em diante

import { ConversorLmht } from "@designliquido/lmht-js";

const conversorLmht = new ConversorLmht();
const resultado = conversorLmht.converterPorArquivo("meu-arquivo.lmht");
console.log(resultado);
import { ConversorLmht } from "@designliquido/lmht-js";

const conversorLmht = new ConversorLmht();
const resultado = conversorLmht.converterPorTexto("<lmht><cabeca><titulo>Teste</titulo></cabeca><corpo>Teste</corpo></lmht>");
console.log(resultado); // Resultado: <html><head><title>Teste</title></head><body>Teste</body></html>
import { ConversorHtml } from "@designliquido/lmht-js";

const conversorHtml = new ConversorHtml();
const resultado = conversorHtml.converterPorArquivo("meu-arquivo.html");
console.log(resultado);
import { ConversorHtml } from "@designliquido/lmht-js";

const conversorHtml = new ConversorHtml();
const resultado = conversorHtml.converterPorTexto("<html><head><title>Teste</title></head><body>Teste</body></html>");
console.log(resultado); // Resultado: <lmht><cabeca><titulo>Teste</titulo></cabeca><corpo>Teste</corpo></lmht>

Até a versão 0.2.0

Em versões anteriores, os métodos de conversão eram assíncronos.

import { ConversorLmht } from "@designliquido/lmht-js";

const conversorLmht = new ConversorLmht();
conversorLmht.converterPorArquivo("meu-arquivo.lmht").then(resultado => {
    console.log(resultado);
});
import { ConversorHtml } from "@designliquido/lmht-js";

const conversorHtml = new ConversorHtml();
conversorHtml.converterPorArquivo("meu-arquivo.lmht").then(resultado => {
    console.log(resultado);
});

Conformidade com especificação

lmht-js segue a especificação mais recente de LMHT. O projeto da especificação é referenciado aqui como um submódulo git. Para sincronizar a especificação, use o comando:

git submodule update --init --recursive --remote

Versão 0.2.0 e saxon-js

Até a versão 0.2.0, usávamos a biblioteca saxon-js. Essa biblioteca tornou-se um problema por alguns motivos:

Mantemos o suporte a versões anteriores por questões de retrocompatibilidade. A biblioteca atual usada para processamento XSLT é a xslt-processor, de código aberto e também mantida pela Design Líquido.

Especificação e arquivos .sef.json

saxon-js pede por arquivos .sef.json, que podem ser gerados pelos comandos abaixo:

PowerShell:

xslt3 -t "-xsl:especificacao/lmht.xslt" "-export:lmht.sef.json" -nogo -relocate
xslt3 -t "-xsl:especificacao/lmht-reverso-xml10.xslt" "-export:lmht-reverso-xml10.sef.json" -nogo -relocate

bash, zsh:

xslt3 -t -xsl:especificacao/lmht.xslt -export:lmht.sef.json -nogo -relocate
xslt3 -t -xsl:especificacao/lmht-reverso.xslt -export:lmht-reverso.sef.json -nogo -relocate

O arquivo XSLT da especificação ou da especificação reversa também podem ser usados, mas isso causa um atraso na carga de pelo menos 2 segundos por arquivo, que é o tempo que leva para compilar a especificação de XSLT para .sef.json. Para entender como isso funciona, verifique o fonte objeto-especificacao.ts.

Assim sendo, os arquivos .sef.json correspondentes ao commit apontado pelo submódulo são versionados neste diretório raiz, e distribuídos juntamente com o pacote NPM.

Compatibilidade com XML

SaxonJS não trabalha com XML 1.1, e por isso a especificação com XML 1.0 é usada aqui.

0.4.9

2 months ago

0.4.8

3 months ago

0.4.7

3 months ago

0.4.6

3 months ago

0.4.5

4 months ago

0.3.0

9 months ago

0.4.4

6 months ago

0.4.1

6 months ago

0.3.2

8 months ago

0.4.0

8 months ago

0.3.1

8 months ago

0.4.3

6 months ago

0.4.2

6 months ago

0.1.0

1 year ago

0.1.2

1 year ago

0.2.0

1 year ago

0.1.1

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

2 years ago

0.0.1

2 years ago

0.0.0

2 years ago