Skip to content

Repository files navigation

MonoBrowser Core

Render local and remote markdown files inside your projects and games!

mb

⚠️ Status: Under Development

This project is in active development and not ready for production use.

  • Breaking changes may happen at any time
  • Features may be incomplete or unstable
  • No guarantees of backward compatibility until a stable release (v1.0)

Feedback and contributions are welcome, but please don't rely on this in a production environment yet.

Quick start

Install via Nuget: dotnet add package MonoBrowser

  1. Add component to your game or project Please, check the monobrowser-example for the latest options
var browserWindow = new Rectangle(10, 10, _graphics.PreferredBackBufferWidth - 20, _graphics.PreferredBackBufferHeight - 20);

var browser = new BrowserComponent(this, browserWindow)
{
    EnableScrollbar = true, // shows the scrollbar
    AllowWheelScroll = true,
    AllowKeyScroll = true,
    DisableImages = true,
    EnableDebug = true,
    SyntaxHighlight = "c#" // show colors in code blocks
};

browser.OnLinkClicked += (_, url) =>
{
    // load new page or invoke method inside your game
    Console.WriteLine($"User clicked on: {url}");
};


// in alpha version you need to wait component to download fonts and some loading logic
// or force Component.LoadContent()
browser.OnReady += (_, _) =>
{
    // load remote document
    browser.Navigate("https://raw.githubusercontent.com/romanov/monobrowser/refs/heads/main/README.md");
    
    // load local document
    // browser.LoadFile("path to your file");

    // load local document from Content folder of your app
    // browser.Navigate("content://TEST.md");
    
};


Components.Add(browser);
  1. Open remote markdown document with browser.Navigate("https://yoursite/readme.md")
  2. Close window with browser.Close()

Documentation

F5: Refresh remote document.

Tilda: Open debug menu (in debug mode).

You can load markdown content directly.

browser.FromString("""
                           # Game manual
                           
                           My game is **awesome** and here you can 
                           [read more](https://mygame.test) about it.
                           
                           ## How to play
                           
                           - Run my game
                           - Click on a play button
                           - Enjoy!
                           
                           """);

About

image

  • MonoBrowser - a browser for markdown files (in development) based on MonoBrowser Core.
  • MonoBrowser Core - a lightweight bare minimum browser component & markdown rendering engine written in F# for MonoGame, and adaptable to desktop, mobile, and embedded C#/F# applications.

Support

Works in your C# or F# MonoGame projects. Library tested on Windows 11, and macOS 26 Tahoe Library tested on Linux (Elementary OS 8.1)

Roadmap

  1. Multiple windows.

Licenses

ImageSharp - allows convert images to PNG and load it to the game

AngleSharp - HTML parser

Markdig - markdown parser

FontStashSharp - fonts and text rendering

Apos Input - events

Open Sans font - default font

ColorCode - Syntax Highlight

About

MonoBrowser Core is a markdown (CommonMark) rendering engine written in F# for MonoGame, and adaptable to desktop, mobile, and embedded applications.

Topics

Resources

Stars

17 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages