From 8b48ac3016a839cf8fb4e013d71a70d2172f1b52 Mon Sep 17 00:00:00 2001 From: santisoler Date: Sun, 1 May 2022 23:37:02 +0000 Subject: Initial commit --- LICENSE.txt | 25 +++++++++++++++++++++++++ README.md | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ notas | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 139 insertions(+) create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 notas diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..86170c9 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,25 @@ +Copyright (c) 2022 ~santisoler +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..2805e09 --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +# `notas` + +> Un sencillo script para tomar notas o llevar un diario en texto plano. + +Al ejecutar `notas` el script genera archivos Markdown organizados de forma +cronológica: una archivo por cada mes del año y dentro de ellos subsecciones +para cada día. + +Es posible configurar el directorio en el cual vamos a guardar nuestras notas +modificando la variable `notas_dir` en el script. + +Puedes utilizar comandos como `grep` para buscar notas anteriores en todo tu +directorio y sincronizar tus notas con herramientas como Syncthing, Nextcloud +o rsync. + + +## Cómo instalar? + +Clona este repositorio en tu computadora: + +``` +git clone https://git.texto-plano.xyz/santisoler/notas +``` + +Navega a la carpeta decargada: + +``` +cd notas +``` + +Y copia el script `notas` en un directorio que se encuentre en tu variable +`PATH`. + +> Puedes comprobar qué directorios se encuentran en tu variable `PATH` +> ejecutando `echo $PATH`. + +Por ejemplo, instalando el script para tu usuario: + +``` +cp notas ~/.local/bin +``` + +O bien, para todes les usuaries del sistema (requiere permisos de +superusuario): + +``` +cp notas /usr/local/bin +``` + + +## Licencia + +Este repositorio contiene Software Libre: puedes redistribuirlo y/o modificarlo +dentro de los términos de la licencia **BSD 3-clause**. Una copia de esta +licencia se encuentra provista en el archivo LICENSE.txt. diff --git a/notas b/notas new file mode 100644 index 0000000..353e036 --- /dev/null +++ b/notas @@ -0,0 +1,59 @@ +#!/bin/bash +# +# Copyright 2022 santisoler +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +# Elegimos la carpeta donde vamos a guardar nuestras notas +notas_dir=$HOME/notas + +# Definimos el archivo de notas a crear o editar +notas=$notas_dir/$(date +%Y-%m).md + +# Creamos el directorio notas_dir si no existe +if [[ ! -d $notas_dir ]]; then + mkdir "$notas_dir" +fi + +if [[ -e $notas ]]; then + # Obtener la última fecha del archivo de notas + ultima_fecha=$(cat "$notas" | grep "^## " | tail -1 | sed 's/## //') +else + # Creamos el archivo de notas si no existe + echo "# Notas del $(date +%Y-%m)" > "$notas" + ultima_fecha="" +fi + +# Editamos el archivo de notas con Neovim +if [[ "$ultima_fecha" == "$(date +%Y-%m-%d)" ]]; then + nvim -c "norm Go" -c "norm zz" "$notas" +else + nvim -c "norm Go" \ + -c "norm Go" \ + -c "norm Go## $(date +%Y-%m-%d)" \ + -c "norm zz" \ + "$notas" +fi -- cgit v1.2.3