Lute HTTP 使用指南

本贴最后更新于 1612 天前,其中的信息可能已经时过境迁

简介

Lute HTTP 包装 Lute 以 HTTP 发布服务。

背景

该项目主要是为了:

  • 让不同编程语言编写的应用能够复用标准的(符合 GFM/CommonMark)Markdown 渲染
  • 为 Sym、Solo 提供更好的 Markdown 渲染,解决各项目内建的 Markdown 渲染不统一的问题

使用

可通过如下任意一种方式使用 Lute HTTP,建议通过 Docker 使用,方便运维。

  • Docker
    1. 获取最新镜像 docker pull b3log/lute-http
    2. 启动容器 docker run --detach --rm --network=host b3log/lute-http
  • 可执行文件
    1. 安装 golang,然后获取并编译 go get -u github.com/88250/lute-http
    2. 编译成功后将在 ${GOPATH}/bin 下生成名为 lute-http 的可执行文件
    3. 需要通过 nohup& 让进程在后台运行: nohup ./lute-http > lute-http.log 2>&1 &

按如上之一方式启动 lute-http 后再带参 --lute_http=http://localhost:8249 启动 Solo、Sym 即可。

授权

Lute HTTP 使用 木兰宽松许可证, 第 2 版 开源协议。

鸣谢

  • Lute:一款结构化的 Markdown 引擎,支持 Go 和 JavaScript
  • fasthttp:用 golang 写的高性能 HTTP 实现
  • Gulu:Go 语言常用工具库
3 操作
88250 在 2020-07-08 14:11:19 更新了该帖
88250 在 2020-01-24 00:21:03 更新了该帖
88250 在 2019-11-18 11:11:20 更新了该帖

相关帖子

优质回帖
  • 88250 1

    建议尽量使用 Lute 来渲染 Markdown,效果拔群 😅

  • 88250 1

    Solo 的参数 --lute_http=http://IP:8249 IP 地址如果是宿主机网络的话写 127.0.0.1。

  • CodingOX 1 1 赞同

    搞定了,因为 network 不是 localhost,所以需要通过容器名来做访问映射。

    1. lute 的启动命令修改为:
    docker run --detach --rm --network=tencent --name lute b3log/lute-http
    
    1. 然后通过自定义的名字 lute 进行容器间的访问
    --lute_http=http://lute:8249
    

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 现在 solo 不是 lute 吗?

    1 回复
  • 88250

    默认是 Java 内建的,如果要用 Lute 需要按帖子进行配置。

  • 我知道了 ,用了 lute_http 以后,代码需要制定语言类型,不然没有高亮版本。
    image.png
    否则
    image.png

    1 回复
  • 88250

    嗯,目前代码块语言探测还不太完善,需要指定语言才能高亮。

  • zxniuniu

    终于切换到了 Lute,使用的 Windows Server,有需要的 lute-http.exe 的,可以直接下载:https://www.lanzous.com/i6iujgj

  • zhoujin7

    @88250 大佬 ,lute-http 如何关闭 term_typographer (自动更正术语), 应该在哪里加个开关...
    https://github.com/b3log/lute-http/blob/master/main.go

    @88250 我觉得不要强制性更正术语, 改成拼写检查提供建议更好.
    有时候强制替换了这些单词, 并不是想要的.

    1 回复
  • 88250

    可以看下 Lute 项目的 option,支持自定义字典。

    1 回复
  • zhoujin7 1 评论

    ok 找到了...😭 略懂 go 语言...

    将 engine := lute.New() 替换成 engine := lute.New(func(lute *lute.Lute) { lute.FixTermTypo = false })
    zhoujin7
  • iceuncle

    先 docker 启动 lute-http,再 restart solo 吗?我这样试了无效啊。按照## 从零开始安装 solo 博客中说的在 Solo 启动参数末尾追加 --lute_http=http://127.0.0.1:8249/--lute_http=http://localhost:8249/--lute_http= 后启动 solo 也是无效,该怎么操作呢?

    2 回复
  • 88250

    Docker 容器要在同一个网络下,为了简便可以都用寄主机网络。

  • docker lute 启动后,solo 启动参数 --lute_http= 可为空,只追加一个就行 ,不用把(-lute_http=http://127.0.0.1:8249/--lute_http=http://localhost:8249/--lute_http=)全部加上

  • AlgerFan

    所以如果使用默认的 Java,那么 Sym、Solo、Pipe 的 Markdown 渲染会出现不一致吗?不能将 solo 的文章推送到 Sym?

    1 回复
  • 88250

    不影响推送,但推送到社区的显示和在博客端的显示会不一样。

    1 回复
  • AlgerFan

    好的,明白了 😁

    1 回复
  • 88250 1

    建议尽量使用 Lute 来渲染 Markdown,效果拔群 😅

    2 回复
  • AlgerFan

    好 😏

  • AlgerFan

    但是我发现代码无法高亮,加了语言指定

    1 回复
  • 88250

    发一下样例,谢谢。

    1 回复
  • AlgerFan

    失败了
    image.png
    image.png

    1 回复
    2 操作
    AlgerFan 在 2019-11-18 19:28:11 更新了该回帖
    AlgerFan 在 2019-11-18 19:27:43 更新了该回帖
  • 88250

    我这里重现不了哦,猜测可能是配置问题,看下是否有错误日志。

    2 回复
  • AlgerFan

    怪我,没仔细看说明,还要 docker 启动 lute,我再试一下

    1 操作
    AlgerFan 在 2019-11-18 19:31:17 更新了该回帖
  • AlgerFan

    还是不行

    1 回复
  • 88250 1

    Solo 的参数 --lute_http=http://IP:8249 IP 地址如果是宿主机网络的话写 127.0.0.1。

    1 回复
  • AlgerFan

    ok 了 👍

  • CodingOX

    我发现使用这个 lute 渲染后,代码高亮都没了!

    1 回复
  • 88250
    1 回复
  • CodingOX

    刚看了下日志,提示报错:

    Failed to use Lute [http://localhost:8249] for markdown [md=![](https://b3logfile.com/bing/20200206.jpg?imageView2/1/w/960/h/540/interlace/1/q/100)
    
    1 回复
  • 88250

    那可能是没有访问到 Lute HTTP 然后走的内建 Markdown 处理。

    1 回复
  • CodingOX 1 1 赞同

    搞定了,因为 network 不是 localhost,所以需要通过容器名来做访问映射。

    1. lute 的启动命令修改为:
    docker run --detach --rm --network=tencent --name lute b3log/lute-http
    
    1. 然后通过自定义的名字 lute 进行容器间的访问
    --lute_http=http://lute:8249
    
  • PhzCode

    docker restart b3log/solo --lute_http=http://localhost:8249,然后提示 unknown flag: --lute_http,不是直接 restart 吗 😭

    1 回复
  • 重启为啥还带参数呢

    1 回复
  • PhzCode

    那应该怎样启动呢,stop 之后再 run 吗trollface

  • adlered

    D 哥,不知道 lute_http 的性能如何,我想搭建个公开的 lute_http 服务器trollface

    1 回复
  • 88250 1

    社区用的就是 Lute HTTP,做下缓存,问题不大。

  • zipfang

    我想知道怎么在本地 springboot 项目中,调这个 lute-http 服务呢?

    1 回复
  • 88250

    用 HTTP 协议调用。

  • zipfang

    嗯嗯 我看了下源码 已经解决了 谢谢

  • 请教一下,我运行起来后,具体怎么使用呢?有 API 文档吗?

请输入回帖内容 ...