B-Arts DocumentationIndice generale

Namespace B.BMarkdown

Scopo

B.BMarkdown legge contenuti Markdown, li rappresenta mediante un albero di nodi B-Arts e li converte in HTML senza dipendenze di terze parti.

Il namespace separa tre responsabilità:

  • parsing del testo Markdown;

  • rappresentazione strutturata del documento;

  • rendering HTML personalizzabile tramite classi CSS.

Tipi pubblici

  • BMarkdownParser — converte una stringa Markdown in BMarkdownDocument.

  • BMarkdownDocument — contiene la radice del documento, gli errori e la conversione HTML.

  • BMarkdownNode — rappresenta un nodo dell'albero Markdown.

  • BMarkdownHtmlRenderer — genera HTML e permette di personalizzare i nomi delle classi CSS.

  • BMarkdownFile — carica un file mediante BFile, esegue il parsing e produce HTML.

Funzionalità Markdown supportate

Il parser riconosce:

  • titoli ATX da # a ###### e titoli Setext;

  • paragrafi e interruzioni di riga forzate con due spazi finali;

  • grassetto, corsivo, testo barrato e codice inline;

  • blocchi di codice delimitati da backtick o tilde, con linguaggio opzionale;

  • link, immagini e titolo opzionale;

  • citazioni;

  • elenchi puntati e numerati, anche annidati;

  • tabelle con allineamento delle colonne;

  • separatori orizzontali;

  • HTML inline e blocchi HTML semplici;

  • escape tramite barra inversa.

Flusso consigliato

  1. Usare BMarkdownFile quando il contenuto proviene da un file.

  2. Usare BMarkdownParser quando il Markdown è già disponibile come stringa.

  3. Ispezionare BMarkdownDocument.Root quando serve lavorare sull'albero.

  4. Usare BMarkdownDocument.ToHTML() per il rendering standard oppure passare un BMarkdownHtmlRenderer configurato.

  5. Applicare BMarkdown.css o definire regole equivalenti per le classi prodotte dal renderer.

Sicurezza HTML

Il renderer codifica testo, URL, titoli e attributi, ma i nodi Html vengono emessi senza sanitizzazione. Il parser crea nodi Html quando incontra markup HTML inline o blocchi che iniziano con un tag. Non renderizzare come HTML contenuti non affidabili senza una sanitizzazione applicativa adeguata.