A library to parse Markdown and extract code snippets
Project description
PyParseit
PyParseit is a Python library designed to parse Markdown files and strings to extract code snippets based on specific programming languages. It provides a simple and intuitive interface for developers who want to quickly extract and utilize code blocks from Markdown documents or strings.
Table of Contents
- Introduction
- Features
- Installation
- Usage
- Command-Line Interface
- Examples
- API Reference
- Contributing
- License
Introduction
Markdown is widely used for documentation, blogging, and technical writing. PyParseit simplifies the task of extracting code snippets from Markdown files and strings, making it ideal for static site generators, content management systems, and more.
Features
- Parse Markdown files or strings to extract code blocks.
- Filter code snippets by programming language (e.g., Python, JavaScript, JSON).
- Command-line interface for easy integration into scripts and workflows.
- Customizable and extensible API for developers.
Installation
You can install PyParseit via pip:
pip install pyparseit
Alternatively, you can clone the repository and install it manually:
git clone https://github.com/uladkaminski/pyparseit.git
cd pyparseit
python setup.py install
Usage
Parsing from a File
Here's a basic example of how to use PyParseit to extract Python code snippets from a Markdown file:
from pyparseit import parse_markdown_file
# Specify the file path and language
file_path = 'example_file.md'
language = 'python'
# Parse the Markdown file to extract Python code snippets
python_snippets = parse_markdown_file(file_path, language=language)
# Display extracted Python snippets from the file
print("Extracted Python Snippets from File:")
for snippet in python_snippets:
print(f"Language: {snippet.language}\nContent:\n{snippet.content}\n")
Parsing from a String
PyParseit can also parse Markdown content directly from a string:
from pyparseit import parse_markdown_string
# Define a Markdown string with multiple code blocks
markdown_string = """
# Sample Markdown
Here is some Python code:
\`\`\`python
def hello_world():
print("Hello, world!")
\`\`\`
Here is some JavaScript code:
\`\`\`javascript
function helloWorld() {
console.log("Hello, world!");
}
\`\`\`
And here is some JSON:
\`\`\`json
{
"name": "John",
"age": 30
}
\`\`\`
"""
# Parse the Markdown string to extract JSON code snippets
json_snippets = parse_markdown_string(markdown_string, language='json')
# Display extracted JSON snippets from the string
print("Extracted JSON Snippets from String:")
for snippet in json_snippets:
print(f"Language: {snippet.language}\nContent:\n{snippet.content}\n")
Command-Line Interface
PyParseit also provides a CLI for easy usage from the terminal:
pyparseit path/to/your/file.md -l python -o output.txt
This command parses the specified Markdown file, extracts Python code snippets, and saves them to output.txt.
Examples
Check out the examples directory for more use cases and demonstrations of how to integrate PyParseit into your projects.
API Reference
parse_markdown_file
- Description: Parses Markdown content from a file to extract code snippets.
- Parameters:
file_path (str): The path to the Markdown file.language (Optional[str]): The programming language to filter snippets by.
- Returns:
List[CodeSnippet]: A list of extracted code snippets.
parse_markdown_string
- Description: Parses Markdown content from a string to extract code snippets.
- Parameters:
markdown_string (str): The Markdown content as a string.language (Optional[str]): The programming language to filter snippets by.
- Returns:
List[CodeSnippet]: A list of extracted code snippets.
CodeSnippet
- Description: Represents a code snippet with language and content.
- Attributes:
language: str: The programming language of the code snippet.content: str: The code snippet's content.
Exceptions
PyParsecError: Base exception for parser errors.
Contributing
Contributions are welcome! If you'd like to contribute to PyParseit, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Implement your changes and add tests if applicable.
- Commit your changes and push to your fork.
- Submit a pull request with a description of your changes.
Please ensure your code adheres to the project's coding standards and passes all tests.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyparseit-0.1.1.tar.gz.
File metadata
- Download URL: pyparseit-0.1.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c49b93443a2ff7e8481902f8ef7988c03b93d7b5b86eb99d509ca8002f493cd8
|
|
| MD5 |
0cb6fc0e0ee1f23e53ab427625606631
|
|
| BLAKE2b-256 |
0b7544ee9e864a2ec900d26c64371b90f737bdcad5c7535b56b7cba2c13d57b1
|
File details
Details for the file pyparseit-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pyparseit-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d41d9f15f49cd5e21aa152b898ffabf390c6cc5be0f6059263ad2b2b6aab07f0
|
|
| MD5 |
413a291774e6072190cfc74d8f24783c
|
|
| BLAKE2b-256 |
242d11ddfe0f0fd51ed6e54abe53b2a8380f34a5f7797211226a37ca7f34e02a
|