From 5c6f690b9784452cfde660cb562790b419f3e11b Mon Sep 17 00:00:00 2001 From: Yuki Izumi Date: Mon, 20 Mar 2017 13:07:54 +1100 Subject: [PATCH] Prefer Markdown over GCC Machine Description (#3523) * Add minimal Markdown sample * Heuristic defaults to Markdown on no match * Allow Linguist to detect empty blobs --- lib/linguist.rb | 4 ++-- lib/linguist/heuristics.rb | 2 ++ samples/Markdown/minimal.md | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 samples/Markdown/minimal.md diff --git a/lib/linguist.rb b/lib/linguist.rb index c6733a67..c2065bf8 100644 --- a/lib/linguist.rb +++ b/lib/linguist.rb @@ -15,9 +15,9 @@ class << Linguist # see Linguist::LazyBlob and Linguist::FileBlob for examples # # Returns Language or nil. - def detect(blob) + def detect(blob, allow_empty: false) # Bail early if the blob is binary or empty. - return nil if blob.likely_binary? || blob.binary? || blob.empty? + return nil if blob.likely_binary? || blob.binary? || (!allow_empty && blob.empty?) Linguist.instrument("linguist.detection", :blob => blob) do # Call each strategy until one candidate is returned. diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index ab8c4599..35052ad3 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -264,6 +264,8 @@ module Linguist Language["Markdown"] elsif /^(;;|\(define_)/.match(data) Language["GCC machine description"] + else + Language["Markdown"] end end diff --git a/samples/Markdown/minimal.md b/samples/Markdown/minimal.md new file mode 100644 index 00000000..0f39e489 --- /dev/null +++ b/samples/Markdown/minimal.md @@ -0,0 +1 @@ +_This_ is a **Markdown** readme. \ No newline at end of file