Uninote
Uninote
用户根目录
brdr
common
programming
docs
后端试题
问题讨论

docviewer

项目说明

从网上clone的网站,每个网站以一个项目的形式存放到根目录中,如 mdn, chrome-dev, nodejs, babel ...

  • 每个项目需要在后端配置,不配置则属于 根项目

wget

术语

  • main url

    • 主页面的 url, 即浏览器中地址栏显示的 url
  • edit url

    • 编辑的页面的url. iframe 的 url
  • 缩放

    • 没有特别说明,则是指以下两种

      • page zoom/pinch zoom

        • pc
      • scale

        • pc/mobile
  • mirror

    • 镜像,本网站

标记

  • ~!

    • 不测试

      • 子主题 1
  • oo[

    • 已经过时的用例,暂时保留
  • !!

    • 重点测试
  • ~~

    • TODO
  • //.

    • 技术注释

list dir

head

  • 递归深度

    • 默认3
    • 不传用后台配置的
    • 传了用前端的
  • 搜索

    • 文件不命中则隐藏
    • 文件夹不命中也显示,命中则高亮
  • 回车搜索

  • 重置

    • 清空输入并搜索一次
  • 刷新时从 url 加载递归深度和搜索关键词

  • 横竖排

    • 切换后改变文件的排列方式

      • 记住选择,刷新后保持

body

  • 文件(夹)图标

  • favicon 设置

    • 根项目
    • 子项目
  • 文件夹

    • 面包屑导航

      • 每个文件夹的每一部分都可以单独点击进入(除了root)
    • 两种索引

      • 文件夹下有 index.html 或者同级有文件夹同名的 html
  • 文件

    • 点击阅读

文件阅读

history 前后导航

  • 浏览器的前后导航功能正常

  • 长按导航键显示导航历史列表

    • 每一项是对应页面的title

页面加载

  • 尝试添加 .html/.htm 后缀

  • 如果404,则显示 try origin, 意义同 导航条的 origin

    • 根项目
    • 子项目
  • 304 http 缓存

    • 如果页面、资源没有改动过(基于修改时间),则返回 304

      • 新表签中打开修改,保存
    • 可以通过配置 http_304: false 关闭,默认 true

      • ~!

导航条

  • 导航条浮动

    • ctrl shift alt + 0, 快捷键重置位置到原点(其他配置不重置)

    • 动态固定(左上角相对于屏幕的位置固定)(dynamic fixed: scale(pinch zoom),layout 大于 viewport 时)

      • 常规

        • 水平、垂直滚动,位置固定
        • 刷新后位置保持上次拖动后的位置
        • 拖动后再进行以上测试,相同
        • 缩放后再进行以上测试,相同
      • 拖动后重新计算相对位置

      • DPR 改变后再测试

      • 删除 localStorage 数据

        • application>localstorage
        • 刷新,显示在 0,0
        • 打开新页面,显示在 0,0
  • 头部

    • title

    • 按钮栏

      • 居中对齐

      • parent

      • root

      • origin

        • 需要配置 origin

          • 去掉 .html/.htm 后缀

            • 根项目
            • 子项目
      • edit

        • 跳转编辑页面,编辑当前文件
      • DPR

        • 仅移动端显示

          • pc 阅读、编辑页面正常显示

          • 阅读、编辑页面可以分别配置

            • 阅读、编辑切换,加载使用自己的值

              • 刷新保持
            • mdn2, 阅读 80%,编辑 40%,可以查看侧边栏

              • !!
        • 模拟DPR概念。和 scale 是两个概念,scale 不影响布局,DPR 改变布局宽度,但不改变 scale 值,还需要手动 scale;~!

          • scale & page zoom

          • initial-scale: 0.8, minimum-scale: 0.5, DPR: 0.5, width: 400px

            • 布局宽度 1000,最小可 scale 到 0.4, 但只能 scale 到 0.5, 有水平滚动
          • 80% 的意思就是在基准布局宽度(由viewport决定)基础上缩小到80%,即宽度变为 125%

            • 效果同浏览器的 page zoom,改变 DPR(window.devicePixelRatio) 值
        • 用途 ~!

          • 主要用于字体较大的站点的缩小

            • 设置了 meta viewport 的站点一般字体较大

            • 在编辑页面,设置一个较小值,如40(保证iframe宽度>770px),可以查看 mdn 的左边栏

              • 因为设置宽度无法改变主窗口的media查询,但可以改变iframe的
            • fh 代替 set body width

          • 放大:用于放大后不用水平滚动

            • 没有设置 meta viewport 的站点,布局宽度默认为 980px,会导致阅读时如果放大到适合的大小,需要来回水平滚动
            • 但无法阻止水平滚动
        • 得到焦点时全选

          • shift alt f

          • 仅能输入数字

          • 失去焦点时触发计算

            • 或者回车,mobile下虚拟键盘的回车也支持
        • cases

          • ~!

            • 阅读页面

              • initial-scale: 0.8/unset, minimum-scale: 0.5/unset(*-scale 由各个子项目决定)

                • DPR 分别尝试 50/70/120/unset,以上组合后再测试

                  • unset

                    • 恢复基准布局宽度

                      • 布局效果同不做任何操作
                  • iframe 宽度始终和body等保持一直(与工具条基本对齐)

            • 编辑页面

              • 固定值:initial-scale 0.8, minimum-scale 0.1

                • DPR 分别尝试 40/70/120/unset

                  • 用例、iframe宽度规则同阅读页面
          • test pages

            • /vs/DPR/*.html

              • ~!
      • 基本都有对应的快捷键

        • ~!
    • path

      • 水平滚动

        • 自动滚动到最右边
      • hover 显示滚动条,更细的滚动条

        • 不需要滚动时没有预留滚动条的空间

          • ~!
        • chrome的更细

        • ff标准的thin

  • 大纲

    • 宽度小于 800px 跳转后自动折叠面板

    • //. 不可拖动,因为可能有滚动条

    • 宽高超出范围可滚动

      • 垂直、水平滚动,头部都固定、不会滚动
      • 每个标题(heading)都占据一行,不换行,通过滚动条能查看完整标题
    • H1-H6, 有缩进

    • 点击跳转对应位置,并加入导航历史,

      • 前进、后退相应跳转
    • 高度最高为 80vh

    • xss

      • ~!
    • target id 生成(如果没有) ~!

      • TODO: 列出各种情况
      • 生成的 id 会导致错误的 modified 判断
    • hover背景高亮

      • 宽度至少为100%
      • 超宽的宽度为文本的宽度,并且整体 cursor pointer, 可点击
    • edit points

      • 所有 edit points 正确的插入到 outlines 中

      • xss

        • ~!
      • 自动换行

      • 黑色字体

      • 段落间间距更大

        • 能明显看出段落分隔
      • 没有缩进

      • 可以隐藏,并记录选择

  • config(配置面板)

    • reset

      • 初始化并刷新页面

        • 还可以通过 url 添加 ?reset=1 实现

          • 刷新后 reset=1 参数移除

            • 此参数不会进入浏览器导航历史记录
    • debug

      • 开启调试模式

        • ~!
    • 面板宽度

      • 导航条面板宽度
  • 用户记录(有操作后马上记录),刷新后恢复

    • 面板位置

    • 面板输入框(checkbox、文本框等)

    • 折叠、展开状态

    • EPs

    • DPR

    • 刷新不应有明显的晃动

      • 折叠时不应先渲染展开,再渲染折叠状态
    • 删除localstorage docviewer 字段,再刷新同reset

    • 编辑页

      • 简单编辑模式

body

  • 链接跳转

    • 三种路径

      • 相对路径

        • path/to/dest.html
      • 半绝对路径

        • /path/to/dest.html

          • 根项目

            • 正常跳转
          • 子项目

            • 正确添加项目名,正常跳转

            • 后台屏蔽项目配置,则不能正确跳转

              • 注意清缓存

                • ~!
      • 全绝对路径

    • 所有情况都会尝试添加 .html/.htm 后缀

    • hash anchor 定位

      • #xxx 形式

      • 其他带 path 的三种形式

        • 指向当前页面

          • 当前页定位
          • 后端会处理为纯 hash 形式
        • 指向其他页面

          • 跳转到其他页面再定位
      • 每次点击,同样会加入导航历史,可以来回前后导航

  • 资源加载(图片、js、css等)

    • 同链接跳转,也需要区分三种路径 ~!

      • 半绝对路径如果是子项目

        • 资源 url 不会追加项目名,但能够正常加载

          • 因为很难覆盖所有的情况,比如:background: url(xxx)
    • 所有的资源加载正确(network 面板)

文件编辑

编辑工具条

  • edit url 与 load 按钮

    • 自动更新为当前的编辑路径

      • 初始、刷新时从 url 加载 path 参数
      • 点击页面链接跳转后
      • 浏览器前后导航后
    • 手动输入后点击 load

      • main url path 参数更新

      • 当前编辑地址加入导航历史

      • 点击回退回到上一个编辑的页面

        • 可多次反复前后导航
  • 阅读模式切换

    • 快捷键:alt e
  • 阅读页面切换

    • alt v
  • 编辑功能

    • 颜色

      • 红色 alt z
      • 蓝色 alt x
      • 黑色 alt b
    • 加粗、斜体

      • ctrl b/ctrl i
    • 插入、更新 anchor

    • redo-undo

      • ctrl z/ctrl y
    • save

      • ctrl s
    • 系统自带的快捷键,如 ctrl + z/y/b

  • status bar

    • 错误提示,如保存失败等

      • 填写错误的path
    • 加载时显示 loading,完成后 ready

  • 必要时禁用按钮

    • 只读时

      • 有修改时,切换为只读,此时 save 按钮可用

        • 保存成功后禁用

          • 刷新等无修改提示
      • 无修改时, save 不可用,快捷键一样不可用

编辑框(iframe)

  • 阅读模式

  • 编辑模式

    • 点击 阅读模式 切换

      • 再次点击切换回 阅读模式
    • 文件阅读的所有功能可用,导航条的edit按钮隐藏

    • 阅读模式的额外功能相同

    • 切换导航后重置为阅读模式,避免错误的编辑检测

      • 并且状态改为 disabled

        • 要等待 selector 获取后才可用

          • 禁用时快捷键一样不可用
    • 编辑时可以点击跳转

      • 三种url + hash
    • in page a, edit, save, go to page b, back, 不能从缓存中获取,需要刷新 !!

      • in b, go to page a, 这种情况不用刷新,走了网络请求的 ~!

        • 再连续返回两次到 a

          • 目前没有区分这种情况,还是要刷新
      • TODO: 目前是修改了,再次返回就是刷新,应该改为保存了返回才刷新

      • 点击任意 hash anchor 跳转,编辑,back

        • 不应该触发保存提示

        • save,跳转其他页面,back

          • 重新加载
    • mobile

      • 简单编辑模式

        • 移除焦点,防止键盘弹出
        • 编辑后取消选择 因为此时回退手势无法取消(chrome bug?)
  • 保存提示

    • 有编辑才提示,没有编辑不提示

    • 触发的情况分类

      • 点击页面链接

      • 前后导航

      • 刷新

      • 导航条的view按钮

      • 其他未知情况

        • ~!
    • 提示方式

      • 系统对话框(onbeforeunload)

        • 出现条件 oo[

          • 点击页面链接、前后导航,跳转后离开编辑页面
          • 其他所有触发分类
        • 取消

          • 留在当前页面
        • 确定

          • 离开,不保存
      • 自定义对话框oo[

        • 出现条件

          • 点击页面链接、前后导航,跳转后还是当前页面

            • TODO: 当前页面的定义
        • 选择

          • 确定

            • 保存

              • 成功

                • 加载新的待编辑页面

                  • 阅读模式不改变
                  • 重置为未编辑状态,再次跳转无任何提示
                • edit url & main url path 参数更新

                • 所有情况都会尝试添加 .html/.htm 后缀

              • 失败

                • status bar 显示失败原因

                • 效果同取消

                • 保存前移动文件

                  • path error

                    • 还是处于已编辑状态,后续操作的提示相同
          • 取消

            • title & edit url & main url path 参数无变化

              • chrome bug: 编辑》回退》取消》title不会更新为设置的。firefox在确认前不会修改title
            • 还是处于已编辑状态,后续操作的提示相同

            • 注意,取消后前进的历史记录将全部丢失,目前无法解决;后退的历史记录不影响

          • 再次前后导航,目前会重复显示,暂不处理

      • cases oo[

        • chrome, 任意页面,编辑

          • 返回,系统对话框提示,离开

            • 前进,再次进入,此时页面还是之前的状态(bfcache)

              • 再次离开依然提示
          • firefox 是磁盘缓存,因此没有保存状态

        • chrome, 返回》esc取消》再返回》直接进入到系统的离开提示》选择确定,直接跳过所有的当前页面历下的历史

        • a edit > change to read only > to b, 提示保存,确定> back to a, 正常返回,修改被保存了,再跳转无提示

  • 保存

    • <!DOCTYPE html>

      • 有无不改变

        • TODO: bug

          • ~!
    • 以edit url作为保存路径

    • 项目

      • 子项目

        • 相对路径不变

        • 半绝对路径移除项目路径

        • 全绝对路径

          • to mirror 的链接保存
      • 根项目

        • 同子项目
    • 导航条等插入的内容不保存

      • ~!
    • 尝试添加 .html/.htm 后缀

    • 反复修改、保存、加载

    • selector 配置部分保存

      • 没有配置完整保存
      • 找不到对应节点完整保存
      • 新老文档同时找到了部分保存
    • html entity

一样要区分是否子项目,以子项目测试为主

file list(文件列表)

要测试 root 以及 非 root 项目

文件加入 list 的操作

  • fav

    • 操作界面

      • file list
      • 阅读页面
      • 编辑页面
    • do fav

      • first one, create file-list dir & prj list file

      • do/undo fav

        • undo 后不会从 list 中删除
      • fav不影响修改时间

      • 存在则修改,不存在则新增

      • url中不带 .html 能够正常 do/undo

  • edit

    • first one, create file-list dir & prj list file

      • ~!
    • 每次编辑后更新修改时间

    • edit不影响是否fav

    • 存在则修改,不存在则新增

  • 直接通过 git 命令导入

    • git diff --name-only <base> HEAD

      • mtime/fav 可以忽略,默认值都为 0

        • ~!

展示

  • 按加入顺序展示

  • 顶部展示项目名

  • 列表部分展示修改时间和文件名

    • 点击进入阅读

      • 收藏

        • 返回列表,变为收藏
      • 取消收藏

        • 返回列表,变化取消收藏
      • 进入编辑

        • 返回列表,修改时间变化
      • 点击 list

        • 进入对应项目的列表
      • 返回,筛选状态、筛选结果保持

        • 滚动条位置也保持

          • 编辑页面也一样

            • !!
      • main 跳转其他页面 ~!

        • 返回

          • 阅读页面

            • 状态恢复
          • 编辑页面

            • 支持 bfcache

              • 恢复

                • google 支持
            • 不支持

              • 未恢复

                • firefox 不支持
    • 没有修改时间为1970

    • 文件名前面收藏图标

      • 点击切换收藏

筛选

  • 收藏

  • 修改

    • 过滤掉时间时间为0(1970年)的
  • 同时选中,则显示全部的

    • 包括没有修改,取消了收藏的

XMind: ZEN - Trial Version

css

promise

点赞(0) 阅读(40) 举报
目录
标题