Procesamiento seguro de Markdown con el método inlineMarkdown de Laravel
- Publicado el 10 febrero, 2025
- Palabras: 71
El manejo de cadenas de Laravel incluye un poderoso convertidor de Markdown con el método inlineMarkdown, que ofrece una transformación segura de Markdown con estilo GitHub a HTML en línea.

#Uso básico
El método Str::inlineMarkdown convierte el código Markdown de GitHub en HTML en línea mediante CommonMark. Sin embargo, a diferencia del método Markdown, no envuelve todo el HTML generado en un elemento a nivel de bloque:
use IlluminateSupportStr;
// Basic conversion
$html = Str::inlineMarkdown('**Laravel**');
// Result: <strong>Laravel</strong>
// Secure conversion with options
$html = Str::inlineMarkdown(
'Inject: <script>alert("Hello XSS!");</script>',
[
'html_input' => 'strip',
'allow_unsafe_links' => false,
]
);
// Result: Inject: alert("Hello XSS!");
#Ejemplo práctico
A continuación se explica cómo podría usarlo en un sistema de procesamiento de comentarios:
class CommentProcessor
{
protected $markdownOptions = [
'html_input' => 'strip',
'allow_unsafe_links' => false
];
public function formatComment(string $content)
{
return Str::inlineMarkdown(
$content,
$this->markdownOptions
);
}
public function processUserMention(string $content)
{
// Convert @username to links while keeping other markdown
$processed = preg_replace(
'/@(w+)/',
'[@$1](/users/$1)',
$content
);
return Str::inlineMarkdown(
$processed,
$this->markdownOptions
);
}
public function formatNotification(string $template, array $vars)
{
$content = strtr($template, $vars);
return Str::inlineMarkdown(
$content,
[
'html_input' => 'escape',
'allow_unsafe_links' => false
]
);
}
}
// Usage
$processor = new CommentProcessor();
$comment = $processor->formatComment('**Important** update!');
$mention = $processor->processUserMention('Hey @john, check this!');
El método inlineMarkdown garantiza un procesamiento seguro de Markdown manteniendo al mismo tiempo una salida HTML limpia y en línea.
Fuente: Harris Raftopoulos
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión