原来湘云视角是这样的啊,哈哈,容我偷着乐一会先。你老早提过的那些,包括 Alison Presmanes Hill 的博客我也去翻过了,但是总觉得有些让我搞不懂的、很关键的地方被当做默认已知的常识一笔带过了,我也确实没看懂。
Frank Harrell 用 quarto 写博客
Hugo 主题其实不需要太多,感兴趣有能力的人自个定制去,咱们是否可以提供一款主题,这款主题能覆盖 99% 常用功能,并且持续打磨以提高用户体验。
至于怎么做的可以在高级定制篇里介绍,属于可选项。
为什么连博客主题也要求全啊,那么多博客主题被鼓捣出来,本来就是那些作者取舍之后做出来的啊。主题的高级定制篇……我觉得 hugo 工具和 hugo 主题不应混为一谈。
说句题外话,上次被怼了以后,我曾考虑过以后在论坛里发言要么虚伪一点、把文字弄得冠冕堂皇一点,要么用很多很多文字把自己的意说尽、免得被误会,要么加上一些语气助词、恶意卖萌防止被误解,要么要么……哈哈,后来觉得还是真诚沟通最重要,还是继续愤怒怼怼、感性喷喷好了。
yihui 因为我感觉我很少看到能忍住不换皮肤的人,我自己都觉得难忍,我想看看这次是不是遇到了一位神仙(五年内不换即可封神),毕竟人类的新鲜感都是难以持续的,惊鸿一般只能存在于一瞥中,瞥完还是一只肥大雁。
我就从没动过换博客主题的念头,最初建站的时候只是记录了一些想改动的地方,后来改得差不多了就更没想过了。我最初挑选博客主题的时候,把 hugo 网站上的主题都翻了个遍,然后捋了捋自己最想要的功能,本来我最中意的是lilith那个主题,可是列弛和三水大人都用那个主题,那时候还有奇怪的疑心病,觉得用跟喜欢的博主们一样的主题会被怀疑是别有用心,最后就选了我现在这个主题。
当然也有觉得别人的博客主题好看过,但竟然从没有见到过令我感到惊鸿一瞥的主题。也没有想要把别的功能移植到现在的主题上的想法,因为我原来想要实现的已经实现了。
湘云说希望存在一个包含了99%功能的主题,恰好那样的主题对我来说毫无吸引力,对我来说给的太多就不是我想要的了。话说回来列弛的博客主题不就没换过么,园主的本来也是没怎么换过的。
- 已编辑
我喜欢比较简洁风格的博客风格,在xmin基础上改了下,字体字号排版基本格式顺眼了,就不再想过多折腾(最近唯一想改变的,是把评论换成Github issue留言那种)。
看到大家这么兴趣盎然,觉得自己老了。
应该就 blogdown 那本书的一两个章节而已,不需要把其它书都给看了。
回到本楼核心问题, Quarto 是主打技术写作,它把技术写作需要的常用功能,我觉得是 99% 的功能都覆盖了,具体例子就是 R Workflow,你可能没有注意这个技术写作的讨论前提。
大家的需求不一样,你的技术性博客,比如关于 echarts4r 都自己截图贴图了,篇幅也不长,一波操作下来,markdown 足以容纳,不需要 R Markdown 编译,只要自己看着喜欢,用啥 hugo 主题都行。
最后,请求不要回帖的时候带我真名,有种被押赴刑场的感觉,使用我的论坛 ID @Cloud2016 吧,我不出名,也不想出名,谢谢!
yihui 对你的博客来说,内容相当棒,我个人觉得其实只缺一样功能,就是目录,因为你有一种把天地掏空的写作风格,写得相当全面,就不可避免会写得超级长,读者容易在里面迷失方向,不知道读到哪里了。要是能加个目录,我觉得会减轻不少读者的压力。
我把目录给加上了,还调整了正文占用的宽度和代码字体大小。但是目录在开头,侧边没有,暂时不想去弄了,等明年 可能会迁移到 Quarto 上。
有位博主 Andrew Heiss 也是要把天地都掏空的写作风格,你看这篇文章 Marginalia: A guide to figuring out what the heck marginal effects, marginal slopes, average marginal effects, marginal effects at the mean, and all these other marginal things are
Cloud2016 6. Python 版 plotly 用起来,没有生成很多的本地 JS 文件(副产品),通过看渲染出来的 HTML 发现,里面是直接引用 CDN 上的 JS 库。一篇介绍 Python 版 plotly 的文章动画制作与 Plotly Python,还有其它方面,整体感觉 Python 版要比 R 版好太多了。
Cloud2016 这是我好几年前就跟厂里的人建议过的,但他们没有采纳。把所有 JS/CSS 文件本地化的好处显而易见,可以让用户在没有网络连接的情况下继续用这些包;坏处就是如果经常用 HTML Widgets 的话,就会生成大量冗余文件,浪费空间。其实 HTML Widgets 也不是不能用 CDN 资源,只是厂里带头选择了本地化,后来的作者们就都选择了这样做。
用 CDN 资源还有个问题,就是文档用自包含模式(self_contained = TRUE)时,Pandoc 得从 CDN 上下载一坨文件,这可能有点浪费时间和带宽。好几年前我同样跟 Pandoc 作者建议过增加一个选项,自包含模式时不下载 CDN 资源,但他也没有听。不过很多个版本后,他提供了一种曲折的方式支持这个功能,就是如果使用外部 CDN 资源,在 HTML 标签上加 external=1
属性即可让 Pandoc 跳过下载,如 <script src="https://example.org/foo.js" external=1></script>
。但这个办法对用户没什么用,因为用户通常无法控制如何生成这些 HTML 代码,也就无法加个 external=1
的属性。
Cloud2016 再加一条,博客里,是否可以支持代码显示/隐藏。有全局或局部按钮控制。
我已找到相关材料 <details>,但能力有限,无法简化下来。下面是一个 demo,插入 Rmd 文稿里可用。
这个代码块干具体事情
```{r}
#| label: code
#| echo: false
head(iris)
```
这个代码块实现显示或隐藏代码效果
<details>
<summary> 点击显示或隐藏代码 </summary>
```{r}
#| ref.label: code
#| eval: false
#| echo: true
```
</details>
最初是逛人家博客coolbutuseless,然后查看其网页源码,最后,定位到有这么一个 HTML 元素
Cloud2016 实现方式上有大大简化的可能。这种重复劳动可以用 JS 一口气实现。大概实现方式就是找到所有的 <pre>
,然后创造 <details>
元素把它们装进去,类似这样:https://github.com/yihui/xaringan/issues/219