1

Git リポジトリに CSS フレームワーク サブモジュールがあり、多数のREADMEcomponent.jsonその他のファイルが含まれています。更新がサブモジュールにプッシュされたときに問題が発生すると思うので、ファイルを変更または削除したくありません。それでもミドルマンはそれらを処理したいと考えています。

現在、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 /^css\/inuit\.css\/.*(?<![.]css)$/
于 2013-08-22T22:14:28.983 に答える
1

ignore は regex を取ることができるので、ファイル名グロブを含む文字列の代わりにignoreRuby 正規表現を渡します。正規表現では、否定先読み文字列終了アンカーを使用して、ファイル名が「.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

(?:)非キャプチャ グループの最初の変更は、拡張子のないファイル (「.」なし) のケースを処理します。それ以外の場合、2 番目のケースで最後の「.」がチェックされます。パスの「.css」拡張子を示す「css」が続きません。

フラグを使用xして正規表現の空白を無視し、正規表現にスペースを追加して明確にすることができます。

于 2013-08-22T21:39:41.617 に答える