IR-first
Ξεκίνα από Writer.createWriter({ markdown }) και χρησιμοποίησε toIR(), toHTML() ή toText(). Το document είναι πάντα διαθέσιμο.
Render-only · core bundle
Η σελίδα φορτώνει μόνο το writer-core.min.js (~100 kB gzip). Κανένα contenteditable, κανένα shadow DOM — μόνο Markdown → IR → formats.
Live lab
Κάθε tab είναι το ίδιο document σε άλλη μορφή. Άλλαξε theme και δες την τυπογραφία να περνά στο preview — από το ίδιο toCss() που θα σερβίρεις.
Formats
Όλα τα formats παράγονται από το ίδιο IR. Δεν υπάρχει “HTML renderer” και “PDF renderer” που διαφωνούν για το περιεχόμενο.
| Format | Μέθοδος | Σημείωση |
|---|---|---|
| HTML | asHTML() | Sanitized by default. |
| IR | asIR() | Canonical document node. |
| JSON | asJSON({}, true) | Pretty-printed IR. |
| Markdown | asMarkdown() | Κανονικοποιημένο source. |
| Text | asText() | Χωρίς markup. |
asPDF() | Απαιτεί engine — αλλιώς NO_PDF_ENGINE. |
Το asPDF() επιστρέφει RenderResult με base64 contents. Τα υπόλοιπα είναι strings / IR.
<script src="/assets/writer/writer-core.min.js"></script>
<div id="out"></div>
<script>
const html = Writer.WriterRender('# Hello **world**')
.theme('serif-editorial')
.asHTML();
document.querySelector('#out').innerHTML = html;
</script>
Core API
Το writer-core.min.js εκθέτει τα πάντα στο window.Writer: createWriter, WriterRender, parse, stringify, providers, themes.
Ξεκίνα από Writer.createWriter({ markdown }) και χρησιμοποίησε toIR(), toHTML() ή toText(). Το document είναι πάντα διαθέσιμο.
writer.typography.toCss(scope) δίνει τα --wr-* variables. Το preview αυτής της σελίδας τα εφαρμόζει scoped.
≈100 kB gzip αντί για ≈130 kB. Χωρίς shadow DOM, χωρίς contenteditable, χωρίς editor state — ιδανικό για SSR και static pages.
core onlywriter.min.js και πρόσθεσε <writer-editor>. Το core API παραμένει ίδιο. Δες το Editor API.Δες τον editor, το media manager και τα commands — ή διάβασε το πλήρες API.