UserScript / Oh-My-GitHub

[UserScript] Make GitHub even better.
27 stars 4 forks source link

建立一个选项配置界面 #4

Open cssmagic opened 9 years ago

cssmagic commented 9 years ago

配置界面

打算在本项目中新建一个 Markdown 文件,以这个文件作为界面主体。脚本在其之上完成选项的读取、显示、存储。

更新

把配置界面放到项目中,是出于推广项目的考虑。但这意义不大。

因此,还是决定把配置界面整合到 GitHub 的 Settings 界面中,这样体验更好。不用受制于 Markdown 的格式,看起来更像个界面。

预计页面 URL: https://github.com/settings/applications?x=oh-my-github

在配置页面的左栏,新增一个菜单组,叫 Extensions,在其中显示一个菜单项,叫 “Oh-My-GitHub”。


标准化

如果其它扩展也希望显示在侧栏菜单里,需要把自己存到本地存储的 extensions 键中。并且这些扩展也需要正确读取并显示这个键中的所有菜单项。

[
    {
        "name": "oh-my-github", //用于生成菜单项的链接 URL
        "label": "Oh-My-GitHub" //用于显示菜单项
    },
    {...}
]
cssmagic commented 9 years ago

关于上面的 “标准化” 段落

已建了一个 GHX 项目,作为 GitHub 用户脚本的开发框架,便于那些不愿意融入 Oh-My-GitHub 生态圈的其它开发者开发自己的作品。

所有基于该框架开发的用户脚本,即自动支持上述 “标准化” 段落。也就是说,这个标准将不是各个用户脚本开发者自己的选择,而是框架的选择。

本地存储数据的键名和格式要改一下,键名为 userscript_ghx,而 extensions 的数据嵌套其中:

{
    "extensions": [
        {
            "name": "oh-my-github", //用于生成菜单项的链接 URL
            "label": "Oh-My-GitHub" //用于显示菜单项
        },
        {...}
    ],
    ...
}

扯远了,所以后续讨论将迁移到: https://github.com/UserScript/ghx/issues/1

cssmagic commented 9 years ago

关于配置界面的实现,在 Firefox + Greasemonky 下遇到问题。限于 GitHub 的 CSP 设置,无法在 JS 代码中执行 eval('...')new Function('...') 之类的代码——这导致前端模板引擎挂了。可能需要以预编译的方式来解决这个问题。

不过在 Chrome + Tampermonkey 下就没有这个问题。