Formato Markdown en prompts
Encabezados, negrita y bloques de código: cómo especificar un formato enriquecido.
Formato Markdown en prompts es una lección gratuita de AI Prompt Engineering en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Prompt Engineering, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Prompt Engineering incluye 4 lecciones en total.
Markdown en la salida de IA
Markdown es una sintaxis ligera de formato de texto que los modelos de IA entienden de forma nativa. Cuando solicita una salida con formato Markdown, el modelo produce texto que se representa con formato enriquecido en los entornos compatibles.
Saber exactamente cómo solicitar cada elemento de Markdown le proporciona un control preciso sobre la estructura de cada documento generado por IA.
Solicitar encabezados
Los encabezados de Markdown utilizan símbolos de almohadilla: # para H1, ## para H2 y ### para H3.
Solicítelos explícitamente: 'Estructure el contenido con encabezados de sección H2', 'Utilice ## para las secciones principales y ### para las subsecciones' o 'Incluya un único título H1 con # al principio.'
Los encabezados crean una estructura navegable en Notion, GitHub, Obsidian y la mayoría de las herramientas de documentación.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=400,
messages=[{
'role': 'user',
'content': (
'Write a technical guide outline for "Getting Started with FastAPI". '
'Structure: one # H1 title at the top, then 4 ## H2 section headers, '
'each with 2 ### H3 subsection headers beneath it. '
'Add one sentence of placeholder content under each H3.'
)
}]
)
print(response.content[0].text)Énfasis en negrita y cursiva
Énfasis en negrita y cursiva en Markdown:
**bold text**→ texto en negrita*italic text*→ texto en cursiva***bold and italic***→ negrita y cursiva
Solicite: 'Ponga en negrita todos los términos clave cuando aparezcan por primera vez', 'Utilice cursiva para los nombres de productos' o 'Ponga en negrita la tarea de cada paso.'
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Explain the concept of idempotency in REST APIs. '
'Rules:\n'
'- Bold every technical term on its first occurrence only\n'
'- Italicize all HTTP method names (GET, POST, PUT, DELETE, PATCH)\n'
'- 150 words max, flowing prose — no bullets or headers'
)
}]
)
print(response.choices[0].message.content)Bloques de código
Los bloques de código de Markdown utilizan tres acentos graves, con una indicación opcional del lenguaje para resaltar la sintaxis:
```python
print('hello')
```Solicite: 'Incluya todo el código en bloques de código de python', 'Incluya cada comando en un bloque de código bash' o 'Muestre el ejemplo de JSON en un bloque de código json.'
La indicación del lenguaje permite resaltar la sintaxis en GitHub, VS Code y los sitios de documentación.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=400,
messages=[{
'role': 'user',
'content': (
'Show me how to connect to PostgreSQL from Python using psycopg3.\n'
'Structure:\n'
'1. Install command in a bash code block.\n'
'2. Connection example in a python code block with type hints.\n'
'3. A sample SELECT query in a python code block.\n'
'Keep each code block under 10 lines. Brief one-sentence intro before each block.'
)
}]
)
print(response.content[0].text)Código en línea
El código en línea utiliza comillas invertidas simples: `variable_name`. Se muestra como texto monoespaciado dentro de una oración, por lo que resulta perfecto para:
- Nombres de variables:
user_id - Nombres de funciones:
calculate_tax() - Nombres de comandos:
git commit - Rutas de archivos:
/etc/nginx/nginx.conf - Puntos de conexión HTTP:
/api/v1/users
Solicitud: 'Utilice el formato de código en línea para todos los nombres de variables y funciones.'
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Explain the difference between Python list .append() and .extend(). '
'Rules:\n'
'- Use inline code for all method names, parameter names, and variable examples\n'
'- Use a python code block for each demonstration example\n'
'- Prose sections: max 2 sentences\n'
'- Do NOT use headers or bullets — flowing prose with code blocks only'
)
}]
)
print(response.choices[0].message.content)Citas en bloque
Las citas en bloque utilizan > al principio de una línea. En Markdown:
> This is a blockquote.
Casos de uso: recuadros destacados, notas importantes, diálogos de ejemplo, material citado de fuentes y advertencias.
Solicitud: 'Coloque la advertencia más importante en una cita en bloque' o 'Utilice una cita en bloque para el escenario de ejemplo.'
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=300,
messages=[{
'role': 'user',
'content': (
'Write a security guide section about SQL injection prevention. '
'Structure:\n'
'- 2-sentence explanation of the risk\n'
'- One blockquote containing a real example of vulnerable code (as a note/warning)\n'
'- 3 bullet points on how to prevent it\n'
'- One blockquote containing the safe alternative code pattern'
)
}]
)
print(response.content[0].text)Listas anidadas en Markdown
Las listas anidadas de Markdown utilizan sangría (2 o 4 espacios) para crear una jerarquía:
- Main item
- Sub-item
- Sub-item
- Sub-sub-itemSolicitud: 'Cree una lista anidada de dos niveles con X elementos principales y Y subelementos para cada uno' o 'Utilice viñetas anidadas para mostrar la relación entre categorías y ejemplos.'
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Create a 2-level nested markdown list of AWS services for a web startup. '
'Level 1: 4 service categories (Compute, Storage, Database, Networking). '
'Level 2: 3 specific services under each category with a 5-word description. '
'Format: markdown nested bullets with proper indentation.'
)
}]
)
print(response.choices[0].message.content)Enlaces e imágenes
Enlaces de Markdown: [link text](URL)
Imágenes de Markdown: 
Los modelos de IA pueden generar enlaces de marcador de posición con texto significativo: 'Incluya enlaces de Markdown a documentación relevante; utilice URL de marcador de posición como [official docs](https://example.com).'
Para documentación con marcadores de posición de diagramas: 'Incluya un marcador de posición de imagen con texto alternativo significativo.'
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=300,
messages=[{
'role': 'user',
'content': (
'Write a README section for a Python open-source project called "sqlens". '
'Include:\n'
'- An image placeholder for a demo screenshot: \n'
'- At least 2 markdown links: one to the PyPI page, one to the documentation\n'
'- A badge placeholder using an image link\n'
'- 3 bullet points of key features\n'
'Use realistic placeholder URLs (pypi.org/project/sqlens etc).'
)
}]
)
print(response.content[0].text)Reglas horizontales y separadores
Las reglas horizontales utilizan tres guiones (---), asteriscos (***) o guiones bajos (___).
Utilícelas para separar visualmente las secciones principales de un documento. Solicitud: 'Añada una regla horizontal --- entre cada sección principal' o 'Separe las tres secciones con separadores de Markdown.'
Las reglas horizontales se muestran en la mayoría de los entornos de Markdown y ayudan a los lectores a desplazarse por documentos extensos.
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Write a mini technical specification document for a user authentication API. '
'Include exactly 3 sections: Overview, Endpoints, Security Requirements. '
'Separate each section with a --- horizontal rule. '
'Each section: ## H2 header + 3-5 bullet points of content. '
'Under Endpoints: use inline code for all route paths and HTTP methods.'
)
}]
)
print(response.choices[0].message.content)Cuándo no se renderiza Markdown
Markdown solo resulta útil cuando el entorno de salida lo renderiza. Markdown NO se renderiza en:
- Clientes de correo electrónico de texto sin formato (se muestran los asteriscos sin procesar)
- Mensajes SMS
- La mayoría de los campos de notas de los CRM
- Salidas de voz (texto a voz)
- Sistemas heredados que esperan texto sin formato
En estos contextos, solicite explícitamente texto sin formato. Esto se aborda en la siguiente lección.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# Check if environment renders markdown before requesting it
rendering_environments = {
'GitHub': True,
'Notion': True,
'Obsidian': True,
'VS Code': True,
'Gmail body': False, # some markdown, not all
'Outlook': False,
'SMS': False,
'Plain text file': False,
}
print('Markdown rendering support:')
for env, renders in rendering_environments.items():
status = 'RENDERS' if renders else 'DOES NOT RENDER'
print(f' {env:<20} {status}')
# Decision: use markdown only when you know it renders
use_markdown = True # set based on your environment
format_instruction = (
'Use markdown headers, bold, and code blocks.' if use_markdown
else 'Plain text only — no markdown symbols.'
)
print('\nFormat instruction:', format_instruction)Combinación de elementos de Markdown
Los documentos generados por IA con calidad profesional combinan varios elementos de Markdown. Un documento técnico bien estructurado podría utilizar:
- Título H1 con
#y secciones H2 con## **bold**para los términos clave en su primera aparición- Bloques de código con indicaciones del lenguaje para todo el código
- Código en línea para todos los nombres de variables y funciones
- Listas con viñetas para los requisitos y listas numeradas para los pasos
- Citas en bloque para advertencias y notas importantes
- Separadores
---entre las secciones principales
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Write a mini developer guide for the requests Python library. '
'Use all of the following markdown elements:\n'
'- # H1 title at the top\n'
'- ## H2 sections: Installation, Basic Usage, Error Handling\n'
'- Bold all key terms on first use\n'
'- Code blocks with python/bash language hints\n'
'- Inline code for all function names\n'
'- One blockquote warning about timeout best practice\n'
'- --- between each section\n'
'Max 300 words total.'
)
}]
)
print(response.choices[0].message.content)Comprobación de conocimientos
Un desarrollador está creando un asistente de IA que genera contenido para mostrarlo en un terminal mediante print(); no hay interfaz web ni renderizador de Markdown. El desarrollador solicita a la IA una explicación de una función y recibe una salida repleta de asteriscos y símbolos de almohadilla. ¿Qué debería añadir al mensaje del sistema para solucionar este problema?
Markdown en los prompts: resumen
El formato Markdown proporciona una estructura profesional a los documentos generados por IA. Estos son los elementos principales que puede solicitar:
- Encabezados: # H1, ## H2, ### H3, para una estructura de documento fácil de recorrer
- Énfasis: **bold** para términos clave, *italic* para nombres especiales
- Bloques de código: tres comillas invertidas con una indicación del lenguaje para resaltar la sintaxis
- Código en línea: una comilla invertida para nombres de variables, comandos y rutas
- Citas en bloque: prefijo > para advertencias, destacados y contenido citado
- Listas anidadas: viñetas con sangría para información jerárquica
Utilice Markdown únicamente cuando sepa que el entorno de salida lo renderiza.
Preguntas frecuentes
¿La lección «Formato Markdown en prompts» es gratis?
Sí — el texto completo de «Formato Markdown en prompts» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Prompt Engineering, actualiza a CoddyKit PRO. El curso de AI Prompt Engineering incluye 4 lecciones en total.
¿Qué aprenderé en «Formato Markdown en prompts»?
Encabezados, negrita y bloques de código: cómo especificar un formato enriquecido. Practicas AI Prompt Engineering con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Prompt Engineering?
No se requiere experiencia previa. AI Prompt Engineering en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Formato Markdown en prompts»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Prompt Engineering?
Sí. Cada lección de AI Prompt Engineering incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Solicitar listas y viñetas
- Solicitar tablas y datos estructurados
- Formato Markdown en prompts
- Texto sin formato frente a resultados con formato