V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Mutoo
V2EX  ›  V2EX

改进V2EX的留言板效果

  •  
  •   Mutoo · 2011-12-29 09:03:11 +08:00 · 5161 次点击
    这是一个创建于 4715 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有些有价值的回复很值得阅读,但是留言一多要“跟踪”起来有点费神,
    例如我想找到A回复B的信息,我得往上找B在哪楼发了什么,往往要花很多时间。

    前阵子玩 stackoverflow聊天室(http://chat.stackoverflow.com/)的时候,
    发现鼠标移动到某个回复(以@name开始的条目)的时候会自动高亮被回复的条目,
    这个形式挺不错的,值得参考一下。
    22 条回复    1970-01-01 08:00:00 +08:00
    suhetie
        1
    suhetie  
       2011-12-29 09:40:08 +08:00
    支持。或者可不可以采取 new twitter 的两栏式的布局呢?
    Mutoo
        2
    Mutoo  
    OP
       2011-12-29 13:06:24 +08:00
    Rice
        3
    Rice  
       2011-12-29 13:31:47 +08:00
    同意
    unstop
        4
    unstop  
       2011-12-29 13:33:11 +08:00
    支持这个提议。
    caomu
        5
    caomu  
       2011-12-29 13:36:58 +08:00
    支持,现在长贴往回找好麻烦,有时只能 ctrl + F 。。。
    dimlau
        6
    dimlau  
       2011-12-29 13:53:25 +08:00
    必须是这种更科幻的啊!
    http://www.v2ex.com/t/9081
    caomu
        7
    caomu  
       2011-12-29 14:00:36 +08:00
    @dimlau 我擦这个给力啊。
    chuck911
        8
    chuck911  
       2011-12-29 14:20:02 +08:00
    不太支持
    目前pb2是没有记录某条发言所回复的发言id的,所以加这个功能的话估计改动不是很小
    v2ex的意图是每篇讨论都以主题为中心
    聊天室可以随意生成一个讨论话题(在一定范围内),所以对话高亮确有必要
    livid不如加快pb3的进度。
    大家想改进的话自己fork嘛
    Mutoo
        9
    Mutoo  
    OP
       2011-12-29 17:03:30 +08:00
    @chuck911 是不是可以靠js来实现,直接通过 @name 向上寻找用户?
    chuck911
        10
    chuck911  
       2011-12-29 19:32:19 +08:00
    @Mutoo 那样是不准确的,可能会找到很多条,但未必是有关联的,看chat.stackoverflow.com就知道了
    alsotang
        11
    alsotang  
       2011-12-31 04:03:36 +08:00
    @chuck911 fork了之后pull request不被接受才难过阿。已经堆了一些在github了。
    zythum
        12
    zythum  
       2011-12-31 04:58:37 +08:00
    @Mutoo 这个改动貌似比较麻烦。
    朱一这边花了几分钟写了个油猴脚本,把相同的用户名做高亮处理,应该可以达到类似的效果了。
    http://zythum.free.bg/v2extextareaplus/v2exusernameheighlight.user.js
    抱歉地址名字有点长。
    chrome可以直接安装,safari,frefox请安装油猴插件后安装。


    时间仓促,因为睡出来了,只测试了chrome.如果有问题下面@我。
    glume
        13
    glume  
       2011-12-31 05:55:25 +08:00
    利用回复的id做个锚点应该改动很小吧。
    chuck911
        14
    chuck911  
       2011-12-31 09:34:48 +08:00
    @alsotang 不接受是正常的,因为github.com/livid/v2ex是v2ex的代码仓库而不是pb2的“最佳版本”,因此v2ex不需要的特性github.com/livid/v2ex就不会接受
    其实“github.com/livid/v2ex”==“Project Babel 2”这个事实我觉得不太合理
    @zythum 的解决方案很好,因为“根据相同的用户名匹配”只是凑合的解决方案,需要的人去装脚本即可
    chuck911
        15
    chuck911  
       2011-12-31 09:37:00 +08:00
    @alsotang fork并不意味着要pull request啊
    zythum
        16
    zythum  
       2011-12-31 13:57:05 +08:00
    @glume 因为之前的回复都没有注明恢复到id,以前的要补比较麻烦。
    @chuck911 因为@livid 没有把用户名的id做个js能够提取的地方,没有class.没有id,只能把a标签作为目标。所以转贴的url等a标签也会被判定。这个朱一没办法。
    caomu
        17
    caomu  
       2012-01-02 11:20:23 +08:00
    @zythum
    只判定 @name 和 回帖人 ID 的大概就是这样子了。。。
    http://gist.github.com/1549126
    其实因为有些帖子太长所以我想改成离开元素不恢复,而是点击页面才恢复,于是把 .mouseleave 改成 $(document).click ,倒是能点击页面复原了,不过要是没点击页面,那划过的链接就都变色了。。。然后我想在 mouseenter 的时候来处理一下把已经变色的复原先,然后……不知道怎么来。。。。。
    sihaiyunyou
        18
    sihaiyunyou  
       2012-06-26 08:57:24 +08:00
    我去体验过了,确实很酷
    sihaiyunyou
        19
    sihaiyunyou  
       2012-06-26 09:02:52 +08:00
    实现起来应该也不难的,如果不存在分页的话就简单了,点击回复的话直接生成:#2楼 @某某 就好了,到时候根据楼层去找,如果存在分页,就比较麻烦了,要记录楼层还要记录所在的分页,如果不在同一个分页,还要跳转页面。。。。。
    m_z
        20
    m_z  
       2012-06-26 09:14:30 +08:00
    回复上把楼层标记上会不会好点呢。
    比如我点了19楼的箭头回复,我的回复标记 @sihaiyunyou 19
    sihaiyunyou
        21
    sihaiyunyou  
       2012-06-26 09:44:39 +08:00
    @m_z ruby-china.org的作法是,点了小箭头后,自动在前面生成“#20楼 @m_z”,根据楼层来找就很方便了,http://chat.stackoverflow.com/ 是聊天室,只存在楼层,不存在分页,所以他很容易做到不跳转页面就直接倒转到被回复的楼层,如果在分页的论坛里面可以考虑在点击了@m_z前面的 #20楼 以后使用ajax在当前位置加载20楼的内容
    m_z
        22
    m_z  
       2012-06-26 09:57:02 +08:00
    @sihaiyunyou 看来我要多学习了,见识太少,原来这想法早就有了。你说的很对
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3245 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:11 · PVG 21:11 · LAX 05:11 · JFK 08:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.