A comprehensive Python library for programmatically creating and manipulating Markdown files with support for headers, tables, lists, images, links, and text formatting.
80
Create a Python program that generates a formatted release notes document with proper text styling.
Your program should:
Create a Markdown file named release_notes.md
Add a title "Version 2.5.0 Release Notes"
Generate release notes content with the following sections:
Apply proper text formatting:
inline code formatEach section should contain at least 2 paragraphs of text with appropriate formatting
Your generated Markdown file should produce output similar to:
# Version 2.5.0 Release Notes
## New Features
**Enhanced Authentication**: Added support for OAuth2 authentication. Configure using the `auth_provider` setting in your configuration file.
**Performance Improvements**: Database queries are now optimized. *Note: This requires re-indexing your database.*
## Bug Fixes
Fixed critical issue in the `process_data` function that caused data corruption. **All users should upgrade immediately.**
Resolved memory leak in *long-running processes*. The `memory_limit` configuration now works correctly.
## Breaking Changes
The `legacy_mode` configuration option has been removed. *Please update your configuration files before upgrading.* Use `compatibility_level` instead.Provides Markdown file generation capabilities.
@test
After running your program, the file release_notes.md should exist.
@test
The generated file should contain a level 1 header with "Version 2.5.0 Release Notes".
@test
The generated file should contain at least 3 instances of bold text (text surrounded by **).
@test
The generated file should contain at least 3 instances of inline code (text surrounded by backticks).
@test
The generated file should contain at least 2 instances of italic text (text surrounded by single * or _).
generate_release_notes.py: Main program filetest_release_notes.py: Test file for validationInstall with Tessl CLI
npx tessl i tessl/pypi-mdutilsdocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10