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

Overview

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
You might also like...

A tool to convert scw files from Supercell games to Collada (dae) format

SCW Tools This module is intended to convert .scw files from Supercell games to Collada (.dae) format. For a better understanding of SCW file structur

Oct 11, 2022

Online Inventory Control System for an apparel manufacturing company "CASANOVA" (Pvt) Ltd. Technology stack: Node.js, Express.js, MongoDB Atlas, React.js (MERN Stack).

Project Name - Online Inventory Control System for an apparel manufacturing company "CASANOVA". The project was given a "A" grade. Group Leader - IT20

Dec 26, 2021

It is a solo Project and In this repo I try to build a E-Commerce full-stack website with MERN stack technologies. For Practice purpose.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Aug 3, 2022

A technology stack solution using the AWS Serverless architecture.Atlas stack for building applications focused on generating value.

Atlas A technology stack solution using the AWS Serverless architecture.Atlas stack for building applications focused on generating value. Description

Dec 15, 2022

Piplup: decompile Playdate Pulp .pdx files back to .json project files

Piplup: decompile Playdate Pulp .pdx files back to .json project files This doesn't work yet: I still need to: convert the graphics (.pdt files) back

Mar 25, 2022

🌸 A cli can automatically generate files from Excel files.

🌸 A cli can automatically generate files from Excel files.

unxlsx A cli can automatically generate files from Excel files. Why We often need to export some information from XLSX to generate our files, such as

Aug 22, 2022

JavaScript library for parsing Dirtywave M8 files, complete with a CLI for interacting with M8 files.

m8-js This repository contains a JavaScript library for parsing Dirtywave M8 files, as well as a CLI for interacting with M8 files. The hopes are not

Dec 17, 2022

Download all Moodle files with one click. This is a Chrome extension built to save time and effort from downloading files manually one by one!

Download all Moodle files with one click. This is a Chrome extension built to save time and effort from downloading files manually one by one!

Moodle Downloader Extension Moodle downloader extension for Chrome. The extension is tested with both the TUM moodle and the official moodle demo. Not

Nov 15, 2022

Vaultacks lets users store files off-chain on Gaia. Files are encrypted by default but also can be made public and shared

Vaultacks lets users store files off-chain on Gaia. Files are encrypted by default but also can be made public and shared

Vaultacks Vaultacks is built on the Stacks Chain. It lets users upload files to Gaia, a off-chain data storage system. Vaultacks currently uses the de

Sep 14, 2022
Data structures & algorithms implementations and coding problem solutions. Written in Typescript and tested with Jest. Coding problems are pulled from LeetCode and Daily Coding Problem.

technical-interview-prep Data structures & algorithms implementations and coding problem solutions. Written in Typescript and tested with Jest. Coding

Lesley Chang 7 Aug 5, 2022
A simple script to create Gaia-X Self Descriptions

How To Use Update the self description in self-description.json. Create a new .env file with PRIVATE_KEY, CERTIFICATE, VERIFICATION_METHOD and X5U_URL

deltaDAO 5 Nov 21, 2022
🚀 Get 3000+ crypto currency information. Decimals, descriptions, website, contract ane etc...!

Crypto currency data information Description ?? Get 3000+ crypto currency information. Decimals, descriptions, website, contract ane etc...! Install n

Steven Green 6 Aug 14, 2022
This is a full-stack exercise tracker web application built using the MERN (MongoDB, ExpressJS, ReactJS, NodeJS) stack. You can easily track your exercises with this Full-Stack Web Application.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

WMouton 2 Dec 25, 2021
Use real-time computing technology and web technology to build a big data Kanban l to solve the problem. Among them, practical technologies include MySQL, Kafka, Flink, Redis, Flask and Echarts

实时计算(English Version) 运用实时计算技术、Web 技术构建一个大数据看板来解决问题。其中实用技术包括Mysql、Kafka、Flink、Redis、Flask和Echarts 目录 1.问题需求 2.方案分析 3.安装环境 4.环境启动命令和运行代码的方法 5.代码目录结构说明

Serendipity 2 Jan 8, 2022
100 Days of Code is a self improvement tool, where you make a commitment to solve 1 coding problem everyday for the next 100 days.

100 Days of Code is a self-improvement tool, where you make a commitment to solve 1 coding problem everyday for the next 100 days. This repository includes a range of tasks, lessons, resources, and challenges on various programming languages to help improve programming skills.

Tarleton Computer Society 7 Dec 14, 2022
1kb js library contains development debugging, error monitoring and reporting, user problem localization features

1kb js library contains development debugging, error monitoring and reporting, user problem localization features

腾讯 AlloyTeam 1.4k Dec 22, 2022
End-to-End type safety for REST APIs written in Fastify. Only problem is you have to explicity export and register route handlers. LOL

Chino intelligence in japaneese End-to-End type safety for REST APIs written in Fastify. Only problem is you have to explicity export and register rou

sambit sahoo 2 Sep 12, 2022
💀 A bare-minimum solution to solve CORS problem via proxy API

?? CORS Hijacker A bare-minimum solution to solve CORS problem via proxy API Base URL https://cors-hijacker.vercel.app/ Get Get Basic HTML Endpoint: $

Irfan Maulana 35 Nov 4, 2022
Shikhar 4 Oct 9, 2022