Saltar al contenido principal

Clase 05 — Markdown para DevOps

Plantilla README.md profesional

<div align="center">
<img src="./images/logo.png" alt="Logo" width="200" />
<h1>Nombre del Proyecto</h1>
<p>Breve descripción del proyecto en una o dos líneas.</p>

![Build](https://img.shields.io/badge/build-passing-brightgreen)
![Version](https://img.shields.io/badge/version-1.0.0-blue)
![License](https://img.shields.io/badge/license-MIT-green)
</div>

---

## 📋 Tabla de Contenidos

- [Requisitos](#requisitos)
- [Instalación](#instalación)
- [Uso](#uso)
- [Variables de Entorno](#variables-de-entorno)
- [API](#api)
- [Contribuir](#contribuir)
- [Licencia](#licencia)

## 📦 Requisitos

- Docker 24+
- Node.js 20+
- Python 3.12+

## 🔧 Instalación

git clone https://github.com/user/repo.git
cd repo
make install

## 🚀 Uso

make run

## 🔐 Variables de Entorno

| Variable | Descripción | Default |
|-----------|-------------------|-------------|
| `PORT` | Puerto del servidor | `8000` |
| `DB_URL` | URL de la base | `sqlite://` |
| `SECRET` | JWT secret key ||

## 🤝 Contribuir

1. Fork → 2. Branch → 3. Commit → 4. Push → 5. PR

## 📄 Licencia

MIT

Badges (shields.io)

<!-- Badges estáticos -->
![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)
![Kubernetes](https://img.shields.io/badge/Kubernetes-326CE5?style=for-the-badge&logo=kubernetes&logoColor=white)
![AWS](https://img.shields.io/badge/AWS-232F3E?style=for-the-badge&logo=amazon-aws&logoColor=white)
![Terraform](https://img.shields.io/badge/Terraform-7B42BC?style=for-the-badge&logo=terraform&logoColor=white)

<!-- Badges dinámicos -->
![GitHub stars](https://img.shields.io/github/stars/user/repo)
![GitHub forks](https://img.shields.io/github/forks/user/repo)
![GitHub issues](https://img.shields.io/github/issues/user/repo)
![GitHub license](https://img.shields.io/github/license/user/repo)

<!-- Badge de CI/CD -->
![CI](https://github.com/user/repo/actions/workflows/ci.yml/badge.svg)

Estilos de badges

EstiloParámetro
Flat?style=flat
Flat Square?style=flat-square
Plastic?style=plastic
For the Badge?style=for-the-badge
Social?style=social

CHANGELOG.md

# Changelog

Todos los cambios notables del proyecto se documentan aquí.

El formato está basado en [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/).

## [1.2.0] - 2026-02-28

### Agregado
- Endpoint de health check
- Soporte para PostgreSQL
- Dashboard de métricas

### Cambiado
- Migración de Express a Fastify
- Actualización de Node.js a v20

### Corregido
- Fix en autenticación JWT (#42)
- Memory leak en conexiones WebSocket (#38)

## [1.1.0] - 2026-01-15

### Agregado
- Sistema de logging estructurado
- Rate limiting en API

### Eliminado
- Soporte para Node.js 16 (EOL)

Docusaurus Markdown

Docusaurus extiende Markdown con funcionalidades extra:

Frontmatter

---
sidebar_position: 1
title: "Mi Página"
description: "Descripción para SEO"
tags: [docker, devops]
---

Admonitions

:::note[Nota]
Información útil.
:::

:::tip[Consejo]
Un tip para el usuario.
:::

:::info[Información]
Dato importante.
:::

:::warning[Advertencia]
Tené cuidado con esto.
:::

:::danger[Peligro]
Esto puede causar problemas.
:::

Tabs

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

<Tabs>
<TabItem value="docker" label="Docker">
docker compose up -d
</TabItem>
<TabItem value="podman" label="Podman">
podman-compose up -d
</TabItem>
</Tabs>

Code blocks con título

```bash title="Dockerfile"
FROM node:20-alpine
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "server.js"]
```

MkDocs Markdown

MkDocs también extiende Markdown:

<!-- Admonitions (con mkdocs-material) -->
!!! note "Nota"
Contenido de la nota.

!!! warning "Advertencia"
Contenido de la advertencia.

!!! example "Ejemplo"
Contenido del ejemplo.

<!-- Tabs -->
=== "Docker"
docker compose up -d

=== "Podman"
podman-compose up -d

Plantilla de documentación de API

## 📡 API Reference

### Obtener todos los usuarios

```http
GET /api/v1/users
ParámetroTipoDescripción
pagenumberPágina (default: 1)
limitnumberResultados por página (default: 20)

Response 200:

{
"data": [
{
"id": 1,
"name": "ROXS",
"email": "roxs@example.com"
}
],
"total": 42,
"page": 1
}

Response 401:

{
"error": "Unauthorized",
"message": "Token inválido o expirado"
}

## Ejercicios

1. Creá un README.md profesional para un proyecto ficticio con badges, tabla de contenidos y secciones completas
2. Creá un CHANGELOG.md con al menos 3 versiones
3. Creá documentación de API para 3 endpoints (GET, POST, DELETE)