社区缺陷报告与功能建议

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

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

报告缺陷

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

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

功能建议

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

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

积分奖励

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

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

    76 引用 • 1737 回帖 • 2 关注
  • 链滴

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

    记录生活,连接点滴

    156 引用 • 3792 回帖
  • 系统公告

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

    39 引用 • 3581 回帖 • 682 关注
  • 使用指南

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

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

相关帖子

优质回帖
  • csfwff 2


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

  • PeterChu 1 1 赞同

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

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

欢迎来到这里!

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

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

      建议:

      • 添加个标签管理功能,在该功能中
      • 可以增删改查标签,
      • 可以合并标签,将几个标签合并为 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 回复
  • 其他回帖
  • 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
  • MarkDown 里不是有个代码块吗?在链滴中,或许做一个代码块直接执行的功能。

    比如 Windows 端上的 cmd 命令:

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    pip install you-get
    
    cd C:\Portable_Programes
    git clone https://github.com/carykh/jumpcutter
    cd jumpcutter
    python -m pip install -r requirements.txt
    

    这样的一些简单可执行的代码笔记就可以直接右键执行,省下 win + r cmd enter right click enter 的步骤了。

    对上面这个需求,@CismonX 提出了看法,认为这是个伪需求:

    一个正常的程序员不会在一个本地的笔记应用中写脚本,然后点进去执行

    为什么不写个 shell 脚本呢?把常用的参数整理好,不比在笔记中修改要方便?

    我的回答是:

    对许多方便实用的命令,做成脚本不方便改一些重要参数,比如

    ffmpeg -y -hide_banner -ss 00:05 -to 00:10 -i "input.mp4" -filter_complex "[0:v] scale=480:-1, fps=15, split [a][b];[a] palettegen [p];[b][p] paletteuse" "output.gif"

    这条命令是将视频剪切 5s - 10s 的片段,转成 480P 15fps 的 gif。

    而对另外一个视频,可能就需要剪切 15s-18s 的片段,或者改成 360P 以减少大小,就需要修改参数。

    对于其它复杂的命令,还可能有更多关键参数需要调。就需要打开脚本位置,右键,点击用 Notepad++ 编辑,修改参数,保存,切换到 explorer ,双击运行。步骤有点多。

    而且,一个脚本只能有一个功能,不像是 Markdown 笔记中,可以用多个代码块记录多个不同功能的命令,无论是修改,还是浏览,还是做总结,都更方便。

    另外,Vditor 似乎缺少 batch 语言的代码高亮。

    在代码高亮这一方面,可以把 Notepad++ 的抄过来,它在这方面支持地比较全面:

    image.png

    1 操作
    HaujetZhao 在 2020-05-27 13:21:19 更新了该回帖
    代码块的执行功能有一定应用场景,但不能做成默认启用,需要用户在设置中打开“执行代码块”功能开关,否则有安全隐患。这个功能暂时记录在链滴 issue,以后再考虑细节实现。
    88250
    如果以后要考虑实现的话,一个“复制并打开 cmd”的右键选项是比较安全合适的。
    HaujetZhao
  • 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 回复
  • 查看全部回帖