441 - 《Mako 开发日志(10) - makojs.dev》

发布于 2024年5月15日

1、手动搭了个 mako 的官网, https://makojs.dev/ ,没有用任何文档站工具,包括 dumi、vitepress、docuraurus 等。原因是,1)看腻了,各官网都千篇一律,想尝试点不一样的,2)官网技术栈应该可以很简单,不需要 tailwind.css,不需要 ssr & ssg,也不需要 react、vue 等框架,简单的 markdown 转 html,然后加点样式和脚本就够了,回归 10 年前的技术栈,3)初始上线时内容较少,类 esbuild 官网的这种结构看起来内容会更丰富一些。

2、部署参考 437 - 《VPS》,部署在搬瓦工的机器上,国内访问还是挺快的,不需要翻墙,用 1Panel 面板,https 啥的读一键搞定,部署目前文档量不多,用的最原始的 scp 文件上传。

3、说下实现。

1)article 部分的样式直接问 chatgpt 要来的,还挺好看。

2)布局是左右结构,左侧 sticky 显式在固定位置,需要注意的是 flex 下不能直接 sticky,需要套一层。

// 这样不行
<display: flex>
  <position: sticky />
</display: flex>

// 这样可以
<display: flex>
  <div><position: sticky /></div>
</display: flex>

3)做了简单的响应式,当 < 800px 时,会切到小屏模式,隐藏左侧菜单,此时通过点击页头图标会给外部元素加 .open 样式,唤出左侧菜单。

/* 左侧菜单 */
aside { display: none }
@media (min-width: 800px) {
  aside { display: block }
}
.open aside { display: block }

/* 顶部菜单 */
.menubar { display: none }
@media (min-width: 800px) {
  .menubar { display: block }
}

4)锚点菜单高亮。找到 viewport 里的第一个锚点,和左侧菜单做 url 比对,一致的加粗显示。

function highlightNav() {
  let headerAnchor = getFirstVisi

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。