+++ /dev/null
-// 1ch -> 8px
-// 1pc -> 12pt -> 1/6in -> 16px
-// 1vw -> 4px
-// 1vh -> 3px
-// 1in -> 96px
-// 1ex -> 7.16px (useful, right?!)
-// 1em -> 16px - we'll just use pc for this instead
-// 1q -> 100/106 px <-- this is a bad bad number, so, if we've already got q, we probably won't do anything with 'em'
-
-pixel_lengths = {
- "ch": 8,
- "pc": 16,
- "vw":4,
- "vh":3,
- "in": 96,
- "ex":7.16,
- "em":16,
- "px":1
-};
-
-function getShortestUnit(length,unit) {
- cur_string = `${length}${unit}`;
- pixel_length = 0;
- if (pixel_lengths.hasOwnProperty(unit)) {
- pixel_length = length * pixel_lengths[unit];
- }
- else {
- return cur_string;
- }
- for (unit in pixel_lengths) {
- if (pixel_lengths.hasOwnProperty(unit)) {
- new_len = pixel_length / pixel_lengths[unit];
- new_string = `${new_len}${unit}`;
- if (new_string.length < cur_string.length) {
- cur_string = new_string;
- }
- }
- }
- return cur_string;
-}
-
-// REQUIRED: A `run` function thats takes in current code and returns processed code.
-function run(code) {
- // `code` is your current code in the editor
- var processedCode = code.replace(/(\d+)(vw|vh|pc|px|in|ex|em)/g, (match, $1,$2) => {
- return getShortestUnit($1,$2);
- });
-
- // Return the final code
- return processedCode;
-}
\ No newline at end of file