Chỉnh sửa: Gần đây tôi đã tìm hiểu về một dự án gọi là CommonMark, trong đó xác định chính xác và giao dịch với sự mơ hồ trong đặc điểm kỹ thuật Đánh dấu ban đầu . http://commonmark.org/ Nó có thư viện C# tuyệt vời.Bạn sẽ phân tích cú pháp Markdown như thế nào?
Bạn có thể tìm cú pháp here.
Nguồn sau tải xuống được viết bằng Perl, mà tôi không có ý định tôn vinh. Nó được riddled với các biểu thức thông thường, và nó dựa trên MD5 băm để thoát khỏi các ký tự nhất định. Một cái gì đó chỉ là sai về điều đó!
Tôi chuẩn bị mã hóa phân tích cú pháp cứng cho Markdown. Kinh nghiệm với điều này là gì?
Nếu bạn không có bất kỳ điều gì có ý nghĩa để nói về việc phân tích cú pháp thực sự của Markdown, hãy dành thời gian cho tôi. (Điều này nghe có vẻ khắc nghiệt, nhưng có, tôi đang tìm kiếm thông tin chi tiết, không phải là giải pháp, nghĩa là thư viện của bên thứ ba).
Để giúp một chút với câu trả lời, cụm từ thông dụng có nghĩa là xác định các mẫu! KHÔNG phân tích cú pháp toàn bộ ngữ pháp. Mọi người xem xét làm như vậy là foobar.
- Nếu bạn nghĩ về Markdown, về cơ bản nó dựa trên khái niệm đoạn văn.
- Như vậy, một cách tiếp cận hợp lý có thể là chia đầu vào thành các đoạn văn.
- Có nhiều loại đoạn văn, ví dụ: tiêu đề, văn bản, danh sách, khối trích dẫn và mã.
- Thách thức là như vậy để xác định các đoạn văn này và trong bối cảnh chúng xảy ra.
Tôi sẽ trở lại với giải pháp, khi tôi thấy nó xứng đáng được chia sẻ.
@cletus đang viết trình phân tích cú pháp đánh dấu, xem http://www.cforcoding.com/search/label/markdown –
Tôi đã thực hiện tương tự. Tuy nhiên, tôi không cố phân tích cú pháp như thể đó là ngữ pháp chính thức, bởi vì rõ ràng là không. Tôi áp dụng các biểu thức chính quy khác nhau theo cách đệ quy. Và trong nhiều lần. Điều đó làm việc rất tốt. –
@JohnLeidegren, bất kỳ cơ hội người dùng tò mò khác như bản thân tôi có thể thấy nỗ lực của bạn tại phân tích cú pháp đánh dấu? – jmlopez