Browse Source

#1: katex-server si nyní sám volá `npm install`

Po poradě s kamarády pythonáři se to asi tak má dělat, i když je to trochu eh
pull/28/head
Jan Černohorský 1 year ago
parent
commit
76c1a5fd04
  1. 14
      src/formatitko/katex.py

14
src/formatitko/katex.py

@ -16,7 +16,19 @@ class KatexClient:
self._temp_dir = tempfile.TemporaryDirectory(prefix='formatitko') self._temp_dir = tempfile.TemporaryDirectory(prefix='formatitko')
self._socket_file = self._temp_dir.name + "/katex-socket" self._socket_file = self._temp_dir.name + "/katex-socket"
self._server_process = subprocess.Popen(["node", os.path.dirname(os.path.realpath(__file__)) + "/katex-server/index.mjs", self._socket_file]) srcdir = os.path.dirname(os.path.realpath(__file__))
# Test if `node_modules` directory exists and if not, run `npm install`
if not os.path.isdir(srcdir + "/katex-server/node_modules"):
print("Installing node dependencies for the first time...")
try:
subprocess.run(["npm", "install"], cwd=srcdir+"/katex-server", check=True)
except subprocess.CalledProcessError as e:
if e.returncode == 127:
raise Exception("npm not found. Node.js is required to use KaTeX.")
else:
raise e
self._server_process = subprocess.Popen(["node", srcdir + "/katex-server/index.mjs", self._socket_file])
self._client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) self._client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)

Loading…
Cancel
Save