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

对V2EX做了点改动

  •  
  •   mamimoluo · 2010-12-21 10:03:29 +08:00 · 6147 次点击
    这是一个创建于 4874 天前的主题,其中的信息可能已经有所发展或是发生改变。
    昨天才来这里,发现小站做的很2.0,就下了安装试了试:
    http://game-over.appspot.com/

    简略看了下源码,发现做的很不DRY,作者很有功夫。

    发现了几个常见的问题:
    1、帖子里的链接都是在本页面打开,因为贴内链接大都是外站链接,应该新窗口打开。
    修改方法:重写django的urlize过滤器(这里作者使用的是django的转换函数,完全可以自己写的,django的太庞大~)
    在/v2ex/templatetags/filters.py末尾添加:
    def urlize(value):
    from django.template.defaultfilters import urlize
    value = urlize(value)
    value = value.replace('<a href="', '<a target="_blank" href="')
    return value
    register.filter(urlize)

    刷新缓存就OK了。

    2、每次对站点做了结构的改变都不能立即显现出来,原因是坐着对很多站点参数都做了memcache缓存。二后台只有一个“删除指定的缓存项目”的功能,使用者必须知道缓存key才能使用,如同鸡肋。

    起码应该添加一个更新全站缓存的功能,就从这里做了下扩展,修改方法:
    修改/backstage.py文件的BackstageRemoveMemcacheHandler类,大概在1669行:
    把原来的:
    if mc is not None:
    memcache.delete(mc)

    改为:
    if mc is not None:
    if mc == 'all':
    memcache.flush_all()
    else:
    memcache.delete(mc)

    使用的时候只要在输入框里输入“all”,就会更新全站缓存了。

    其他都是小修改,想不起来了,个人觉得这两点可能对大家有用。
    12 条回复    1970-01-01 08:00:00 +08:00
    mamimoluo
        1
    mamimoluo  
    OP
       2010-12-21 10:04:43 +08:00
    使用的时候,注意代码缩进
    darkovic
        2
    darkovic  
       2010-12-21 10:05:41 +08:00
    链接在哪打开,不是技术问题,是品味问题。
    moyan
        3
    moyan  
       2010-12-21 10:27:51 +08:00
    @mamimoluo
    全站刷新很好!!
    lianghai
        4
    lianghai  
       2010-12-21 13:33:03 +08:00 via iPhone
    还可以在 GitHub 上做成以个分支~
    不过,链接在哪打开,不是技术问题,是用户体验考量问题。
    darkovic
        5
    darkovic  
       2010-12-21 13:37:34 +08:00
    @lianghai :D
    mamimoluo
        6
    mamimoluo  
    OP
       2010-12-21 14:15:52 +08:00
    @lianghai
    恩,明白了。
    mamimoluo
        7
    mamimoluo  
    OP
       2010-12-21 14:17:38 +08:00
    今天中午打算用GAE重写一个类似的程序的,可是现在正在研究rails,还是基于V2EX改善吧,以后也不打算跟官方更新了。

    使用中发现什么问题继续改善吧~
    mamimoluo
        8
    mamimoluo  
    OP
       2010-12-21 14:21:16 +08:00
    @lianghai
    不得不承认这个程序的前端体验做的很好,很多细节性问题处理的很漂亮,我当初也是被这个吸引了。
    moyan
        9
    moyan  
       2010-12-22 15:01:30 +08:00
    File "C:\Program Files\Google\google_appengine\cdhyez\v2ex\templatetags\filters.py", line 159
    value = value.replace('<a href="', '<a target="_blank" href="')
    ^
    请问这是什么问题?
    我是这样写的
    def urlize(value):
    from django.template.defaultfilters import urlize
    value = urlize(value)
    value = value.replace('<a href="', '<a target="_blank" href="')
    return value
    register.filter(urlize)
    moyan
        10
    moyan  
       2010-12-22 15:03:07 +08:00
    收进代码就好了
    Kymair
        11
    Kymair  
       2010-12-22 15:07:08 +08:00
    @moyan 可以用https://gist.github.com
    Livid
        12
    Livid  
    MOD
       2010-12-22 16:36:12 +08:00
    请用 GitHub 的 fork 功能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   975 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:53 · PVG 04:53 · LAX 13:53 · JFK 16:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.