👷 Agregar Makefile

- Se requieren «md2gemini» y «markdownlint-cli» como dependencias del archivo Makefile
This commit is contained in:
Iván Ruvalcaba 2023-05-14 21:09:38 -06:00
parent 46fcedbd75
commit feb6573674
Signed by: ivanruvalcaba
GPG Key ID: DBB4A5B917E572DE
2 changed files with 305 additions and 0 deletions

80
Makefile Normal file
View File

@ -0,0 +1,80 @@
# Filename: Makefile
# Author: Iván Ruvalcaba
# Contact: <ivanruvalcaba[at]disroot[dot]org>
#
# Copyright (C) 2023 Iván Ruvalcaba <ivanruvalcaba[at]disroot[dot]org>
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.
#
# See the FSF All-Permissive License for more details
# <https://spdx.org/licenses/FSFAP.html>.
MARKDOWN_CONFIG_FILE?=.markdownlint.yml
MARKDOWN_DIR?=md
MARKDOWN_FILE?=$(shell bash -c 'read -p "Nombre del archivo Markdown: " file_name; echo $$file_name')
MARKDOWNLINT_OPTIONS?=--disable MD013
BLOG_DIR?=content/blog
PUBLIC_DIR?=public
REMOTEHOST_NAME?=ivanruvalcaba@tilde.team:public_gemini
# Variables utilizadas para colorear los mensajes mostrados en la ayuda.
GREEN := $(shell tput -Txterm setaf 2)
YELLOW := $(shell tput -Txterm setaf 3)
WHITE := $(shell tput -Txterm setaf 7)
CYAN := $(shell tput -Txterm setaf 6)
RESET := $(shell tput -Txterm sgr0)
all: help
## build:
build: ## Generar el directorio público.
@echo "Generar el directorio público…"
kiln build
## mdconvert:
mdconvert: ## Convertir el contenido de un archivo Markdown a Gemtext.
@echo "Convertir archivo Markdown a Gemtext…"
md2gemini \
--plain \
--frontmatter \
--no-checklist \
--links 'at-end' \
--write $(MARKDOWN_DIR)/$(MARKDOWN_FILE) \
--dir $(BLOG_DIR)
## deploy:
deploy: clean build ## Hospedar el directorio público en el host remoto.
@echo "Desplegar el directrio «${PUBLIC_DIR}» a «${REMOTEHOST_NAME}»…"
rsync -rtvzP --delete $(PUBLIC_DIR)/ $(REMOTEHOST_NAME)/
## mdlint:
mdlint: ## Ejecutar el «lintern» a los archivos Markdown en el directorio de contenido.
# Véase: https://github.com/markdownlint/markdownlint/blob/master/docs/RULES.md
@echo "Realizar el «linting» de los archivos Markdown en el directorio «${MARKDOWN_DIR}»…"
markdownlint --config $(MARKDOWN_DIR)/$(MARKDOWN_CONFIG_FILE) $(MARKDOWN_DIR)/ $(MARKDOWNLINT_OPTIONS)
## clean:
clean: ## Eliminar el directorio público.
@echo "Eliminar el directorio «${PUBLIC_DIR}»…"
rm -rf $(PUBLIC_DIR)
## help:
help: ## Mostrar la ayuda.
@echo ''
@echo '«$$ cat /dev/random > /dev/null 2>&1» Makefile.'
@echo ''
@echo 'Usage:'
@echo ' ${YELLOW}make${RESET} ${GREEN}<target>${RESET}'
@echo ''
@echo 'Targets:'
@awk 'BEGIN {FS = ":.*?## "} { \
if (/^[a-zA-Z_-]+:.*?##.*$$/) {printf " ${YELLOW}%-20s${GREEN}%s${RESET}\n", $$1, $$2} \
else if (/^## .*$$/) {printf " ${CYAN}%s${RESET}\n", substr($$1,4)} \
}' $(MAKEFILE_LIST)
.PHONY: all build clean deploy help mdconvert mdlint
# vim: setlocal cc=80 ts=8 sw=8 noet:

225
md/.markdownlint.yml Normal file
View File

@ -0,0 +1,225 @@
# Example markdownlint YAML configuration with all properties set to their default value
# Default state for all rules
default: true
# Path to configuration file to extend
extends: null
# MD001/heading-increment/header-increment - Heading levels should only increment by one level at a time
MD001: true
# MD002/first-heading-h1/first-header-h1 - First heading should be a top-level heading
MD002:
# Heading level
level: 1
# MD003/heading-style/header-style - Heading style
MD003:
# Heading style
style: "consistent"
# MD004/ul-style - Unordered list style
MD004:
# List style
style: "consistent"
# MD005/list-indent - Inconsistent indentation for list items at the same level
MD005: true
# MD006/ul-start-left - Consider starting bulleted lists at the beginning of the line
MD006: true
# MD007/ul-indent - Unordered list indentation
MD007:
# Spaces for indent
indent: 4
# Whether to indent the first level of the list
start_indented: false
# MD009/no-trailing-spaces - Trailing spaces
MD009:
# Spaces for line break
br_spaces: 2
# Allow spaces for empty lines in list items
list_item_empty_lines: false
# Include unnecessary breaks
strict: false
# MD010/no-hard-tabs - Hard tabs
MD010:
# Include code blocks
code_blocks: true
# MD011/no-reversed-links - Reversed link syntax
MD011: true
# MD012/no-multiple-blanks - Multiple consecutive blank lines
MD012:
# Consecutive blank lines
maximum: 1
# MD013/line-length - Line length
MD013:
# Number of characters
line_length: 80
# Number of characters for headings
heading_line_length: 80
# Number of characters for code blocks
code_block_line_length: 80
# Include code blocks
code_blocks: true
# Include tables
tables: true
# Include headings
headings: true
# Include headings
headers: true
# Strict length checking
strict: false
# Stern length checking
stern: false
# MD014/commands-show-output - Dollar signs used before commands without showing output
MD014: true
# MD018/no-missing-space-atx - No space after hash on atx style heading
MD018: true
# MD019/no-multiple-space-atx - Multiple spaces after hash on atx style heading
MD019: true
# MD020/no-missing-space-closed-atx - No space inside hashes on closed atx style heading
MD020: true
# MD021/no-multiple-space-closed-atx - Multiple spaces inside hashes on closed atx style heading
MD021: true
# MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines
MD022:
# Blank lines above heading
lines_above: 1
# Blank lines below heading
lines_below: 1
# MD023/heading-start-left/header-start-left - Headings must start at the beginning of the line
MD023: true
# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
MD024:
# Only check sibling headings
allow_different_nesting: false
# Only check sibling headings
siblings_only: false
# MD025/single-title/single-h1 - Multiple top-level headings in the same document
MD025:
# Heading level
level: 1
# RegExp for matching title in front matter
front_matter_title: "^\\s*title\\s*[:=]"
# MD026/no-trailing-punctuation - Trailing punctuation in heading
MD026:
# Punctuation characters
punctuation: ".,;:!。,;:!"
# MD027/no-multiple-space-blockquote - Multiple spaces after blockquote symbol
MD027: true
# MD028/no-blanks-blockquote - Blank line inside blockquote
MD028: true
# MD029/ol-prefix - Ordered list item prefix
MD029:
# List style
style: "one_or_ordered"
# MD030/list-marker-space - Spaces after list markers
MD030:
# Spaces for single-line unordered list items
ul_single: 1
# Spaces for single-line ordered list items
ol_single: 1
# Spaces for multi-line unordered list items
ul_multi: 1
# Spaces for multi-line ordered list items
ol_multi: 1
# MD031/blanks-around-fences - Fenced code blocks should be surrounded by blank lines
MD031:
# Include list items
list_items: true
# MD032/blanks-around-lists - Lists should be surrounded by blank lines
MD032: true
# MD033/no-inline-html - Inline HTML
MD033:
# Allowed elements
allowed_elements: []
# MD034/no-bare-urls - Bare URL used
MD034: true
# MD035/hr-style - Horizontal rule style
MD035:
# Horizontal rule style
style: "consistent"
# MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading
MD036:
# Punctuation characters
punctuation: ".,;:!?。,;:!?"
# MD037/no-space-in-emphasis - Spaces inside emphasis markers
MD037: true
# MD038/no-space-in-code - Spaces inside code span elements
MD038: true
# MD039/no-space-in-links - Spaces inside link text
MD039: true
# MD040/fenced-code-language - Fenced code blocks should have a language specified
MD040: true
# MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading
MD041:
# Heading level
level: 1
# RegExp for matching title in front matter
front_matter_title: "^\\s*title\\s*[:=]"
# MD042/no-empty-links - No empty links
MD042: true
# MD043/required-headings/required-headers - Required heading structure
#MD043:
# List of headings
#headings: []
# List of headings
#headers: []
# MD044/proper-names - Proper names should have the correct capitalization
MD044:
# List of proper names
names: []
# Include code blocks
code_blocks: true
# MD045/no-alt-text - Images should have alternate text (alt text)
MD045: true
# MD046/code-block-style - Code block style
MD046:
# Block style
style: "consistent"
# MD047/single-trailing-newline - Files should end with a single newline character
MD047: true
# MD048/code-fence-style - Code fence style
MD048:
# Code fence syle
style: "consistent"