Browse Source

Resolve #20: Na katex-server čekáme pomocí stdoutu.

pull/28/head
Jan Černohorský 10 months ago
parent
commit
410c2852b2
  1. 1
      src/formatitko/katex-server/index.mjs
  2. 20
      src/formatitko/katex.py

1
src/formatitko/katex-server/index.mjs

@ -41,6 +41,7 @@ if (!unixSocketPath) {
// This server listens on a Unix socket at /var/run/mysocket
var unixServer = net.createServer(handleClient);
unixServer.listen(unixSocketPath);
console.log("OK")
function handleExit(signal) {
// unixServer.emit('close')

20
src/formatitko/katex.py

@ -28,22 +28,16 @@ class KatexClient:
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._server_process = subprocess.Popen(["node", srcdir + "/katex-server/index.mjs", self._socket_file], stdout=subprocess.PIPE)
# Wait for the node program to create the socket file
while not os.path.exists(self._socket_file):
time.sleep(0.01)
self._client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
ok = self._server_process.stdout.readline()
if ok != b"OK\n":
raise Exception("Failed to connect to katex-server")
# Wait for the node program to start accepting connections
while True:
try:
self._client.connect(self._socket_file)
time.sleep(0.01)
except ConnectionRefusedError:
continue
break
self._client.connect(self._socket_file)
def render(self, tex: str, options: Dict={}):
# Send formulas to translate

Loading…
Cancel
Save