Updated plugin README.
This commit is contained in:
parent
36a49806b5
commit
aa57757395
1 changed files with 31 additions and 16 deletions
|
|
@ -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)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue