Recognize json as plain text (if no other handlers are present).

This commit is contained in:
Adam Fourney 2025-01-03 16:30:44 -08:00
parent 436407288f
commit d7b47ae326
2 changed files with 13 additions and 1 deletions

View file

@ -173,7 +173,10 @@ class PlainTextConverter(DocumentConverter):
# Only accept text files # Only accept text files
if content_type is None: if content_type is None:
return None return None
elif "text/" not in content_type.lower(): elif all(
not content_type.lower().startswith(type_prefix)
for type_prefix in ["text/", "application/json"]
):
return None return None
text_content = str(from_path(local_path).best()) text_content = str(from_path(local_path).best())

View file

@ -145,6 +145,11 @@ LLM_TEST_STRINGS = [
"5bda1dd6", "5bda1dd6",
] ]
JSON_TEST_STRINGS = [
"5b64c88c-b3c3-4510-bcb8-da0b200602d8",
"9700dc99-6685-40b4-9a3a-5e406dcb37f3",
]
# --- Helper Functions --- # --- Helper Functions ---
def validate_strings(result, expected_strings, exclude_strings=None): def validate_strings(result, expected_strings, exclude_strings=None):
@ -257,6 +262,10 @@ def test_markitdown_local() -> None:
result = markitdown.convert(os.path.join(TEST_FILES_DIR, "test_outlook_msg.msg")) result = markitdown.convert(os.path.join(TEST_FILES_DIR, "test_outlook_msg.msg"))
validate_strings(result, MSG_TEST_STRINGS) validate_strings(result, MSG_TEST_STRINGS)
# Test JSON processing
result = markitdown.convert(os.path.join(TEST_FILES_DIR, "test.json"))
validate_strings(result, JSON_TEST_STRINGS)
# Test input with leading blank characters # Test input with leading blank characters
input_data = b" \n\n\n<html><body><h1>Test</h1></body></html>" input_data = b" \n\n\n<html><body><h1>Test</h1></body></html>"
result = markitdown.convert_stream(io.BytesIO(input_data)) result = markitdown.convert_stream(io.BytesIO(input_data))