Pequeno utilitário que converte os txt's antigos da minha era Windows
This commit is contained in:
parent
a5accf15f8
commit
599231ef32
66
tools/txt2md
Executable file
66
tools/txt2md
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
|
||||||
|
# #
|
||||||
|
# Conversor de TXT antigo para MD - Pedro T. R. Pinheiro - 22JAN22 #
|
||||||
|
# --------- -- --- ------ ---- -- - ----- -- -- -------- - ------- #
|
||||||
|
# #
|
||||||
|
# Este conversor transforma arquivos de texto puro por mim escritos #
|
||||||
|
# no passado em formato Markdown, para que possam ser corretamente #
|
||||||
|
# arquivados neste repositório. Provavelmente só é útil para mim, mas #
|
||||||
|
# seguramente pode ser adaptado a outros usos. #
|
||||||
|
# -- #
|
||||||
|
# Old TXT to MD converter: converts my old plain text files into the #
|
||||||
|
# Markdown format, so they can correctly archived in this repository. #
|
||||||
|
# Probably useful only to me, though it surely can be adapted to suit #
|
||||||
|
# the needs of different people. #
|
||||||
|
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
|
||||||
|
|
||||||
|
author="Pedro T. R. Pinheiro"
|
||||||
|
file=$1
|
||||||
|
|
||||||
|
if [ ! -f $file ]; then
|
||||||
|
echo "$file: No such file or directory."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -r $file ]; then
|
||||||
|
echo "$file: Can't stat."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Metadata
|
||||||
|
encoding=`file --mime-encoding ${file} | cut -d" " -f2`
|
||||||
|
lastMod=`stat -c %y ${file}`
|
||||||
|
presentDate=`date --rfc-3339=seconds`
|
||||||
|
title=`cat ${file} | head -1`
|
||||||
|
titleUnicode=`echo -ne ${title} | iconv -f ${encoding}`
|
||||||
|
|
||||||
|
# File contents
|
||||||
|
content=`cat ${file}`
|
||||||
|
contentUnicode=`echo -ne "${content}" | iconv -f ${encoding}`
|
||||||
|
# Lines can't be longer than 72 (-w 72), nor can
|
||||||
|
# words be broken (-s, only breaks on white space)
|
||||||
|
contentWraped=`echo "${contentUnicode}" | fold -w 72 -s`
|
||||||
|
|
||||||
|
yamlHeader=`cat << EOF
|
||||||
|
---
|
||||||
|
author: ${author}
|
||||||
|
title: ${titleUnicode}
|
||||||
|
date: "${lastMod}"
|
||||||
|
comment: "Original file written in ${encoding}, at ${lastMod}.
|
||||||
|
Converted to Markdown at ${presentDate}"
|
||||||
|
origDate: "${lastMod}"
|
||||||
|
convDate: "${presentDate}"
|
||||||
|
---
|
||||||
|
EOF`
|
||||||
|
|
||||||
|
output="${yamlHeader}\n\n${contentWraped}\n"
|
||||||
|
|
||||||
|
# Filename
|
||||||
|
# Not really useful to all people... Strong implies there's
|
||||||
|
# a ".txt" suffix to the filename.
|
||||||
|
baseName=`basename $file`
|
||||||
|
destFile=`echo $baseName | sed "s/.txt/.md/g"`
|
||||||
|
|
||||||
|
echo -ne "$output" > $destFile
|
Loading…
Reference in New Issue
Block a user