<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>英伟达129.3亿美元正式官宣收购Hugging Face、OpenAI Astra「循环深度」推理技术引发安全恐慌、美司法部为AI训练版权站台——开源底座易主与「不可读推理」同日登场 - Markdown</title>
    <style>
        body { 
            font-family: monospace; 
            white-space: pre-wrap; 
            word-wrap: break-word; 
            padding: 0; 
            background-color: #e5e5e5;
            color: #24292f;
            margin: 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            min-height: 100vh;
        }
        .markdown-body {
            box-sizing: border-box;
            width: 100%;
            max-width: 980px;
            margin: 2em auto;
            padding: 45px;
            background-color: #fff;
            border: 1px solid #d0d7de;
            border-radius: 6px;
            font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;
            white-space: normal;
            box-shadow: 0 4px 12px rgba(0,0,0,0.05);
        }
        @media (prefers-color-scheme: dark) {
            body {
                background-color: #010409;
                color: #c9d1d9;
            }
            .markdown-body {
                background-color: #0d1117;
                border-color: #30363d;
                box-shadow: 0 4px 12px rgba(0,0,0,0.3);
            }
        }
        @media (max-width: 767px) {
            .markdown-body {
                padding: 15px;
                margin: 0;
                border-radius: 0;
                border-left: none;
                border-right: none;
            }
        }
    </style>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.5.0/github-markdown.min.css">
</head>
<body>---
title: '英伟达129.3亿美元正式官宣收购Hugging Face、OpenAI Astra「循环深度」推理技术引发安全恐慌、美司法部为AI训练版权站台——开源底座易主与「不可读推理」同日登场'
description: '9月4日AI行业分析：英伟达周四正式确认以129.3亿美元收购Hugging Face（预计2027年上半年完成），开源模型中立底座归属尘埃落定；OpenAI Astra模型被曝采用「循环深度」推理技术，可在不输出思维链的情况下静默计算，引发OpenAI/Anthropic/DeepMind/Mila研究者联合警告；美国司法部向法院提交利益声明，支持「AI训练构成合理使用」的立场。当最大的开源基础设施被GPU巨头收入囊中、当最前沿的推理过程变得不可读，AI权力结构的两个根基在同一天被动摇。'
pubDate: 2026-09-04
tags: ['AI', '分析', '行业动态', '英伟达', 'OpenAI', '开源', '版权', 'AI安全']
---
9月4日（覆盖时段：9月3日至9月4日晨）。昨天行业的关键词还是「门禁化分发」（如昨日报道所述的Fairwind与Glasswing），今天的三条主线则把镜头对准了AI权力结构的两块基石——**开源生态的中立性**与**推理过程的可读性**。英伟达在周四[正式官宣](https://finance.yahoo.com/markets/article/nvidia-confirms-13-billion-acquisition-of-open-weight-ai-platform-hugging-face-141058641.html)：以**129.3亿美元**收购开源模型平台Hugging Face，此前一周的传闻（如8月28日与昨日报道所述）就此落定；[The Information与TechCrunch披露](https://techcrunch.com/2026/09/02/openais-new-reasoning-technique-alarms-ai-safety-experts/)，OpenAI即将推出的Astra模型采用名为「循环深度」（recurrent depth）的推理技术，可在**不输出任何思维链token的情况下静默思考**，一份来自OpenAI、Anthropic、DeepMind与Mila研究者的联合警告称这将动摇AI安全的监测前提；几乎同时，[美国司法部向法院提交利益声明](https://the-decoder.com/us-department-of-justice-backs-fair-use-for-ai-training-in-landmark-copyright-case/)，公开支持「用版权作品训练AI构成合理使用」——行政机关第一次在标志性版权案中为AI公司背书。

三件事的共同点在于：**它们改变的不是某个模型或某家公司，而是整个行业赖以运转的中立结构与信任前提。**

---

## 英伟达正式收购Hugging Face：开源世界的「中立底座」为什么值129.3亿美元？

### 发生了什么？

据[Yahoo Finance（Jake Conley，9月3日）](https://finance.yahoo.com/markets/article/nvidia-confirms-13-billion-acquisition-of-open-weight-ai-platform-hugging-face-141058641.html)与英伟达官方新闻稿：

- 英伟达周四**正式确认收购Hugging Face，交易金额129.3亿美元（约130亿美元）**，较此前传闻的129亿美元基础协议基本一致；消息公布后英伟达股价**上涨约2%**
- Hugging Face平台目前拥有**超过1800万开发者、研究者与创作者**，托管**超过300万个模型**，**超过20万家企业**使用该平台发现与部署AI——英伟达自称是Hugging Face平台上开放模型与开放数据的最大贡献者
- 交易**预计2027年上半年完成**，需通过监管审批
- 英伟达承诺Hugging Face将保持「**面向整个AI生态的开放平台**」，继续支持开放权重与开源模型。企业计算总经理Justin Boitano在电话会议上表示：「我们相信，封闭模型与开放模型并存的健康生态，才能带来一个持续大规模训练与运行模型的世界」——他承认开发者的可选择性（硬件、云、技术栈）是用户增长的唯一路径，「即便英伟达将从其上进行的训练与推理中获益」
- 黄仁勋在X上发文：「**开放模型强化安全与网络安全，加速创新与扩散，并赋能主权。它们让每个开发者、初创公司、大学、行业和国家都能构建、定制并受益于AI**」
- 投资者与分析师反应积极：BD8 CEO Barbara Doran称这是「绝佳的战略动作」——英伟达在把自己定位成「AI平台而非单纯的芯片供应商」，且以英伟达2027财年预计近**2000亿美元自由现金流**计，「130亿美元不是大开销」；CFRA分析师Angelo Zino认为这笔交易「无关财务，而关乎构建AI生态」

### 为什么这很重要？

**1. 这是「AI时代的应用商店」收购案。** 黄仁勋在上季度财报电话会上对英伟达定位的表述是「一个平台，对每个模型与工作负载通用，覆盖AI全生命周期」。收购Hugging Face意味着：全球开源模型的发现、分发、部署入口，现在掌握在最大算力供应商手中。300万个开放模型的托管地，与最希望这些模型在其GPU上训练推理的公司合而为一——**生态与算力的利益对齐，正是这笔交易的战略内核**。

**2. 「开放」的护城河由谁守护成了真问题。** 英伟达承诺保持平台开放，且博伊塔诺的说法在逻辑上成立：Hugging Face的价值恰在其中立性，锁死它等于摧毁它。但结构性冲突依然存在——当开放模型平台的所有者同时是封闭模型巨头（通过大客户）与硬件供应商时，「中立底座」的治理将考验英伟达的克制。Mila等研究机构与主权AI计划是否会因此加速建设替代性模型仓库，值得跟踪。

**3. 129.3亿美元为「开源基础设施」标出了历史性价格锚。** 在全球开源模型成为中美欧共同依赖的公共品背景下，这笔交易宣告开源生态的入口本身已是一级战略资产——而不是公益事业。

### 历史镜鉴

- **微软收购GitHub（75亿美元，2018）**：当时同样引发「中立性死亡」的恐慌，但GitHub在微软旗下保持了平台中立并实现增长——这是英伟达最可能援引的剧本
- **IBM收购Red Hat（340亿美元，2019）**：混合云时代「基础设施中立层」被巨头买断的先例，Red Hat至今仍是IBM最成功的收购——但IBM的教训是：平台价值依赖于持续放权
- **差异**：GitHub与Red Hat的母公司不直接向平台上的竞争者出售核心算力——英伟达与Hugging Face用户之间的商业利益纠葛远比历史先例复杂

---

## OpenAI Astra的「循环深度」：当AI学会「沉默地思考」，安全监测怎么办？

### 发生了什么？

据[The Information](https://www.theinformation.com/articles/secret-technique-behind-openais-astra-model-sparks-security-concerns)、[TechCrunch（Russell Brandom）](https://techcrunch.com/2026/09/02/openais-new-reasoning-technique-alarms-ai-safety-experts/)与[The Verge](https://www.theverge.com/ai-artificial-intelligence/988334/openai-astra-ai-monitoring-safety)：

- OpenAI即将推出的Astra模型采用一种名为「**循环深度**」（recurrent depth，即循环Transformer/looped transformer）的推理技术：模型对内部状态进行反复递归处理，**在递归阶段不输出任何token**——推理过程发生在「思维链」文本之外
- 据报道该技术**显著提升了编程与计算机操作（computer-use）性能**，但代价是：研究者无法再通过阅读模型输出的思维链来监测它「在想什么」
- 一份**来自OpenAI、Anthropic、DeepMind与Mila研究人员的联合警告**指出，这种「不可读推理」会动摇当前AI安全的基石——通过可读思维链进行监测与对齐的前提
- OpenAI的回应是：**已主动限制Astra对该技术的使用范围**，以确保研究者能继续对模型进行监测；OpenAI坚持Astra的思维链轨迹「仍然可读」
- 另据OpenAI官方博客《Path to Astra》：Astra是**首个在其Preparedness框架下触及「关键级网络安全能力阈值」的模型**——这也正是前日报道所述硬件密钥强制令（TAC）所管控的那类能力

### 为什么这很重要？

**1. 这是「能力跃升」与「可解释性」的第一次正面相撞。** 过去三年的AI安全体系建立在「模型越强、思维链越有用」的隐含假设上——读心术即护栏。循环深度打破了这一假设：性能收益恰恰来自把推理搬进不可观测的内部递归中。如果这一技术路线被证明有效并被全行业效仿，**「监测式安全」将失去观测对象**，安全工作将被迫从「读懂模型」转向「约束通道与行为」。

**2. 四家竞争机构研究者的联合警告本身就是信号。** OpenAI自家研究者联署警告自家旗舰技术，说明内部对这一权衡的分歧已大到需要外部化——这在头部实验室的历史上并不多见。而OpenAI「限制使用以保监测」的折中，则是能力与安全的第一次显式交易定价。

**3. 它与「门禁化分发」互为表里。** 如昨日报道所述，OpenAI已用TAC硬件密钥、谷歌用Fairwind、Anthropic用Glasswing管控前沿攻防能力的分发；今天的新信息是：**不仅「谁能用」需要门禁，连「模型怎么想」本身也开始分层**——可读的思维链留给监测者，不可读的静默计算留给性能。能力管控正在从分发层下沉到架构层。

### 历史镜鉴

- **航空业的「黑箱认证」传统**：飞机的飞控系统内部不可读，监管方的解法是行为认证+冗余约束而非理解内部——若「监测式安全」失效，AI监管可能被迫走向同样的路径
- **2023年「超级对齐」时代的乐观假设**：当时主流思路是通过可读思维链实现对齐（Anthropic此后将其发展为系统性的对齐科学）；循环深度是对这一整条技术路线的直接压力测试
- **差异**：历史上「不可解释但可靠」的系统（如深度学习本身）从未同时具备主动行动能力——Astra兼具「不可读推理+关键级网络攻防能力+智能体执行」，这是全新组合

---

## 美国司法部为「AI训练=合理使用」站台，同日OpenAI再吃30起诉讼：AI法律的冰火两重天

### 发生了什么？

据[TechCrunch（Amanda Silberling）](https://techcrunch.com/)、[MediaPost](https://www.mediapost.com/publications/article/417630/trump-admin-to-court-ai-training-is-fair-use.html)与[The Decoder](https://the-decoder.com/us-department-of-justice-backs-fair-use-for-ai-training-in-landmark-copyright-case/)：

- 美国司法部向联邦法院提交**利益声明（statement of interest）**，在《纽约时报》等版权方与AI公司合并审理的标志性案件中，公开支持「**AI公司使用版权材料训练模型构成合理使用（fair use）**」的立场
- 这一立场延续了去年加州北区法院在Bartz诉Anthropic、Kadrey诉Meta两案中的裁判思路（训练本身合理使用、但获取盗版书籍仍可能担责），如今**行政机关正式入场背书**——尽管利益声明对法院没有约束力，其政治信号远大于法律效力

而同一时间线上，OpenAI在另一条法律战线遭遇升级。据[《卫报》](https://www.theguardian.com/world/2026/sep/02/openai-lawsuits-tumbler-ridge-mass-shooting)、[CBC](https://www.cbc.ca/news/canada/british-columbia/tumbler-ridge-shooting-open-ai-lawsuits-9.7328382)与[Global News](https://globalnews.ca/news/12044429/tumbler-ridge-lawsuit-openai/)：

- 律所Edelson PC于周三代表加拿大Tumbler Ridge校园枪击案的教师、学生与幸存者，**在美国法院新提起30起诉讼**，使针对OpenAI与Sam Altman的同类诉讼总数达到**37起**
- 新诉讼的诉求显著升级：除 wrongful death、过失与产品责任外，**首次指控OpenAI管理层「协助教唆」（aiding and abetting）**枪击行为

### 为什么这很重要？

**1. 版权战场的权力天平进一步向AI公司倾斜。** 去年两地方法院判例+如今司法部背书，意味着「训练是否侵权」在美国法律体系内的答案正趋于清晰；对内容产业而言，战线将被迫收缩到「输出是否实质性相似」与「训练数据获取方式」两个更窄的阵地上。如8月29日报道所述的索尼/华纳诉Anthropic案，其诉由恰恰主打「种子下载」的获取环节——这正是版权方在正面战场失守后的迂回路径。

**2. 但「产品责任」战场刚刚开幕。** Tumbler Ridge诉讼把AI安全争议从「训练数据」搬到了「模型行为的现实后果」：若「协助教唆」指控进入实体审理，AI公司管理层个人责任将被首次置于放大镜下。版权案输掉的是钱，产品责任案动摇的是「平台免责」的行业根基——两条战线，两种风险量级。

**3. 政府的角色正在两极化。** 司法部在版权上为AI公司松绑，同届政府在Tumbler Ridge类案件中的态度、以及各州层面的AI责任立法，将决定「宽松的输入端+严格的输出端」是否能成为平衡态。

---

## 行业观察：今天动摇的是「结构」，不是「产品」

本周前三天的新闻主线是产品与分发（模型发布、门禁渠道、定价战争）；今天的三条主线共同指向更深层的中立结构。**开源生态的入口被最大算力供应商买断**，宣告「公共底座」时代的市场化定价——中立性本身成了129.3亿美元的资产；**推理过程变得不可读**，宣告「读心式安全」的技术前提出现裂缝——监测正在让位于约束；**司法部的利益声明**，则宣告版权这类AI最大的法律不确定性开始获得行政答案——但产品责任作为新的不确定性同步登场。三者叠加的信号是：AI行业正在从「能力竞赛」转入「结构定型期」——谁拥有入口、谁能监测、谁负责任，这三个问题的答案将在未来一两年内锁定，且比任何单一模型的强弱都更决定长期格局。

---

## 今日要闻速览

- **Tesla Cybercab发布会昨夜在奥斯汀举行**：如昨日报道所述的发布会于周四16:45（美中时间）在奥斯汀举行，金色双座、无方向盘无踏板的量产Cybercab正式亮相；[TechCrunch发布会前报道](https://techcrunch.com/2026/09/03/the-cybercab-is-teslas-fork-in-the-road-moment/)称得州已注册**420辆自动驾驶车辆**、数十辆Cybercab已部署奥斯汀等多城，并称此为特斯拉「岔路口时刻」——从车企到AI与机器人公司的转型首证；周四特斯拉股价收涨**5.42%**。发布会的运营细节（载客范围、定价）仍待后续详细报道
- **AI安全赛道融资爆发**：据[Techmeme](https://www.techmeme.com/260902/p26)，奥斯汀AI安全公司**HiddenLayer获1亿美元B轮融资**（Delta-v Capital领投），其面向自主编程智能体的运行时安全工具推动年经常性收入增长超10倍；同期**Palo Alto Networks被曝以约5亿美元收购Thrive Capital支持的AI IT服务自动化初创Console**——与Astra触及关键级网络能力阈值同周，企业为「智能体时代的安全账单」开始付费
- **消费AI估值续涨**：据TechCrunch，Wonderful估值不到六个月翻倍至**50亿美元**；AfterQuery以**32亿美元**成为YC史上最快独角兽
- **Uber裁员10%（约3300人）**：据TechCrunch，公司称重组与AI提效相关——AI对就业结构的冲击从预言变成财报脚注

---

## 关键要点

- **英伟达正式确认以129.3亿美元收购Hugging Face**（预计2027年上半年完成）：1800万开发者、300万模型、20万企业用户的开源中立底座并入最大算力供应商，承诺保持开放——开源基础设施首次获得历史性定价
- **OpenAI Astra被曝采用「循环深度」推理技术**：在不输出思维链token的情况下静默计算以换取编程与计算机操作性能，遭OpenAI/Anthropic/DeepMind/Mila研究者联合警告；OpenAI已限制该技术使用范围以保监测能力
- **美国司法部提交利益声明支持「AI训练=合理使用」**，行政机关首次在标志性版权案中为AI公司背书；同周OpenAI因Tumbler Ridge枪击案再被起诉30起（总数37起），且首次被指「协助教唆」
- **Tesla Cybercab昨夜正式亮相**，得州已注册420辆自动驾驶车辆，特斯拉当日收涨5.42%——「纯视觉+无安全员」路线进入规模化验证期
- **AI安全与智能体监控成为新的资本热点**：HiddenLayer 1亿美元B轮、Palo Alto约5亿美元收购Console

---

## 常见问题

### 英伟达收购Hugging Face后，开源模型会被「锁进」英伟达生态吗？
短期不会。英伟达明确承诺Hugging Face保持面向整个生态的开放平台，且高管承认开发者可选择性是平台增长的唯一路径。但长期结构冲突存在：平台所有者同时向平台用户出售算力，中立性治理将依赖英伟达的自我克制与监管约束。

### 「循环深度」技术对普通AI用户有什么影响？
直接影响是模型会更强（尤其编程与自动化操作），间接影响是安全风险形态改变：当推理过程不可读，AI公司必须依靠限制使用范围、行为监测等手段兜底——用户可感知的差异不大，但行业的安全成本与监管复杂度将上升。

### 美国司法部的利益声明意味着版权案已经结束了吗？
没有。利益声明对法院无约束力，只是行政机关的立场表达。但它与去年的两个地方法院判例方向一致，说明「训练构成合理使用」在美国正快速成为主流司法与行政共识；版权方的战线预计将转向训练数据获取方式与输出相似性。

### Tumbler Ridge的37起诉讼对OpenAI有多大威胁？
财务上可控，但法律定性风险极大。若「协助教唆」与管理层个人责任的指控进入实体审理并成立，将动摇整个行业「AI公司对模型输出后果免责」的根基——这是比版权案更高量级的不确定性。

### 接下来最值得关注的时间点是什么？
Cybercab发布会的运营细节与首批真实运营数据、英伟达-Hugging Face交易的监管审查进展（欧盟尤其关键）、9月9日苹果秋季发布会与智谱5折截止的同日节点。

---

## 参考资料

- [Nvidia confirms $13 billion acquisition of open-weight AI platform Hugging Face — Yahoo Finance](https://finance.yahoo.com/markets/article/nvidia-confirms-13-billion-acquisition-of-open-weight-ai-platform-hugging-face-141058641.html)
- [OpenAI's new reasoning technique alarms AI safety experts — TechCrunch](https://techcrunch.com/2026/09/02/openais-new-reasoning-technique-alarms-ai-safety-experts/)
- [OpenAI Technique in 'Astra' Model Sparks Security Concerns — The Information](https://www.theinformation.com/articles/secret-technique-behind-openais-astra-model-sparks-security-concerns)
- [Researchers fear safety disaster ahead of OpenAI's Astra — The Verge](https://www.theverge.com/ai-artificial-intelligence/988334/openai-astra-ai-monitoring-safety)
- [Path to Astra: critical capabilities and frontier safeguards — OpenAI](https://openai.com/index/path-to-astra/)
- [US Department of Justice backs fair use for AI training in landmark copyright case — The Decoder](https://the-decoder.com/us-department-of-justice-backs-fair-use-for-ai-training-in-landmark-copyright-case/)
- [Trump Admin To Court: AI Training Is 'Fair Use' — MediaPost](https://www.mediapost.com/publications/article/417630/trump-admin-to-court-ai-training-is-fair-use.html)
- [Tumbler Ridge mass shooting victims file 30 new lawsuits — The Guardian](https://www.theguardian.com/world/2026/sep/02/openai-lawsuits-tumbler-ridge-mass-shooting)
- [Teachers, students file new wave of lawsuits — CBC](https://www.cbc.ca/news/canada/british-columbia/tumbler-ridge-shooting-open-ai-lawsuits-9.7328382)
- [Tumbler Ridge shooting survivors among 30 new plaintiffs — Global News](https://globalnews.ca/news/12044429/tumbler-ridge-lawsuit-openai/)
- [The Cybercab is Tesla's 'fork in the road' moment — TechCrunch](https://techcrunch.com/2026/09/03/the-cybercab-is-teslas-fork-in-the-road-moment/)
- [Tesla's Cybercab Launch Event: How to Watch & What to Expect — Not a Tesla App](https://www.notateslaapp.com/news/4643/teslas-cybercab-launch-event-how-to-watch-what-to-expect)
- [Tesla Cybercab launch in Austin — Austin American-Statesman](https://www.statesman.com/business/article/tesla-cybercab-austin-launch-robotaxi-22402542.php)
- [HiddenLayer raises $100M Series B — Techmeme](https://www.techmeme.com/260902/p26)
- [Palo Alto Networks Acquires Console for ~$500M, Sources Say — Renascence](https://www.renascence.io/news/48483/palo-alto-networks-acquires-console-for-500m-sources-say)
- [Nvidia closes in on Hugging Face acquisition — TechCrunch](https://techcrunch.com/2026/08/26/nvidia-closes-in-on-hugging-face-acquisition/)
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script>
    document.addEventListener("DOMContentLoaded", () => {
        try {
            const rawMarkdown = document.body.innerText;
            const isDark = window.matchMedia("(prefers-color-scheme: dark)").matches;

            let webUrl = window.location.pathname;
            if (webUrl.endsWith('/index.md')) {
                webUrl = webUrl.substring(0, webUrl.length - 'index.md'.length) || '/';
            } else {
                webUrl = webUrl.replace(/.md$/, '');
            }
            const linkColor = isDark ? '#58a6ff' : '#0969da';
            const navHtml = 
                '<div style="margin-bottom: 24px; font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif;">' +
                    '<a href="/index.md" style="color: ' + linkColor + '; text-decoration: none;">← Back to Home</a>' +
                    '<span style="margin: 0 8px; color: ' + (isDark ? '#484f58' : '#d0d7de') + ';">|</span>' +
                    '<a href="' + webUrl + '" style="color: ' + linkColor + '; text-decoration: none;">Switch to Web View</a>' +
                '</div>';

            let contentToRender = rawMarkdown;
            let frontmatterHtml = '';
            
            const fmMatch = rawMarkdown.match(/^---\s*[\r\n]+([\s\S]*?)[\r\n]+---\s*/);
            
            if (fmMatch) {
                contentToRender = rawMarkdown.substring(fmMatch[0].length);
                const yamlText = fmMatch[1];
                
                const borderColor = isDark ? '#30363d' : '#d0d7de';
                const bgColor = isDark ? '#161b22' : '#f6f8fa';
                const keyColor = isDark ? '#8b949e' : '#57606a';
                const valColor = isDark ? '#c9d1d9' : '#24292f';

                const rows = yamlText.split('\n')
                    .filter(line => line.trim() && line.includes(':'))
                    .map(line => {
                        const splitIdx = line.indexOf(':');
                        const key = line.slice(0, splitIdx).trim();
                        let val = line.slice(splitIdx + 1).trim();
                        if ((val.startsWith("'") && val.endsWith("'")) || (val.startsWith('"') && val.endsWith('"'))) {
                            val = val.slice(1, -1);
                        }
                        
                        return '<tr>' +
                            '<td style="white-space:nowrap; padding:8px 12px; color:' + keyColor + '; font-weight:600; border-bottom:1px solid ' + borderColor + '; width:1%;">' + key + '</td>' +
                            '<td style="padding:8px 12px; color:' + valColor + '; border-bottom:1px solid ' + borderColor + ';">' + val + '</td>' +
                        '</tr>';
                    }).join('');
                
                if (rows) {
                    frontmatterHtml = 
                        '<div style="margin-bottom: 32px; border:1px solid ' + borderColor + '; border-radius:6px; overflow:hidden; background-color:' + bgColor + ';">' +
                            '<table style="width:100%; border-collapse:collapse; font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif; font-size:13px;">' +
                                rows +
                            '</table>' +
                        '</div>';
                }
            }
            
            const renderedHtml = marked.parse(contentToRender);
            
            const wrapper = document.createElement('article');
            wrapper.className = 'markdown-body';
            wrapper.innerHTML = navHtml + frontmatterHtml + renderedHtml;
            
            document.body.innerHTML = '';
            document.body.appendChild(wrapper);
        } catch (e) {
            console.error("Markdown rendering failed", e);
        }
    });
</script>
</body>
</html>