嗨,HN!<p>我开发了 lobster.js,这是一个扩展的 Markdown 解析器,可以直接在浏览器中渲染——无需构建工具、框架或配置。<p>整个设置只需一个脚本标签:<p><pre><code> <script type="module">
import { loadMarkdown } from "https://hacknock.github.io/lobsterjs/lobster.js";
loadMarkdown("./content.md", document.getElementById("content"));
</script>
</code></pre>
这对于希望在 GitHub Pages 网站上使用 Markdown 驱动内容而不引入 Jekyll 或 Hugo 的用户特别有用。<p>---<p>与 marked.js 或 markdown-it 的不同之处在于:<p>标准解析器将 Markdown 转换为 HTML——仅此而已。lobster.js 在 Markdown 语法中添加了布局原语:<p>- :::warp id 定义一个命名的内容块;[~id] 将其放置在一个静默的表格单元格内。这就是如何完全在 Markdown 中构建多列布局,而无需接触 HTML。
- :::details Title 渲染一个原生的 <details>/<summary> 可折叠块。
- :::header / :::footer 定义语义页面区域。
- 静默表格 (~ | ... |) 创建无边框的布局网格。
- 单元格合并:水平(\|)和垂直(\---)跨度。
- 图像大小调整:。<p>---<p>以 CSS 为先的设计:<p>每个渲染的元素都有一个可预测的 lbs-* 类名(例如 lbs-heading-1,lbs-table-silent)。没有默认的样式表捆绑——你可以使用自己的 CSS,完全控制外观。<p>---<p>展示网站本身就是用 lobster.js 构建的。侧边栏是 nav.md,每个页面都是通过 ?page= 查询参数动态加载的独立 Markdown 文件——没有 JS 路由器,没有框架。<p>Markdown 是人类和大型语言模型(LLM)都能流利书写的唯一格式。如果你想要一个没有构建管道的结构化静态网站,lobster.js 让 Markdown 成为一个完整的网页——包括布局。<p>GitHub: <a href="https://github.com/Hacknock/lobsterjs" rel="nofollow">https://github.com/Hacknock/lobsterjs</a>
展示网站: <a href="https://hacknock.github.io/lobsterjs-showcase/" rel="nofollow">https://hacknock.github.io/lobsterjs-showcase/</a>
返回首页
最新
为Claude Code发布页面技能——用一句话描述您的产品,获取完整的着陆页。
这是一个Claude技能,可以让我为特定的工作单元开启或关闭成本追踪。
我在互动的Claude代码会话中使用它。例如,如果我想在一个应用程序中添加一个Claude API功能,我通常会先在CC中进行快速开发。这个技能让我可以开始和停止追踪,从而了解API的成本。
例如:
```
/cost-tracking
[执行操作]
停止追踪
```
然后我会得到一个漂亮的小表格,显示所使用模型的令牌和成本:
Haiku成本报告(本次会话的工作):
```
┌───────────────────┬───────────┬─────────┐
│ 类别 │ 令牌数 │ 成本 │
├───────────────────┼───────────┼─────────┤
│ 基础输入 │ 182 │ $0.0002 │
├───────────────────┼───────────┼─────────┤
│ 输出 │ 3,276 │ $0.0164 │
├───────────────────┼───────────┼─────────┤
│ 缓存写入 (1小时) │ 25,619 │ $0.0512 │
├───────────────────┼───────────┼─────────┤
│ 缓存读取 │ 1,585,531 │ $0.1586 │
├───────────────────┼───────────┼─────────┤
│ 总计 │ │ $0.2264 │
└───────────────────┴───────────┴─────────┘
```
我一直是 fly.io 的忠实粉丝,因为它的开发体验非常好,但冷启动和定价一直是个持续的问题。即使是侧项目,如果加载时间达到 30 秒,那也是相当痛苦的,这会彻底破坏整个体验。
随着编码代理的不断进步,我开始构建更多的项目,我只想运行这些项目!GCI 就是为了解决这个问题而创建的。它只是一个命令行工具,通过 SSH 与目标机器进行交互,并依赖 Docker Swarm 来运行你的服务(在我看来,Docker Swarm 被低估了,即使在单节点情况下也能提供好处)。
它可以部署在任何可以通过 SSH 访问并运行 Docker 的机器上。GCI 填补了 Docker Swarm 和 fly.io 之间缺失的开发体验差距。它可以在本地构建镜像,将其传送到目标机器,获取日志,管理不同的服务器,等等。
可以在 GitHub 上查看,或者访问 <a href="https://gci.jonas.foo/" rel="nofollow">https://gci.jonas.foo/</a> 获取更详细的文档。
我购买了Ulanzi TC001像素时钟,并使用AWTRIX——一个开源的ESP32固件对其进行了刷写。它不断崩溃和重启。我深入研究了代码,发现了内存泄漏、缺乏测试以及混乱的架构。于是我进行了分支,修复了数十个bug,添加了测试,并将其重构为模块。现在可以通过MQTT与Home Assistant进行自动发现和连接。我还构建了一个在线刷写工具,可以直接通过浏览器进行刷写。
大家好,我在营销领域已经工作了9年,建立了一个涵盖所有内容的开源库。只需简单的Claude代码订阅,您就可以连接到我为超过35位个人客户所使用的工具,包括广告账户管理、网站建设和高级SEO。<p>快来看看吧!
加利福尼亚州的AB 1043法案将于2027年1月生效。如果您的应用程序服务于加利福尼亚州用户,您需要向苹果/谷歌请求操作系统级别的年龄信号,并将其视为用户年龄的“实际知识”。对于故意违反规定的行为,每个受影响的儿童将面临7500美元的罚款。
我们在意识到法律存在一个无人讨论的空白后开始构建A3([https://www.a3api.io](https://www.a3api.io)):浏览器没有操作系统的年龄信号。如果您有一个网页应用程序,法律会产生合规义务,但平台并未提供任何机制。而在原生应用中,您需要自己将苹果的声明年龄范围API和谷歌的Play年龄信号拼接在一起——这两者是不同的API,响应格式也不同,集成路径也各异。
行业的标准解决方案是身份识别上传和自拍扫描。但我们不想这样做。这些方法会降低转化率,增加个人身份信息的责任,并且与问题的严重性不成比例。因此,我们选择了不同的方向:被动行为信号融合。
这个想法是,儿童和成人与设备的互动方式在可测量的方面是不同的——运动控制、滚动模式、打字节奏、表单完成速度。我们的浏览器SDK(<5 KB)从标准DOM事件中收集这些信号,在设备上计算聚合分数,并仅发送匿名的比例和平均值。没有原始坐标,没有击键日志,文本内容永远不会离开浏览器。API在内存中处理所有内容并立即丢弃。
在原生应用中,我们将苹果/谷歌的操作系统信号规范化为单一响应。在网页上,行为信号成为主要评估依据。无论哪种方式,您都会获得相同的响应格式:一个判决、年龄区间、置信分数、证据标签,以及一个用于审计跟踪的HMAC-SHA256签名收据。
坦率地说,行为信号是概率性的,而非确定性的。一个自信的12岁儿童和一个匆忙的成人在短时间内可能看起来相似。我们通过五个信号类别(行为指标、输入复杂性、设备上下文、上下文信号、账户时长)来缓解这一问题,这些类别经过加权和交叉验证,当类别数量较少时,我们会施加覆盖惩罚。但这只是年龄估算,而非身份验证——它是为法律实际要求的“商业合理”标准设计的,而不是身份证检查所暗示的虚假确定性。
我们的技术栈是基于AWS Lambda的NestJS,客户端SDK支持React/Vue/原生JS、SwiftUI和Jetpack Compose。如果您想试用,有一个免费套餐(每月100次检查),以及一个游乐场,地址是[https://www.a3api.io/playground](https://www.a3api.io/playground)。
如果您维护一个开源项目,我们有一个程序可以为您提供专业级别的访问权限(每月5万次检查),唯一的要求是在您的年龄验证用户界面或自述文件中标注“由A3提供支持”。详细信息请见[https://www.a3api.io/open-source](https://www.a3api.io/open-source)。
文档:[https://www.a3api.io/docs](https://www.a3api.io/docs)
欢迎就信号融合方法、法律细节或我们认为的不足之处提出问题。
PS4的用户界面一直是我最喜欢的游戏机界面之一,因此我想看看能否在浏览器中重现这种感觉。<p>请告诉我你们的看法,关于导航是否直观、在不同设备/浏览器上的性能,以及这种用户界面是否适合用作作品集,或者会不会造成干扰。<p>谢谢!
我为什么要构建 Skir: <a href="https://medium.com/@gepheum/i-spent-15-years-with-protobuf-then-i-built-skir-9cf61cc65631" rel="nofollow">https://medium.com/@gepheum/i-spent-15-years-with-protobuf-then-i-built-skir-9cf61cc65631</a><p>快速开始: npx skir init<p>所有配置都在一个 YML 文件中。<p>网站: <a href="https://skir.build" rel="nofollow">https://skir.build</a><p>GitHub: <a href="https://github.com/gepheum/skir" rel="nofollow">https://github.com/gepheum/skir</a><p>非常希望能收到反馈,特别是来自使用混合语言栈的团队。