Marker - A Language for Links

Marker is a domain specific language specifically for managing collections of links. This project was born out of a desire to have a format for browser bookmarks which was both easy to parse and supported a wide variety of formats. At the moment, Marker supports compiling to the Netscape bookmark format, plan HTML, or even plain text. Marker also features an extensive generator DSL included which allows anyone to write their own marker compiler with ease.

Marker leverages the expressiveness of Racket, the langauge it is based in. When you make a marker document, that document is compiled into Racket data structures almost immediately. This allows you to require a Marker file as you would any other Racket file and use it from your code instantly! With this feature, it is extremely easy to access Marker data from any Racket program.

The general format of Marker uses S-Expressions, much like Racket itself. The largest difference is that Marker only supports three different "expressions". The following is an example of a Marker document which one might create:

#lang marker
("Marker Github" "https://github.com/bravotic/marker")
("Marker project page" "https://bravotic.com/marker")
["Racket"
  ("Homepage" "https://racket-lang.org")
  ("Docs" "https://docs.racket-lang.org")]

Downloads

Marker is available from the official Racket package repository. To install it, either open DrRacket's package manager and install it from the catalog, or run raco pkg install marker in the terminal.

Marker can also be found on Github.


Collin McKinley - cmckinley.org [email] [pgp]
This page was last modified: Dec 12, 2025