Introducing Podlite, a lightweight block-based markup language
Tags: podlite, documentation, webdev, programming
Published: 2024-02-21 08:20:54

Hey everyone! 🚀

I'm excited to introduce a new markup language called [Podlite](https://podlite.org/specification). It's designed to make  documentation, blogging, educational materials, and much more, a breeze to create and manage.

**Key features of Podlite include:**

* **Blocks as the basic unit:** Each document is built from blocks, which are the basic units that can have their own defined attributes.
* **Flexible linking:** Link blocks together in various relationships.
* **Formula support:** Perfect for academic and scientific documentation.
* **Markdown support:** Love Markdown? Podlite does too. It includes a standard block for Markdown, so you can switch modes seamlessly.
* **Rich content support:** Tables, images, table of contents, and all sorts of lists are all supported.
* **Extensibility:** Extend Podlite with your own custom blocks and inline codes to fit your needs

Podlite doesn't adhere to any specific programming language. This allows it **to be embedded** in any programming language that supports block-level comments, or multi-line comments.

**For example, in JavaScript:**

    /*
    =head1 Documentation
        
    =begin Mermaid
    graph LR
            A-->B
            B-->C
            C-->A
            D-->C
    =end Mermaid
    =begin markdown
    
    # header
    
     * text
     * text
    
    =end markdown
    */

[open this sample at pod6.in ](https://pod6.in/#p=%3Dhead1+Documentation%0A%0AThis+is+a+general+overview%3A%0A%0A%3Dbegin+Mermaid%0Agraph+LR%0A++++++++A--%3EB%0A++++++++B--%3EC%0A++++++++C--%3EA%0A++++++++D--%3EC%0A%3Dend+Mermaid%0A%3Dbegin+markdown%0A%0A%23+header%0A%0A+*+text%0A+*+text%0A%0A%3Dend+markdown)

**Blocks can be represented in three equivalent forms: delimited style, paragraph style, and abbreviated style.**

    =begin table :caption<Summary>
      Constants           1
      Variables           10
    =end table
    
    =for table :caption<Summary>
      Constants           1
      Variables           10
    
    =table
      Constants           1
      Variables           10

[open this sample at pod6.in](https://pod6.in/#p=%0A%3Dbegin+table++%3Acaption%3CSummary%3E%0A++Constants+++++++++++1%0A++Variables+++++++++++10%0A%3Dend+table%0A%0A%3Dfor+table+%3Acaption%3CSummary%3E%0A++Constants+++++++++++1%0A++Variables+++++++++++10%0A%0A%3Dtable%0A++Constants+++++++++++1%0A++Variables+++++++++++10%0A)

Podlite is perfect for creating documentation, blogs, educational materials, and much more.

**Current status of Podlite:**

* currently in **beta**, with ongoing work for the next version.
* there's a [reference implementation](https://github.com/podlite/podlite) driving [web publishing package](https://github.com/podlite/podlite-web)  and [a web editor](https://pod6.in) .
* and yes, there's an editor/viewer for desktop too: https://github.com/podlite/podlite-desktop.

This is an early announcement to gauge interest in this markup language.

**Find out more:**

* Specification : [https://github.com/podlite/podlite-specs](https://github.com/podlite/podlite-specs), [\[in html format\]](https://podlite.org/specification)
* github:  [https://github.com/podlite](https://github.com/podlite) ⭐️
* website: [https://podlite.org](https://podlite.org)
* web playground: [https://pod6.in](https://pod6.in)

[The Podlite specification](https://github.com/podlite/podlite-specs/blob/main/S26-documentation.pod6) is published under the Artistic license 2.0.

I'd be incredibly grateful for any feedback and ideas.

Thank you so much for your time!

Best regards, Alex