本文档概述了前端开发人员面试问题网站的结构和生成方式。它涵盖了网站的核心架构,包括静态站点生成过程、内容组织、模板系统和整体请求流程。有关构建和部署过程的具体详细信息,请参阅构建和部署,有关翻译系统的信息,请参阅翻译系统。
前端开发人员面试问题网站是使用 Eleventy (11ty) 构建的,Eleventy 是一种现代静态网站生成器。该架构遵循内容驱动的方法,其中包含面试问题的 markdown 文件通过模板处理,以生成多语言静态网站。
来源:package.json40-48 src/index.njk1-20
网站架构由几个核心组件协同工作,以生成最终网站
| 组件 | 目的 | 位置 |
|---|---|---|
| 内容文件 | 包含面试问题的 Markdown 文件 | src/questions/*.md |
| 数据文件 | 包含网站元数据和配置的 JSON 文件 | src/_data/*.json |
| 布局 | 用于页面结构的 Nunjucks 模板 | src/_includes/layouts/*.njk |
| 组件 | 可重用的 UI 元素 | src/_includes/components/*.njk |
| 资源 | CSS、JavaScript 和图片 | src/assets/* |
| Eleventy 配置 | 网站生成配置 | config/eleventy.config.js |
来源:package.json6-9 src/_data/site.json1-9
该网站使用 Eleventy 将内容文件转换为静态 HTML,优化了性能并简化了托管要求。
来源:package.json6-9 .gitignore1-4
当构建过程运行时,Eleventy 按以下顺序处理内容:
src/questions/ 收集 markdown 文件和翻译文件src/_data/ 文件中的数据合并_site 目录来源:package.json40-48 src/questions/html-questions.md1-5
网站内容以结构化的目录格式组织,将内容、模板和资产分开。
来源:src/questions/html-questions.md1-20 src/translations/danish/README.md1-269
网站使用 Nunjucks 作为其模板引擎,允许布局继承、组件重用和条件渲染。
来源:src/index.njk1-20 src/questions/html-questions.md1-5 src/translations/danish/README.md1-5
每个内容文件(如问题集或翻译)都使用 frontmatter 来定义其元数据和模板。
---
title: HTML Questions
layout: layouts/page.njk
permalink: /questions/html-questions/index.html
---
这会告诉 Eleventy:
来源:src/questions/html-questions.md1-5 src/translations/danish/README.md1-5
网站架构包括几种处理资产的方法:
Eleventy 配置定义了网站的构建方式,包括模板引擎设置、文件处理和输出格式。
当用户访问网站时,会发生以下序列:
/questions/html-questions/)由于网站是静态生成的,因此在请求时没有服务器端处理,这提高了性能和安全性。
网站架构的开发工作流程遵循以下步骤:
npm start 进行本地开发(以服务模式运行 Eleventy)npm run build 进行生产构建前端开发人员面试问题网站架构旨在实现简洁性、高性能和可维护性。通过利用 Eleventy 作为静态网站生成器,该项目实现了:
这种架构为项目的成长和演进提供了坚实的基础,同时保持了高性能和用户体验标准。