appendContenido y nav
This commit is contained in:
parent
82b9944472
commit
7d9e6528b2
|
@ -5,6 +5,7 @@
|
||||||
# modo de uso:
|
# modo de uso:
|
||||||
# awk -f gemtext2html.awk archivo.gmi > archivo.html
|
# awk -f gemtext2html.awk archivo.gmi > archivo.html
|
||||||
#
|
#
|
||||||
|
|
||||||
BEGIN{
|
BEGIN{
|
||||||
# para poder abrir y cerrar <ul>, <pre>, <p>:
|
# para poder abrir y cerrar <ul>, <pre>, <p>:
|
||||||
modo_lista = 0
|
modo_lista = 0
|
||||||
|
@ -18,45 +19,59 @@ BEGIN{
|
||||||
print "<head>"
|
print "<head>"
|
||||||
print "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />"
|
print "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />"
|
||||||
print "<meta content='initial-scale=1.0, maximum-scale=1.0, user-scalable=yes' name='viewport'/>"
|
print "<meta content='initial-scale=1.0, maximum-scale=1.0, user-scalable=yes' name='viewport'/>"
|
||||||
|
|
||||||
|
contenido = "<main>"
|
||||||
|
nav = "<nav><ul>"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function appendContenido( t ){
|
||||||
|
contenido = contenido t
|
||||||
|
}
|
||||||
|
function appendNav( t ){
|
||||||
|
nav = nav t
|
||||||
|
}
|
||||||
|
|
||||||
NR == 1{
|
NR == 1{
|
||||||
titulo = $0
|
titulo = $0
|
||||||
sub("#[[:blank:]]+","",titulo) #prefijo
|
sub("#[[:blank:]]+","",titulo) #prefijo
|
||||||
print "<title>"titulo" - codeVGA</title>"
|
print "<title>"titulo"</title>"
|
||||||
print "</head>"
|
print "</head>"
|
||||||
print "<body>"
|
print "<body>"
|
||||||
|
print "<header>"
|
||||||
|
print "<h1>"titulo"</h1>"
|
||||||
|
print "</header>"
|
||||||
}
|
}
|
||||||
|
|
||||||
$0 !~ /^(=>|```|#{1,3} |* |>|[[:blank:]]*$)/{ # líneas de texto (no "especiales")
|
$0 !~ /^(=>|```|#{1,3} |* |>|[[:blank:]]*$)/{ # líneas de texto (no "especiales")
|
||||||
if(!modo_pre){
|
if(!modo_pre){
|
||||||
if(!modo_parrafo){
|
if(!modo_parrafo){
|
||||||
modo_parrafo = 1
|
modo_parrafo = 1
|
||||||
print "<p>"
|
appendContenido( "<p>" )
|
||||||
}
|
}
|
||||||
else # nueva línea en el mismo párrafo
|
else # nueva línea en el mismo párrafo
|
||||||
print "<br/>"
|
appendContenido( "<br/>" )
|
||||||
|
|
||||||
}
|
}
|
||||||
print $0
|
appendContenido( $0 )
|
||||||
}
|
}
|
||||||
|
|
||||||
/^[[:blank:]]*$/ { # línea vacía
|
/^[[:blank:]]*$/ { # línea vacía
|
||||||
if( !modo_pre ) {
|
if( !modo_pre ) {
|
||||||
if( modo_lista ){ # cierra la lista
|
if( modo_lista ){ # cierra la lista
|
||||||
modo_lista = 0
|
modo_lista = 0
|
||||||
print "</ul>"
|
appendContenido( "</ul>" )
|
||||||
}
|
}
|
||||||
else if( modo_parrafo ){ # cierra el párrafo
|
else if( modo_parrafo ){ # cierra el párrafo
|
||||||
modo_parrafo = 0
|
modo_parrafo = 0
|
||||||
print "</p>"
|
appendContenido( "</p>" )
|
||||||
}
|
}
|
||||||
else if( bloque ) # si lo previo fue header o blockquote
|
else if( bloque ) # si lo previo fue header o blockquote
|
||||||
bloque = 0;
|
bloque = 0;
|
||||||
else
|
else
|
||||||
print "<br/>"
|
appendContenido( "<br/>" )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
print $0
|
appendContenido( $0 )
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,11 +79,11 @@ $0 !~ /^(=>|```|#{1,3} |* |>|[[:blank:]]*$)/{ # líneas de texto (no "especiales
|
||||||
if(!modo_pre){
|
if(!modo_pre){
|
||||||
if( modo_lista ){ # cierra la lista
|
if( modo_lista ){ # cierra la lista
|
||||||
modo_lista = 0
|
modo_lista = 0
|
||||||
print "</ul>"
|
appendContenido( "</ul>" )
|
||||||
}
|
}
|
||||||
else if( modo_parrafo ){ # cierra el párrafo
|
else if( modo_parrafo ){ # cierra el párrafo
|
||||||
modo_parrafo = 0
|
modo_parrafo = 0
|
||||||
print "</p>"
|
appendContenido( "</p>" )
|
||||||
}
|
}
|
||||||
# borra flecha del inicio
|
# borra flecha del inicio
|
||||||
sub("^=>","",$0)
|
sub("^=>","",$0)
|
||||||
|
@ -94,7 +109,7 @@ $0 !~ /^(=>|```|#{1,3} |* |>|[[:blank:]]*$)/{ # líneas de texto (no "especiales
|
||||||
$0="<a href='"$1"'>"texto"</a><br/>"
|
$0="<a href='"$1"'>"texto"</a><br/>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print $0
|
appendContenido( $0 )
|
||||||
}
|
}
|
||||||
|
|
||||||
/^* /{ # lista
|
/^* /{ # lista
|
||||||
|
@ -102,36 +117,36 @@ $0 !~ /^(=>|```|#{1,3} |* |>|[[:blank:]]*$)/{ # líneas de texto (no "especiales
|
||||||
if(!modo_lista){ # inicia la lista
|
if(!modo_lista){ # inicia la lista
|
||||||
if(modo_parrafo){
|
if(modo_parrafo){
|
||||||
modo_parrafo = 0
|
modo_parrafo = 0
|
||||||
print "</p>"
|
appendContenido( "</p>" )
|
||||||
}
|
}
|
||||||
modo_lista = 1
|
modo_lista = 1
|
||||||
print "<ul>"
|
appendContenido( "<ul>" )
|
||||||
}
|
}
|
||||||
sub("*[[:blank:]]+","<li>",$0)
|
sub("*[[:blank:]]+","<li>",$0)
|
||||||
sub("$","</li>",$0)
|
sub("$","</li>",$0)
|
||||||
}
|
}
|
||||||
print $0
|
appendContenido( $0 )
|
||||||
}
|
}
|
||||||
|
|
||||||
/^```/{ # preformatted
|
/^```/{ # preformatted
|
||||||
if(modo_pre){
|
if(modo_pre){
|
||||||
# cierra preformatted
|
# cierra preformatted
|
||||||
modo_pre = 0
|
modo_pre = 0
|
||||||
print "</pre>"
|
appendContenido( "</pre>" )
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if( modo_lista ){ # cierra la lista
|
if( modo_lista ){ # cierra la lista
|
||||||
modo_lista = 0
|
modo_lista = 0
|
||||||
print "</ul>"
|
appendContenido( "</ul>" )
|
||||||
}
|
}
|
||||||
else if( modo_parrafo ){ # cierra el párrafo
|
else if( modo_parrafo ){ # cierra el párrafo
|
||||||
modo_parrafo = 0
|
modo_parrafo = 0
|
||||||
print "</p>"
|
appendContenido( "</p>" )
|
||||||
}
|
}
|
||||||
|
|
||||||
# abre preformatted
|
# abre preformatted
|
||||||
modo_pre = 1
|
modo_pre = 1
|
||||||
print "<pre>"
|
appendContenido( "<pre>" )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,16 +156,16 @@ $0 !~ /^(=>|```|#{1,3} |* |>|[[:blank:]]*$)/{ # líneas de texto (no "especiales
|
||||||
sub("$","</blockquote>",$0)
|
sub("$","</blockquote>",$0)
|
||||||
bloque = 1
|
bloque = 1
|
||||||
}
|
}
|
||||||
print $0
|
appendContenido( $0 )
|
||||||
}
|
}
|
||||||
|
|
||||||
/^# /{ # h1
|
/^# /{ # h1
|
||||||
if(!modo_pre){
|
if(!modo_pre){
|
||||||
sub("#[[:blank:]]+","<h1>",$0) #prefijo
|
sub("#[[:blank:]]+","",$0) #prefijo
|
||||||
sub("$","</h1>",$0) #sufijo
|
sub("$","",$0) #sufijo
|
||||||
bloque = 1
|
bloque = 1
|
||||||
}
|
}
|
||||||
print $0
|
appendContenido( "<h1 id='"$0"'>"$0"</h1>" )
|
||||||
}
|
}
|
||||||
|
|
||||||
/^## /{ # h2
|
/^## /{ # h2
|
||||||
|
@ -159,7 +174,7 @@ $0 !~ /^(=>|```|#{1,3} |* |>|[[:blank:]]*$)/{ # líneas de texto (no "especiales
|
||||||
sub("$","</h2>",$0)
|
sub("$","</h2>",$0)
|
||||||
bloque = 1
|
bloque = 1
|
||||||
}
|
}
|
||||||
print $0
|
appendContenido( $0 )
|
||||||
}
|
}
|
||||||
|
|
||||||
/^### /{ # h3
|
/^### /{ # h3
|
||||||
|
@ -168,10 +183,13 @@ $0 !~ /^(=>|```|#{1,3} |* |>|[[:blank:]]*$)/{ # líneas de texto (no "especiales
|
||||||
sub("$","</h3>",$0)
|
sub("$","</h3>",$0)
|
||||||
bloque = 1
|
bloque = 1
|
||||||
}
|
}
|
||||||
print $0
|
appendContenido( $0 )
|
||||||
}
|
}
|
||||||
|
|
||||||
END{
|
END{
|
||||||
|
print nav
|
||||||
|
print "</ul></nav>"
|
||||||
|
print contenido
|
||||||
# cierra tags que pudiero n haber quedado abiertas
|
# cierra tags que pudiero n haber quedado abiertas
|
||||||
if(modo_pre)
|
if(modo_pre)
|
||||||
print "</pre>"
|
print "</pre>"
|
||||||
|
@ -180,6 +198,10 @@ END{
|
||||||
else if(modo_lista)
|
else if(modo_lista)
|
||||||
print "</ul>"
|
print "</ul>"
|
||||||
|
|
||||||
|
print "</main>"
|
||||||
|
print "<footer>"
|
||||||
|
# TODO footer
|
||||||
|
print "</footer>"
|
||||||
print "</body>"
|
print "</body>"
|
||||||
print "</html>"
|
print "</html>"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue