Updated plugin README.

This commit is contained in:
Adam Fourney 2025-03-05 11:37:00 -08:00
parent 36a49806b5
commit aa57757395

View file

@ -10,23 +10,38 @@ This project shows how to create a sample plugin for MarkItDown. The most import
Next, implement your custom DocumentConverter: Next, implement your custom DocumentConverter:
```python ```python
from typing import Union from typing import BinaryIO, Any
from markitdown import DocumentConverter, DocumentConverterResult from markitdown import MarkItDown, DocumentConverter, DocumentConverterResult, StreamInfo
class RtfConverter(DocumentConverter): class RtfConverter(DocumentConverter):
def convert(self, local_path, **kwargs) -> Union[None, DocumentConverterResult]:
# Bail if not an RTF file
extension = kwargs.get("file_extension", "")
if extension.lower() != ".rtf":
return None
# Implement the conversion logic here ... def __init__(
self, priority: float = DocumentConverter.PRIORITY_SPECIFIC_FILE_FORMAT
):
super().__init__(priority=priority)
# Return the result def accepts(
return DocumentConverterResult( self,
title=title, file_stream: BinaryIO,
text_content=text_content, stream_info: StreamInfo,
) **kwargs: Any, # Options to pass to the converter
) -> bool:
# Implement logic to check if the file stream is an RTF file
# ...
raise NotImplementedError()
def convert(
self,
file_stream: BinaryIO,
stream_info: StreamInfo,
**kwargs: Any, # Options to pass to the converter
) -> DocumentConverterResult:
# Implement logic to convert the file stream to Markdown
# ...
raise NotImplementedError()
``` ```
Next, make sure your package implements and exports the following: Next, make sure your package implements and exports the following:
@ -71,10 +86,10 @@ Once the plugin package is installed, verify that it is available to MarkItDown
markitdown --list-plugins markitdown --list-plugins
``` ```
To use the plugin for a conversion use the `--use-plugins` flag. For example, to convert a PDF: To use the plugin for a conversion use the `--use-plugins` flag. For example, to convert an RTF file:
```bash ```bash
markitdown --use-plugins path-to-file.pdf markitdown --use-plugins path-to-file.rtf
``` ```
In Python, plugins can be enabled as follows: In Python, plugins can be enabled as follows:
@ -83,7 +98,7 @@ In Python, plugins can be enabled as follows:
from markitdown import MarkItDown from markitdown import MarkItDown
md = MarkItDown(enable_plugins=True) md = MarkItDown(enable_plugins=True)
result = md.convert("path-to-file.pdf") result = md.convert("path-to-file.rtf")
print(result.text_content) print(result.text_content)
``` ```