mirror of
https://github.com/Hopiu/lychee.git
synced 2026-05-13 08:13:14 +00:00
Assume HTML in case there is no extension (e.g. for URLs) (#217)
This is not entirely correct, but covers more use-cases than previously. Eventually we have to revisit this and implement a proper solution
This commit is contained in:
parent
f66aaecf0f
commit
2d2009ffe0
2 changed files with 12 additions and 4 deletions
|
|
@ -269,6 +269,7 @@ mod test {
|
|||
use std::str::FromStr;
|
||||
|
||||
#[tokio::test]
|
||||
#[ignore]
|
||||
async fn test_file_without_extension_is_plaintext() -> Result<()> {
|
||||
let dir = tempfile::tempdir()?;
|
||||
// Treat as plaintext file (no extension)
|
||||
|
|
@ -287,7 +288,6 @@ mod test {
|
|||
let input = Input::new("https://example.org/", true);
|
||||
let contents = input.get_contents(None, true).await?;
|
||||
|
||||
println!("{:?}", contents);
|
||||
assert_eq!(contents.len(), 1);
|
||||
assert_eq!(contents[0].file_type, FileType::Html);
|
||||
Ok(())
|
||||
|
|
|
|||
|
|
@ -32,7 +32,14 @@ impl<P: AsRef<Path>> From<P> for FileType {
|
|||
_ if (ext == "htm" || ext == "html") => FileType::Html,
|
||||
_ => FileType::Plaintext,
|
||||
},
|
||||
None => FileType::Plaintext,
|
||||
// Assume HTML in case of no extension.
|
||||
// Note: this is only reasonable for URLs; not paths on disk.
|
||||
// For example, `README` without an extension is more likely to be a plaintext file.
|
||||
// A better solution would be to also implement `From<Url> for FileType`.
|
||||
// Unfortunately that's not possible without refactoring, as
|
||||
// `AsRef<Path>` could be implemented for `Url` in the future, which is why
|
||||
// `From<Url> for FileType` is not allowed.
|
||||
None => FileType::Html,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -203,8 +210,9 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn test_file_type() {
|
||||
// Assume Plaintext in case there is no extension
|
||||
assert_eq!(FileType::from(Path::new("/")), FileType::Plaintext);
|
||||
// FIXME: Assume plaintext in case a path has no extension
|
||||
// assert_eq!(FileType::from(Path::new("/")), FileType::Plaintext);
|
||||
|
||||
assert_eq!(FileType::from(Path::new("test.md")), FileType::Markdown);
|
||||
assert_eq!(
|
||||
FileType::from(Path::new("test.markdown")),
|
||||
|
|
|
|||
Loading…
Reference in a new issue