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

Chinese (maybe CJK) search broken #4

Closed
clsty opened this issue Feb 13, 2024 · 10 comments
Closed

Chinese (maybe CJK) search broken #4

clsty opened this issue Feb 13, 2024 · 10 comments

Comments

@clsty
Copy link

clsty commented Feb 13, 2024

As for my test, search in Chinese does not work.

It's kinda weird though, since the upstream seems to have this issue solved long ago.

P.S. I love the KaTeX fix enabled in this fork, but I need full text search in Chinese, thus I have to find another hugo theme. sad.

@loikein
Copy link
Owner

loikein commented Apr 29, 2024

对不住,我最近太忙了,有一阵子没看过上游的情况了,目前暂时不知道什么时候能有空,最迟可能得等到八月。如果您有能力,可以麻烦写一个 PR 吗?

另外一个方向是,我在考虑要不要直接一步到位改成 pagefind。之前在上游提到过,但是作者似乎不感兴趣: alex-shpak#549

谢谢您对我的 KaTeX 实现的认可。我在博客写过一篇详细介绍,底下还有原作者的评论,和网友提了别的思路,有兴趣的话可以看看: 在 Hugo 中显示 LaTeX 的问题及其解决方案

Edit: 刚发现 Hugo v0.122 似乎已经解决了 LaTeX 的问题,适配 MathJax 和 KaTeX,不过我暂时懒得升级,先观望一阵子:Mathematics in Markdown | Hugo

@clsty
Copy link
Author

clsty commented Apr 29, 2024

谢谢您对我的 KaTeX 实现的认可。我在博客写过一篇详细介绍,底下还有原作者的评论,和网友提了别的思路,有兴趣的话可以看看: 在 Hugo 中显示 LaTeX 的问题及其解决方案

实际上我正是在寻找博客主题的时候,考量着 LaTeX 的实现方案而找到你的那篇文章的,继而才找到了这个仓库。

目前我使用的方案是,选择一个在 LaTeX 的处理上很普通的 Hugo 主题,但是由 Emacs 的插件 ox-hugo 导出 content 目录。
这个插件允许用户选择保留 LaTeX 的部分以交给 Hugo 主题处理,或将 LaTeX 作为 svg 或 png 嵌入 markdown 中。
虽然这一定程度上会增加加载所需的流量,但能使用真正的 LaTeX 引擎,这对于我来说还是很重要的。

在这之前我也尝试过其他很多方案,具体过程见 网页(博客/笔记)的 LaTeX 支持现状 | clsty 的网络空间站


对不住,我最近太忙了,有一阵子没看过上游的情况了,目前暂时不知道什么时候能有空,最迟可能得等到八月。如果您有能力,可以麻烦写一个 PR 吗?

谢谢你的邀请。不过,实际上我也一样是在用空余时间做这些事情,并且长期处于忙碌状态。
如果有时间的话,我会试试提交一个改用 pagefind 的 PR,这也是我所使用的 Hugo 主题所采用的;但我需要说明的是,关于 Hugo 的水平我是远不及你的,这种尝试未必会成功。

@loikein
Copy link
Owner

loikein commented May 1, 2024

在寻找博客主题的时候,考量着 LaTeX 的实现方案而找到你的那篇文章的

感谢阅读 😆 如果有任何评论都可以随便发。

我也看了一下您的博客,很喜欢它有边注。这个主题我之前没见过,居然直接包含了 pagefind,很高兴看到有更多人开始使用这个神器。

ox-hugo 之前也有朋友介绍过,不过我不会用 Emacs,所以暂时不考虑了……

实际上我也一样是在用空余时间做这些事情,并且长期处于忙碌状态

理解,感谢。如果我有空了也会自己开一个 PR 的,这么大改动不太方便直接在 main 上写。

至于 Hugo 水平,哈哈,您看过我的博客应该也知道,都是这几年来一点点试错试出来的。能跑就行!

@clsty
Copy link
Author

clsty commented May 1, 2024

我也看了一下您的博客,很喜欢它有边注。这个主题我之前没见过,居然直接包含了 pagefind,很高兴看到有更多人开始使用这个神器。

这么巧,我也喜欢边注。不过目前这个主题对边注的实现,还是有点小问题的。
主要是在 RSS 中,边注会变成格式毫无区别的正文,但很奇怪地会在上面加一个复选框,让人莫名其妙。

我认为更理想的做法是像这篇文章一样,让边注而作为脚注的替代。
这样的优点是,

  • 首先,它具有编号,与正文特定位置的关系明确。
  • 其次,能防止来回翻看脚注打断读者的心流。
  • 最后,如果能做到让脚注在网页中放在旁边成为边注,而 RSS 导出时放在底端,就能使得两边都不出问题。

未来我会试着改进这一点。

@loikein
Copy link
Owner

loikein commented May 2, 2024

您链接的 Elilif 的网站实在是太优雅了,好喜欢……


边注是我关注了很久的一个网页设计头痛问题。如果您还没读过以下两篇文章的话,不妨有空的时候看一眼:

至于复选框的问题,别的网站的话可能是那个 label 给显示出来了,但是我看您的博客似乎代码不是这样的,所以我也说不出个所以然来。

另外一个我印象深刻的,彻底让边注替代脚注的方式,是益辉的 Hugo Prose 主题,我之前试用了以下,没记错的话 Markdown 里写普通脚注就可以了,也许能达到 RSS 全文导出时在底下的效果。
用到的 JS 和 CSS 在 yihui/misc.js(虽然但是,我 JS 还没入门,一个字都看不懂……

@clsty
Copy link
Author

clsty commented May 4, 2024

在你提供的资料的帮助下,我最终实现了边注式的脚注。谢谢你。
(其中 gwern 的博客带给我的视觉冲击完全不亚于 Elilif 的,真心佩服其设计功底)


虽然并没有按照这两篇文章的实现方法,但 gwern 的博客给了我启发:
其实我并不需要像 Elilif 的博客和 Hugo Prose 主题那样,彻底让脚注变成侧边注;
而是像 gwern 的博客那样,两种方案可以同时使用。

在这个前提下,我就不再需要考虑如何将底部的 footnote 区域搬走的问题了。

这大大降低了难度,因为 footnote 区域其实是由 Markdown 引擎(比如 goldmark)而不是 Hugo 本身生成的
(见 https://discourse.gohugo.io/t/footnote-html-customization/40026 ),很难对其进行修改。
除非自己实现脚注,但这又会带来更多工作量。


我所做的就是利用 JS,遍历正文中所有的脚注标记,在这些标记附近生成与对应的脚注内容相同的边注,再插入到 HTML 页面中。
这样做的另一个好处是,在 RSS 导出时,由于不加载 JS 而使边注被自动排除了。

当然,说起来简单,实际上费了我相当长的时间来解决一些细节问题,主要是与页面上其他元素的冲突。
连带我对目录导航(TOC)的右侧边栏的改进,五一假期的主要时间都耗费在折腾博客上了。

关于最后的结果,我自己还是比较满意的。
我的博客站点分为 blog.celestialy.topcss.celestialy.top 两个分站,平时内容完全一致,不过这次我仅把更新的部分部署到了 css.celestialy.top,而 blog.celestialy.top 暂时维持原样。

如果你感兴趣的话,可以方便地观察到它们的不同之处,包括边注和 TOC。

除了这些,我在 Perplex 上还做了一些其他改进,比如标题自动编号、防 404 设计(就是文章开头的那个 portal)、集成评论区等,有空我会把这些整理成文章分享出来。


我也尝试了从 Perplex 主题找出集成 Pagefind 的方法,不过相关代码分散杂乱,一时找不到头绪。

水平与时间所限,没能优先完成你的请求,请容我说声抱歉。

不过,就我在集成 Artalk 的经验上看,或许可以从某个实现更优美的 Hugo 主题着手,而不必非要参考那些实现逻辑高耦合、低内聚的 Hugo 主题。

@clsty
Copy link
Author

clsty commented May 5, 2024

最近在我的博客里又实现了一些新的效果:

  • TOC 栏随高亮条目实时平滑滚动。
  • 在空间允许时,自动将边注放到左边。
  • 除非屏幕较窄(只有单栏),否则在网页加载时自动打开 TOC 栏。
  • 在不同的屏幕宽度下,TOC 栏的位置与尺寸也略有不同,在与其他元素(比如边注、头图)和谐相处的前提下,尽可能舒展。

其中前两点的效果刚完成时甚至震撼到了我自己,即使是我亲手做的。很期待听到你的看法。


题外话,有关人称“您”,我不知道是你的习惯/环境还是怎样,如果只是出于对我的尊重的话,我很感谢这一点,不过这有点让我无所适从。
如果能由我来决定的话,我希望对我不需要称呼敬语“您”,“你”就刚刚好,它对我来说是一种普通的平等关系,而“您”在我的环境中一般仅用于上下级。
当然,若这确实是你的习惯/环境等,那我也尊重这个做法。

@loikein
Copy link
Owner

loikein commented May 6, 2024

对别人称呼「您」确实是我的习惯,我平时对好友也是你您混用的。原因……有点复杂,但是如果你不喜欢的话我当然也可以换一下。谢谢你告诉我。

这个新做的边注真是好啊!哎呀,我也应该(早就应该)认真学一学 JS 了……

实现逻辑高耦合、低内聚的 Hugo 主题

实在抱歉,我没看懂这句话。查了一下,意思是各模块间分得不够清晰吗?这确实是很多主题共通的毛病,包括 layout 和 CSS,我 fork 主题的时候也经常想要改一下,但是这是个大工程。自己从头开始写主题又太麻烦了……

没能优先完成你的请求

这是什么话,优先完成自己的需求才正常吧 😂

最近在我的博客里又实现了一些新的效果

哇,我也只是业余写点 Hugo 玩的,不需要这么郑重地请求我的意见啦。更新之后是删掉了亮色模式吗?以前那个淡淡的粉色底我其实还挺喜欢的。

TOC 高亮动画确实很流畅,有点像我经常用的一个插件 Smart TOC。别的变化我都觉得很合适,不过,为什么在桌面打开的时候整个 TOC 的框也是向屏幕下方而不是上方对齐呢?似乎有点不符合阅读直觉。

你博客里每篇文章开头都有的那个防 404 设计我确实非常好奇。有空的话请一定要写一篇(最好多几篇)文章讲讲。

@clsty
Copy link
Author

clsty commented May 7, 2024

不过,为什么在桌面打开的时候整个 TOC 的框也是向屏幕下方而不是上方对齐呢?似乎有点不符合阅读直觉。

你说得对,单独看这个 TOC 确实有点不符合直觉,用于切换它的按钮甚至还远在右上角;
不过,这是权衡之后的结果。

我考虑的是,将“一直保持显示”作为 TOC 的常态。
(原因之一是,TOC 会在网页加载时弹出,而读者未必知道怎样将它关掉;当然,主要是我自己希望它能一直显示)
也就是说,即使读者没有把 TOC 关掉(按钮在右上角),也应当能够较为舒适地同时浏览其他元素

这里的“其他元素”主要包括:

  • 头图。
    • 当滚动条在顶端时,它在右边栏的上方。
    • 如果 TOC 也在上方,就会近乎完美地遮住它。
  • 边注。
    • 只有两栏时,边注出现在右边栏,高度与读者正在阅读的内容(也就是脚注编号的那一行)相近。
    • 如果 TOC 栏在上方,读者就只能将脚注编号的这一行滚动到屏幕下方才能看到之前被 TOC 挡住的边注,我自己尝试之后觉得非常别扭。

实在抱歉,我没看懂这句话。查了一下,意思是各模块间分得不够清晰吗?这确实是很多主题共通的毛病,包括 layout 和 CSS,我 fork 主题的时候也经常想要改一下,但是这是个大工程。自己从头开始写主题又太麻烦了……

没错,正是如此。比如我之前想要集成评论时,为了尝试 Waline(后来改用 Artalk 了),参考了好几个主题。比如 DoIt 主题,在其中搜索 waline 你能看到 9 个结果(排除 exampleSite/*.md)。
(对于每个结果我都需要分析整个文件,并一级级向上找到调用这些代码的文件,来理解它最终是如何被插入到 HTML 中的,工作量是相当大的。)
与之形成鲜明对比的则是 hugo-theme-stack,在其中搜索 waline 看到的只有 2 个结果(排除 exampleSite),并且调用 waline 的那个 HTML 模板甚至不含 waline 这个字符串,非常优雅。

更新之后是删掉了亮色模式吗?以前那个淡淡的粉色底我其实还挺喜欢的。

从效果上来看,确实是删掉了;但这是个幽默的意外。
我原来甚至不知道 Perplex 支持亮色模式(毕竟它不含亮/暗切换按钮),
在这种前提下偶然地硬编码了 --c-page 的值,导致亮色模式在我不知情的情况下自动消失了。

昨天有读者告诉我,blog.celestialy.top 的首页标题(这个颜色我也同样硬编码了)与背景色同为白色混为一体,我才发现是怎么回事。

目前简单修复了一下 CSS,之后我会尝试给它加上切换按钮,并且把我为深色模式硬编码的颜色再做一套适用于 light colorscheme 的,这样就能真正带回亮色模式了。对我来说是“新增亮色模式”(笑)。

你博客里每篇文章开头都有的那个防 404 设计我确实非常好奇。有空的话请一定要写一篇(最好多几篇)文章讲讲。

谢谢你的期待,不过,真的是,你这样说会让我很有动力写文章的,怎么办才好呢……
虽然这个设计在实现上本身没有什么难度,我会考虑如何写好背后的理念,使其言之有物的。


最后是一些题外话。

  • 如果你觉得在 issue 里交流有些奇怪(我也是这么想的),这是我的邮箱: clsty@celestialy.top
  • 你博客的 RSS 我已经订阅了,我也邀请你订阅我博客的 RSS,预计会月更,并且汇总上个月的最新内容。
  • 我刚建立这个博客没几个月,目前还没有交换过友链,如果可以的话——我想让你成为第一个。

@loikein
Copy link
Owner

loikein commented May 7, 2024

谢谢!我用邮箱回复了,是 outlook.com 结尾的,请查收。

@loikein loikein closed this as not planned Won't fix, can't repro, duplicate, stale May 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants