Skip to content

使用KaTeX做核心, 用unix域套接字做进程间通信手段, 在服务端解析数学公式, 未来将支持tikzcd

License

Notifications You must be signed in to change notification settings

AkiSakuchan/MathEnServeur

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

介绍

本程序运行于服务端, 使用katex做核心, 通过Unix域套接字接受信息, 解析tex数学公式成HTML代码后发回给客户端.

如何使用

  • 首先需要安装 Node.js 和 NPM.
  • 克隆后进入打开终端进入目录 依次输入:
npm install
npm run build

然后就编译完成了. 使用如下代码即可运行:

npm start

这时会生成 /tmp/php-js.sock, 如果提示已被占用, 删除已有的套接字文件即可. 虽然名字是php-js.sock, 但是实际上可以用于任何支持 Unix域套接字的语言.

另外需要保证客户端有权限读取 /tmp/php-js.sock, 为此通常可以给系统添加服务, 指定运行的用户和组与客户端相同, 或者也可以用 chmod命令来赋予读写权限.

客户端发送一个json字符串, 格式如下:

{
    "display" : false,
    "tex": "要解析的tex代码"
}

这里display决定是否启用行间公式模式, 如果为true, 则启用行间公式模式.

发送json字符串后, 再发送写入结束的信号, PHP中可以用socket_shutdown函数来实现, 触发 Node.js的end事件, 开始解析. 随后可以用socket_read等从套接字中读取生成的html代码.

最后要关闭套接字, PHP中可以使用socket_close函数.

About

使用KaTeX做核心, 用unix域套接字做进程间通信手段, 在服务端解析数学公式, 未来将支持tikzcd

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published