walinejs / waline

💬 A Simple, Safe Comment System
https://waline.js.org/en/
GNU General Public License v2.0
2.29k stars 404 forks source link

[Bug]: 1 评论某些latex公式 渲染了两个 2 waline v3 登陆不会自动跳转刷新 || [Bug]: 1 Comments on some latex formulas rendered two 2 Waline v3 login does not automatically jump to refresh #2422

Closed appotry closed 4 months ago

appotry commented 7 months ago

问题描述 | Describe the bug

公式渲染错误

2.15 和3.1.3都存在这个问题

下面公式留言100% 触发,渲染了两个公式,

$$w^{(l)}*{ij} = w^{(l)}*{ij} - \eta\frac{\partial E(W, b)}{\partial w^{(l)}_{ij}}$$

这两个页面,都留言测试了。 问题精准触发

https://waline.js.org/ https://blog.17lai.site/msg/

v3登陆不会自动跳转刷新

评论区点击登陆可以触发

https://waline.js.org/ 官网看着似乎 外面刷新的 。隐藏了bug

https://waline.17lai.site/ 这里直接访问,点击登陆。会发现https://waline.17lai.site/ 页面还显示登陆按钮,需要刷新这个页面才会显示用户登陆icon, 和隐藏登陆按钮

数据库版本

docker mysql 部署, vercel + leancloud 两种方式都会有上面问题

公式问题,希望 v2 v3 都修复一下。 v2 不更新功能,但修复一段时间的bug可以么. V3 版本稳定了以后不再维护v2是可以接受的

V3 版本用了段时间,又退回v2了

问题网站 | Website URL

https://waline.17lai.site/

服务部署在哪里? | Where your waline deploy?

Vercel (Default)

数据存储在哪里?| Where your comment data store?

LeanCloud(https://leancloud.app)


Problem description | Describe the bug

Formula rendering error

This problem exists in both 2.15 and 3.1.3

The following formula message is 100% triggered, and two formulas are rendered.

$$w^{(l)}*{ij} = w^{(l)}*{ij} - \eta\frac{\partial E(W, b)}{\partial w^{(l)} _{ij}}$$

Both pages have been tested with messages. Problem triggering accurately

https://waline.js.org/ https://blog.17lai.site/msg/

v3 login will not automatically jump to refresh

Click to log in in the comment area to trigger

https://waline.js.org/ The official website seems to be refreshed from the outside. Hidden bugs

https://waline.17lai.site/ Visit here directly and click to log in. You will find that the page https://waline.17lai.site/ also displays a login button. You need to refresh this page to display the user login icon and hide the login button.

Database version

Docker mysql deployment, vercel + leancloud both methods will have the above problems

Formula problem, I hope v2 v3 will fix it. Is it okay to not update the functions of v2, but fix the bugs for a period of time? It is acceptable to no longer maintain v2 after the V3 version is stable.

The V3 version has been used for a while and has been returned to v2.

Question Website | Website URL

https://waline.17lai.site/

Where is the service deployed? | Where your waline deploy?

Vercel (Default)

Where is the data stored? | Where your comment data store?

LeanCloud(https://leancloud.app)

Mister-Hope commented 6 months ago

cc @lizheming 由于回退到了旧版本,这里需要手动配置 mathjax 只输出 svg,不要一同输出 svg 和 math


cc @lizheming Since we have rolled back to an old version, we need to manually configure mathjax to only output svg. Do not output svg and math

Mister-Hope commented 6 months ago

第二个问题官网和我的博客 都是正常的,建议提供一个单网页文件,能复现你说的问题。


For the second question, both the official website and my blog are normal. It is recommended to provide a single web page file that can reproduce the problem you mentioned.

appotry commented 6 months ago

第二个问题复现地址正文已经提到了,直接在waline部署的地址就可以。 https://waline.17lai.site/ 例如这里


The second problem's recurrence address has been mentioned in the text. It can be deployed directly on waline. https://waline.17lai.site/ For example here

MingTechPro commented 6 months ago

我也是同样存在登录不会跳转


I also have the same problem that login will not jump

appotry commented 6 months ago

@lizheming 刚测试,v3.2.0版本,提到的两个bug都还存在,没有修复


@lizheming Just tested, v3.2.0 version, the two bugs mentioned still exist and have not been fixed

lizheming commented 6 months ago

@appotry 还没有发布版本


@appotry has not released a version yet

lizheming commented 6 months ago

@Mister-Hope 关于 LaTeX 公式渲染的问题,需要你帮忙看下 @mdit/plugin-mathjax 这个模块,我看代码里是已经强制设置了 output: 'svg' 的,直接通过插件官网的 demo 也能尝试复现。目前我是暂时先回退到了仓库内的 mathjax 模块规避处理了。


@Mister-Hope Regarding the problem of LaTeX formula rendering, I need your help to look at the @mdit/plugin-mathjax module. I think output: 'svg' has been set forcefully in the code, directly through the plug-in official website You can also try to reproduce the demo. At present, I have temporarily fallen back to the mathjax module in the warehouse to avoid processing.

Mister-Hope commented 5 months ago

OK, 有任何的计划重构 @waline/server 么?

目前 mdit-plugins 已经发布为纯 ESM 包了,因此无法升级到新版本。如果我们将目光放置在 Node 18 的话,Node fetch 可以被移除(原生 fetch 支持),markdown 插件也可以使用最新版本。另外,有望解决一些 waline/server 上游存在的一些已经废弃的依赖。这也许需要转换到新框架或者升级thinkjs。


OK, any plans to refactor @waline/server?

Currently, mdit-plugins has been released as a pure ESM package, so it cannot be upgraded to a new version. If we focus on Node 18, Node fetch can be removed (native fetch support), and the markdown plugin can also use the latest version. In addition, some obsolete dependencies existing upstream of waline/server are expected to be resolved. This may require switching to a new framework or upgrading thinkjs.

lizheming commented 5 months ago

@Mister-Hope 这个改动比较大,暂时没有这个计划,可以蹲后续 Node require 支持导入 ESM 模块的特性,目前需要 flag 支持


@Mister-Hope This change is relatively big. There is no plan for this at the moment. You can follow up. Node require supports the feature of importing ESM modules. Currently, flag support is required

appotry commented 5 months ago

@lizheming 3.2.2刚测试,第一个bug已经修复,第二个bug还没有修复 测试地址 https://waline.17lai.site/


@lizheming 3.2.2 just tested, the first bug has been fixed, the second bug has not been fixed yet. Test address https://waline.17lai.site/

lizheming commented 5 months ago

第二个还在处理


The second one is still being processed

Mister-Hope commented 4 months ago

I am very curious that a Vue application somehow breaks reactivity with just dep version update.

I don't think a forceUpdate could help, as if Vue works fine, then everything including the login state should be fine. As it's not in some edge cases, then Vue reactivity system is breaking, so a forceUpdate would not fix this either.

The await nextTick() at least sounds reasonable, as it force wait a Dom update to be applied, and might be a valid fix in some cases, but forceUpdate is not IMO in all situation.

lizheming commented 4 months ago

可以更新到 @waline/client@3.2.6 已经修复了这个问题(更确切的说是规避了这个问题)


Can be updated to @waline/client@3.2.6 This problem has been fixed (or rather circumvented)

lizheming commented 4 months ago

I am very curious that a Vue application somehow breaks reactivity with just dep version update.

I don't think a forceUpdate could help, as if Vue works fine, then everything including the login state should be fine. As it's not in some edge cases, then Vue reactivity system is breaking, so a forceUpdate would not fix this either.

The await nextTick() at least sounds reasonable, as it force wait a Dom update to be applied, and might be a valid fix in some cases, but forceUpdate is not IMO in all situation.

这个问题非常奇怪,理论上确实如你所说,如果 Vue 工作正常,应该就没有问题。但目前表现确实有问题,而且持续的时间比较久了,反馈也多了起来,所以还是需要先处理下。

这个问题仅在发布的版本上可以复现,本地是无法复现的,所以我只能发布后做测试。这不管是 nextTick() 亦或是 forceUpdate 测试下来都是不生效的。最后还是用 key 来销毁组件强制渲染了。