1

我的 Git 存储库中有一个 CSS 框架子模块,其中包括一堆READMEcomponent.json其他文件。我不想修改或删除文件,因为我想当更新被推送到子模块时会导致问题。然而 Middleman 想要处理它们。

我目前在我的config.rb文件中有这个:

# Ignore everything that's not a CSS file inside inuit.css
ignore 'css/inuit.css/*.html'
ignore 'css/inuit.css/*.json'
ignore 'css/inuit.css/LICENSE'

我如何用文件模式或正则表达式来表达这一点?

4

2 回答 2

1

由于ignore 可以采用 regex,因此传递ignoreRuby regex而不是带有文件名 glob//的字符串。""在正则表达式中,使用负前瞻 (?!)字符串结尾锚 $来检查文件名是否以“.css”结尾。

ignore /^ css\/inuit\.css\/ (?:  [^.]+  |  .+ \. (?!css) \w+   ) $/ix

此正则表达式正确处理所有这些测试用例

  • 应该匹配:
    • css/inuit.css/abc.html
    • css/inuit.css/thecssthing.json
    • css/inuit.css/sub/in_a_folder.html
    • css/inuit.css/sub/crazily.named.css.json
    • css/inuit.css/sub/crazily.css.named.json
    • css/inuit.css/LICENSE
  • 不应该匹配:
    • css/inuit.css/realcss.css
    • css/inuit.css/main.css
    • css/inuit.css/sub/in_a_folder.css
    • css/inuit.css/sub/crazily.css.named.css
    • css/inuit.css/sub/crazily.named.css.css

(?:)非捕获组的第一个交替处理没有扩展名(没有“.”)的文件的情况。否则,第二种情况检查最后一个“。” 路径中没有“css”,这表示“.css”扩展名。

我使用该x标志来忽略正则表达式中的空格,以便我可以在正则表达式中添加空格以使其更清晰。

于 2013-08-22T21:39:41.617 回答
1

我不熟悉中间人,但这不起作用吗?

ignore /^css\/inuit\.css\/.*(?<![.]css)$/
于 2013-08-22T22:14:28.983 回答