/boj-description-converter

Convert olymp.sty based TeX problem files to BOJ Stack descriptions

Primary LanguageTypeScriptMIT LicenseMIT

boj-description-converter

solved-ac.github.io/boj-description-converter

Convert UCPC-flavored olymp.sty based TeX problem statements to HTML, complying with BOJ Stack and UCPC formatting guidelines.

Why?

For contests on BOJ with printed problemset, it is often challenging to:

  • Keep TeX and HTML descriptions synced - especially when multiple problemsetters are working on multiple problems
  • Convert one format to another - although BOJ supports MathJax, it is such a tedious and easily mistakable job to translate TeX markups to HTML. Few examples include:
    • \alphaα (greek letter 'alpha')
    • `` ... ''“ ... ” (double quotes)
    • \textit{...}<em>...</em> (italic text)
    • \textbf{...}<strong>...</strong> (bold text)
    • \begin{center}...\end{center}<p style="text-align:center;"><code>...</code></span> (centered text)
    • \t{...}<span style="color:#e74c3c;"><code>...</code></span> (colored verbatim)
    • \begin{itemize} \item ... \end{itemize}<ul> <li>...</li> </ul> (unordered list)

This project aims to eliminate manual converting work by problemsetters, and make problemsetters to just focus on setting great problems.

Usage

  1. Copy-paste olymp.sty based TeX problem statement into the left input area.
  2. Preview the render output and fix the statement if needed.
  3. Copy-paste generated HTML to BOJ Stack.

'I hate MathJax' Mode

This tool offers the ability to try rendering the equations in pure HTML while avoiding MathJax as much as possible. Currently supports the following:

  • Superscripts and subscripts
  • Most of the TeX math symbol rendering commands, i. e. \le, \delta, \rightarrow
  • Italic texts on variables
  • Spacing around operators and functions like ln or sin
  • Fractions
  • \sum

Contributing

Contributions are welcome!

TODO

  • Cleanup code
  • tabular environment
  • Converting \color names to hex string