1
## Create a main heading / title Polymath

If you're a curious type: maybe an academic, maybe a hacker, or a student—then Polymath is for you.

Polymath is a markup language (like Markdown, LaTeX, or HTML) and a static site generator specialized in aesthetically presenting a wide variety of information: text, mathematics, code, photos, videos, you name it.

2



3
4
pp Create a text paragraph If you're a curious type: maybe an academic,
  maybe a hacker, or a student------ Long em-dashthen
  {bb Bolded text Polymath} is for you.

   Indenting after an empty row with no block-type makes a paragraph Polymath is a markup language (like Markdown,
  LaTeX, or HTML) and a static site generator
  specialized in aesthetically presenting a wide
  variety of information: text, mathematics,
  code, photos, videos, you name it.

For example, you can easily typeset \(\TeX\)-based equations and scientific expressions both inline and in the beautiful display style, as shown below:

\[ \mathcal A (u) = \int_\Omega \left(1+|\nabla u|^2\right)^{1/2} dx_1,\ldots,dx_n \]
5



6
7
p For example, you can easily typeset {xx Create inline TeX \TeX}-
  based equations and scientific expressions both
  inline and in the beautiful display style, as
  shown below:

XX Create display-style TeX \mathcal A (u) = \int_\Omega \left(1+|\nabla u|^2
  \right)^{1/2} dx_1,\ldots,dx_n

You can also insert images with captions, like this photo I took in Switzerland:

Swiss Alps, 2017. Note that captions, rounded corners, and other optional parameters can be set inside a parentheses-enclosed JSON-like dictionary following the block type identifier.
8
9
10


11
______ Create a divider

p You can also insert images with captions, like
  this photo I took in Switzerland:

MM Insert media, such as an image(url: swissalps1.jpg,
  caption: "Swiss Alps, 2017. Note that captions,
    rounded corners, and other optional parameters
    can be set inside a square- bracket list
    following the block type identifier.",
  corners: 4px)

Tables

Tables work like TeX matrices
and you can format cells
123 \(\sum_i U_i\) Polymath
12
13
14
15
16
#### Create a second level heading / subtitle Tables

TT Create a table Tables && Column separator work    & like    & TeX    & matrices
  \\ and & {ii Italicized text you} & {b can} & format & {uu Underlined text cells}
  \\\\ Row separator 123 & {x \sum_i U_i} & {aa Create a link/anchor() Polymath}

About

Here's a block quote:

Polymath was created by me, to support my own personal website. Its purpose is to provide a simple, easy to use, yet exact language to create beautiful web pages for people who work in a variety of areas, including:

  • Mathematics, physics, chemistry etc...
  • Software / programming
  • Regular blogging—writing with text
  • Photography, videography, art etc...
  • Interactive media (e.g. data visualization)
17
18
19
20
21
22





23
24
25
26
27
28
## About

p Here's a block quote:

QQ Create a block quote
  p {b Polymath} was created by {a(/about) me}, to
    support my own personal website.
    Its purpose is to provide a simple, easy to
    use, yet exact language to create beautiful web
    pages for people who work in a variety of
    areas, including:

  -- Create an unordered list item Mathematics, physics, chemistry etc...
  - Software / programming
  - Regular blogging---writing with text
  - Photography, videography, art etc...
  - Interactive media (e.g. data visualization)

There are only a handful of core block types in Polymath, but parameters give you a deep control over customizing their behavior:

So you can



do cool stuff
just



like this :)
29
30
31
32
33
34
35
36
37
38
39

40
41

42
43

44
45
---

p There are only a handful of core block types in
  Polymath, but parameters give you a deep control
  over customizing their behavior:

GG Create a grid block(cols: 4, flow: column, gap: 30px)

  @@ Set local parameters for specific block typeM(corners: 100%; shadow: small;)

  {{cc Centered text So you can}{}
   {M(/portfolio/switzerland/caracal.jpg)}}

  {{M(/portfolio/switzerland/quantum.jpg)}
   {}{c do cool stuff}}

  {{c just like}{}
   {M(/portfolio/switzerland/tetralogic.jpg)}}

  {{M(/portfolio/switzerland/escape.jpg)}
   {}{c this}}

Keep updated:

Get early access to Polymath   ->

Okay, that's the demo

The core mission of Polymath is to provide a markup language that is:

  • General: works for any information type, on any platform
  • Aesthetic: handles the typesetting for you, so you can focus on content
  • Human-readable: only looks like code when the information is code
  • Long term: will work today, and in 100 years time
  • Interoperable: works with industry standards like \(\TeX\)

I won't keep showing the source to the right hand side, but by now you should be getting a feel for the structure of Polymath. The full thing isn't done yet—I only started this particular project in January 2020, building on the new design for my personal site I built in December 2019, the old version from 2018, and the EdTech web platform I created from 2015-2017 which provided STEM-subject study materials to International Baccalaureate students.

Developing the language and intrepreters will take a considerable chunk of time and effort, I'm sure, but I will be taking a very iterative approach this time and hopefully it will pay for itself in terms of saved time writing essays and other posts on this website within several months.

The only third-party components so far are the \(\KaTeX\) rendering engine which generates beautiful and insanely performant HTML/CSS components from \(\TeX\) expressions – it is much, much faster than MathJax, which seems to be by far the most common; and Rainbow, a JS syntax highlighting library, although I may replace this with a native one to support languages like Polymath itself.

Also, Polymath is fast. The current version generates my entire website in just about 50-75 milliseconds—going through roughly 200 files.


Plans

It's likely that there will be two core components to the Polymath software:

  1. An ‘open-source’ markup language, which you may use and build software for if you like.
  2. A paid (either once-off or annual subscription) static site generator service, to fund the upkeep and development of the software. This would definitely be very affordable, because I'd like to make a really great product that any math professor or CS student or young artist can use if they want a great SSG for beautiful, performant websites.


...and one more thing!

Of course, there is plenty of functionality for code, with great syntax highlighting for languages like JavaScriptHTMLCSSPythonHaskell and more (you can still do regular monospaced text too):

/*
 * This uses Fira Code, a great monospace font.
 */
function classToggleIDs( x, y, z ) {

    document.getElementById( x ).addEventListener(
        "click",
        () => {
            let A = document.getElementById( y ).classList;
            A.contains( z ) ? A.remove( z ) : A.add( z );
        }
    );}
/* Styling code */

pre code {       
    display:        block;
    border:         1px solid rgba(136,136,136,0.25);
    border-top:     1px solid rgba(128,128,128,0.3);
    border-bottom:  1px solid rgba(144,144,144,0.2);
}
# import numpy
import numpy as np

def f ( x ):
    return x*(x-2)*(x-3)

def f_prime ( x ):
    # df/dx
    return 3*x*x - 10*x + 6

<!-- a comment -->
<head>
    <title>My webpage</title>
    <link type='text/css' rel='stylesheet' href='/css.css'>
    <style>
      .class {
        display: none;
        font-size: 48px;
      }
    </style>
</head>
<body class='class'>
    Hello
    <script>
        document.getElementsByClassName('class')[0].innerHTML += ' world!'
    </script>
</body>
{
  "type": "person",
  "name": {
    "prefix": {
      "full": "Mister",
      "short": "Mr."
    },
    "first": "Steven",
    "middle": [
      "Paul"
    ],
    "last": "Jobs",
    "suffix": []
  },
  "born": {
    "date": {
      "epoch": -468650637,
      "holo": {
        "year": 11955,
        "month": "February",
        "day": 24,
        "gmt": 26163
      }
    }
  }
}
integration :: (Double -> Double) -> Double -> Double -> Double
integration f a b = h * (f a + f b + innerSum) / 2
    where
        h = (b - a) / 1000
        innerPts  = map ((2*) . f . (a+)) (points (1000-1) h)
        innerSum = sum innerPts

points  :: Double -> Double -> [Double]
points i x
    | i <= 0 = []
    | otherwise = (i*x) : points (i-1) x
aws s3 cp /res/img215.jpg "s3:\\ex.com\photos\"

Keep updated:

I'll let you know when any important updates or early-access programs begin :)

Get early access to Polymath   ->