“跨文翻译”的留言板开放

questions answers signage

阅读本文大约需要: 5 分钟

趁着我还有记忆,赶紧记录一下“跨文翻译”的留言板配置。

先说原则问题:在所有的技术问题上,我通常希望有一个常规使用的工具,一个稳定预备、随时可以启用的工具和一个正在进行预备性研究的工具。

比如,在使用博客的时候,我同时启用了微信公众号,wordpress博客,并在去年开始研究静态博客发布工具hugo的配置使用。

当微信公众号不能使用之后,备份的方案就提前了。这样看起来虽然有些忙碌,但也有原则性的好处吧。


hugo是用go语言开放的静态网站生成系统,开源,有很活跃的社区,有各种模板,而且生成网站的速度比其他静态生成器快不少。从去年开始,汉锋劝我将跨文的官网打理一下,我开始测试和迁移一点文章到https://kuawentrans.com上,到了两周以前才正式启用吧。

作为静态网站,或者说是“编译执行”而非“动态执行”的网站,对于读者而言,访问的感受要好不少。我目前使用asciidoc作为主要的发布语言,直接在服务器上用vim写字,然后就提交到github上保存,倒也方便。

唯一不便的地方,是静态网站没有任何动态功能,所以无法留言和互动。hugo的缺省留言功能由第三方的https://disqus.com/提供,因为使用了大量其他服务方的字体和代码,所以国内几乎无法打开,就像不存在一样。另一方面,及时能用disqus,价格也昂贵,而且其中跟踪隐私的代码很多,偶尔还会插入广告。

所以,下午花了一点时间配置了isso,作为我的极简博客模式的一部分。

以下是技术细节,不感兴趣的读者可以安全跳过,我的记录只是为了自己日后的备忘而已。


安装isso。isso是个python的服务器,所以最终还是得运行一个动态网站系统,才能获得动态功能。唉,无法可想。

sudo apt install python-dev build-essential -y
sudo apt-get install python3-pip
pip3 install --upgrade pip
pip3 install isso

接下来安装sqlite3.

sudo apt-get install sqlite3

建立数据库目录。

sudo mkdir -p /var/lib/isso
sudo chown isso:isso /var/lib/isso -R

配置一个最简单的配置文件,/etc/isso.d/enabled/isso.cfg。邮件通知和数据库管理问题以后再说了。

[general]
dbpath = /var/lib/isso/comments.db
host =
        http://kuawentrans.com/
        https://kuawentrans.com/

[server]
listen = http://localhost:8090/

[moderation]
enabled = false

配置isso服务,取名叫“/etc/systemd/system/myisso.service”:

[Unit]
Description=isso.Service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=isso
ExecStartPre=
ExecStart=isso -c /etc/isso.d/enabled/isso.cfg run
ExecStartPost
ExecStop=
ExecReload=

[Install]
WantedBy=multi-user.target

将服务配置为启动项:

sudo systemctl start myisso
sudo systemctl enable myisso

修改nginx的配置,在“server”段下增加反向代理:

        location /isso {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Script-Name /isso;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://localhost:8090;
        }

测试:

curl https://kuawentrans.com/isso

//下面是curl的运行结果,表示一切正常,可以工作。否则,需要检查日志,以排除各种错误。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to target URL: <a href="http://kuawentrans.com/isso/">http://kuawentrans.com/isso/</a>. If not click the link.

修改我的hugo主题下的page-footer.html。未修改的文件如下:

{{ $related := .Site.RegularPages.Related . | first 15 }}
{{ $count := len $related }}
{{ with $related }}
<div class="font-serif pb-2 flex align-start leading-loose">
        <span class="heading pr-6 leading-loose">Related</span>
        <span >
                {{ range $k, $v := . }}
                        <a href="{{ $v.RelPermalink }}">
                                {{- $v.Title -}}
                        </a>{{ if lt $k (sub $count 1) }}&nbsp;&nbsp;&#47;&nbsp;{{end}}
                {{ end }}
</span>
</div>
{{ end }}
</div>
<hr />
<div class="pb-2">
    {{ template "_internal/disqus.html" . }}
</div>
<hr />

把黑体部分删掉,增加isso的配置代码:

<script data-isso="https://kuawentrans.com/isso"
        data-isso-css="true"
        data-isso-lang="en"
        data-isso-reply-to-self="false"
        data-isso-require-author="false"
        data-isso-require-email="false"
        data-isso-max-comments-top="10"
        data-isso-max-comments-nested="5"
        data-isso-reveal-on-click="5"
        data-isso-avatar="true"
        data-isso-avatar-bg="#f0f0f0"
        data-isso-avatar-fg="#9abf88 #5698c4 #e279a3 #9163b6 ..."
        data-isso-vote="true"
        data-vote-levels=""
        src="https://kuawentrans.com/isso/js/embed.min.js"></script>

<section id="isso-thread"></section>

{{ $related := .Site.RegularPages.Related . | first 15 }}
{{ $count := len $related }}
{{ with $related }}
<div class="font-serif pb-2 flex align-start leading-loose">
        <span class="heading pr-6 leading-loose">Related</span>
        <span >
                {{ range $k, $v := . }}
                        <a href="{{ $v.RelPermalink }}">
                                {{- $v.Title -}}
                        </a>{{ if lt $k (sub $count 1) }}&nbsp;&nbsp;&#47;&nbsp;{{end}}
                {{ end }}
</span>
</div>
{{ end }}
</div>
<hr />
<div class="pb-2">

//这里删掉了
</div>
<hr />

看起来很简单,但我错了很多次,掉在了很多坑里。isso的文档很少,也比较陈旧,我使用ubuntu的缺省配置,比如apt install isso,不知道为何服务器指向了isso.sock,反代部分每配置成功。

Anyway,根据秀丽姐的要求,留言板算是配好了,大家可以简单地和我抬杠了。

这就是愉快的一天,如此团结紧张严肃活泼地度过。明天要收拾翻译的残局了。John Piper的”Providence“今年要出中文版,作为翻译这本书(自封)的吉祥物,我还是有责任多多鼓励参与翻译和编辑的两位小朋友。

欢迎访问跨文翻译的官网,阅读《信任崩塌》,并给我留言。

版权所有:Eddy Zhang
博客:https://eddyemma.com
出品人:跨文翻译(kuawentrans.com)跨文翻译以职场作为宣教平台。

This image has an empty alt attribute; its file name is kuawen-640x334.jpg

if you are ever moved to support this ministry or my family…

若您或您的教会愿意支持跨文翻译的事工,请使用以下二维码。

3 thoughts on ““跨文翻译”的留言板开放”

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.