首页改成分类,大家或多或少会有些不习惯。
discouse 能否给游客和登录用户设置不同的首页,或者有无插件允许用户自己定义首页?
少量修改 discouse 代码区分游客和登录应该也是可以实现的,我猜路由在这里:
可以做个简单的 patch,放在部署脚本的前置步骤里,这样就免去 fork 源代码了。
除了修改服务端之外,用户可以在浏览器端自行修改暂时对付一下,比如我用 Chrome + Tampermonkey:
// ==UserScript==
// @name RedirectEmacsChinaHomepage
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Redirect Emacs-china homepage to https://emacs-china.org/latest
// @author You
// @match https://emacs-china.org
// @match https://emacs-china.org/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
if (window.location.href.match(/^https?:\/\/emacs-china.org\/?$/)) {
window.location.href = 'https://emacs-china.org/latest';
} else {
var links;
links = document.evaluate("//a[@href]",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
for (var i=0; i<links.snapshotLength; i++) {
var thisLink = links.snapshotItem(i);
thisLink.href = thisLink.href.replace(/^https?:\/\/emacs-china.org\/?$/,
'https://emacs-china.org/latest');
}
}
})();
首次打开 https://emacs-china.org/
会看到明显的重定向操作(可以选择把 if 那一段去掉,首次展示一下分类也无所谓),后续再点击任何返回首页的链接都无感了。
这种替换 href 的做法可能会有漏网之于,完美的解决也许还要拦截 xhr,修改请求 url。