社区缺陷报告与功能建议

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

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

报告缺陷

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

功能建议

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

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

积分奖励

  • Bug

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

    65 引用 • 1629 回帖
  • 黑客派

    黑客派是 B3log 开源社区的线上论坛,这里主要汇聚了程序员和设计师。HacPai 分别取 Hacker / Painter 的头三个字母组成,源自《黑客与画家》。

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

    更多细节请浏览黑客派简介

    391 引用 • 7820 回帖 • 516 关注
  • 系统公告

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

    40 引用 • 3714 回帖 • 669 关注
  • 使用指南

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

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

赞助商 我要投放

优质回帖
  • HaujetZhao 2 1 赞同

    反馈

    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 立马被拉黑。现在只能拿手机端编辑……,不敢再试了,每次重启光猫要两分钟。

  • PeterChu 1 1 赞同

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

  • InkDP 2
    该回帖仅作者和楼主可见
1233 回帖
请输入回帖内容 ...
  • 88250

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

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

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

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

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

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

    1 回复
  • 其他回帖
  • HaujetZhao

    早晨安上了 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 更新了该回帖
  • PeterChu 1
    1. Solo 中的标签管理
      碰见 2 个问题,
      a. 每次发布文章时,新加一些标签,可能有时候之前已经有了,或者新加的标签与之前其实是同一个东西,但是因为描述的不同最终变成 2 个标签,
      b. 当标签设置到 20+ 以上时,每次如果手动去选择记忆中已经设置过的标签的话,在所有标签中还挺难翻的,速度比较慢。(为什么不直接手动输入关键词后,自动匹配?因为有时候当操作完文章内容编辑后,此时多数操作是进行鼠标操作,和此时再进行键盘输入比较起来,通过鼠标点击选择更高效些)。
      看了之前的 2 个帖子:
      solo 能不能加个标签管理
      关于领域、标签的问题
      现在清理标签功能也去掉了吗?

      建议:

      • 添加个标签管理功能,在该功能中
      • 可以增删改查标签,
      • 可以合并标签,将几个标签合并为 1 个,
      • 删除某篇文章上的所有标签后,该篇文章自动添加“无标签”之类的一个标签,
      • 可以对所有文章进行标签管理,支持按标签搜索,方便对查找某些文章后,再次为这篇/这批文章在不打开文章编辑模式下添加、删除标签,此时,就可以对上条中“无标签”的文章进行标签的添加等管理。
      • 在标签的显示上,支持设置标签颜色、图标等。一个是方便在编辑文章页面设置标题时的快速添加,一个是在某些皮肤中文章显示时的标签的色彩丰富性可以提升文章页面的美观(稍微的附带作用,有时许多皮肤中如果加了标签的字号、样式还可能适得其反,反而显得色彩使用杂乱了,所以可能在加个配置是否在文章展示页面显示标签色彩和图标)。(flag 颜色的设置见过的场景中就是网易邮箱、OS 中文件夹颜色标记、便签等场景中感觉挺好用的).
    2. 上面的这个无序列表的缩进时手动敲出来的,不知道是因为我没有找到正确的使用方式,还是因为中间加了空白行后嵌套列表的缩进就有点乱了,还是必须手动实现缩进。
      空白行可能是此处 MD 最大的杀手了吧 wulian,如果最终显示排版好点可能会减少许多空白行,但是有些空白行完全是主观强行想要的。
      还有就是空白字符,MD 中许多地方需要在标记符号后专门敲出一个空白字符,但是有些却不能有空白字符,比如此行:斜体字不能加空白字符。

    3. 另外就是本篇文章,wulian 看了下貌似 码云上的 Solo 直接没有开 issue ,GitHub 上开了,那么此时就有 2 个地方在做同样这件事,或许 GitHub 上许多是非社区用户发起,社区的这篇非社区用户稀少吧,有点乱、重复,可能同时会在 2 个地方都出现针对同一问题的报告,管理也比较麻烦。
      GitHub 上的 issue 有比较好的交互、流程,社区的比较满足社区功能。不过,或许在将来社区也同时实现类似于 issue 这种模式的报告帖子功能,然后关闭或引导其他地方的 issue 提交用户到社区来。

      这样做的好处

      • 为 Sym 添加一种新模式,这种 issue 模式的场景应该也挺有实用前景的。
      • 为社区导流。如果是非社区用户来此发布报告的话,则尽可能支持主流第三方登录。(但是有些 GitHub 的用户可能只想提交 issue ,完全拒绝进入社区的话,确实也是个问题。记得好像之前 D 还说过这事,确实难办 😂 )
    1 回复
  • xjtushilei

    @88250 写帖子的时候,不能从 vscode 中有效的粘贴的 md 文档中的代码。复制过来是

    
     
    
            <dependency>
    
                <groupId>org.springframework.bootgroupId>
    
                <artifactId>spring-boot-devtoolsartifactId>
    
                <optional>trueoptional>
    
            dependency>
    
    

    样子。

    我用 Sublime 打开,可以直接复制过来。,如下:

     <!--devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现),
                       实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。
                       即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的
                    -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <optional>true</optional><!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 -->
            </dependency>
    

    不知道哪里的 bug

    1 回复
  • 查看更多回帖