这是一篇置顶文章🔝
暂时先用文章置顶做公告吧,置顶样式也没做,新开发的主题,还在完善中,先这样用着吧。 新的博客主题 我在之前的《读“张洪Heo”博客设计有感》一文中也谈过自己的审美偏好,由于我个人不是很喜欢花哨的博客前端页面,更不喜欢“千篇一律”的花哨,更加注重记录本质。所以,即使现在已经有很多优秀开发者分享了他们的
Halo 博客中 Pjax 实践的通用方案
一、问题分析 先分析下,全页面加载(Full Page Load)和 pjax(PushState + Ajax)请求方式中有哪些 js 引入和方法调用的行为,然后针对差异给出解决方案。 1.1 全页面加载下 js 的引入和方法调用 全页面加载情况下,我们通常会有以下的 js 引入行为: 各个页面公
HTML 解析过程中 Script 标签、DomContentLoaded 事件的加载顺序
一、各类型 Script 标签的执行顺序 无属性的 <script> 标签: HTML 解析器遇到无属性的 <script> 标签时,会暂停解析 HTML,立即下载并执行该脚本,然后继续解析后续的 HTML 内容。 这种类型的脚本是同步执行的,会阻塞 HTML 的解析。 带有 defer 属性的 <
记录一个新的博客想法
博客只作为内容管理的容器,例如存储、查找等,编辑器只作为输入内容的入口,将编辑器模板渲染和最终网页渲染交给主题开发者。由于自定义程度较高,最好是基于富文本编辑器做。 以瞬间为例,当我们在编辑器切换分类模板后,编辑器就会由一个主题开发者自己规定的模板,例如有内容块、图片块、位置信息块,由自己提供 cs
博客文章目录树的设计思路
简单记录和理顺一下想到的思路, 设计思路 核心是文章分类目录树,但也可能会有其他项目,例如首页、友链等。 核心问题是,项目选中状态问题和目录树展开状态问题。 项目选中状态:每个项目有一个独特的 id,统一用这个标识做标记样式类,方便 thymeleaf 初始化,也方便 Alpine 响应式切换。 目
如何在外部调用 Alpine Js 声明的变量与函数?
最近开发博客前端的时候,使用的 AlpineJs 来做一些元素事件、状态的管理,由于我之前只有 vue 的相关使用经验,并没有 Alpine 的开发经验,所以时常会陷入一个困惑中——如何在外部的普通 js 环境来调用元素的 Alpine 函数和变量。 需求场景 例如,我在博客左侧的文章目录树中,为了
实现微信朋友圈图片九宫格布局
核心点就两个:第一,实现行列间都等间距,使用 grid 布局。第二,图片不拉伸覆盖容器 object-fit 属性。 <style>
.imageList {
width: 100%;
display: grid;
grid-template-col
tailwindcss 中 ul ol 默认样式为 list-style: none 解决方法
最近在使用的 tailwind 手搓博客前端的时候,遇到的一个不可控的问题,让我产生放弃 tailwind 使用传统 css 样式开发的念头了。本身不是什么大问题,但这种不可控的感觉让人很没有安全感。 一、问题 我的博客文章是 Markdown 格式,所以我使用的 markdown-github-c
flex item 在其内容超出宽度而被撑开时,shrink 不生效问题
问题 最近遇到一个奇怪的问题,我有一个父元素和两个子元素,其中: 父元素:定宽、flex; 子元素 a :也设置的定宽,flex-grow 0,flex-shrink 0,flex-basis 300px 子元素 b :flex-grow 1, flex-shrink 1; 原本的需求就是,元素 a
瞬间的最终形态
算是找到瞬间的最终形态了,那就是文章和文章分类,只是大家太把文章看的过于正式,包袱太重。实际上,做一个简单的分类和相应的模板即可,权限控制、编辑器、标签、基于时间的 finderAPI 查询、SEO 优化等文章所具备的所有特性全都能直接享用!之后把瞬间全部迁移到文章后,将彻底抛弃瞬间插件。 只不过目