Esta es una herramienta que te automatiza la creación de un archivo markdown para que puedas escribir tus posts más rápido. Básicamente es un refrito de la herramienta lxcreate disponible en este mismo blog.
Índice
Te dejo el script completo así como el template para los posts aquí mismo para que puedas, simplemente, copiar y pegar en tu pc. Asegúrate de que tu fichero .py y el .txt donde están las cabeceras para el post estén en el mismo directorio desde donde se ejecuta tu programa.
Objetivos
- Crear un script en python de dos argumentos obligatorios .
- Los argumentos serán simplemente la ruta donde se creará el fichero .md y el nombre de fichero.
- El comando de ejecución tendrá que verse de la siguiente manera: python3 lxcreate.py -p Escritorio -n Nombre
- Y que nos devuelva un fichero con nombre Nombre.md en el escritorio.
- Asimismo, deseamos que el fichero .md que se cree esté listo para su uso, es decir, que ya tenga todos las cabeceras para que puedas empezar a escribir tu post.
- Adicionalmente, queremos que haya una opción para crear un directorio donde se almacene nuestro fichero.
Dado que básicamente el programa es el mismo que el de la herramienta lxcreate, te pongo el código y el template para posts para que lo puedas copiar y pegar y, algo que invito a que realices, lo modifiques de acuerdo con tus necesidades.
La diferencia esencial aquí es que si estás usando Jekyill en tu tema de GitHub Pages, los posts deben tener un formato de nombre específico: el año, mes, día y luego el nombre de tu archivo, es decir: AAAA-MM-DD-NOMBRE.md. Por esta razón usamos la librería datetime para pedirle al script que nos de la fecha del día actual y lo ponga en el nombre de nuestro fichero:
with open("mdcrt.txt","r") as afile, open(BASEPATH + "/" + args.path + "/" + args.name + "/" + str(today) + "-" + args.name + ".md","w") as bfile:
for line in afile:
bfile.write(line)
Esta parte del script es la que copia las líneas del template (el llamado “mdcrt.txt”) a nuestro fichero md con el nombre especificado, en la ruta que le pedimos más la fecha actual.
Código completo
from ast import parse
import os
import argparse
from datetime import date
BASEPATH="/home/NOMRBE_DE_USUARIO/" #Es importante que edites este campo.
parser=argparse.ArgumentParser(
description="Crea un fichero de extensión .md en la ruta que especifiques."
)
parser.add_argument('-u','--usage',
action='store_true',
help='Debes especificar el nombre de tu fichero, que será el nombre de tu post.\n'
'Ejemplo: postk.py -p Escritorio -n Hola AAAA-MM-DD-Hola.md creado en tu Escritorio.\n'
'Por defecto te crea el fichero en el Escritorio.'
)
parser.add_argument('-n','--name',
required=True,
help='Este será el nombre del fichero y el post.',
type=str,
dest='name'
)
parser.add_argument('-p','--path',
required=True,
help='Especifica la ruta donde quieres que se cree tu archivo.',
type=str,
dest='path'
)
args=parser.parse_args()
today = date.today()
def mdcreator():
a=input("¿Quieres crear un directorio para tu fichero? [S/N]\n")
if a=="S":
os.mkdir(BASEPATH + "/" + args.path + "/" + args.name)
with open("mdcrt.txt","r") as afile, open(BASEPATH + "/" + args.path + "/" + args.name + "/" + str(today) + "-" + args.name + ".md","w") as bfile:
for line in afile:
bfile.write(line)
elif a=="N":
with open("mdcrt.txt","r") as afile, open(BASEPATH + "/" + args.path + "/" + str(today) + "-" + args.name + ".md","w") as bfile:
for line in afile:
bfile.write(line)
print("Tu fichero {}.md se ha creado en {}".format(args.name,args.path))
def main():
mdcreator()
if __name__=="__main__":
main()
Template para tus posts
Nombra este archivo como quieras pero asegúrate de cambiarlo dentro del script .py.
---
layout: post
comments: false
title : Tu_Título
categories: [Categoría]
tags: Tus_tags
excerpt: "Aquí va el resumen."
---
Texto