I would like to transform input.js to output.js using string manipulation in python
here is input.js
let k=document.createElement("div");
k.innerHTML='<style>\n    .wrapper {\n      opacity: 0;\n      transition: visibility 0s, opacity 0.25s ease-in;\n    }\n\n    .overlay {\n      height: 100%;\n      position: fixed;\n      top: 0;\n      right: 0;\n    }\n\n    button {\n      cursor: pointer;\n      font-size: 1.25rem;\n    }\n  </style>\n  <div class="wrapper">\n  <div class="overlay"></div>\n    <div>\n      <button class="close">️x</button>\n      <h1 id="title">Hello world</h1>\n      <div id="content" class="content">\n        <p>This is content outside of the shadow DOM</p>\n      </div>\n    </div>\n  </div>';
here is output.js
let k=document.createElement("div");
k.innerHTML=`<style>
    .wrapper {
      opacity: 0;
      transition: visibility 0s, opacity 0.25s ease-in;
    }
    .overlay {
      height: 100%;
      position: fixed;
      top: 0;
      right: 0;
    }
    button {
      cursor: pointer;
      font-size: 1.25rem;
    }
  </style>
  <div class="wrapper">
  <div class="overlay"></div>
    <div>
      <button class="close">️x</button>
      <h1 id="title">Hello world</h1>
      <div id="content" class="content">
        <p>This is content outside of the shadow DOM</p>
      </div>
    </div>
  </div>`;
All the information to get to output.js is present in input.js. There is no loss of information.
Below does not work
import html
import sys
import io
def sprint(*args, end='', **kwargs):
    sio = io.StringIO()
    print(*args, **kwargs, end=end, file=sio)
    return sio.getvalue()
with open('input.js') as f, open('output.js', 'w') as of:
    for line in f:
        if 'innerHTML' in line:
            arr = line.split("=")
            nline = arr[0]+"=`"+sprint(html.unescape(arr[1].strip(" '\"")))+"`\n"
            of.write(nline)
            continue
        of.write(line)
I want to prettty print my innerHTML strings from minified javascript files. Is there a clean way to do this in python.
 
    