Skip to main content

Command Palette

Search for a command to run...

Cómo convertir Markdown a HTML en Oracle APEX con APEX_MARKDOWN

Updated
4 min read
Cómo convertir Markdown a HTML en Oracle APEX con APEX_MARKDOWN

¿Qué es Markdown?

Markdown es un lenguaje de marcado ligero, diseñado para escribir texto con formato sin necesidad de código HTML.
Es simple, rápido y fácil de leer incluso sin procesar.

Ejemplo básico

Markdown:

# Título
## Subtítulo
**negrita**, *cursiva*
- Lista 1
- Lista 2

HTML generado:

<h1>Título</h1>
<h2>Subtítulo</h2>
<strong>negrita</strong>
<ul><li>Lista 1</li><li>Lista 2</li></ul>

Por eso es ideal para:

  • Documentación

  • Notas técnicas

  • Blogs

  • Wikis

  • Comentarios y descripciones

El soporte para Markdown dentro de Oracle APEX se volvió una herramienta extremadamente útil para quienes desean agregar contenido dinámico, limpio y bien formateado sin escribir HTML a mano.
Gracias al paquete nativo APEX_MARKDOWN, podemos convertir fácilmente Markdown → HTML seguro y mostrarlo en cualquier página.

En este artículo te mostraré:

  1. Cómo usar Markdown en Static Content

  2. Cómo almacenarlo en tablas y renderizarlo dinámicamente

  3. Cómo construir una mini-wiki interna en tu aplicación APEX

Vamos por partes.

1. Usar Markdown en regiones Static Content

Las regiones Static Content permiten escribir HTML, pero también pueden procesar Markdown si usamos PL/SQL o un Dynamic Action.
La forma más sencilla es usar una región tipo Dynamic Content para convertir Markdown → HTML en tiempo real.

Ejemplo

  1. Crea una región Dynamic Content

  2. En el código coloca:

declare
  l_md clob := '
# Bienvenido a mi aplicación  
Renderizado con **Markdown**
                ';
begin
  return apex_markdown.to_html(l_md);
end;

Resultado: un contenido HTML perfectamente renderizado sin escribir una sola etiqueta <h1>, <strong>, <ul>, etc.

2. Guardar Markdown en tablas y mostrarlo dinámicamente

Este es el uso más poderoso: almacenar contenido Markdown en la base, y dejar que APEX lo convierta en HTML cada vez que alguien lo consulta.

Crear una tabla para Markdown

CREATE TABLE notas (
    id          NUMBER GENERATED ALWAYS AS IDENTITY,
    titulo      VARCHAR2(200),
    contenido_md CLOB,
    creado_el   DATE DEFAULT SYSDATE,
    PRIMARY KEY (id)
);

Formulario para cargar contenido

Crea un formulario automático sobre la tabla.
El campo contenido_md será un Textarea donde escribir Markdown.

Listar notas con Markdown procesado

Crea un Interactive Report o Classic Report con la consulta:

select
    id,
    titulo,
    apex_markdown.to_html(contenido_md) as contenido_html,
    creado_el
from notas

En la columna contenido_html marca:

  • Escape special charactersNO (importantísimo)

Esto permite mostrar el HTML generado por TO_HTML.

3. Construir una mini-wiki dentro de Oracle APEX

Este es un caso de uso muy práctico para intranets, documentación de proyectos, manuales de usuario, etc.

La idea:

  • cada página de la wiki se guarda como un registro con Markdown

  • cada vez que un usuario accede, el sistema convierte Markdown → HTML

  • se pueden agregar enlaces entre páginas fácilmente

Estructura de ejemplo

CREATE TABLE wiki_paginas (
    id            NUMBER GENERATED ALWAYS AS IDENTITY,
    slug          VARCHAR2(200) UNIQUE, 
    titulo        VARCHAR2(200),
    contenido_md  CLOB,
    actualizado_el DATE DEFAULT SYSDATE,
    PRIMARY KEY (id)
);

El slug sirve como identificador amigable para la URL.


INSERT INTO wiki_paginas (slug, titulo, contenido_md)
VALUES (
    'instalacion',
    'Guía de Instalación',
    '# Instalación de la Aplicación

Sigue estos pasos para instalar la aplicación:

1. Descargar los archivos del repositorio
2. Crear la base de datos en Oracle
3. Configurar ORDS y APEX
4. Importar el archivo de la aplicación
5. Probar el login inicial
'
);

INSERT INTO wiki_paginas (slug, titulo, contenido_md)
VALUES (
    'configuracion',
    'Configuración Inicial',
    '# Configuración Inicial

Antes de empezar, asegúrate de:

- Configurar usuarios y roles
- Ajustar parámetros de correo
- Revisar conexiones a la base de datos
- Activar logs y auditoría
'
);

INSERT INTO wiki_paginas (slug, titulo, contenido_md)
VALUES (
    'uso_basico',
    'Uso Básico de la Aplicación',
    '# Uso Básico

## Crear un registro

- Acceder al módulo correspondiente
- Hacer clic en "Nuevo"
- Completar los campos requeridos
- Guardar y verificar

## Editar un registro

- Seleccionar el registro
- Hacer clic en "Editar"
- Modificar los datos
- Guardar cambios
'
);

INSERT INTO wiki_paginas (slug, titulo, contenido_md)
VALUES (
    'faq',
    'Preguntas Frecuentes',
    '# FAQ - Preguntas Frecuentes

## ¿Cómo recupero mi contraseña?
Ve a la pantalla de login y haz clic en "Olvidé mi contraseña".

## ¿Puedo exportar datos?
Sí, utiliza la opción "Exportar" disponible en los reportes.
'
);

Listado principal de páginas

Consulta:

select
  titulo,
  slug,
  actualizado_el
from wiki_paginas
order by titulo;

Página para visualizar una página de la wiki

Región Dynamic Content:

declare
    l_md clob;
begin
    select contenido_md into l_md
    from wiki_paginas
    where (id = :P22_LISTA);

    return apex_markdown.to_html(l_md);
end;

Podemos agregar una lista de valores para ir navegando en la wiki

select
  slug,
  id
from wiki_paginas
order by titulo;

Al ejecutar tendriamos este conportamiento

Conclusión

Con APEX_MARKDOWN podés:

  • mostrar contenido elegante en regiones Static Content

  • almacenar Markdown en tablas y renderizarlo como HTML

  • construir una mini-wiki interna sin escribir HTML

  • ofrecer editores con preview en tiempo real

  • mantener documentación y notas dentro de tu app sin dependencias externas

Es simple, seguro y muy poderoso.

Si te gustó este artículo comentame que te parecio y si aprendiste algo nuevo, podés darle “Follow“ al blog, compartir la publicación o incluso invitarme un café así seguimos creando más contenido sobre Oracle APEX.

More from this blog

U

Untitled Publication

40 posts