D0n9X1n / hexo-tag-cloud

Yet, just another tag cloud plugin for hexo.
https://www.npmjs.com/package/hexo-tag-cloud
MIT License
147 stars 27 forks source link

标签页不能显示标签云 #15

Closed hoochanlon closed 6 years ago

hoochanlon commented 6 years ago

安装貌似好像应该是正确的,,但最关键的标签页没有任何显示。 安装 hexo c && hexo g生成的public 目录下没有 tagcloud.xml 和 tagcloud.swf 文件 没有xml与swf next/layout/page.swig中的部分代码

            {#<div class="tag-cloud-tags">
              {{ tagcloud({min_font: 14, max_font: 30, amount: 300, color: true, start_color: '#582e4b', end_color: '#111'}) }}
            </div>#}

 {% if site.tags.length > 1 %}
<script type="text/javascript" charset="utf-8" src="/js/tagcloud.js"></script>
<script type="text/javascript" charset="utf-8" src="/js/tagcanvas.js"></script>
<div class="widget-wrap">
<div id="myCanvasContainer" class="widget tagcloud">
<canvas width="500" height="500" id="resCanvas" style="width=100%">
{{ list_tags() }}
</canvas>
</div>
</div>
{% endif %}

hexo/_config.yml文件中也加入了

#tag_cloud
tag_cloud:
  textColour: \#2626ff
  outlineColour: \#9999ff
  textHeight: 25

清除和生成了pulic文件 g 但部署到服务器上却一点效果都没有 无效果 即使用url的方式引入js还是没效果

D0n9X1n commented 6 years ago

2.0.x 版本之后已经不采用 xml 和 swf 的形式了。

看报错信息是没有找到文件。

<script type="text/javascript" charset="utf-8" src="/js/tagcloud.js"></script>
<script type="text/javascript" charset="utf-8" src="/js/tagcanvas.js"></script>

本地测试的时候你试试把 /js/tagcloud.js 修改为 /loremwalker.github.io/js/tagcloud.js (tagcanvas.js 同)。

上服务器的时候,修改为 /js/tagcloud.js (tagcanvas.js 同)

hoochanlon commented 6 years ago

@MikeCoder 感谢回答,并成功解决本地以及远程方面不能显示标签云的问题 :+1: 我明白了,但不知道我说的对不太对,不对的地方还请指正 。

这有点像预热,我猜测应该和hexo d -g以及hexo-tag-cloud处理机制有关,我想这可能就是ps补充的不要hexo g -d 或者hexo d -g 的原因。 最后附图

D0n9X1n commented 6 years ago

组合命令可以看 #12 。但是稳妥起见还是执行 hexo clean && hexo g,毕竟还是人不是最新版本。

主要是之前组合命令,不触发这个写文件操作(copy tag*.js)。所以无法显示。

你的问题主要是本地的链接和服务器不一致。本地 /localhost:4000/,服务器是 xx.github.io/ 所以,会导致文件没有加载上。

hoochanlon commented 6 years ago

hexo g && hexo s之后,修改了下站点配置文件调整了下颜色,好像不能即时生效,如果支持懒加载就更好了

D0n9X1n commented 6 years ago

没办法。。配置文件写在 _config.yml 里面,这个文件修改,不会重新渲染。

只能每次都 hexo clean && hexo g && hexo s。而且这个也是一次调试完成,基本不需要修改的。所以,个人觉得不是特别重要。

懒加载的话,需要针对每个模板做优化处理。因为不清楚是否模板已经支持懒加载,如果没有的话,再去加载一个 jq 的 lazyload.js,这个大小和 tag*.js 这几个文件的大小比,意义不是特别大。如果有的话,那就是需要通过修改模板中的懒加载代码,加入这两个 js 文件。那工作量太大了。只能交给用户自己把握了。。

hoochanlon commented 6 years ago

补充

之前这样如下代码区的引入方式不太对 <javascript src="https://github.com/loremwalker/loremwalker.github.io/blob/master/js/tagcloud.js"></javascript> github部署的正确引入方式: https://stackoverflow.com/questions/17341122/link-and-execute-external-javascript-file-hosted-on-github