首页 > 其他分享 >Ocotpress集成多说评论

Ocotpress集成多说评论

时间:2022-11-15 20:31:51浏览次数:61  
标签:集成 bg false post Ocotpress page 评论 div ds


Octopress默认自带了DISQUS,但是对于国内不是很好用。于是一开始替换了国内的友言。但是后来发现用友言的人不多,而且感觉友言加载速度比较慢。然后就是到了今天的多说了。官方并没有给出具体针对Octopress的解决指导。我这里记录一下如何集成,并且解决一些常见的问题。

集成

来说评论框

这就是多说提供的通用代码中,其实理论上以下三个值通过javascript都可以得到的。


linenos:false

1
2
3
<!-- 多说评论框 start -->
<div class="ds-thread" data-thread-key="请将此处替换成文章在你的站点中的ID" data-title="请替换成文章的标题" data-url="请替换成文章的网址"></div>
<!-- 多说评论框 end -->

如果换成Octopress(准确的来说是jekyll )的变量,应该是这样子。


linenos:false

1
2
3
<!-- 多说评论框 start -->
<div class="ds-thread" data-thread-key="{{ page.id }}" data-title="{{ page.title }}" data-url="{{site.url}}{{ page.url }}"></div>
<!-- 多说评论框 end -->

整合公共JS代码

在Octopress的source/_includes/post目录下,新建一个文件,比如duoshuo.html 其代码如下,


source/_includes/post/duoshuo.html linenos:false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!-- 多说评论框 start -->
<div class="ds-thread" data-thread-key="{{ page.id }}" data-title="{{ page.title }}" data-url="{{site.url}}{{ page.url }}"></div>
<!-- 多说评论框 end -->
<!-- 多说公共JS代码 start (一个网页只需插入一次) -->
<script type="text/javascript">
var duoshuoQuery = {short_name:"your_short_name"};
(function() {

var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0]
|| document.getElementsByTagName('body')[0]).appendChild(ds);
})();
</script>
<!-- 多说公共JS代码 end -->

注意,请修改上面代码中的short_name


linenos:false

1
var duoshuoQuery = {short_name:"your_short_name"};

关于short_name的这个值,需要从多说后台查找,如下图

将文件嵌入到​​<body></body>​

将上面的文件嵌入到source/_layouts/post.html下,可参考下列代码。


source/_layouts/post.html linenos:false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</footer>
</article>
{% if page.comments == true %}
<section>
{% include post/duoshuo.html %}
</section>
{% endif %}
</div>
{% unless page.sidebar == false %}
<aside class="sidebar">
{% if site.post_asides.size %}
{% include_array post_asides %}
{% else %}
{% include_array default_asides %}
{% endif %}
</aside>
{% endunless %}

同样,将文件嵌入到source/_layouts/page.html里面


source/_layouts/page.html lineos:false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{% if  page.comments == true %}
<section>
{% include post/duoshuo.html %}
</section>
{% endif %}
</div>
{% unless page.sidebar == false %}
<aside class="sidebar">
{% if site.page_asides.size %}
{% include_array page_asides %}
{% else %}
{% include_array default_asides %}
{% endif %}
</aside>
{% endunless %}

到这里,基本可以跑成功了。

问题解决

表象

不要高兴的太早,集成后的多说还是有点小问题,就是当需要登陆或者输入邮箱地址的时候,会出现如下图的问题,登陆框的背后有一层带颜色的层。

原因

具体原因是我所使用的css为所有的body div增加了一个背景。下图为id为ds-wrapper的div的背景属性

解决

昨天晚上自己找到了一个可行的办法,思路就是对所有body div的设置不应用到id为ds-wrapper的div 默认的设置如下。文件为sass/base/_theme.scss


sass/base/_theme.scss linenos:false

1
2
3
4
5
6
7
8
9
10
body {
> div {
background: $sidebar-bg $noise-bg;
border-bottom: 1px solid $page-border-bottom;
> div {
background: $main-bg $noise-bg;
border-right: 1px solid $sidebar-border;
}
}
}

使用not把ds-wrapper加入例外,修改为这样的设置


sass/base/_theme.scss linenos:false

1
2
3
4
5
6
7
8
9
10
body {
> div:not(#ds-wrapper){
background: $sidebar-bg $noise-bg;
border-bottom: 1px solid $page-border-bottom;
> div {
background: $main-bg $noise-bg;
border-right: 1px solid $sidebar-border;
}
}
}

到这里,就比较完美的解决了问题,边Google变StackOverflow解决了问题了,哈哈。

延伸

​CSS not API​



标签:集成,bg,false,post,Ocotpress,page,评论,div,ds
From: https://blog.51cto.com/u_3987305/5853958

相关文章

  • ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测|附代码数据
    全文下载链接:http://tecdat.cn/?p=12174本文比较了几个时间序列模型,以预测SP500指数的每日实际波动率。基准是SPX日收益序列的ARMA-EGARCH模型。将其与GARCH模型进行比较......
  • 鼎茂科技获得阿里云首批产品生态集成认证,携手阿里云共建新合作
    近日,上海鼎茂信息技术有限公司(以下简称“鼎茂科技”)的鼎茂智能运维AIOps平台软件(V3.0)与阿里云计算有限公司(以下简称“阿里云”)的阿里云可观测套件ACOS经过严格测试程......
  • 欢乐评论
    想和up喝100杯奶茶来99个拥抱看98场日落要97次接吻拍96张照片买95朵玫瑰去94家餐馆看93次大海走92条小巷打91次雨伞要90场牵手种89个草莓盖88次被子递87杯温水热86次剩饭看......
  • Ueditor集成Word导入
    ueditor粘贴不能粘贴word中的图片是一个很头疼的问题,在我们的业务场景中客户要求必须使用ueditor并且支持word的图片粘贴,因为这个需求头疼了半个月,因为前端方面因为安全的......
  • MASA MAUI Plugin (六)集成个推,实现本地消息推送[Android] 篇
    背景MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并不......
  • ASP .NET Core 集成 Loki 记录日志
    简介GrafanaLoki是一个水平可扩展,高可用性,多租户的日志聚合系统,由Grafana团队设计和开发,基于Apatch2.0开源。其有三部分组成:Loki是主服务器,负责存储日志和处理查询......
  • Ueditor集成Word导入功能
    如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra......
  • 如何实现发送评论时总数自动加一
    使用事件中心,数据操作中的数量查询获取总数,实现总数的实时显示效果展示前置准备使用循环容器制作的评论列表评论数据表,包含一个评论字段已实现发送评论,实时显示评论具体步骤......
  • 如何实现发送评论时总数自动加一
    使用事件中心,数据操作中的数量查询获取总数,实现总数的实时显示效果展示前置准备使用循环容器制作的评论列表评论数据表,包含一个评论字段已实现发送评论,实时显示评论具体步骤......
  • springboot集成redis
    1、单机Redis1、导入对应的包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redi......