• Stars
    star
    560
  • Rank 79,212 (Top 2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 3 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Self-rendering and distributable mathematics chalkboards

Muboard

Muboard is a tiny utility that runs a mathematics display board as a web page. Muboard lets you quickly scribble mathematics snippets using Markdown and LaTeX while presenting your desktop screen to others during real-world or virtual meetings.

View Muboard View Demo MIT License Twitter

Contents

Get Started

To get started with using Muboard, click here and start typing Markdown + LaTeX input at the text field at the bottom.

Here is an example screenshot that shows how Muboard with some content looks like:

Distributable Boards

Muboard can be used to create distributable boards. To try it out, copy and paste the code below into an HTML file with .html extension:

<!DOCTYPE html><script src="https://cdn.jsdelivr.net/npm/[email protected]"></script><textarea>

# The Möbius function

For any positive integer $ n $, the Möbius function $ \mu(n) $ is
defined as follows:

$$ \mu(1) = 1; $$

If $ n > 1, $ write $ n = p_1^{a_1} \dots p_k^{a_k} $ (prime
factorization). Then

\begin{align*}
  \mu(n) & = (-1)^k \text{ if } a_1 = a_2 = \dots = a_k = 1, \\
  \mu(n) & = 0 \text{ otherwise}.
\end{align*}

If $ n \ge 1, $ we have

$$
  \sum_{d \mid n} \mu(d) =
  \begin{cases}
    1 & \text{ if } n = 1, \\
    0 & \text{ if } n > 1.
  \end{cases}
$$

Now open this file with a web browser. This is a self-rendering distributable board file. It renders itself to look like this: mu.html.

Valid HTML5

The code snippet in the previous section shows how we can create a self-rendering document with a single line of HTML code but this brevity comes at the cost of standard conformance. For example, the required <title> element is missing from the code. Further the <textarea> element is not closed. Despite the missing tags, this example works just fine because all web browsers follow the robustness principle.

For the sake of completeness and correctness, here is a minimal but complete and valid HTML example: mu-html5.html (source). It has a few more lines of code to ensure that this HTML5 code validates successfully at validator.w3.org. In case you are wondering, a valid HTML5 document does not require explicit <head>, <body>, or the closing </html> tags, so they have been omitted for the sake of brevity while maintaining completeness and correctness in this example.

Features

  • Runs in a web browser.
  • Keyboard driven user interface.
  • Vertical splits.
  • Input is just LaTeX, Markdown, and HTML. Avoids any new syntax.
  • Conforms to CommonMark specification of Markdown.
  • Conforms to GitHub Flavored Markdown (GFM), a strict superset of CommonMark.
  • Supports a subset of LaTeX using MathJax.
  • Supports creating self-rendering distributable boards with a single line of HTML.
  • Supports editing commands such as ,i, ,d, ,align*, etc. to automatically insert LaTeX delimiters for inline mathematics, display mathematics, align environment, etc. (Type ,help in the board input to see a complete list of supported commands.)
  • Support for saving/loading snippets to/from browser's local storage.
  • Not a WYSIWYG tool.
  • Not a collaborative editing tool.

Why?

Muboard was created originally for analytic number theory club meetings that I used to host in 2021. During the meetings, I needed a place to type out mathematics formulas and render them quickly. I chose to write a tiny non-WSYIWYG tool because I prefer such tools. It also helps in keeping the LaTeX snippets in an HTML file that can render itself using JavaScript.

The name Muboard is a reference to the Möbius function μ(n) which was the first function definition we discussed using this tool.

Mirror

The primary Muboard website is muboard.net.

A replica of the website is available at muboard.github.io.

License

This is free and open source software. You can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of it, under the terms of the MIT License. See LICENSE.md for details.

This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND, express or implied. See LICENSE.md for details.

Support

To report bugs, suggest improvements, or ask questions, create issues.

More

If you like this project, follow me on Twitter or check out the related projects TeXMe and MathB.

More Repositories

1

texme

Self-rendering Markdown + LaTeX documents
JavaScript
2,276
star
2

mintotp

Minimal TOTP generator in 20 lines of Python
Python
1,299
star
3

uncap

Map Caps Lock to Escape or any key to any key
C
1,048
star
4

gitpr

Quick reference guide on fork and pull request workflow
Makefile
957
star
5

spcss

A simple, minimal, classless stylesheet for simple HTML pages
CSS
939
star
6

emfy

A dark and sleek Emacs setup for general purpose editing and programming
Emacs Lisp
932
star
7

emacs4cl

A tiny DIY kit to set up vanilla Emacs for Common Lisp programming
Emacs Lisp
368
star
8

tucl

The first-ever paper on the Unix shell written by Ken Thompson in 1976 scanned, transcribed, and redistributed with permission
Makefile
355
star
9

mathb

Share mathematics on the web with LaTeX and Markdown
Common Lisp
308
star
10

cfrs

An extremely minimal drawing language consisting of only 6 simple commands: C, F, R, S, [, and ].
HTML
240
star
11

invaders

A 1980s-arcade-style game written using HTML5, Canvas, and Web Audio
HTML
166
star
12

devil

Emacs minor mode that intercepts and translates keystrokes to provide a modifier-free non-modal editing experience
Emacs Lisp
156
star
13

hello

A 23-byte “hello, world” program assembled with DEBUG.EXE in MS-DOS
Assembly
156
star
14

pov25

Ray tracing 25 scenes in 25 days with POV-Ray
POV-Ray SDL
154
star
15

fxyt

Tiny, esoteric, stack-based, postfix, canvas colouring language with only 36 simple commands
HTML
114
star
16

pcface

Bitmap arrays for rendering CP437 glyphs using IBM PC OEM fonts
Python
86
star
17

lab

Random experiments, exploration, and learning
Shell
80
star
18

vimer

Declutter your desktop by opening files in existing instance of GVim/MacVim
Shell
70
star
19

myrgb

A simple RGB color guessing game
HTML
67
star
20

quickqwerty

Touch typing tutor that runs in your web browser
JavaScript
61
star
21

ice

Ice - WSGI on the rocks
Python
58
star
22

aes.vbs

AES-256-CBC Encrypt and Decrypt Functions in VBScript
VBScript
52
star
23

heart

Hearts drawn with Python Matplotlib and C
Python
43
star
24

timebox

A timer script for Windows/Linux/Unix/macOS to practice timeboxing (the time management technique)
Shell
43
star
25

may4

Celebrating Star Wars Day with some Forth code! May the Forth be with you!
Forth
38
star
26

susam.net

Source code of https://susam.net/
Common Lisp
35
star
27

inwee

Conveniently send text and commands from file or standard input to WeeChat with this wrapper around WeeChat's FIFO pipe
Shell
25
star
28

bfc

Brainfuck compiler and interpreter
C
17
star
29

reboot

A 5-byte reboot program assembled with DEBUG.EXE in MS-DOS
Assembly
16
star
30

nimb

NIMB IRC Matrix Bridge (NIMB) is a simple client tool that bridges IRC and Matrix channels and forwards messages from one to others
Python
16
star
31

dotfiles

Mostly ~/.* files to configure emacs, vim, sh, tmux, etc. on Debian, macOS, and Windows
Shell
13
star
32

userscripts

Very tiny userscripts to customise the apperance of Hacker News
JavaScript
10
star
33

mano-cpu

My bachelor's degree final year project: A CPLD implementation of a 16-bit microprocessor I learnt from Computer System Architecture by M. Morris Mano
VHDL
8
star
34

susam.github.io

Mirror of https://susam.net/ generated from https://github.com/susam/susam.net
HTML
6
star
35

talks

Talks and presentations
TeX
6
star
36

maze

Susam's Maze • Main website: https://susam.in/maze/ • Mirror: https://susam.github.io/maze/
Common Lisp
5
star
37

licenses

Reusable copies of open source licenses
HTML
3
star
38

blob

Binary files generated from or used by other repositories
HTML
3
star
39

sunaina-and-susam

Sunaina & Susam's wedding website
HTML
2
star
40

.github

1
star
41

emacskeys

Screencasts of Emacs keys and commands
HTML
1
star