diff --git a/index.html b/index.html index 40044f7..49e92b5 100644 --- a/index.html +++ b/index.html @@ -17,7 +17,7 @@

Maestría en Filosofía

-

Tesis en liberación continua: MD o PDF.

+

Tesis en liberación continua: MD, PDF o DOCX.

Repositorios: GitLab, GitHub o GitList.

Bibliografía: BIB o HTML, y recursos.

Avances 1: PDF, DOCX o TEX.

diff --git a/tesis/docx/generate b/tesis/docx/generate new file mode 100755 index 0000000..ec91e5e --- /dev/null +++ b/tesis/docx/generate @@ -0,0 +1,53 @@ +#!/usr/bin/env ruby +# encoding: UTF-8 +# coding: UTF-8 + +require 'fileutils' + +# Variables +tesis = 'tesis.md' + +# Lee el archivo de la tesis +md = File.read('../md/' + tesis) + +# Limpia la tesis +clean = md.gsub(/\+{2,}/, '') + .gsub(/@\w+cite\[[^\[]+\]/, ) do |e| + # Obtiene tipo de cita y referencias + type = e.gsub(/@(\w+)cite\[(.|\n)*$/, '\1') + refs = e.gsub(/^.*?\[/, '') + .gsub(']', '') + .split(/,\s*/) + out = [] + + # Iteración de las referencias + refs.each do |r| + name = r.gsub(/\d+\w/, '').capitalize + year = r.gsub(/\D+/, '') + + # Formato según si es cita textual o en paréntesis + if type == 'text' + out.push(name + ' (' + year + ')') + else + out.push(name + ', ' + year) + end + end + + # Unión de referencias según el tipo de cita + if type == 'text' + out = out.join(', ') + else + out = '(' + out.join('; ') + ')' + end + end + +# Guarda la tesis +file = File.open(tesis, 'w:utf-8') +file.puts clean +file.close + +# Convierte a DOCX +system("pandoc -V lang:es #{tesis} -o #{File.basename(tesis, '.md')}.docx") + +# Elimina MD +FileUtils.rm(tesis) diff --git a/tesis/docx/tesis.docx b/tesis/docx/tesis.docx new file mode 100644 index 0000000..b3a75f7 Binary files /dev/null and b/tesis/docx/tesis.docx differ