Chuyển đổi Markdown sang HTML nodejs

Tôi đang sử dụng markdown-js và nó hoạt động hoàn hảo cho các trường hợp của tôi. Như tôi có thể hiểu từ câu hỏi của bạn, bạn muốn chuyển đổi markdown thành html và cũng thay đổi tất cả

  //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
9 thành
  //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
0, bạn có thể đạt được điều đó bằng cách

  • Chuyển đổi
      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    
    1 thành
      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    
    2
  • Thay đổi
      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    
    9 thành
      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    
    0

Đây là một ví dụ thực hiện thuật toán đơn giản trước đó

var markdown = require[ "markdown" ].markdown;
var markdownStr = ['#Hello World','somethig else','#another title'].join["\n"];



var htmlResult= markdown.toHTML[markdownStr];


var finalResult = htmlResult.replace[//g,'

'] .replace[//g,'

']; console.log[htmlResult]; console.log[finalResult]; //

Hello World

//

somethig else

//

another title

Bây giờ

  //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
5 đang giữ kết quả mong muốn

Bạn có thể kiểm tra bản demo trực tuyến này

Hi vọng điêu nay co ich

Như bạn đã biết, Showdown là một thư viện miễn phí và nó sẽ vẫn miễn phí.
Tuy nhiên, việc duy trì và cải thiện thư viện tốn nhiều thời gian và tiền bạc.
Nếu bạn thích công việc của chúng tôi và thấy thư viện của chúng tôi hữu ích, vui lòng quyên góp qua paypal.
Đóng góp của bạn sẽ được đánh giá cao và giúp chúng tôi tiếp tục phát triển thư viện tuyệt vời này.

Showdown là một trình chuyển đổi JavaScript Markdown sang HTML, dựa trên các tác phẩm gốc của John Gruber. Showdown có thể được sử dụng phía máy khách [trong trình duyệt] hoặc phía máy chủ [với Node. js]

Bản thử trực tiếp

Kiểm tra một bản demo trực tiếp ở đây. http. //thử nghiệm. showdownjs. com/

Như bạn đã biết, ShowdownJS là một thư viện miễn phí và nó sẽ miễn phí mãi mãi. Tuy nhiên, việc duy trì và cải thiện thư viện tốn kém thời gian và tiền bạc.

Nếu bạn thích công việc của chúng tôi và thấy thư viện của chúng tôi hữu ích, vui lòng quyên góp qua PayPal. Đóng góp của bạn sẽ được đánh giá rất cao và giúp tôi tiếp tục phát triển thư viện tuyệt vời này

Giấy phép

ShowdownJS v 2. 0 được phát hành theo giấy phép MIT. Các phiên bản trước được phát hành theo BSD

Ai sử dụng Showdown [hoặc fork]

  • GoogleCloudPlatform
  • sao băng
  • Stackexchange - rẽ nhánh thành PageDown
  • tài liệu
  • trang md
  • Đối tượng QC
  • và một số người khác

Cài đặt

Tải xuống tarball

Bạn có thể tải xuống bản phát hành tarball mới nhất trực tiếp từ bản phát hành

người cúi đầu

bower install showdown

npm [phía máy chủ]

npm install showdown

gói NuGet

PM> Install-Package showdownjs

Các gói NuGet có thể được tìm thấy ở đây

CDN

Bạn cũng có thể sử dụng một trong một số CDN có sẵn

  • jsDelivr

      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    

  • cdnjs

      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    

  • giải nén

      //unpkg.com/showdown/dist/showdown.min.js
    

Ghi chú. thay thế

  //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
8 bằng phiên bản đầy đủ thực tế mà bạn quan tâm. g.
  //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
9

tính tương thích của trình duyệt web

Showdown đã được thử nghiệm thành công với

  • Firefox 1. 5 và 2. 0
  • Chrome 12. 0
  • Internet Explorer 6 và 7
  • Safari 2. 0. 4
  • Opera 8. 54 và 9. 10
  • Netscape 8. 1. 2
  • Konqueror 3. 5. 4

Về lý thuyết, Showdown sẽ hoạt động trên mọi trình duyệt hỗ trợ ECMA 262 3rd Edition [JavaScript 1. 5]. Bản thân trình chuyển đổi thậm chí có thể hoạt động trong những thứ không phải là trình duyệt web, chẳng hạn như Acrobat. Không hứa hẹn

Khả năng tương thích nút

Showdown nhằm mục đích hoạt động trên mọi Nút được hỗ trợ. js [xem phần Node. lịch phát hành js. Mã này có thể hoạt động với các phiên bản trước của Node. js, nhưng không có điều chỉnh nào được thực hiện để đảm bảo điều đó xảy ra

Phiên bản kế thừa

Nếu bạn đang tìm kiếm trận đấu v Install-Package showdownjs 0

  • đơn giản hóaTự động liên kết. [boolean] [mặc định là sai] Bật tùy chọn này sẽ cho phép liên kết tự động tới các url. Điều này có nghĩa rằng

    PM> Install-Package showdownjs
    
    1

    sẽ được phân tích cú pháp như

    PM> Install-Package showdownjs
    
    2

  • loại trừTrailingPunctuationFromURL. [boolean] [mặc định là sai] Tùy chọn này loại trừ dấu chấm câu ở cuối các url tự động liên kết. Đã loại trừ dấu chấm câu.

      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    1. Chỉ áp dụng nếu tùy chọn Tự động liên kết đơn giản hóa được đặt thành
      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    0

  • chữMidWordDấu gạch dưới. [boolean] [mặc định là sai] Bật tính năng này sẽ ngừng diễn giải dấu gạch dưới ở giữa các từ thành

      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    3 và
      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    4 và thay vào đó coi chúng là dấu gạch dưới theo nghĩa đen

    Thí dụ

    PM> Install-Package showdownjs
    
    3

    sẽ được phân tích cú pháp như

    PM> Install-Package showdownjs
    
    4

  • chữMidWordDấu hoa thị. [boolean] [mặc định là sai] Bật tính năng này sẽ ngừng diễn giải dấu hoa thị ở giữa các từ thành

      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    3 và
      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    4 và thay vào đó coi chúng là dấu hoa thị theo nghĩa đen

  • gạch ngang. [boolean] [mặc định là sai] Bật hỗ trợ cho cú pháp gạch ngang.

      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    7 như
      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    8

  • những cái bàn. [boolean] [mặc định là sai] Cho phép hỗ trợ cú pháp bảng. Thí dụ

    PM> Install-Package showdownjs
    
    5

    Xem wiki để biết thêm thông tin

  • bảngHeaderId. [boolean] [mặc định là sai] Nếu được bật, hãy thêm thuộc tính id vào thẻ tiêu đề bảng

  • ghCodeBlocks. [boolean] [mặc định đúng] Bật hỗ trợ cho kiểu khối mã GFM

  • danh sách nhiệm vụ. [boolean] [mặc định sai] Kích hoạt hỗ trợ cho danh sách tác vụ GFM. Thí dụ

    PM> Install-Package showdownjs
    
    6

  • mượt màLivePreview. [boolean] [default false] Ngăn các hiệu ứng lạ trong bản xem trước trực tiếp do đầu vào không đầy đủ

  • thông minhIndentationFix. [boolean] [mặc định là sai] Cố gắng khắc phục sự cố thụt đầu dòng một cách thông minh liên quan đến chuỗi mẫu es6 ở giữa mã được thụt lề

  • disableForced4SpacesIndentedSublists. [boolean] [default false] Vô hiệu hóa yêu cầu thụt lề danh sách phụ bằng 4 khoảng trắng để chúng được lồng vào nhau, hoàn nguyên hiệu quả về hành vi cũ trong đó 2 hoặc 3 khoảng trắng là đủ. [kể từ v1. 5. 0]

  • ngắt dòng đơn giản. [boolean] [default false] Phân tích cú pháp ngắt dòng thành

      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    9 mà không cần 2 dấu cách ở cuối dòng [kể từ v1. 5. 1]

    PM> Install-Package showdownjs
    
    7

    trở thành

    PM> Install-Package showdownjs
    
    8

  • requireSpace BeforeHeadingText. [boolean] [default false] Bắt buộc phải thêm khoảng trắng giữa

      //unpkg.com/showdown/dist/showdown.min.js
    
    0 và văn bản tiêu đề [kể từ v1. 5. 3]

  • đề cập. [boolean] [mặc định là sai] Bật github @mentions, liên kết đến tên người dùng được đề cập [kể từ v1. 6. 0]

  • ghMentionsLink. [chuỗi] [mặc định

      //unpkg.com/showdown/dist/showdown.min.js
    
    1] Thay đổi liên kết được tạo bởi @mentions. Showdown sẽ thay thế
      //unpkg.com/showdown/dist/showdown.min.js
    
    2 bằng tên người dùng. Chỉ áp dụng nếu tùy chọn ghMentions được bật. Thí dụ.
      //unpkg.com/showdown/dist/showdown.min.js
    
    3 với ghMentionsOption được đặt thành
      //unpkg.com/showdown/dist/showdown.min.js
    
    4 sẽ dẫn đến
      //unpkg.com/showdown/dist/showdown.min.js
    
    5

  • mã hóaEmail. [boolean] [mặc định đúng] Bật mã hóa địa chỉ email thông qua việc sử dụng Thực thể ký tự, chuyển đổi địa chỉ email ASCII thành thực thể thập phân tương đương. [kể từ v1. 6. 1]

    GHI CHÚ. Trước phiên bản 1. 6. 1, email sẽ luôn bị xáo trộn thông qua mã hóa dec và hex

  • openLinksInNewWindow. [boolean] [default false] Mở tất cả các liên kết trong cửa sổ mới [bằng cách thêm thuộc tính

      //unpkg.com/showdown/dist/showdown.min.js
    
    6 vào thẻ
      //unpkg.com/showdown/dist/showdown.min.js
    
    7] [kể từ v1. 7. 0]

  • dấu gạch chéo ngượcThoátHTMLTag. [boolean] [mặc định sai] Hỗ trợ thoát Thẻ HTML. Ví dụ.

      //unpkg.com/showdown/dist/showdown.min.js
    
    8 [kể từ v1. 7. 2]

  • biểu tượng cảm xúc. [boolean] [default false] Bật hỗ trợ biểu tượng cảm xúc. Bán tại.

      //unpkg.com/showdown/dist/showdown.min.js
    
    9 Để biết thêm thông tin về các biểu tượng cảm xúc có sẵn, hãy xem https. //github. com/showdownjs/showdown/wiki/Emojis [kể từ v. 1. 8. 0]

  • gạch dưới. [boolean] [mặc định sai] TÍNH NĂNG THỬ NGHIỆM Bật hỗ trợ gạch dưới. Cú pháp là dấu gạch dưới gấp đôi hoặc gấp ba lần.

    var showdown  = require['showdown'],
        converter = new showdown.Converter[],
        text      = '# hello, markdown!',
        html      = converter.makeHtml[text];
    0. Với tùy chọn này được bật, dấu gạch dưới không còn được phân tích cú pháp thành
      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    3 và
      //cdnjs.cloudflare.com/ajax/libs/showdown//showdown.min.js
    
    4

  • dấu chấm lửng. [boolean] [mặc định đúng] Thay thế dấu ba chấm bằng ký tự unicode dấu ba chấm

  • hoàn thànhHTMLTài liệu. [boolean] [mặc định là sai] Xuất ra một tài liệu html hoàn chỉnh, bao gồm các thẻ

    var showdown  = require['showdown'],
        converter = new showdown.Converter[],
        text      = '# hello, markdown!',
        html      = converter.makeHtml[text];
    3,
    var showdown  = require['showdown'],
        converter = new showdown.Converter[],
        text      = '# hello, markdown!',
        html      = converter.makeHtml[text];
    4 và
    var showdown  = require['showdown'],
        converter = new showdown.Converter[],
        text      = '# hello, markdown!',
        html      = converter.makeHtml[text];
    5' thay vì một đoạn HTML. [kể từ v. 1. 8. 5]

  • metadata. [boolean] [mặc định là false] Cho phép hỗ trợ siêu dữ liệu tài liệu [được xác định ở đầu tài liệu giữa

    var showdown  = require['showdown'],
        converter = new showdown.Converter[],
        text      = '# hello, markdown!',
        html      = converter.makeHtml[text];
    6 và
    var showdown  = require['showdown'],
        converter = new showdown.Converter[],
        text      = '# hello, markdown!',
        html      = converter.makeHtml[text];
    7 hoặc giữa
    var showdown  = require['showdown'],
        converter = new showdown.Converter[],
        text      = '# hello, markdown!',
        html      = converter.makeHtml[text];
    8 và
    var showdown  = require['showdown'],
        converter = new showdown.Converter[],
        text      = '# hello, markdown!',
        html      = converter.makeHtml[text];
    8]. [kể từ v. 1. 8. 5]

    PM> Install-Package showdownjs
    
    9

  • chia nhỏBlockquotes liền kề. [boolean] [mặc định sai] Tách các khối blockquote liền kề. [kể từ v. 1. 8. 6]

  • thêmKiểu dáng. [boolean] [mặc định là sai] Thêm một số lớp hữu ích để tạo kiểu css. [kể từ v2. 0. 1]

    • danh sách nhiệm vụ. Thêm lớp
      bower install showdown
      
      00 vào các mục nhiệm vụ đã hoàn thành trong danh sách nhiệm vụ GFM
  • GHI CHÚ. Xin lưu ý rằng cho đến phiên bản 1. 6. 0, tất cả các tùy chọn này đều bị TẮT theo mặc định trong công cụ cli

    Hương vị

    Bạn cũng có thể sử dụng các hương vị hoặc giá trị đặt trước để tự động đặt các tùy chọn chính xác, để phần giới thiệu hoạt động giống như các hương vị đánh dấu phổ biến

    Hiện tại có các mùi sau

    • bản gốc - hương vị đánh dấu ban đầu như trong thông số kỹ thuật của John Gruber
    • vani - hương vị cơ bản [kể từ v1. 3. 1]
    • github - GFM [Đánh dấu hương vị GitHub]

    Toàn cầu

      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    
    0

    Ví dụ

      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    
    1

    Công cụ CLI

    Showdown cũng đi kèm với công cụ Giao diện dòng lệnh. Bạn có thể kiểm tra trang wiki CLI để biết thêm thông tin

    Tích hợp với AngularJS

    Dự án ShowdownJS cũng cung cấp khả năng tích hợp liền mạch với AngularJS thông qua một "plugin". Vui lòng truy cập https. //github. com/showdownjs/ngShowdown để biết thêm thông tin

    Tích hợp với TypeScript

    Nếu bạn đang sử dụng TypeScript, bạn có thể muốn sử dụng các loại từ DefiniteTyped

    Tích hợp với SystemJS/JSPM

    Có thể tích hợp với SystemJS thông qua plugin "system-md" của bên thứ ba

    Tích hợp với VueJS

    Để sử dụng ShowdownJS như một thành phần Vue một cách nhanh chóng, bạn có thể kiểm tra vue-showdown

    Lỗ hổng XSS

    Showdown không làm sạch đầu vào. Điều này là do thiết kế vì markdown dựa vào nó để cho phép một số tính năng nhất định được phân tích cú pháp chính xác thành HTML. Tuy nhiên, điều này có nghĩa là việc tiêm XSS hoàn toàn có thể xảy ra

    Vui lòng tham khảo bài viết wiki Lỗ hổng XSS của Markdown [và cách giảm thiểu nó] để biết thêm thông tin

    Tiện ích mở rộng

    Showdown cho phép tải chức năng bổ sung thông qua tiện ích mở rộng. [bạn có thể tìm thấy danh sách các tiện ích mở rộng giới hạn đã biết tại đây] Bạn cũng có thể tìm thấy bản soạn sẵn để tạo các tiện ích mở rộng của riêng mình trong kho lưu trữ này

    Sử dụng tiện ích mở rộng phía máy khách

      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    
    2

    Sử dụng tiện ích mở rộng phía máy chủ

      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    
    3

    Tòa nhà

    Dễ dàng xây dựng bản sao kho lưu trữ của bạn

    điều kiện tiên quyết. Nút. js v12, npm và npx phải được cài đặt

    1. chạy

      bower install showdown
      
      01

    2. chạy

      bower install showdown
      
      02 [xem
      bower install showdown
      
      03]. lệnh này

      1. Làm sạch repo
      2. Kiểm tra chất lượng mã [JSHint và ESLint]
      3. chạy thử nghiệm
      4. Tạo các tệp có thể phân phối và thu nhỏ trong thư mục
        bower install showdown
        
        04

    bài kiểm tra

    Một bộ thử nghiệm có sẵn yêu cầu Node. js. Khi Node được cài đặt, hãy chạy lệnh sau từ thư mục gốc của dự án để cài đặt các phụ thuộc

      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    
    4

    Sau khi cài đặt, các thử nghiệm có thể được chạy từ thư mục gốc của dự án bằng cách sử dụng

      //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
    
    5

    Các trường hợp thử nghiệm mới có thể dễ dàng được thêm vào. Tạo một tệp đánh dấu [kết thúc bằng

    bower install showdown
    
    05] chứa đánh dấu để kiểm tra. Tạo một tệp
    bower install showdown
    
    06 có cùng tên. Nó sẽ tự động được kiểm tra khi các bài kiểm tra được thực hiện với
    bower install showdown
    
    07

    Đóng góp

    Nếu bạn muốn đóng góp, vui lòng đọc hướng dẫn nhanh sau đây

    Muốn có một tính năng?

    Bạn có thể yêu cầu một tính năng mới bằng cách gửi một vấn đề. Nếu bạn muốn triển khai một tính năng mới, vui lòng đưa ra Yêu cầu kéo

    Yêu cầu kéo [PR]

    PR thật tuyệt vời. Tuy nhiên, trước khi bạn gửi yêu cầu kéo, hãy xem xét các nguyên tắc sau

    • Tìm kiếm trên GitHub một Yêu cầu kéo mở hoặc đóng liên quan đến nội dung gửi của bạn. Bạn không muốn nhân đôi nỗ lực

    • Khi phát hành PR thay đổi mã, hãy thực hiện các thay đổi của bạn trong nhánh git mới dựa trên phát triển

        //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
      
      6

    • Chạy bộ thử nghiệm đầy đủ trước khi gửi và đảm bảo rằng tất cả các bài kiểm tra đều vượt qua [rõ ràng =P]

    • Cố gắng tuân theo các quy tắc về kiểu viết mã của chúng tôi. Việc phá vỡ chúng sẽ ngăn PR vượt qua các bài kiểm tra

    • Không khắc phục nhiều sự cố trong cùng một yêu cầu kéo. Tốt hơn là nên mở nhiều PR nhỏ thay vì khó xem xét một PR lớn

    • Nếu PR giới thiệu một tính năng mới hoặc khắc phục sự cố, vui lòng thêm trường hợp thử nghiệm thích hợp

    • Chúng tôi sử dụng các ghi chú cam kết thông thường để tạo nhật ký thay đổi tuân theo thông số kỹ thuật của nhật ký thay đổi thông thường. Sẽ cực kỳ hữu ích nếu thông báo cam kết của bạn tuân thủ các Nguyên tắc cam kết này

    • Đừng quên thêm tên của bạn vào CREDITS. tập tin md. Chúng tôi muốn cung cấp tín dụng đã đến hạn

    • Nếu chúng tôi đề nghị thay đổi thì

      • Thực hiện các cập nhật cần thiết
      • Chạy lại bộ kiểm tra để đảm bảo các bài kiểm tra vẫn vượt qua
      • Khởi động lại nhánh của bạn và buộc đẩy vào kho lưu trữ GitHub của bạn [điều này sẽ cập nhật Yêu cầu kéo của bạn]

        //cdn.jsdelivr.net/npm/showdown@/dist/showdown.min.js
      
      7

    • Sau khi yêu cầu kéo của bạn được hợp nhất, bạn có thể xóa chi nhánh của mình một cách an toàn

    Nếu bạn có thời gian để đóng góp cho dự án này, chúng tôi cảm thấy có nghĩa vụ phải ghi công cho bạn. Các quy tắc này cho phép chúng tôi xem xét PR của bạn nhanh hơn và sẽ cung cấp cho bạn tín dụng phù hợp trong hồ sơ GitHub của bạn. Chúng tôi cảm ơn bạn trước vì sự đóng góp của bạn

    tham gia đội

    Chúng tôi đang tìm kiếm các thành viên để giúp duy trì Showdown. Vui lòng xem vấn đề này để bày tỏ sự quan tâm hoặc nhận xét về ghi chú này

    Chủ Đề