将 SCSS 代码写到 Jekyll 的页面上



>我创建了一个适用于所有意图和目的的网页,为开发我们应用程序的其他开发人员提供了风格指南。

我的.scss文件在我的 Jekyll 项目的_sass目录中,它漂亮地创建了所有 CSS 文件。但是,在我的页面上,我想在某些<pre><code>标签的页面中显示这些.scss文件中的代码。

目前,我在两个地方都重复了这里的代码。当它很小的时候,这不是一个问题,但现在它变得更大了,它需要干燥

我首先走上了使用 Jekyll{% include [path/to/file] %}的道路,然后意识到这仅适用于_includes文件夹中的内容,而且我也不能使用include_relative选项,因为_sass文件夹不是它使用位置的子文件夹。

其次,我尝试使用角度方法,因为我已经在应用程序中使用它。投入了一些<pre><code ng-include="'../_sass/components/_sflButton.scss'">,并期望它能够工作。当然,它不是,因为当您运行_sass文件夹时,它不会生成到实际站点中。而且我似乎找不到一种方法来让它包含它。尝试在_config.yml中更改一些内容,但无济于事。

所以,TL;DR,我希望能够通过 Jekyll 将我的_sass文件夹中的代码包含到我的页面上,或者找到一种方法将_sass文件夹加载到生成的站点中,以便我可以使用 Angular 加载它。我在这里试图做一个不可能完成的任务吗?愿意听取任何意味着代码只写在一个地方的建议。

完成此操作背后的理论如下:

  • _sass是 Jekyll 的一个特殊目录(类似于_layouts_includes(,与您创建的其他目录相比,它的处理方式不同。其内容不会输出到目标目录。
  • 您可以编写简单的Ruby程序并将它们添加到名为_plugins的目录中,Jekyll将在构建过程中运行这些自定义程序。(被 GitHub 页面忽略(。
  • 现在编写一个 ruby 程序来"读取"_sass的内容,并将生成的数据格式化为哈希,并将此哈希提供给现有site_payload
  • 哈希还可以作为Drop实例传递,以便通过Liquid模板提供数据。

我承认这个答案实际上并不能解决你的问题,特别是如果你不熟悉Ruby和Jekyll代码库。 但它将作为一个起点。

最新更新