html女神
用于创建 1999 年网站的极简框架。
要求
- 一台可连接互联网、文本编辑器和网络浏览器的计算机
- 新项目管理
入门
- 打开终端
npm install -g @htmlgoddess/cli
这将安装命令行实用程序。-
htmlgoddess create path/to/your/new/site - 按照提示操作,您应该可以立即启动并运行。
待办事项
- 重构:隔离测试。
- 添加:“主机”命令。
- 添加:样式选择命令,允许用户在创建后更改主题。
- 专长:拼写检查器。
- feat:提交时触发的自动提交钩子。
- 专长:校对命令。
- 壮举:“域”命令。
- 壮举:可下载的可执行文件。
- 重构:将 CNAME 替换为 yaml 配置以进行托管。
- 任务:覆盖
- 将“docs”转换为可配置变量
- 任务:确保观察者不会泄漏内存。
- bug:cli.action 在测试期间仍然输出到控制台。
- 专长:图形用户界面
我不知道任何 HTML
没关系。查看此视频以开始使用。
命令行菜单
当你运行npm start时,它会给你以下选项。
它是如何运作的
- “src”文件夹中的文件被编译(打印)为“docs”文件夹中的静态 HTML 文件。
-
src/templates夹包含模板。它们与内容文件夹一起编译以生成静态 HTML 页面。 -
src/content文件夹包含您的网站内容,这些内容保存在 HTML 文件中,这些文件是 HTML 代码块。 - 当您运行
npm run print (或从终端菜单中选择 print )时,它会将您的内容和模板编译为静态 HTML 文件并重新创建 docs 文件夹。 (注意:文档中的所有内容都会被覆盖,因此仅将内容保存在 src 目录中!) - 您可以通过从菜单中运行“serve”命令来在本地测试您的站点。
- 当您准备好部署站点时,只需执行
npm run save && npm run publish - 然后,您可以将您的 Web 服务器指向“docs”,无论它是 apache、git 页面、nginx 还是其他任何东西。
- 您可以添加任何针对纯 HTML 元素的样式表,它应该可以工作:)
模板
- 模板中的自闭合标签(如
<head />或<main />将搜索与相同名称匹配的模板文件;带有索引 html 的目录(如main/index.html或简单的文件main.html- 标签不必是标准 HTML。如果您在 templates 文件夹中创建模板 foo.html,则可以包含
<foo />标记,它将替换 foo 的内容。 - 模板编译是递归的,因此您可以在模板中使用模板,但是,嵌套模板必须是包含在父模板内或与其相邻的文件。否则它只会被忽略。
-
<content/>标记很特殊,它将引入与文件同名(带有 dir)的模板或主模板('templates/index.html)。 - 当您在内容目录中创建所需的页面时。与之相关的目录将以相同的路径显示在您的站点中。此结构允许自组织文件夹和 URL。
约束条件
- 没有JS
- 除了基本的 href 等之外没有属性。
- 没有课。这允许您添加任何针对 vanilla css 的样式表
- 没有 SASS/SCSS/LESS。对于简单的 HTML 元素来说这不是必需的
- 没有 React、Angular 或其他任何东西。
- 或者不,你可以破解任何你想要的东西。
哲学
HTML 的设计很简单,适合普通人在互联网上创建和消费东西。如今的网络非常棒,但也变得相当复杂,让很多人落后了。该 CMS 回归基础,为人们提供一种自由、轻松地表达自己的方式。
- 该框架试图尽可能多地利用现有技术和标准。
- HTML 用于一切(正如 HTML 女神所命令的那样),而不是专有的模板标签和其他特殊语法。模板系统搜索自闭合 HTML 标签并用关联的模板或内容替换它们。
- 文件系统可用于查找/命名模板和 url 路由。
- Git 与内容和模板中的 HTML 文件一起充当 CMS 的实际数据库。
- 该站点“打印”到“docs”文件夹,然后“发布”到 git,您可以在其中设置 github 页面。它与 Web 服务器无关,因此您实际上可以将 docs 文件夹中的文件放在您想要的任何位置,并将 Web 服务器指向它们。
- 标签不需要类或属性。这使得新的主题可以无缝地插入。您可以将普通 HTML 视为应用样式的界面。
- 不鼓励使用 JavaScript,因为它不应该是不必要的,尽管框架中没有任何内容阻止您使用它。
- 你可以忽略我刚刚写的所有内容并做你想做的事。这是互联网!
常见问题
- 依赖关系表现得很奇怪:
Lerna 在幕后做了一些事情来交叉链接依赖关系。如果您安装了新模块并且停止工作,请尝试从根目录使用lerna bootstrap 。 - 测试目录未清理。如果测试失败,可能会阻止测试目录的清理。在这种情况下,运行
npm run clean-test-dir这将手动删除它。
贡献
- 在 packages/cli 中运行测试以确保一切正常
npm run test - 提交对 mono 存储库的更改
npm run commit并按照提示操作 - lernapublish --force-publish 这将发布到 NPM 并将标签推送到 git