Dar formato a publicaciones de blog en Markdown

Se te encomienda obtener algunas publicaciones de blog de una API y darles formato usando Markdown, para que tu compañero de trabajo (que no tiene idea de qué es Markdown) pueda publicarlas fácilmente en el sitio web de tu empresa.

Ya descubriste cómo obtener las publicaciones y los usuarios asociados desde la API; ahora solo necesitas escribir una función que reciba esos datos y los formatee en una cadena Markdown. Las reglas son las siguientes:

  • El title debe comenzar con un carácter en mayúscula y mostrarse como un H1.
  • Agrega 2 saltos de línea después del title.
  • La metadata de la publicación tiene el siguiente formato: Written by <author> on <date>

    • La parte <author> es un enlace cuyo texto es el firstName y lastName del autor (separados por un espacio), mientras que el href es un mailto:<author email>.
    • La parte <date> es la fecha de la publicación y el formato es el siguiente: <weekday>, <month> <date>, <year>
      • El día de la semana aparece en forma abreviada (Thu, Sun, …)
      • El mes aparece en forma completa (April, December, …)
      • La fecha aparece en formato de 2 dígitos (01 - 31)
      • El año siempre aparece en formato extendido (2018)
  • Agrega 2 saltos de línea después de la metadata.

  • El separator es una línea horizontal; en Markdown se escribe así: ---.
  • Agrega 2 saltos de línea después del separator.
  • El body de la publicación ya tiene el formato correcto y es lo último que debes agregar.

Estructura de datos

Post

PropiedadTipoDescripción
idnumberid de la publicación
userIdnumberid del usuario que escribió la publicación
timestampnumbertimestamp de la publicación (en milisegundos)
titlestringtítulo de la publicación
bodystringcuerpo (contenido) de la publicación

User

PropiedadTipoDescripción
idnumberid del usuario
firstNamestringnombre del usuario
lastNamestringapellido del usuario
emailstringcorreo electrónico del usuario

Ejemplos

Entrada:

formatBlogPost(
  {
    id: 1,
    userId: 10,
    timestamp: 1536581919628,
    title: 'varius ut blandit non interdum in ante',
    body:
      'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.\n\nIn quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.',
  },
  users, // Array of objects, see structure above
);

Salida (como string):

# Varius ut blandit non interdum in ante

Written by [Sigismond Reavell](mailto:sreavell9@cargocollective.com) on Mon, September 10, 2018

---

Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.

In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.

Notas

  • ¿Sientes que dar formato a las fechas es tedioso? ¡No tiene por qué serlo! Consulta la pestaña de Recursos para encontrar una forma sencilla de darles formato.
  • Si eres nuevo en Markdown o no recuerdas algo, consulta la pestaña de Recursos para refrescar tus conocimientos. Algunos elementos pueden escribirse de varias maneras, así que asegúrate de usar la correcta para este desafío.