社区缺陷报告与功能建议

本贴最后更新于 1825 天前,其中的信息可能已经天翻地覆

社区系统可能存在一些潜在的缺陷,大家如果有空的话可以帮助我们一起解决。

报告缺陷

如果你在使用社区时发现了如下类型的问题,请回帖进行反馈,并附上 bug 截图以及操作步骤:

  • 功能性缺陷:例如积分账目不对、发布文章失败、关注失败等
  • 安全性漏洞:例如 XSS/CSRF、盗用用户信息等

功能建议

欢迎对社区提出功能特性方面的建议,我们一起讨论,如果有可能我们会尽快实现。

在提功能建议前可以先看一下计划表,避免重复提议。

积分奖励

  • 安全方面漏洞,奖励 500 积分
  • 功能性缺陷、用户体验改进、新功能建议等奖励 300 积分
  • UI 方面的缺陷(比如对不齐、焦点样式不对等)奖励 200 积分
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    75 引用 • 1737 回帖 • 5 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    153 引用 • 3783 回帖 • 1 关注
  • 系统公告

    B3log 社区相关的重要公告,比如新特性上线,运营策略调整等。

    39 引用 • 3578 回帖 • 681 关注
  • 使用指南

    链滴用户指南系列帖,社区功能可在此逐一了解,欢迎讨论。

    42 引用 • 2889 回帖 • 33 关注
1 操作
88250 在 2019-11-23 11:24:53 更新了该帖

相关帖子

优质回帖
  • csfwff 2


    solo 3.6.4,编辑器表情有重复的

  • PeterChu 1 1 赞同

    😄 good,也是啊,那应该给下面加个分割线啥的以示区分

  • InkDP 2
    该回帖仅作者和楼主可见

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 88250

    用户详情 API 中多加入了如下字段:

    • userCurrentCheckinStreak:当前连续签到天数
    • userLongestCheckinStreak:最长连续签到天数
    • userRole:用户角色,参考 https://hacpai.com/article/1484629614518
    • userAppRole:用户应用角色,0:黑客,1:画家

    实例参考:https://hacpai.com/api/v2/user/88250

    1 回复
  • 其他回帖
  • 早晨安上了 solo,不过这个登陆感觉怪怪的呀,只有用 hacpai 登陆上才能管理,在登出且无法连接(如断开网络)到 hapcpai 时,就无法登陆管理了。

    本想推荐给一些人用下 solo 的,只是这样的绑定账号体系、这种本地博客却没有完全权限的感觉可能不会让他们喜欢。

    我看原因是为了解决和社区同步的问题。但总觉得这种“不加入社区就无法使用博客”的后台登陆机制,不是个好的措施。

    如果 B3log 要成功的话,一个博客加入的不会只是一个 Hacpai 社区,只能用 Hacpai 账号登陆,就不大合适了。

    希望这个方式是临时所做的妥协,而不是永久的策略。

    用户名重名以及社区同步内容时账号对应关系复杂混乱,这个问题应该是通过归属来实现,即在同步评论、文章时,对于用户名,不应该完全一致地同步过去,对于不是社区的用户,应加以归属。

    例如:

    • hacpai.com 中进行评论的用户名“JackalZhao”,同步到博客评论中显示时,应转为“JackalZhao_from_hacpai.com”,
    • 用户还可能将博客也同步到了另一个社区 xxxx.com ,在 xxxx.com 中进行评论的用户名“Lover”,同步到博客评论中显示时,应转为“Lover_from_xxxx.com”,同步到 hacpai 中显示评论时,显示“Lover_from_xxxx.com”
    • 而在黑客派社区中用“JackalZhao”评论时,而在博客中评论的用户“MiaoMiao”,同步到博客中显示时,就转为“MiaoMiao_from_blog”。这样,不仅解决了重名问题,也能一眼知道是从哪里得到的评论。

    而且,以后,有多个不同社区鱼塘时,我们也需要一种方法,得知哪一个评论来自哪一个社区。

    上述解决方法当然只是抛砖引玉,也希望能探索出更好的方法。

    只能用需要联网的社区账号登陆一个本地博客,真的很怪异,不只是方便不方便的问题,这就像是自己手里的 linux 机器有 root 权限和没有 root 权限的区别一样,手里没有 root ,就空空的,没有安全感。

    2 回复
    2 操作
    HaujetZhao 在 2020-05-29 08:35:45 更新了该回帖
    HaujetZhao 在 2020-05-29 08:33:54 更新了该回帖
  • HaujetZhao 2 2 赞同 4 评论

    反馈

    Vditor 编辑器

    以下的许多反馈都是以 Typora 作为参照的。

    即时渲染模式

    加粗等功能使用:

    有如下一段文字,将光标移动到 地方 中央:image.png

    此刻,在 Typora 中,按下 Ctrl + B 时,会直接将 地方 加粗(“地方”与相邻的语句有空格相隔,所以不会加粗周围的语句):FA3J7TV10M6GGBO56RN.png

    而在 Vditor 中,按下 Ctrl + B 时,是这个效果:image.png 。想要将“地方”加粗,就要用光标选中要加粗的字。

    同理 Ctrl + I 等功能也是这样的。

    不清楚这是由于暂时沿续 所见即所得模式 的逻辑,还没来得及做这个细节,还是说这样的逻辑就定型了,是 Vditor 的 Feature。

    列表

    有这样一个无序列表:

    • 这是条目一
    • 这是条目二
    • 这是条目三

    在 Typora 中,通过以下两种方式:

    1. 将光标放到 “这是条目二”后,按下 Ctrl + Enter
    2. 将光标放到 “这是条目二”后,按下 Enter ,出现新项,再按下 Backspace

    就可以创建出这样的列表:

    • 这是条目一
    • 这是条目二
      条目二的第二段
    • 这是条目三

    目前已知在 Vditor 中可以通过 Shift + Enter 实现,不过无法用 “按下 Enter ,出现新项,再按下 Backspace”的方法。没有第二种方法的话,对手机端编辑可能有点不方便。

    不知是否会引入。

    图片名字定位

    在 Typora 中,单击图片后,光标会自动跳转到图片 ![name](/assets/image.png)[name] 部分并全选 name,然后就可以直接输入新名字。在 Vditor 中,只有当鼠标精确地点击图片左侧或右侧的位置时,才会出现 ![name](/assets/image.png) 字样,要更改图片名字的话,还是需要手动选中 name 的。尚不清楚是否是还没来得及做这样的细节。

    图片末尾空格自动消失

    当有一个图片独占一行,例如下图:

    image.png

    一般在光标定位到这一行时,图片引用会自动展开 ![image.png](https://b3logfile.com/file/2020/05/image-957ebe1c.png) ,为了防止误点到这一行导致展开,页面闪动影响观感,我们一般会在图片后加一个空格,这样点到这一行也不会发生图片位置的跳动。

    但是,Vditor 的即时渲染模式中,即使在这个图片后加了一个空格,光标移到其它地方,再移回来,会发现加的空格消失了!图片引用又自动展开了。

    标题快捷键添加意外

    有以下一个标题:## 四级标题

    当发现标题级别设错了,将光标移到这一行,用快捷键 Ctrl + Alt + 4 ,发现变成了这个样子:###### 四级标题 ,而不是预想的 #### 四级标题

    标题快捷键导致光标重置

    当在一行输入标题 这是标题 ,光标在标题末尾时,按下快捷键 Ctrl + Alt + 2 ,发现添加标题符号后,光标跑到 这是标题 左边了,这时要继续编写标题的话,还要手动再把光标定位到末尾。

    12

    行内数学式

    下面的行内公式不会被渲染:

    $1 + x = 5$
    
    代码块跳出

    在 Typora 中,如果光标处于代码块中,按下 Ctrl + Enter ,会跳出代码块,新建一行,目前暂时没有找到在 Vditor 中跳出代码块并新建一行的方法。已知在代码块中按 Down 可以移到下一行。当然,这个 feature 属于可加可不加那种的。

    代码块强制要求语言

    按下三个 ``` 回车后,出现代码块,这个代码块强制要求输入语言,否则那个语言框就一直档着:

    image.png
    无法用键盘将光标移到编辑区,只能用鼠标点下代码编辑区,再继续写。有时候用代码块不是为了写某个语言,只是有些字符容易误渲染,把这样的段落放到代码块里面而已。

    代码块中输入三个 `

    在 Typora 中,代码块中是可以在行首输入三个 ` 的。Vditor 中不行了。查看 MarkDown 源格式,发现 Typora 会在代码块这种特殊行的行首加入一个占位符:

    image.png

    ` 的转义

    在 Vditor 中,如果一行有 2 个 ` ,那么之间的内容就肯定会被渲染成行内代码,并且无法转义,在 Typora 中,可以将其用 \ 进行转义:

    image.png

    建议参照下。

    一些渲染延迟

    例如,有以下:

    image.png
    此时回车,会变成这样:

    image.png
    然后光标移动到新行,写一个字符,才变成正常样子:

    image.png
    还有图片粘贴后,也有渲染延迟问题,只显示索引代码,只有当再输入一个非空白字符后,才会渲染成图片。

    不支持多个空白行

    在所见即所得模式下,可以多次回车,得到多行空白,在即时渲染模式下就不行了。

    所见即所得模式

    行内公式闪动

    当在所见即所得模式下,输入行内数学公式如 \alpha 后,如果再在这一行输入其它内容,公式会在源格式和渲染格式之间闪动一下。

    复制

    行内代码块复制

    有这么一个行内代码块:image.png ,用鼠标全选后 image.png ,复制,在同一文档粘贴,会变成:image.png

    跨文档复制

    当在一个 Vditor 编辑器中复制文章后,粘贴到另一个 Vditor 编辑器(例如 Arya 编辑器),跨文档复制,就会变成这样:

    image.png
    变成了代码块,而不是源格式。

    自动新行

    在 Typora 中,当光标处于有文字的最后一行,再点击下方空白处时,如下图:

    image.png
    会自动创建 新行 并转到 新行

    image.png
    这个 Feature 超实用。从 Typora 转到 Vditor ,就属这一点的不支持最不习惯。

    聊天室

    点击视频播放自动回 home

    使用的是 Chrome 安卓端,打开聊天室,看见有人发视频了,点击视频中央的播放按钮,视频播放的同时,页面不是保持原来的位置,而是滚动到了页首,光标自动定位到了输入框。

    后记:

    写这么多真是累死了。本来是要反馈 2 - 3 条的,许多反馈条目其实是在反馈编写的过程中发现,又加上的。即时渲染模式毕竟刚上线不久,有一些小细节没来得及做,可以理解。

    另外,刚才在电脑端此贴回复页面粘贴这 3000 多字的反馈,然后页面就提示"System Error,请稍候重试",然后电脑就访问不了黑客派了,重启光猫,换了公网 IP 才解决,通过手机端发帖之后,然后我又试了两次,只要电脑端(新 Edge)编辑一下这个贴,IP 立马被拉黑。现在只能拿手机端编辑……,不敢再试了,每次重启光猫要两分钟。

    1 回复
    4 操作
    HaujetZhao 在 2020-05-25 15:10:24 更新了该回帖
    HaujetZhao 在 2020-05-25 15:05:22 更新了该回帖
    HaujetZhao 在 2020-05-25 14:11:44 更新了该回帖
    HaujetZhao 在 2020-05-25 14:10:20 更新了该回帖
    抠细节,好细致,赞
    PeterChu
    行内数学式是有配置项,防止有人想输入美元。
    Vanessa
    聊天室的问题还存在么?
    Vanessa
    终于看完了,基本修复了,欢迎下一版本尝鲜
    Vanessa
  • 88250

    Solo 和 Pipe 的定位是 B3log 分布式社区的博客端节点,并不是通常意义上的独立博客,所以账号体系需要进行统一,否则带来的问题会很多,这也是一路下来探索的,具体经历细节请看这里

    你提到的解决方案在 Solo v3 之前一直就是这样做的,经过长时间验证效果并不理想:

    • 不方便,用户需要在社区端和博客端配置账号关联关系
    • 不安全,账号的关联关系需要双向验证,如果不验证账号归属,会被冒名

    这两个问题是矛盾的,所以为了解决它需要将账号在 B3log 网络中进行唯一化。一开始的设计方案是通过公私钥(类似区块链的钱包原理),但这个方案在现阶段过于复杂,用户使用门槛有点高所以暂时放弃了。公私钥的方案在星火项目里进行过测试验证,技术上应该没问题,以后鱼塘项目可能会采用这个方案。

    所以再次重申一下,Solo 和 Pipe 是 B3log 分布式社区的博客端节点。举个最容易理解的例子,这就好比某些厂商的软件,没有这个厂商的账号是用不了的。打通其他网络的方案是在博客端或者社区端接入其他网络的账号,目前已经在黑客派上接入 GitHub 登录(可在账号设置中绑定),Solo 可通过 GitHub token 来将文章同步到自己的仓库,避免整个 B3log 网络过度封闭内卷。

    最后,希望目前加入到 B3log 的用户是认可这个设计的,如果不认可的话其实就没必要加入使用了,节省自己时间同时也能保护 B3log。当然,不排除以后设计还会有所变化,欢迎参与思考讨论,谢谢。

    1 回复
  • 查看全部回帖