Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

无法在 airpub 中使用多说评论小组件 #22

Open
banrikun opened this issue Jan 1, 2015 · 20 comments
Open

无法在 airpub 中使用多说评论小组件 #22

banrikun opened this issue Jan 1, 2015 · 20 comments
Labels

Comments

@banrikun
Copy link

banrikun commented Jan 1, 2015

https://github.com/airpub/chill/blob/master/admin.html

 <editor-ninja ng-model="article.content"></editor-ninja>

这个文件中,editor-ninja已经被拆分开来了 - -
我下载的这个默认的主题,按照上面的结构制作新主题,结果后台一直不加载输入框。。。。。。。。。

然后下载了 http://airpub.qiniudn.com/themes/chill/admin.html 这个文件……发现

<textarea editor ng-model="article.content"></textarea>

。。。。。。。。。。。。。。。。。。。。

@banrikun
Copy link
Author

banrikun commented Jan 1, 2015

还有几个疑问

1.40行构建方式是否不支持更换主题路径,只会读取/chill/下的模板文件…哪怕不能改,也希望这个文件夹可以叫theme什么的……当然这只是细节问题

2.已经实测40行方式不支持翻页,点翻页按钮无效。。。已经用云端默认主题,只改了id的index.html测试,均无法正常翻页

3.多说评论数经常读不出,原因不知,我其它网站正常,唯独用airpub的不行。代码正确。

4.在另一个帖子里提到的p标签输出问题(guoyu.me和airpub.io的差别)

主题已经基本完工了,就差后台和正文部分的CSS了,伸手怒求拆分的,自己写好累的而且后台完全摸不透。loading和login样式貌似可玩性也不错,所以建议基础css文件有正文排版和后台部分就好了 ^^

另外……丢个主题预览链接:http://www.brdev.org
我已经删掉了基础css还有各种less……技术不足实在是只能用原始的方式。。。

@banrikun
Copy link
Author

banrikun commented Jan 2, 2015

5.和4差不多的一个问题。airpub.io和40行的输出方式,img标签外面会自动嵌套p标签,很不方便写样式……TUT

响应式部分还没写不知道会不会有更多问题,暂时先坑着……

@banrikun
Copy link
Author

banrikun commented Jan 3, 2015

多说评论数读不出的问题是否是因为代码的执行顺序?两个数据都是从多说服务器发出,但是读取评论数的请求早于data-thread-key的请求,所以没有读取成功呢?

以上纯脑补……最新评论也容易读不出,但是成功率比评论数略高

@guo-yu
Copy link
Member

guo-yu commented Jan 4, 2015

回北京了,我一个一个解释一下吧。

  1. Chill 主题 master 分支上的代码版本是 v0.3.0 这个版本和我们最早在七牛上提供的 CDN 的版本是不一致的,七牛的 CDN 后来并没有更新到新版本,airpub 提供的 CDN 列表,可以查看 airpub/cdn 这个仓库 如果想要使用新的特性,最好是使用多说的 CDN 或者 托管在 GitHub 的 airpub.io 的 CDN 文件。
  2. 这个问题应该也是用七牛 CDN 的问题,代码是以前的代码。airpub 是支持传入 airpubConfigs.theme 或者 airpubConfigs.themePath 的方式来指定主题文件的路径和版本路径的~ 具体代码可以参考 airpub/airpub.io 这个仓库index.html 文件配置,注意这里使用的是 v0.4.0-unstable 的 airpub 核心版本,推荐使用这个版本(拆分了主要业务逻辑对编辑器模块的依赖)
  3. 多说评论读不出是之前老版本的一个 bug,这个已经在 v0.3.0 之上都修复了。
  4. 标签输出的问题与主题无关,这个是在核心逻辑的 filter 里处理的。这里确实处理的不好,但尚未找到比较好的处理方法。具体代码可以参见 /src/filters/marked.js 的第 48 行。

@guo-yu
Copy link
Member

guo-yu commented Jan 4, 2015

你的主题开源了吗?如果开源了我看看代码是如何工作的~ 这样更有利于解决问题。

@banrikun
Copy link
Author

banrikun commented Jan 4, 2015

@turingou 还没有制作完毕,admin部分的css还没有复制过来,所以后台现在没样式。
地址是:https://github.com/banrikun/Air-For-Airpub

另外和这个版本保持同步的页面是:http://www.brdev.org
翻页问题更换了cdn已经解决了,但是依然读不出基础多说通用代码的最新评论和评论数,偶尔可以读出来,但是大部分时候都出不来

@banrikun
Copy link
Author

banrikun commented Jan 4, 2015

至于标签的输出问题我可能没解释清楚,就是airpub.io和我所引用CDN后建立的页面,所打出的文章,在每个段落p标签外边,都会包围section标签(下面还有3个div标签),而guoyu.me是直接输出p标签,外面没有包裹那么多东西。个人建议后者更合适,我接触过的blog系统中都是使用后者的方式输出的

@guo-yu
Copy link
Member

guo-yu commented Jan 4, 2015

@banrikun 嗯,再确认一下你现在正在 index.html 中使用的 airpub 的版本是?

@banrikun
Copy link
Author

banrikun commented Jan 4, 2015

@turingou

<script src="http://static.duoshuo.com/airpub/airpub-dependencies.min.js"></script>
<script src="http://static.duoshuo.com/airpub/airpub.min.js"></script>

引用的这两个JS文件

@guo-yu
Copy link
Member

guo-yu commented Jan 4, 2015

@banrikun 我看看具体是什么版本的问题。看来给打包后的文件打个版本好还是有必要的。。

@guo-yu
Copy link
Member

guo-yu commented Jan 4, 2015

@banrikun 找到了。这上边最新的版本是 v0.3.2,我看了一下我的博客,比如在这个页面,还是会输出 paragraph-section 作为 img 标签的父层:http://guoyu.me/article/1175527463674788800

而第一篇文章的图片之所以没有这个标签作为父层,是因为那个文章不是我自己编写的,是多说的爬虫抓取的正文,所以包裹在 html-section 当中了。

这个问题,当时其实是想用 CSS 来做一个 workaround,用包含选择器来做判断,以此定义文章中插入图片的样式,现在看起来这种方法应该不太现实,还是应该在 filter 中处理好最后输出的 DOM 结构,这个问题会在 v0.5.0 里得到解决~

@banrikun
Copy link
Author

banrikun commented Jan 4, 2015

@turingou 辛苦了,现在这样不是很影响一般使用,只是个人有点在这种细节上比较纠结……囧

另外就是那个读取评论数和评论数的问题,貌似更新版本后并没有解决……依然读不出 0_0

@guo-yu
Copy link
Member

guo-yu commented Jan 4, 2015

@banrikun 关于读取评论数的代码,你具体是写在哪里?

@banrikun
Copy link
Author

banrikun commented Jan 4, 2015

@turingou
archive.html中27行

        <span class="info">
            <a ui-sref="layout.single({uri: article.thread_id})">
                <span class="ds-thread-count" data-thread-key="{{article.thread_key}}"></span>
            </a>
        </span>

审查元素获得的信息好像没问题

<span class="ds-thread-count" data-thread-key="24a37ed0-8f14-11e4-b9ba-b1c716e1f10a"></span>

@guo-yu
Copy link
Member

guo-yu commented Jan 4, 2015

@banrikun 我看到代码了。原因是这样的,多说的 embed.js 会在页面刷新时判断是否有组件的钩子,然后获取数据,再填充钩子所在的区域成相应的 DOM。但是 angular.js 编写的应用是不会刷新的。也就无法在 dom ready 事件中触发对钩子的检查。这个是我当时在写 airpub 没有想到的问题之一。

解决办法是我们在 airpub 中在相应的路由触发之后,手动告知 duoshuo embed.js 检查是否有钩子存在,然后填充 DOM。我标记这个为一个 bug

@guo-yu guo-yu added the bug label Jan 4, 2015
@banrikun
Copy link
Author

banrikun commented Jan 4, 2015

@turingou 感谢解答,坐等新版本。

@guo-yu
Copy link
Member

guo-yu commented Jan 4, 2015

@banrikun 不客气,应该感谢你 :)

@guo-yu guo-yu changed the title GitHub上的默认主题似乎? 无法在 airpub 中使用多说评论小组件 Jan 4, 2015
@banrikun
Copy link
Author

banrikun commented Jan 5, 2015

@turingou 刚好今天给另一个站折腾instantclick的时候,遇到了同样的问题。由于instantclick会使得全站不刷新,从而无法触发多说,于是很期待解决方案~我相信也会有其他人需要的^^

@guo-yu
Copy link
Member

guo-yu commented Jan 9, 2015

@banrikun
Hi,无法在 Web App 中使用多说组件的问题已经在 angular-duoshuov0.5.0 版本中解决了。可以去 duoshuo/angular-duoshuo 项目的 example/directives.html 查看一下范例的效果,所有组件的命名还是按照多说之前通用代码的规范,data 参数的配置也是按照那个规范来做,具体代码的实现可以看 duoshuo/angular-duoshuo 项目的 src/duoshuo.js 中的代码实现。

Airpub 会在 v0.4.0 之后依赖 angular-duoshuo 的 0.5+ 版本

@banrikun
Copy link
Author

banrikun commented Jan 9, 2015

@turingou 好效率!感谢XD 我去折腾啦

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants