mdml-cgi/README.md
S David 2582bf7e2f
Some checks failed
buildbot/mdml-cgi-linux-builder Build done.
buildbot/mdml-cgi-freebsd-builder Build done.
buildbot/mdml-cgi-macos-builder Build done.
Add CI/CD status badge to README.md
2024-04-19 20:01:38 -04:00

2.7 KiB

mdml-cgi

mdml-cgi is a C++ application designed to be used as a Common Gateway Interface (CGI) script by web servers. It facilitates the generation of HTML content by combining a template and a Markdown file. The project utilizes the cmark library for Markdown parsing. The license for the cmark library can be found in the root directory.

CI/CD Build Status

Arch Linux FreeBSD 14.0 macOS Windows
Build Status Build Status Build Status TBD

Features

  • Markdown to HTML: Convert Markdown content to HTML using the powerful cmark library.
  • Template Support: Generate HTML by combining a template with the parsed Markdown content.
  • CGI Integration: Seamless integration with web servers as a CGI script for dynamic content generation.

Dependencies

Building and Installation

  1. Clone the repository:

    git clone https://github.com/your-username/mdml-cgi.git
    
    
  2. Build the project:

    cmake -B release -DCMAKE_BUILD_TYPE=Release 
    make -C release 
    

    or

    cmake -B release -DCMAKE_BUILD_TYPE=Release  -G Ninja
    ninja -C release
    

Testing

Unit tests for mdml-cgi are implemented using the Catch2 framework. To run the tests, execute:

cmake -B debug -DCMAKE_BUILD_TYPE=Debug 
 make -C debug ctest

or

cmake -B debug -DCMAKE_BUILD_TYPE=Debug  -G ninja
ninja -C debug ctest

Usage

To use mdml-cgi as a CGI script, follow these steps:

  1. Configure your web server to recognize mdml-cgi as a CGI script.
  2. Ensure the required dependencies are installed.
  3. Place your Markdown file and template in a designated directory.
  4. Make a request to the CGI script, passing the Markdown file and template as parameters.

License

This project is licensed under the Mozilla Public License.

Contributing

Please feel free to submit pull requests, but this project is a small personal project for now, that I'm using to build a portfolio and expose myself to modern C++.