Chuyển đến nội dung chính

Markdown là gì?

Markdown là gì

Markdown là một lightweight markup language với cú pháp văn bản thuần túy (plain text formatting syntax) được thiết kế để có thể chuyển đổi thành HTML và nhiều định dạng khác. Mục tiêu chính của Markdown là giúp mọi người "viết bằng định dạng văn bản thuần túy dễ đọc và dễ viết nhất có thể, đồng thời có thể tùy chọn chuyển đổi nó sang HTML một cách hợp lệ."

Lịch sử

Markdown được tạo ra bởi John Gruber vào năm 2004, với sự hỗ trợ của Aaron Swartz cho cú pháp ban đầu. John Gruber đã đặt mục tiêu tạo ra một ngôn ngữ mà người dùng có thể đọc được dưới dạng văn bản thuần túy mà không cần chuyển đổi, đồng thời cũng có thể chuyển đổi thành HTML. Điều này đã giúp Markdown nhanh chóng trở nên phổ biến trong giới blogger, nhà phát triển và những người muốn viết tài liệu một cách hiệu quả.

Kể từ đó, nhiều biến thể và phần mở rộng của Markdown đã xuất hiện, chẳng hạn như GitHub Flavored Markdown (GFM), CommonMark, làm cho nó ngày càng mạnh mẽ và linh hoạt hơn. 

Ví dụ

Để sử dụng Markdown trong ứng dụng ASP.NET Core, chúng ta cần một thư viện hoặc công cụ để chuyển đổi cú pháp Markdown thành HTML. Một trong những thư viện phổ biến và mạnh mẽ nhất cho .NET là Markdig.

Bước 1: Cài đặt Markdig

dotnet add package Markdig

Bước 2: Chuyển đổi Markdown sang HTML

Sau khi cài đặt, bạn có thể sử dụng Markdig.Markdown.ToHtml() để chuyển đổi một chuỗi Markdown thành chuỗi HTML.

using Markdig;
using MarkdigSample.Models;
using Microsoft.AspNetCore.Mvc;

namespace MarkdigSample.Controllers;

public class HomeController : Controller
{    
    public IActionResult MarkdownSample()
    {
        // Example markdown content
        string markdownContent = @"# Hello, Markdig!
This is a sample markdown content rendered using Markdig.
# h1 Heading 8-)
## h2 Heading
### h3 Heading
#### h4 Heading
##### h5 Heading
###### h6 Heading
*Italic text* or _Italic text_
**Bold text** or __Bold text__
***Bold and italic text***
~~Strikethrough text~~";
        // Convert Markdown to HTML
        string htmlContent = Markdown.ToHtml(markdownContent);

        return View(model: htmlContent);
    }
}
MarkdownSample.cshtml
@model string

@{
    ViewData["Title"] = "Markdown Example";
}

<div>
    @Html.Raw(Model)
</div>

Tạo Helper hoặc Service để chuyển đổi Markdown

public static class MarkdownHelper
{
    public static string ToHtml(string markdown)
    {
        var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build();
        return Markdown.ToHtml(markdown ?? "", pipeline);
    }
}
Ở Razor View
@using YourNamespace.Helpers
@model string

<div class="markdown-body">
    @Html.Raw(MarkdownHelper.ToHtml(Model))
</div>
Dưới đây là ví dụ khác sử dụng Markdown
# 📌 Giới thiệu

Xin chào! Đây là **bài viết mẫu** sử dụng _Markdown_ trong ASP.NET MVC.

## 🎯 Mục tiêu

- Hiểu cú pháp Markdown cơ bản
- Thực hành chèn hình ảnh, video, liên kết
- Làm việc với danh sách

## 🖼️ Hình ảnh

![Logo .NET](https://upload.wikimedia.org/wikipedia/commons/e/ee/.NET_Core_Logo.svg)

## 🔗 Liên kết hữu ích

[Truy cập trang chủ .NET](https://dotnet.microsoft.com)

## 📺 Video nhúng

<iframe width="560" height="315" src="https://www.youtube.com/embed/fmlLMXcg9K0?si=fw6D0JZDFuCWcMAB" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## 📋 Danh sách

### ✅ Danh sách không thứ tự:

- ASP.NET MVC
- Razor View
- Markdig Library

### 🔢 Danh sách có thứ tự:

1. Viết nội dung bằng Markdown
2. Lưu vào Database
3. Render bằng Markdig

## 🧾 Ghi chú

Bạn có thể **ngắt dòng** bằng cách kết thúc dòng hiện tại với 2 dấu cách `␣␣` rồi enter.  
Ví dụ:  
Dòng 1  
Dòng 2

---

Cảm ơn bạn đã đọc đến đây! 🎉
Sửa lại Action
public IActionResult ReadFromTemplate(string fileName = "readme")
{
    var filePath = Path.Combine(_env.ContentRootPath, "Templates", $"{fileName}.md");

    if (!System.IO.File.Exists(filePath))
    {
        return NotFound("Markdown file not found.");
    }

    string markdownContent = System.IO.File.ReadAllText(filePath);
    string htmlContent = Markdown.ToHtml(markdownContent);

    return View(model: htmlContent);
}

 

Nhận xét

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.