Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

改善 URL hash 部分效果 #82

Open
SmartHypercube opened this issue Aug 1, 2020 · 0 comments
Open

改善 URL hash 部分效果 #82

SmartHypercube opened this issue Aug 1, 2020 · 0 comments

Comments

@SmartHypercube
Copy link
Member

目前打开一道题目时,URL 会自动被加上 #题目名称 这样的部分,并在页面加载时读取这个信息来直接打开相应题目,以便用户加书签/分享链接。但是题目名称中如果有空格或其他特殊字符,就会被 urlencode(例如,信息安全 2077 变成 #信息安全%202077),看起来很难看。应当改成这个逻辑:

  1. 有一个将题目名称转换成 hash part 的函数 f。对于非 ASCII 字符和不会被 urlencode 的 ASCII 字符,它应当原样保留。对于会被 urlencode 的 ASCII 字符,它必须替换为 -。然后,连续多个 - 应当合并成一个,即使它们是从原文中原样保留得到的。
  2. 当用户打开某道题目时,将 URL hash part 设置为题目名称经过 f 变换的结果。
  3. 当页面被加载时,读取 URL hash part,将它与每道题目的题目名称经过 f 变换的结果对比,若有匹配,打开相应题目。
  4. 服务器必须用某种方法保证不会出现两道题目,它们的题目名称经过 f 变换后相同。
  5. 为了保证第 2、3 步中用的 f 和第 4 步中用的 f 算法一致,第 2、3 步中用到的“每道题目的题目名称经过 f 变换的结果”可以在后端算出并传输到前端。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant